[PATCH 00/28] ARM: at91: add sama5d2 first stage support
Ahmad Fatoum
a.fatoum at pengutronix.de
Wed Jul 1 01:23:12 EDT 2020
This adapts the sama5d3 first stage patch set I sent around a few times
for use on the sama5d2. Unlike the original patch set, we now do the
chainloading in the PBL, so integrators can still use multi-image and
don't have to build barebox more than once.
With the FAT PBL implementation in place, first stages of the OMAP and
SoCFPGA could also be migrated to multi-image.
Much code has been adapted from at91bootstrap v3.8.12. Key changes:
- We detect bootsource automatically, so we don't need to hardcode
which MCI instance to use
- We pass along the bootsource, so it's available to second stage
bootloaders
- We don't reset the SD card, so we can avoid having a complete
SD/MMC core implementation in PBL
- We don't disable the watchdog in first stage. We leave the decision
on how to deal with it to second stage.
There's no defconfig for this yet, it will follow along with a generic
at91_multi_defconfig, when support for the sama5d3 is posted.
Cheers,
Ahmad Fatoum (28):
ARM: at91: remove <mach/hardware.h> include from assembly code
ARM: at91: sama5d2: cast peripheral base addresses to __iomem pointers
ARM: at91: import at91bootstrap's at91_ddrsdrc.h
ARM: at91: migrate at91sam9_ddrsdr.h to use at91bootstrap's
at91_ddrsdrc.h
ARM: at91: replace at91sam9_ddrsdr.h with at91bootstrap's
at91_ddrsdrc.h
ARM: at91: import early_udelay from at91bootstrap
ARM: at91: import low level DDRAMC initialization code from
at91bootstrap
ARM: at91: watchdog: implement at91_wdt_disable
watchdog: add support for at91sam9/sama5 watchdog
ARM: at91: implement sama5d2 lowlevel init
ARM: at91: sama5d2: add sama5d2 matrix configuration
ARM: at91: add sama5d2 cache init
ARM: at91: add necessary Advanced Interrupt Controller configuration
ARM: at91: extend low level PMC driver for generic clk support
pbl: add block I/O API
fs: fat: extend for in-PBL support
mci: extend atmel-sdhci driver to first stage use
ARM: at91: add code for sama5 boot source detection
ARM: at91: add helpers for chain-loading barebox from SD-card
ARM: at91: sama5d2: reuse stack set-up by first stage
at91: debug_ll: remove duplicated IS_ENABLED(CONFIG_DEBUG_LL)
condition
ARM: at91: sama5d2: reduce UART setup boilerplate with new helpers
ARM: at91: sama5d27-som1: add additional first stage entry point
ARM: at91: sama5d2: read back memory size from DDRAM controller
ARM: at91: sama5d2: populate $bootsource and $bootsource_instance
ARM: at91: sama5d27-som1-ek: add barebox_update and multi environment
support
ARM: at91: sama5d27-giantboard: add additional first stage entry point
ARM: at91: sama5d27-giantboard: add default environment/bbu
arch/arm/boards/at91sam9m10g45ek/lowlevel.c | 2 +-
arch/arm/boards/at91sam9m10ihd/lowlevel.c | 2 +-
arch/arm/boards/at91sam9n12ek/lowlevel.c | 2 +-
arch/arm/boards/at91sam9x5ek/lowlevel.c | 3 +-
arch/arm/boards/pm9g45/lowlevel.c | 3 +-
arch/arm/boards/sama5d27-giantboard/Makefile | 2 +
arch/arm/boards/sama5d27-giantboard/board.c | 17 +
.../defaultenv-giantboard/nv/boot.default | 1 +
.../arm/boards/sama5d27-giantboard/lowlevel.c | 51 +-
arch/arm/boards/sama5d27-som1/Makefile | 1 +
arch/arm/boards/sama5d27-som1/board.c | 35 ++
arch/arm/boards/sama5d27-som1/lowlevel.c | 61 +--
arch/arm/boards/sama5d3_xplained/lowlevel.c | 2 +-
arch/arm/boards/sama5d3xek/lowlevel.c | 2 +-
arch/arm/boards/sama5d4_xplained/lowlevel.c | 2 +-
arch/arm/boards/sama5d4ek/lowlevel.c | 2 +-
arch/arm/dts/at91-sama5d27_giantboard.dts | 10 +-
arch/arm/dts/at91-sama5d27_som1_ek.dts | 19 +-
arch/arm/dts/sama5d2.dtsi | 2 +
arch/arm/mach-at91/Kconfig | 11 +
arch/arm/mach-at91/Makefile | 9 +-
arch/arm/mach-at91/aic.c | 28 +
arch/arm/mach-at91/at91_pmc_ll.c | 169 +++++-
arch/arm/mach-at91/at91sam9_reset.S | 1 -
arch/arm/mach-at91/at91sam9g45_devices.c | 2 +-
arch/arm/mach-at91/at91sam9g45_reset.S | 9 +-
arch/arm/mach-at91/at91sam9n12_devices.c | 2 +-
arch/arm/mach-at91/at91sam9x5_devices.c | 2 +-
arch/arm/mach-at91/ddramc.c | 59 ++
arch/arm/mach-at91/ddramc_ll.c | 507 ++++++++++++++++++
arch/arm/mach-at91/early_udelay.c | 56 ++
arch/arm/mach-at91/include/mach/aic.h | 9 +
arch/arm/mach-at91/include/mach/at91_dbgu.h | 34 +-
.../arm/mach-at91/include/mach/at91_ddrsdrc.h | 373 +++++++++++++
arch/arm/mach-at91/include/mach/at91_pmc.h | 22 +
arch/arm/mach-at91/include/mach/at91_pmc_ll.h | 32 +-
arch/arm/mach-at91/include/mach/at91_wdt.h | 16 +
.../mach-at91/include/mach/at91sam9_ddrsdr.h | 214 --------
arch/arm/mach-at91/include/mach/barebox-arm.h | 21 +
arch/arm/mach-at91/include/mach/ddramc.h | 37 ++
arch/arm/mach-at91/include/mach/debug_ll.h | 17 +-
.../arm/mach-at91/include/mach/early_udelay.h | 14 +
arch/arm/mach-at91/include/mach/matrix.h | 21 +
.../mach-at91/include/mach/sama5_bootsource.h | 49 ++
.../include/mach/sama5d2-sip-ddramc.h | 39 ++
arch/arm/mach-at91/include/mach/sama5d2.h | 225 +++++---
arch/arm/mach-at91/include/mach/sama5d2_ll.h | 139 +++++
arch/arm/mach-at91/include/mach/tz_matrix.h | 95 ++++
arch/arm/mach-at91/include/mach/xload.h | 12 +
arch/arm/mach-at91/matrix.c | 45 ++
arch/arm/mach-at91/sama5d2.c | 71 +++
arch/arm/mach-at91/sama5d2_ll.c | 220 ++++++++
arch/arm/mach-at91/sama5d3_devices.c | 2 +-
arch/arm/mach-at91/sama5d4_devices.c | 2 +-
arch/arm/mach-at91/xload-mmc.c | 85 +++
common/Makefile | 3 +-
drivers/mci/Kconfig | 4 +
drivers/mci/Makefile | 1 +
drivers/mci/atmel-sdhci-common.c | 3 +
drivers/mci/atmel-sdhci-pbl.c | 128 +++++
drivers/watchdog/Kconfig | 6 +
drivers/watchdog/Makefile | 1 +
drivers/watchdog/at91sam9_wdt.c | 109 ++++
fs/Makefile | 2 +-
fs/fat/Kconfig | 7 +
fs/fat/Makefile | 4 +-
fs/fat/diskio.h | 7 +-
fs/fat/fat-pbl.c | 53 ++
fs/fat/fat.c | 31 --
fs/fat/ff.c | 89 +--
fs/fat/ff.h | 22 +-
images/Makefile.at91 | 10 +
include/pbl.h | 15 +
lib/Makefile | 2 +-
74 files changed, 2845 insertions(+), 520 deletions(-)
create mode 100644 arch/arm/boards/sama5d27-giantboard/board.c
create mode 100644 arch/arm/boards/sama5d27-giantboard/defaultenv-giantboard/nv/boot.default
create mode 100644 arch/arm/boards/sama5d27-som1/board.c
create mode 100644 arch/arm/mach-at91/aic.c
create mode 100644 arch/arm/mach-at91/ddramc.c
create mode 100644 arch/arm/mach-at91/ddramc_ll.c
create mode 100644 arch/arm/mach-at91/early_udelay.c
create mode 100644 arch/arm/mach-at91/include/mach/aic.h
create mode 100644 arch/arm/mach-at91/include/mach/at91_ddrsdrc.h
delete mode 100644 arch/arm/mach-at91/include/mach/at91sam9_ddrsdr.h
create mode 100644 arch/arm/mach-at91/include/mach/barebox-arm.h
create mode 100644 arch/arm/mach-at91/include/mach/ddramc.h
create mode 100644 arch/arm/mach-at91/include/mach/early_udelay.h
create mode 100644 arch/arm/mach-at91/include/mach/matrix.h
create mode 100644 arch/arm/mach-at91/include/mach/sama5_bootsource.h
create mode 100644 arch/arm/mach-at91/include/mach/sama5d2-sip-ddramc.h
create mode 100644 arch/arm/mach-at91/include/mach/sama5d2_ll.h
create mode 100644 arch/arm/mach-at91/include/mach/tz_matrix.h
create mode 100644 arch/arm/mach-at91/include/mach/xload.h
create mode 100644 arch/arm/mach-at91/matrix.c
create mode 100644 arch/arm/mach-at91/sama5d2.c
create mode 100644 arch/arm/mach-at91/sama5d2_ll.c
create mode 100644 arch/arm/mach-at91/xload-mmc.c
create mode 100644 drivers/mci/atmel-sdhci-pbl.c
create mode 100644 drivers/watchdog/at91sam9_wdt.c
create mode 100644 fs/fat/fat-pbl.c
--
2.27.0
More information about the barebox
mailing list