[U-Boot] [PATCH v2 00/12] System Firmware Loader for TI K3 family SoCs

Andreas Dannenberg dannenberg at ti.com
Tue Jun 4 22:55:43 UTC 2019

Updated version of the SYSFW loader series for K3 family AM654x devices.
The fundamantal approach of tapping into the SPL loader framework has
been kept for reasons discussed already. The series also still uses
"early BSS" in SPL's board_init_f(). I'm well aware of the concerns
previously brought up regarding this mainly by Simon Glass but I have
not been able to find a better / more universal solution for this yet
(one proposal was to move SYSFW loading into board_init_r() which is not
easily solvable as SYSFW is needed to bring up DDR on K3 SoCs). Long
story short I propose to consider the current proposed approach
nevertheless (as it is also used by other platforms) at least as an
initial step, and then migrate once a better solution is available.

I have not yet included support for TI's newest K3 family J721E SoC
which Lokesh posted an initial patch series [5] for due to the
complex dependencies of all the different series we have currently
posted/pending (if I were to add support for J721E which eventually will
be required then the SYSFW loader series would have Lokesh's series as a
pre-requisite as well).

This being said I would like to propose the following staging sequence
for the different TI K3 SoCs patches currently under review:

Step 1) Faiz' "Add Support for eMMC in Am65x-evm" series [1]. It needs
        a small update to actuall allow for eMMC boot I posted earlier.
Step 2) The SYSFW loader series proposed here
Step 3) An updated version (v3) of the AM654x EEPROM support [3].
        Will post this today. 
Step 4) An updated version of Lokesh's "arm: k3: Allow for exclusive
        and shared device requests" series. In addition to a rebase
        such an updated series should include updating power domain
        properties for devices that were added during the previous
Step 5) An updated version of Lokesh's "arm: k3: arm64: Initial support
        Texas Instrument's J721E Platform" series [5] also adding
        in the few lines of codes to leverage SYSFW.
Step 6 & beyond) Various rproc patches, etc.

The above is to allow for things to build in a logical order while
avoiding merge conflicts. 1+2+3 added will provide a pretty good initial
working U-Boot using eMMC and SD media for AM654x which is a device
available today plus a foundation for everything else, hence it is at
the top of the list.

Changes since initial submission:
- Dropped patch "armv7R: dts: k3: am654: Update mmc nodes for loading
  sysfw". This is taken care off by the "Add Support for eMMC in
  Am65x-evm" patch series [1] which this series was rebased on.
- Replaced patch "spl: Allow skipping clearing BSS during relocation"
  with a functionally equivalent patch "spl: Allow performing BSS init
  early before board_init_f()" which is a bit more elegant solution
  which itself is a slight evolution what previously posted by Simon
  Goldschmidt [2]
- Collected various review tags

[1] https://patchwork.ozlabs.org/project/uboot/list/?series=111723
[2] https://patchwork.ozlabs.org/patch/1067363/
[3] https://patchwork.ozlabs.org/project/uboot/list/?series=109266
[4] https://patchwork.ozlabs.org/project/uboot/list/?series=109163
[5] https://patchwork.ozlabs.org/project/uboot/list/?series=109296

Andreas Dannenberg
Texas Instruments Inc

Andreas Dannenberg (10):
  mmc: am654_sdhci: Allow driver to probe without PDs specified
  spl: Allow performing BSS init early before board_init_f()
  spl: Make image loader infrastructure more universal
  arm: K3: Introduce System Firmware loader framework
  armV7R: K3: am654: Allow using SPL BSS pre-relocation
  armv7R: K3: am654: Use full malloc implementation in SPL
  armV7R: K3: am654: Load SYSFW binary and config from boot media
  configs: am65x_evm_r5: All sysfw to be loaded via MMC
  configs: am65x_hs_evm_r5: All sysfw to be loaded via MMC
  configs: am65x_hs_evm: Add Support for eMMC boot

Faiz Abbas (2):
  configs: am65x_evm: Add Support for eMMC boot
  am65x: README: Add eMMC layout and flash instructions

 arch/arm/lib/crt0.S                          |  53 ++--
 arch/arm/mach-k3/Kconfig                     |  39 +++
 arch/arm/mach-k3/Makefile                    |   3 +
 arch/arm/mach-k3/am6_init.c                  |  27 +-
 arch/arm/mach-k3/include/mach/sysfw-loader.h |  12 +
 arch/arm/mach-k3/sysfw-loader.c              | 260 +++++++++++++++++++
 board/ti/am65x/Kconfig                       |   1 +
 board/ti/am65x/README                        |  52 ++++
 common/spl/Kconfig                           |  10 +
 common/spl/spl_fit.c                         |  14 +
 common/spl/spl_mmc.c                         |  76 ++++--
 configs/am65x_evm_a53_defconfig              |   2 +
 configs/am65x_evm_r5_defconfig               |   7 +-
 configs/am65x_hs_evm_a53_defconfig           |   2 +
 configs/am65x_hs_evm_r5_defconfig            |   7 +-
 drivers/mmc/am654_sdhci.c                    |  16 +-
 include/configs/am65x_evm.h                  |  30 ++-
 include/spl.h                                |  26 ++
 18 files changed, 580 insertions(+), 57 deletions(-)
 create mode 100644 arch/arm/mach-k3/include/mach/sysfw-loader.h
 create mode 100644 arch/arm/mach-k3/sysfw-loader.c


More information about the U-Boot mailing list