[U-Boot] [PATCH] ti: am335x_evm: Enable CONFIG_SPL_OF_CONTROL

Tom Rini trini at konsulko.com
Tue Mar 19 14:40:11 UTC 2019


On Tue, Mar 19, 2019 at 05:01:42PM +0530, Faiz Abbas wrote:
> Hi Tom,
> 
> On 19/03/19 4:49 PM, Tom Rini wrote:
> > Enable support for SPL_OF_CONTROL on this platform.  That means doing a
> > few things:
> > - Add u-boot,dm-pre-reloc to a number of nodes
> > - Drop static platdata in the board file.
> > - A lot of tweaks to the defconfig.  We remove some things such as
> >   SPL_USE_ARCH_MEMCPY/SET for space.  Increase our malloc len.
> > - Drop, for now at least, USB SPL support as it's causing a hang.
> > 
> > Cc: Faiz Abbas <faiz_abbas at ti.com>
> > Cc: Lokesh Vutla <lokeshvutla at ti.com>
> > Signed-off-by: Tom Rini <trini at konsulko.com>
> > ---
> >  arch/arm/dts/am335x-evm-u-boot.dtsi | 45 +++++++++++++++++++++++++++++++++++--
> >  board/ti/am335x/board.c             | 30 -------------------------
> >  configs/am335x_evm_defconfig        | 14 ++++++++----
> >  3 files changed, 53 insertions(+), 36 deletions(-)
> > 
> > diff --git a/arch/arm/dts/am335x-evm-u-boot.dtsi b/arch/arm/dts/am335x-evm-u-boot.dtsi
> > index b6b97ed16d91..16a9f855ad1f 100644
> > --- a/arch/arm/dts/am335x-evm-u-boot.dtsi
> > +++ b/arch/arm/dts/am335x-evm-u-boot.dtsi
> > @@ -3,11 +3,52 @@
> >   * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
> >   */
> >  
> > +#include "am33xx-u-boot.dtsi"
> >  
> > -&mmc3 {
> > -	status = "disabled";
> > +&l4_wkup {
> > +	u-boot,dm-pre-reloc;
> > +};
> > +
> > +&scm {
> > +	u-boot,dm-pre-reloc;
> > +};
> > +
> > +&am33xx_pinmux {
> > +	u-boot,dm-pre-reloc;
> > +};
> > +
> > +&uart0_pins {
> > +	u-boot,dm-pre-reloc;
> > +};
> > +
> > +&uart0 {
> > +	u-boot,dm-pre-reloc;
> > +};
> > +
> > +&gpio0 {
> > +	u-boot,dm-pre-reloc;
> > +};
> > +
> > +&i2c0 {
> > +	u-boot,dm-pre-reloc;
> > +};
> > +
> > +&i2c0_pins {
> > +	u-boot,dm-pre-reloc;
> >  };
> >  
> >  &usb0 {
> >  	dr_mode = "peripheral";
> >  };
> > +
> > +&mmc1 {
> > +	u-boot,dm-pre-reloc;
> > +};
> > +
> > +&mmc1_pins {
> > +	u-boot,dm-pre-reloc;
> > +};
> > +
> > +&mmc3 {
> > +	status = "disabled";
> > +};
> > diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
> > index d67f94ad47ba..bfad1a75a456 100644
> > --- a/board/ti/am335x/board.c
> > +++ b/board/ti/am335x/board.c
> > @@ -1054,33 +1054,3 @@ void board_fit_image_post_process(void **p_image, size_t *p_size)
> >  	secure_boot_verify_image(p_image, p_size);
> >  }
> >  #endif
> > -
> > -#if !CONFIG_IS_ENABLED(OF_CONTROL)
> > -static const struct omap_hsmmc_plat am335x_mmc0_platdata = {
> > -	.base_addr = (struct hsmmc *)OMAP_HSMMC1_BASE,
> > -	.cfg.host_caps = MMC_MODE_HS_52MHz | MMC_MODE_HS | MMC_MODE_4BIT,
> > -	.cfg.f_min = 400000,
> > -	.cfg.f_max = 52000000,
> > -	.cfg.voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195,
> > -	.cfg.b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT,
> > -};
> > -
> > -U_BOOT_DEVICE(am335x_mmc0) = {
> > -	.name = "omap_hsmmc",
> > -	.platdata = &am335x_mmc0_platdata,
> > -};
> > -
> > -static const struct omap_hsmmc_plat am335x_mmc1_platdata = {
> > -	.base_addr = (struct hsmmc *)OMAP_HSMMC2_BASE,
> > -	.cfg.host_caps = MMC_MODE_HS_52MHz | MMC_MODE_HS | MMC_MODE_8BIT,
> > -	.cfg.f_min = 400000,
> > -	.cfg.f_max = 52000000,
> > -	.cfg.voltages = MMC_VDD_32_33 | MMC_VDD_33_34 | MMC_VDD_165_195,
> > -	.cfg.b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT,
> > -};
> > -
> > -U_BOOT_DEVICE(am335x_mmc1) = {
> > -	.name = "omap_hsmmc",
> > -	.platdata = &am335x_mmc1_platdata,
> > -};
> > -#endif
> 
> We also need to look at arch/arm/mach-omap2/board.c. Bunch of GPIO and
> I2C platdata there.

Yes, but that's all also guarded under a check for SPL_OF_CONTROL being
enabled.  The above is the board-specific part and why I dropped it.

> In general, if we are not able to fit all bootmodes with SPL_OF_CONTROL
> enabled, should we remove it and add back platdata or do something else?

I'm not sure we can fit all the boot modes with platdata either, nor am
I convinced that's the best thing to do.  Checking the TRM again, you
can only have 4 choices at most in a single hardware config, and we
already don't support some options such as SPI with everything else.

But I'd like to start with seeing everything working with
SPL_OF_CONTROL, even if it's not all enabled in the same binary and then
we can see what options are available to us to fit the most into a
single binary.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190319/cdf20a94/attachment.sig>


More information about the U-Boot mailing list