From owner-svn-src-head@freebsd.org Thu May 3 01:10:42 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B645FB95EA; Thu, 3 May 2018 01:10:42 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id CE30176D0E; Thu, 3 May 2018 01:10:41 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C9038189FE; Thu, 3 May 2018 01:10:41 +0000 (UTC) (envelope-from mw@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w431AfnK007904; Thu, 3 May 2018 01:10:41 GMT (envelope-from mw@FreeBSD.org) Received: (from mw@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w431AfkW007903; Thu, 3 May 2018 01:10:41 GMT (envelope-from mw@FreeBSD.org) Message-Id: <201805030110.w431AfkW007903@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mw set sender to mw@FreeBSD.org using -f From: Marcin Wojtas Date: Thu, 3 May 2018 01:10:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r333190 - head/sys/arm/mv X-SVN-Group: head X-SVN-Commit-Author: mw X-SVN-Commit-Paths: head/sys/arm/mv X-SVN-Commit-Revision: 333190 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 May 2018 01:10:42 -0000 Author: mw Date: Thu May 3 01:10:41 2018 New Revision: 333190 URL: https://svnweb.freebsd.org/changeset/base/333190 Log: Fix SoC identification issue on Marvell platforms Marvell SoC identification function was called by SYSINIT on all armv7 platforms, which brakes platforms other than Marvell built with GENERIC config. Fix this by shifting SoC identifying to Marvell platform initialization. Submitted by: Patryk Duda Reviewed by: manu Tested by: manu Obtained from: Semihalf Sponsored by: Stormshield Modified: head/sys/arm/mv/mv_common.c Modified: head/sys/arm/mv/mv_common.c ============================================================================== --- head/sys/arm/mv/mv_common.c Thu May 3 00:57:19 2018 (r333189) +++ head/sys/arm/mv/mv_common.c Thu May 3 01:10:41 2018 (r333190) @@ -180,6 +180,8 @@ static int fdt_win_setup(void); static int fdt_win_process_child(phandle_t, struct soc_node_spec *, const char*); +static void soc_identify(uint32_t, uint32_t); + static uint32_t dev_mask = 0; static int cpu_wins_no = 0; static int eth_port = 0; @@ -441,13 +443,13 @@ mv_check_soc_family() case MV_DEV_MV78460: soc_decode_win_spec = &decode_win_specs[MV_SOC_ARMADA_XP]; soc_family = MV_SOC_ARMADA_XP; - return (MV_SOC_ARMADA_XP); + break; case MV_DEV_88F6828: case MV_DEV_88F6820: case MV_DEV_88F6810: soc_decode_win_spec = &decode_win_specs[MV_SOC_ARMADA_38X]; soc_family = MV_SOC_ARMADA_38X; - return (MV_SOC_ARMADA_38X); + break; case MV_DEV_88F5181: case MV_DEV_88F5182: case MV_DEV_88F5281: @@ -462,11 +464,15 @@ mv_check_soc_family() case MV_DEV_MV78160: soc_decode_win_spec = &decode_win_specs[MV_SOC_ARMV5]; soc_family = MV_SOC_ARMV5; - return (MV_SOC_ARMV5); + break; default: soc_family = MV_SOC_UNSUPPORTED; return (MV_SOC_UNSUPPORTED); } + + soc_identify(dev, rev); + + return (soc_family); } static __inline void @@ -702,14 +708,12 @@ soc_id(uint32_t *dev, uint32_t *rev) } static void -soc_identify(void) +soc_identify(uint32_t d, uint32_t r) { - uint32_t d, r, size, mode, freq; + uint32_t size, mode, freq; const char *dev; const char *rev; - soc_id(&d, &r); - printf("SOC: "); if (bootverbose) printf("(0x%4x:0x%02x) ", d, r); @@ -827,20 +831,6 @@ soc_identify(void) break; } } - -static void -platform_identify(void *dummy) -{ - - soc_identify(); - - /* - * XXX Board identification e.g. read out from FPGA or similar should - * go here - */ -} -SYSINIT(platform_identify, SI_SUB_CPU, SI_ORDER_SECOND, platform_identify, - NULL); #ifdef KDB static void