[U-Boot] [PATCH v3 0/19] ARM: SPL: Make more generic, merge DaVinci and OMAP

Prabhakar Lad
2012-08-23T05:18:48Z

Hi Tom,

Thanks for the patches.

On Thursday 23 August 2012 04:49 AM, Tom Rini wrote:
> Hey all,
>
> The following patch series merges the davinci and omap-common SPL
> frameworks into a single framework, CONFIG_SPL_FRAMEWORK along with a
> few small cleanups to the code to make it a little smaller and more
> flexible. The end result is that davinci can now opt in on
> SPL-boots-Linux by just setting the right defines and other platforms
> would just need to adapt to this framework. In my testing, davinci
> gains between 300 and 700 bytes for this (not enabling the SPL OS
> feature) and omap4/5/etc lose just a little bit (from the printf->puts
> changes). I've tested this on omap3_beagle (xM and classic) and
> omap4_panda. I don't have any davinci platforms that were previously
> using SPL so I can't boot-test those changes but since everyone sets
> CONFIG_SPL_MAX_SIZE, we're OK in that department.
>
> To make this series easier to test I've placed it on
> http://github.com/trini/u-boot WIP/spl-improvements
>
I tested the patchset on omap-l138 for SPI boot mode now the board comes
up and reset too works, no issues found as in v2.

The only problem is that I am not able to test other boot modes on it
recently there were patches added for da850 to support NAND spl, direct
NOR boot mode and MMC spl, this patches are pulled by Albert but not in
mainline yet.

Thx,
--Prabhakar

> I've looked a little into re-reducing the size and the biggest problem I
> see is that SPI a lot of informational prints that we don't need,
> strictly speaking, but are nice in a normal U-Boot context. I'm unsure
> of the best way to quiet these as I don't like the idea of sprinkling
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54303 and I'm sending
> another email to discuss that.
>
> --
> Tom
>
> Changes in v2:
> - Add
> - Add CONFIG_SYS_SPL_MALLOC_START / SIZE defines from Christian Riesch
> - Add arch/arm/cpu/arm926ejs/davinci/config.mk to build u-boot.ais
> - Fix checkpatch warning (u32* boot_params_ptr -> u32 *boot_params_ptr)
> - Place files into common/spl (due to gcc bug #54303) and include/spl.h
> - Reorder all of the patches that used to follow this to precede.
>
> Changes in v3:
> CONFIG_SPL_FRAMEWORK
> perform early init. Fixes the cannot reset problem.
> - Fix checkpatch.pl warning
> - Fix thinko, Nand -> SPI (spotted by Prabhakar Lad)
> - Make u-boot.ais use u-boot.img not u-boot.bin, now that it uses
> - Make use of board_init_f being a weak function now so that we can
> - Rename to README.da850, add more direct recovery method (Christian Riesch)
>
> Tom Rini (19):
> Makefile: Move SPL files to clobber, remove from clean
> spl_mmc: Make FAT checks / calls guarded with CONFIG_SPL_FAT_SUPPORT
> omap-common: SPL: Add CONFIG_SPL_DISPLAY_PRINT / spl_display_print()
> omap-common: Fix typo in save_boot_params() in lowlevel_init.S
> ARM: SPL: Rename omap_boot_device to spl_boot_device
> ARM: SPL: Rename omap_boot_mode to spl_boot_mode()
> ARM: SPL: Remove NAND_MODE_HW_ECC from spl_nand.c
> ARM: SPL: Only call mem_malloc_init if configured
> ARM: SPL: Add <asm/spl.h> and <asm/arch/spl.h>
> ARM: SPL: Make spl_mmc.c more generic
> ARM: SPL: Clean up spl.c / spl_nand.c slightly
> ARM: SPL: Start hooking in the current SPI SPL support
> ARM: SPL: Move gpmc_init() to spl_board_init()
> SPL: Move the omap SPL framework to common/spl
> spl: Make CONFIG_SPL_FRAMEWORK board_init_f __weak
> ARM: SPL: Convert davinci to CONFIG_SPL_FRAMEWORK
> da850: Add README.da850
> SPL: Enhance drivers/mtd/nand/nand_spl_load.c
> SPL: Enhance spi_spl_load to match the other load functions
>
> Makefile | 16 +--
> README | 9 ++
> arch/arm/cpu/arm926ejs/davinci/config.mk | 16 +++
> arch/arm/cpu/arm926ejs/davinci/spl.c | 56 ++++------
> arch/arm/cpu/armv7/am33xx/board.c | 2 +-
> arch/arm/cpu/armv7/omap-common/Makefile | 13 ---
> arch/arm/cpu/armv7/omap-common/boot-common.c | 27 ++++-
> arch/arm/cpu/armv7/omap-common/hwinit-common.c | 7 +-
> arch/arm/cpu/armv7/omap-common/lowlevel_init.S | 6 +-
> arch/arm/cpu/armv7/omap-common/spl_nand.c | 111 --------------------
> arch/arm/cpu/armv7/omap3/board.c | 28 +++--
> arch/arm/include/asm/arch-am33xx/spl.h | 31 ++++++
> arch/arm/include/asm/arch-davinci/spl.h | 28 +++++
> arch/arm/include/asm/arch-omap3/spl.h | 34 ++++++
> arch/arm/include/asm/arch-omap4/spl.h | 35 ++++++
> arch/arm/include/asm/arch-omap4/sys_proto.h | 1 -
> arch/arm/include/asm/arch-omap5/spl.h | 35 ++++++
> arch/arm/include/asm/arch-omap5/sys_proto.h | 1 -
> arch/arm/include/asm/omap_common.h | 77 --------------
> arch/arm/include/asm/spl.h | 29 +++++
> board/davinci/da8xxevm/README.da850 | 62 +++++++++++
> board/overo/overo.c | 10 --
> common/spl/Makefile | 37 +++++++
> .../arm/cpu/armv7/omap-common => common/spl}/spl.c | 49 ++++-----
> .../armv7/omap-common => common/spl}/spl_ymodem.c | 3 +-
> doc/README.SPL | 1 -
> drivers/mmc/Makefile | 5 +
> .../armv7/omap-common => drivers/mmc}/spl_mmc.c | 24 ++---
> drivers/mtd/nand/Makefile | 7 +-
> drivers/mtd/nand/nand_spl_load.c | 89 +++++++++++-----
> drivers/mtd/spi/spi_spl_load.c | 23 ++--
> include/configs/am335x_evm.h | 1 +
> include/configs/am3517_crane.h | 2 +
> include/configs/am3517_evm.h | 2 +
> include/configs/cam_enc_4xx.h | 3 +-
> include/configs/da850evm.h | 5 +
> include/configs/devkit8000.h | 1 +
> include/configs/hawkboard.h | 3 +-
> include/configs/mcx.h | 2 +
> include/configs/omap3_beagle.h | 1 +
> include/configs/omap3_evm_common.h | 1 +
> include/configs/omap3_overo.h | 1 +
> include/configs/omap4_common.h | 2 +
> include/configs/omap5_evm.h | 2 +
> include/configs/tam3517-common.h | 2 +
> include/configs/tricorder.h | 1 +
> include/spl.h | 70 ++++++++++++
> spl/Makefile | 1 +
> 48 files changed, 614 insertions(+), 358 deletions(-)
> create mode 100644 arch/arm/cpu/arm926ejs/davinci/config.mk
> delete mode 100644 arch/arm/cpu/armv7/omap-common/spl_nand.c
> create mode 100644 arch/arm/include/asm/arch-am33xx/spl.h
> create mode 100644 arch/arm/include/asm/arch-davinci/spl.h
> create mode 100644 arch/arm/include/asm/arch-omap3/spl.h
> create mode 100644 arch/arm/include/asm/arch-omap4/spl.h
> create mode 100644 arch/arm/include/asm/arch-omap5/spl.h
> create mode 100644 arch/arm/include/asm/spl.h
> create mode 100644 board/davinci/da8xxevm/README.da850
> create mode 100644 common/spl/Makefile
> rename {arch/arm/cpu/armv7/omap-common => common/spl}/spl.c (85%)
> rename {arch/arm/cpu/armv7/omap-common => common/spl}/spl_ymodem.c (96%)
> rename {arch/arm/cpu/armv7/omap-common => drivers/mmc}/spl_mmc.c (91%)
> create mode 100644 include/spl.h
>