[PATCH 2/2] arm: add support to corstone1000 platform

Rui Miguel Silva rui.silva at linaro.org
Thu Mar 24 10:54:07 CET 2022


Hi Tom,
Many thanks for the review.

On Wed, Mar 23, 2022 at 09:21:42AM -0400, Tom Rini wrote:
> On Tue, Mar 22, 2022 at 10:41:18AM +0000, Rui Miguel Silva wrote:
> 
> > Corstone1000 is a platform from arm, which includes pre
> > verified Corstone SSE710 sub-system that combines Cortex-A and
> > Cortex-M processors [0].
> > 
> > This code adds the support for the Cortex-A35 implementation
> > at host side, it contains also the necessary bits to support
> > the Corstone 1000 FVP (Fixed Virtual Platform) [1] and also the
> > FPGA MPS3 board implementation of this platform. [2]
> > 
> > 0: https://documentation-service.arm.com/static/619e02b1f45f0b1fbf3a8f16
> > 1: https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps
> > 2: https://documentation-service.arm.com/static/61f3f4d7fa8173727a1b71bf
> > 
> > Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi at arm.com>
> > Signed-off-by: Rui Miguel Silva <rui.silva at linaro.org>
> > ---
> >  arch/arm/Kconfig                         |   8 ++
> >  arch/arm/dts/Makefile                    |   3 +
> >  arch/arm/dts/corstone1000-fvp.dts        |  33 +++++
> >  arch/arm/dts/corstone1000-mps3.dts       |  41 ++++++
> >  arch/arm/dts/corstone1000.dtsi           | 167 +++++++++++++++++++++++
> 
> What is the status of these dts files with upstream Linux?  They need to
> be in linux-next at least before we take them.

Hrr, did not know that one. I will do that and spin a v2 when these
device trees get in linux-next. Also will address all yours other
comments in this series.

Cheers,
     Rui

> 
> [snip]
> > @@ -2230,6 +2236,8 @@ source "arch/arm/mach-nexell/Kconfig"
> >  
> >  source "board/armltd/total_compute/Kconfig"
> >  
> > +source "board/armltd/corstone1000/Kconfig"
> > +
> >  source "board/bosch/shc/Kconfig"
> >  source "board/bosch/guardian/Kconfig"
> >  source "board/Marvell/octeontx/Kconfig"
> 
> There shouldn't be a space today where there is, so this entry can just
> fill in that gap.
> 
> [snip]
> > +/*
> > + * Board specific ethernet initialization routine.
> > + */
> > +int board_eth_init(struct bd_info *bis)
> > +{
> > +	int rc = 0;
> > +
> > +#ifndef CONFIG_DM_ETH
> > +#ifdef CONFIG_SMC91111
> > +	rc = smc91111_initialize(0, CONFIG_SMC91111_BASE);
> > +#endif
> > +#ifdef CONFIG_SMC911X
> > +	rc = smc911x_initialize(0, CONFIG_SMC911X_BASE);
> > +#endif
> > +#endif
> > +
> > +	return rc;
> > +}
> 
> DM_ETH should always be set, so please clean this up.
> 
> [snip]
> > +#define V2M_SRAM0		0x02000000
> > +#define V2M_QSPI		0x08000000
> > +
> > +#define V2M_DEBUG		0x10000000
> > +#define V2M_BASE_PERIPH		0x1A000000
> > +
> > +#define V2M_BASE		0x80000000
> > +
> > +#define V2M_PERIPH_OFFSET(x)	((x) << 16)
> > +
> > +#define V2M_SYSID		(V2M_BASE_PERIPH)
> > +#define V2M_SYSCTL		(V2M_BASE_PERIPH + V2M_PERIPH_OFFSET(1))
> > +
> > +#define V2M_COUNTER_CTL		(V2M_BASE_PERIPH + V2M_PERIPH_OFFSET(32))
> > +#define V2M_COUNTER_READ	(V2M_BASE_PERIPH + V2M_PERIPH_OFFSET(33))
> > +
> > +#define V2M_TIMER_CTL		(V2M_BASE_PERIPH + V2M_PERIPH_OFFSET(34))
> > +#define V2M_TIMER_BASE0		(V2M_BASE_PERIPH + V2M_PERIPH_OFFSET(35))
> > +
> > +#define V2M_UART0		(V2M_BASE_PERIPH + V2M_PERIPH_OFFSET(81))
> > +#define V2M_UART1		(V2M_BASE_PERIPH + V2M_PERIPH_OFFSET(82))
> 
> Please find someplace better than the board config.h file for these
> values.  Either some SoC header file, or pulled out of the dt.  And
> you're probably not the first board to do this, but it does need
> cleaning up.
> 
> > +/*
> > + * config_distro_bootcmd define the boot command to distro_bootcmd, but we here
> > + * want to first try to load a kernel if exists, override that config then
> > + */
> > +#undef CONFIG_BOOTCOMMAND
> > +
> > +#define CONFIG_BOOTCOMMAND								\
> > +				"run retrieve_kernel_load_addr;"			\
> > +				"echo Loading kernel from $kernel_addr to memory ... ;"	\
> > +				"loadm $kernel_addr $kernel_addr_r 0xc00000;"		\
> > +				"usb start; usb reset;"					\
> > +				"run distro_bootcmd;"					\
> > +				"bootefi $kernel_addr_r $fdtcontroladdr;"
> 
> CONFIG_BOOTCOMMMAND is part of Kconfig, so this needs to be set in the
> defconfig.  I didn't see any other options that need to be migrated,
> but, CI will fail (at least, -next has the test fixed) over migrated
> options being in the board config.h file.
> 
> -- 
> Tom




More information about the U-Boot mailing list