[U-Boot] [PATCH 03/16] arm: Kconfig: Add support for AM43xx SoC specific Kconfig

Andreas Dannenberg
2016-04-18T23:04:38Z

On Mon, Apr 18, 2016 at 04:03:58PM -0500, Andreas Dannenberg wrote:
> On Fri, Apr 15, 2016 at 04:27:45PM +0530, Lokesh Vutla wrote:
> > On Tuesday 12 April 2016 05:07 AM, Daniel Allred wrote:
> > > From: Madan Srinivas <madans@ti.com>
> > >
> > > Adding support for AM43xx secure devices require the addition
> > > of some SOC specific config options like the amount of memory
> > > used by public ROM and the address of the entry point of u-boot
> > > or SPL, as seen by the ROM code, for the image to be built
> > > correctly.
> > >
> > > This mandates the addition of am AM43xx CONFIG option and the
> > > ARM Kconfig file has been modified to source this SOC Kconfig
> > > file. Moving the TARGET_AM43XX_EVM config option to the SOC
> > > KConfig and out of the arch/arm/Kconfig.
> > >
> > > Updating defconfigs to add the CONFIG_AM43XX=y statement and
> > > removing the #define CONFIG_AM43XX from the header file.
> > >
> > > Signed-off-by: Madan Srinivas <madans@ti.com>
> > > Signed-off-by: Daniel Allred <d-allred@ti.com>
> > > ---
> > > arch/arm/Kconfig | 19 +++++++++++++------
> > > arch/arm/cpu/armv7/am33xx/Kconfig | 13 +++++++++++++
> > > configs/am43xx_evm_defconfig | 1 +
> > > configs/am43xx_evm_ethboot_defconfig | 1 +
> > > configs/am43xx_evm_qspiboot_defconfig | 1 +
> > > configs/am43xx_evm_usbhost_boot_defconfig | 1 +
> > > include/configs/am43xx_evm.h | 2 --
> > > 7 files changed, 30 insertions(+), 8 deletions(-)
> > >
> > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > > index f18dbe6..088d6e0 100644
> > > --- a/arch/arm/Kconfig
> > > +++ b/arch/arm/Kconfig
> > > @@ -381,12 +381,6 @@ config TARGET_AM335X_SL50
> > > select DM
> > > select DM_SERIAL
> > >
> > > -config TARGET_AM43XX_EVM
> > > - bool "Support am43xx_evm"
> > > - select CPU_V7
> > > - select SUPPORT_SPL
> > > - select TI_I2C_BOARD_DETECT
> > > -
> > > config TARGET_BAV335X
> > > bool "Support bav335x"
> > > select CPU_V7
> > > @@ -507,6 +501,17 @@ config OMAP54XX
> > > select CPU_V7
> > > select SUPPORT_SPL
> > >
> > > +config AM43XX
> > > + bool "AM43XX SoC"
> > > + select CPU_V7
> > > + select SUPPORT_SPL
> > > + help
> > > + Support for AM43xx SOC from Texas Instruments.
> > > + The AM43xx high performance SOC features a Cortex-A9
> > > + ARM core, a quad core PRU-ICSS for industrial Ethernet
> > > + protocols, dual camera support, optional 3D graphics
> > > + and an optional customer programmable secure boot.
> > > +
> > > config RMOBILE
> > > bool "Renesas ARM SoCs"
> > > select CPU_V7
> > > @@ -776,6 +781,8 @@ source "arch/arm/cpu/armv7/omap4/Kconfig"
> > >
> > > source "arch/arm/cpu/armv7/omap5/Kconfig"
> > >
> > > +source "arch/arm/cpu/armv7/am33xx/Kconfig"
> > > +
> > > source "arch/arm/mach-orion5x/Kconfig"
> > >
> > > source "arch/arm/cpu/armv7/rmobile/Kconfig"
> > > diff --git a/arch/arm/cpu/armv7/am33xx/Kconfig b/arch/arm/cpu/armv7/am33xx/Kconfig
> > > index 39759cd..68bcc64 100644
> > > --- a/arch/arm/cpu/armv7/am33xx/Kconfig
> > > +++ b/arch/arm/cpu/armv7/am33xx/Kconfig
> > > @@ -1,3 +1,15 @@
> > > +if AM43XX
> > > +config TARGET_AM43XX_EVM
> > > + bool "Support am43xx_evm"
> > > + select CREATE_BOARD_SYMLINK
> >
> > This should be TI_I2C_BOARD_DETECT or else you will get a build error.
>
> Yes this is definitely an issue, I just ran into this when trying to
> build and test U-Boot for AM43xx HS which is when I saw your response.
>
> However even after fixing this I get additional build errors from SPI,
> USB Gadget, and UART related routines such as...
>
> cmd/built-in.o: In function `do_spi_xfer':
> /home/a0797059/git/u-boot/cmd/spi.c:61: undefined reference to `spi_setup_slave'
> /home/a0797059/git/u-boot/cmd/spi.c:68: undefined reference to `spi_claim_bus'
> /home/a0797059/git/u-boot/cmd/spi.c:71: undefined reference to `spi_xfer'
> /home/a0797059/git/u-boot/cmd/spi.c:88: undefined reference to `spi_release_bus'
> /home/a0797059/git/u-boot/cmd/spi.c:90: undefined reference to `spi_free_slave'
>
> <cut>
>
> I'll be digging into this a bit more to see where that comes from.

It turns out that the defconfig file(s) part of this patch series are
missing the enables for device drivers for the devices accessed by
U-Boot. After migrating the respective config settings from the
am43xx_evm_defconfig file that's already part of U-Boot over to
am43xx_hs_evm_defconfig the AM43xx HS device support can be build
successfully and allows booting up the secure device.

Under the condition the change regarding TI_I2C_BOARD_DETECT highlighted
gets addressed this patch gets my...

Tested-by: Andreas Dannenberg <dannenberg@ti.com>