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]/
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):
mach-snapdragon: Kconfig: Auto select options based on configs
mach-snapdragon: Add PBL shared data defines
mach-snapdragon: spl: Add support for boot device detection
mach-snapdragon: spl: Update boot device information in SMEM
mach-snapdragon: spl: Add support for MMC booting in SPL
mach-snapdragon: spl: Setup malloc
mach-snapdragon: Kconfig: Add rules to create SPL images
mach-snapdragon: spl: Load next stage FIT image
mach-snapdragon: spl: Add DDR initialization 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 documentation
arch/arm/Kconfig | 12 +-
arch/arm/dts/ipq5210-rdp504-u-boot.dtsi | 12 +
arch/arm/mach-snapdragon/Kconfig | 7 +
arch/arm/mach-snapdragon/Makefile | 1 +
arch/arm/mach-snapdragon/board_spl.c | 290 +++++++++++++++++++-
arch/arm/mach-snapdragon/fit-handler.c | 324 ++++++++++++++++++++++
arch/arm/mach-snapdragon/include/mach/pbl.h | 57 ++++
arch/arm/mach-snapdragon/include/mach/spl.h | 14 +
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 | 96 +++++++
configs/qcom_ipq5210_mmc_defconfig | 113 ++++++++
doc/board/qualcomm/index.rst | 1 +
doc/board/qualcomm/rdp.rst | 79 +++++-
doc/board/qualcomm/spl-qclib.rst | 76 ++++++
drivers/clk/qcom/Kconfig | 8 +
drivers/clk/qcom/Makefile | 1 +
drivers/clk/qcom/clock-ipq5210.c | 93 +++++++
drivers/pinctrl/qcom/Kconfig | 8 +
drivers/pinctrl/qcom/Makefile | 1 +
drivers/pinctrl/qcom/pinctrl-ipq5210.c | 349 ++++++++++++++++++++++++
include/configs/ipq5210.h | 11 +
23 files changed, 1575 insertions(+), 22 deletions(-)
---
base-commit: e0ef25054db31fee49d031ac337099b12c67e5b8
change-id: 20260722-spl-v8-3cedfa6b90c5
prerequisite-message-id: [email protected]
prerequisite-patch-id: e06f4f15b24c0a2b5999530d2bd810e8d5d25bc4
prerequisite-message-id: [email protected]
prerequisite-patch-id: 285af4539961420776d05b9785fce0d2c6f59faf
prerequisite-patch-id: fca45ce71c1d698831fa90bfc90b2b00817a6bf2
prerequisite-patch-id: c060a5765abbaaf96aebb1925414796edd42ddb8
Best regards,
--
Varadarajan Narayanan <[email protected]>