Add pinctrl, clock drivers and SPL to support the IPPQ5210 SoC in U-Boot.
The relevant DT files are available in linux-next [1] & [2]
Working features, as tested on RDP504:
* Serial console
* UART
* MMC
* Boot sequence transitions from Boot ROM to U-Boot SPL, proprietary
binaries (a.k.a QCLib) load and execute as appropriate and eventual
jump to U-Boot.
* The QCLib handles
- DDR initialization
- Clock setup
1 -
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm64/boot/dts/qcom/ipq5210.dtsi
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/arm64/boot/dts/qcom/ipq5210-rdp504.dts
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/include/dt-bindings/clock/qcom,ipq5210-gcc.h
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/include/dt-bindings/reset/qcom,ipq5210-gcc.h
2 -
https://lore.kernel.org/linux-arm-msm/[email protected]/
v9: - Address review feedback
- Move qclib handling to separate file with some functionality as
'weak' functions to allow SoC implementations to override it
- Link to v8:
https://lore.kernel.org/u-boot/[email protected]/
v8: - Rebased on
https://source.denx.de/u-boot/custodians/u-boot-snapdragon.git
- Address Casey's review comments on v6
- Spin off GENI Minicore support and mkmbn support as separate patches
[PATCH] misc: qcom_geni: Add minicore support - [a]
[PATCH 0/3] tools: qcom: mkmbn: Updates to support ipq5210 - [b]
- Re-organize the functions from spl.c into board_spl.c and
fit-handler.c
and remove spl.c
- Retained R-b tags since the code just moved
- Removed references to MBN and multi-elf creation steps in rdp.rst
since
mkmbn.py takes care of it
- Add details about the interface table in
doc/board/qualcomm/spl-qclib.rst
- May need to update config.mk based on the final shape of mkmbn
patches [b]
a - https://patchwork.ozlabs.org/project/uboot/list/?series=514770
b -
https://lore.kernel.org/u-boot/[email protected]/
v7: - Fix inadvertant typo in doc/board/qualcomm/rdp.rst
- Pick multiple R-b tags
- No code changes
v6: - Move binman related changes to separate series, so that the
SPL changes can move forward.
- Restore v3 build steps for now
-
https://lore.kernel.org/u-boot/[email protected]/
v5: - Reorganize SPL related code into common and SoC specific functions
to allow SoCs to customize according to their boot flow
- Fix documentation related build errors
- Please see the patches for specific changes
-
https://lore.kernel.org/u-boot/[email protected]/
v4: - Add binman based image creation support instead of special scripts
- Identify boot media based on PBL shared info instead of CONFIG_xxx
- Address v3 feedback (see individual patch for details)
-
https://lore.kernel.org/u-boot/[email protected]/
v3: - Move stack range
- Split spl.c patch
- Move documentation towards the end of the series
- Pick couple of R-b
-
https://lore.kernel.org/u-boot/[email protected]/
v2: - Add QCOM_GENI_MINICORE config option
- Move minicore register settings to separate file and include
if QCOM_GENI_MINICORE is enabled
- Remove bootph-all from override dts and moved them to kernel
DT -
https://lore.kernel.org/linux-arm-msm/[email protected]/T/#u
-
https://lore.kernel.org/u-boot/[email protected]/
v1:
https://lore.kernel.org/u-boot/[email protected]/
Signed-off-by: Varadarajan Narayanan <[email protected]>
---
Varadarajan Narayanan (15):
misc: qcom_geni: Add minicore support
mach-snapdragon: Kconfig: Auto select options based on configs
mach-snapdragon: Add PBL shared data defines
mach-snapdragon: spl: Update boot device information in SMEM
mach-snapdragon: spl: Add support for MMC booting in SPL
mach-snapdragon: Kconfig: Add rules to create SPL images
mach-snapdragon: spl: Load next stage FIT image
mach-snapdragon: spl: Add DDR initialization support
mach-snapdragon: Add Qclib handling support
dts: ipq5210-rdp504-u-boot: add override dtsi
clk/qcom: add clock driver for ipq5210
pinctrl: qcom: Add ipq5210 pinctrl driver
mach-snapdragon: spl: ipq5210: Add SPL support
configs: Add qcom_ipq5210_mmc_defconfig
doc: board/qualcomm: Update RDP build instructions
arch/arm/Kconfig | 12 +-
arch/arm/dts/ipq5210-rdp504-u-boot.dtsi | 12 +
arch/arm/mach-snapdragon/Kconfig | 7 +
arch/arm/mach-snapdragon/Makefile | 3 +
arch/arm/mach-snapdragon/board_spl.c | 255 ++++++++++++++++-
arch/arm/mach-snapdragon/fit-handler.c | 131 +++++++++
arch/arm/mach-snapdragon/include/mach/qclib.h | 82 ++++++
arch/arm/mach-snapdragon/include/mach/spl.h | 13 +
arch/arm/mach-snapdragon/pbl-shared-data.c | 125 +++++++++
arch/arm/mach-snapdragon/qclib.c | 160 +++++++++++
board/qualcomm/config.mk | 23 ++
board/qualcomm/ipq5210/Makefile | 3 +
board/qualcomm/ipq5210/ipq5210-spl-wrap-elf.lds | 18 ++
board/qualcomm/ipq5210/spl-ipq5210.c | 99 +++++++
configs/qcom_ipq5210_mmc_defconfig | 113 ++++++++
doc/board/qualcomm/rdp.rst | 96 ++++++-
drivers/clk/qcom/Kconfig | 8 +
drivers/clk/qcom/Makefile | 1 +
drivers/clk/qcom/clock-ipq5210.c | 93 +++++++
drivers/misc/Kconfig | 6 +
drivers/misc/Makefile | 1 +
drivers/misc/qcom_geni-minicore.c | 103 +++++++
drivers/misc/qcom_geni.c | 85 +++++-
drivers/pinctrl/qcom/Kconfig | 8 +
drivers/pinctrl/qcom/Makefile | 1 +
drivers/pinctrl/qcom/pinctrl-ipq5210.c | 349 ++++++++++++++++++++++++
include/configs/ipq5210.h | 11 +
include/soc/qcom/geni-se.h | 5 +
include/soc/qcom/minicore.h | 25 ++
include/soc/qcom/qup-fw-load.h | 1 +
30 files changed, 1823 insertions(+), 26 deletions(-)
---
base-commit: e0ef25054db31fee49d031ac337099b12c67e5b8
change-id: 20260825-spl-55fcb0c72ebd
Best regards,
--
Varadarajan Narayanan <[email protected]>