Message ID | 20231219-b4-qcom-common-target-v2-0-b6dd9704219e@linaro.org |
---|---|
Headers | show |
Series | Qualcomm generic board support | expand |
Hi Caleb, On Tue, 19 Dec 2023 at 09:04, Caleb Connolly <caleb.connolly@linaro.org> wrote: > [..] > == DT loading == > > Previously, boards used the FDT blob embedded into U-Boot (via > OF_SEPARATE). However, most Qualcomm boards run U-Boot as a secondary > bootloader, so we can instead rely on the first-stage bootloader to > populate some useful FDT properties for us (notably the /memory node and > KASLR seed) and fetch the DTB that it provides. Combined with the memory > map changes above, this let's us entirely avoid configuring the memory > map explicitly. Running U-Boot as a secondary bootloader is the degenerate case. Are there any Qualcomm boards where U-Boot runs first? In that case, perhaps the DT could be used in SPL to determine the memory size as well? (this series is fine to me, BTW) Regards, Simon
Hi Caleb, On Tue, 19 Dec 2023 at 21:34, Caleb Connolly <caleb.connolly@linaro.org> wrote: > > Historically, Qualcomm boards in U-Boot have all had their own > board/qualcomm/xyz directory, their own CONFIG_TARGET_XYZ option, their > own hardcoded sysmap-xyz.c file, and their own U-Boot specific > devicetree with little/no compatibility with upstream DT. > > This series makes a few final prepatory changes, and then replaces > almost all of the board specific code with generic alternatives. The end > result is that all Qualcomm boards both current and future (with the > exception of the db410c and db820c) can be supported by a single U-Boot > binary by just providing the correct DT. New boards can be added without > introducing any addition mach/ or board/ code or config options. > > Due to the nature of this change, the patch ("mach-snapdragon: > generalise board support") has become pretty big, I tried a few > different ways to represent this in git history, but the other methods > (e.g. adding a stub "generic" target and removing it again) were more > confusing and made for much messier git history. The current patch is > mostly atomic, but requires regenerating the config. > > The QCS404 EVB board had some code to enable the USB VBUS regulator, > this is dropped in favour of a adding a new vbus-supply property to the > dwc3-generic driver. This will also be used by the dragonboard845c in a > future patch. This handles the common case of a board requiring some > regulator be enabled for USB host mode. > > A more detailed description of the changes is below. > > == Memory map == > > The memory map was historically hardcoded into U-Boot, this meant that > U-Boot had to be built for a specific variant of a device. This is > changed to instead read the memory map from the DT /memory node. > > Additionally, most boards mapped addresss 0x0 as valid, as a result if a > null pointer access happens then it will cause a bus stall (and board > hang). This is fixed so that null pointer accesses will now correctly > throw an exception. > > == DT loading == > > Previously, boards used the FDT blob embedded into U-Boot (via > OF_SEPARATE). However, most Qualcomm boards run U-Boot as a secondary > bootloader, so we can instead rely on the first-stage bootloader to > populate some useful FDT properties for us (notably the /memory node and > KASLR seed) and fetch the DTB that it provides. Combined with the memory > map changes above, this let's us entirely avoid configuring the memory > map explicitly. > > == defconfig == > > Most of the board defconfigs and config headers were quite similar, to > simplify maintenance going forward, all the fully generic boards (sdm845 > and qcs404-evb so far) are adapted to use the new qcom_defconfig. Going > forward, all new Qualcomm boards should be supported by this defconfig. > A notable exception is for specific usecases (like U-Boot as the primary > bootloader). > > == The older dragonboards == > > The db410c and db820c both have some custom board init code, as a result > they aren't yet binary compatible. mach-snapdragon is adjusted so > that all the necessary config options (e.g. CONFIG_SYS_BOARD) can be set > from their defconfigs, this makes it possible to enable support for new > boards without introducing additional config options. > > The db410c can run U-Boot either chainloaded like the other boards, or > as a first-stage bootloader replacing aboot. However it was hardcoded to > only build for the latter option. This series introduces a new > "chainloaded" defconfig to enable easier testing via fastboot. > > == dynamic environment variables == > > This series also introduces runtime-allocated load addresses via the lmb > allocator. This allows for booting on boards with vastly different > memory layouts without any pre-calculation or macro magic in the config > header. This feature is based on similar code in mach-apple. > > The soc, board, and fdtfile environment variables are also generated > automatically. Many Qualcomm boards follow a similar scheme for DTB > naming such that the name can often be derived from the root compatible > properties. This is intended to cover the most common cases and be a > simple solution for booting generic distro images without having to > explicitly choose the right DTB. The U-Boot DTS can be tweaked if > necessary to produce the correct name, the variable can be overwritten, > or a bootloader like GRUB can load the devicetree instead. > > == Upstream DT == > > All Qualcomm boards have had their devicetree files replaced with the > upstream versions. Previous patch series made the necessary driver > adjustments to fully support the upstream DT format. All future > Qualcomm boards should use upstream DTS by default. > > Once Sumit's work to import dt-rebasing has been merged, we will drop > the imported DT and bindings again. Since there is consensus building in the U-Boot community to use DT rebasing subtree, I would suggest you rebase your work on top of [1]. You can take an amlogic SoC patch [2] as a reference and see corresponding value-add. I don't see the point of unnecessary churn if there is consensus we agree upon. [1] https://lore.kernel.org/all/20231214135103.1606605-1-sumit.garg@linaro.org/ [2] https://lore.kernel.org/all/20231214135103.1606605-8-sumit.garg@linaro.org/ > > --- > I have tested this series on the Dragonboard410c, Dragonboard820c, and > Dragonboard845c. I unfortunately don't have access to a QCS404 EVB board > to test. > > This series is based on the qcom-next branch [1] and depends on my PMIC > fixes series [2], an integration branch for testing can be found at [3]. > The non-qualcomm-specific changes (patches 1 and 2) don't have any > dependencies. > > [1]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon > [2]: https://lore.kernel.org/u-boot/20231114-b4-qcom-dt-compat-v3-0-88a92f8f00ba@linaro.org/ > [3]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/tree/b4/qcom-common-target > > --- > Changes in v2: > - Split DTS changes to reduce patch size. > - Import full board DTS files from Linux too, and introduce -u-boot.dtsi > files where necessary to make any U-Boot specific changes. > - Add a pinctrl driver for qcom PMIC GPIOs > - Always enable LINUX_KERNEL_IMAGE_HEADER > - Link to v1: https://lore.kernel.org/r/20231121-b4-qcom-common-target-v1-0-9492198e0c15@linaro.org > > To: Neil Armstrong <neil.armstrong@linaro.org> > To: Sumit Garg <sumit.garg@linaro.org> > To: Ramon Fried <rfried.dev@gmail.com> > Cc: Marek Vasut <marex@denx.de> > To: Dzmitry Sankouski <dsankouski@gmail.com> > To: Caleb Connolly <caleb.connolly@linaro.org> > To: Peng Fan <peng.fan@nxp.com> > To: Jaehoon Chung <jh80.chung@samsung.com> > To: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com> > To: Lukasz Majewski <lukma@denx.de> > To: Sean Anderson <seanga2@gmail.com> > To: Jorge Ramirez-Ortiz <jorge.ramirez.ortiz@gmail.com> > To: Stephan Gerhold <stephan@gerhold.net> > Cc: <u-boot@lists.denx.de> > > --- > Caleb Connolly (32): > arm: init: export prev_bl_fdt_addr > usb: dwc3-generic: support external vbus regulator > mmc: msm_sdhci: use modern clock handling > dt-bindings: drop msm_sdhci binding > clk/qcom: use upstream compatible properties > serial: msm: add debug UART > serial: msm: fix clock handling > gpio: qcom_pmic: 1-based GPIOs > gpio: qcom_pmic: add a quirk to skip GPIO configuration > gpio: qcom_pmic: add pinctrl driver > board: dragonboard410c: add chainloaded config fragment > board: dragonboard410c: upstream DT compat > board: dragonboard410c: import board code from mach-snapdragon > board: dragonboard820c: use LINUX_KERNEL_IMAGE_HEADER > mach-snapdragon: generalise board support > mach-snapdragon: dynamic load addresses > mach-snapdragon: generate fdtfile automatically > doc: board/qualcomm: document generic targets ... > dt-bindings: import headers for SDM845 > dts: sdm845: import supporting dtsi files > dts: sdm845: replace with upstream DTS > dt-bindings: import headers for MSM8916 > dts: msm8916: import PMIC dtsi files > dts: msm8916: replace with upstream DTS > dt-bindings: import headers for MSM8996 > dts: msm8996: import PMIC dtsi files > dts: dragonboard820c: use correct bindings for clocks > dts: msm8996: replace with upstream DTS > dt-bindings: import headers for qcs404 > dts: qcs404-evb: replace with upstream DT The value being all these DT import patches won't be needed with DT rebasing. -Sumit > board: qcs404-evb: drop board code > MAINTAINERS: Qualcomm: add some missing paths > > MAINTAINERS | 12 +- > arch/arm/Kconfig | 4 + > arch/arm/dts/Makefile | 9 +- > arch/arm/dts/apq8016-sbc.dts | 729 +++ > arch/arm/dts/apq8096-db820c-u-boot.dtsi | 10 + > arch/arm/dts/apq8096-db820c.dts | 1137 ++++ > arch/arm/dts/dragonboard410c-uboot.dtsi | 44 - > arch/arm/dts/dragonboard410c.dts | 199 +- > arch/arm/dts/dragonboard820c-uboot.dtsi | 32 - > arch/arm/dts/dragonboard820c.dts | 151 - > arch/arm/dts/dragonboard845c-uboot.dtsi | 26 - > arch/arm/dts/dragonboard845c.dts | 48 - > arch/arm/dts/msm8916-pm8916.dtsi | 157 + > arch/arm/dts/msm8916.dtsi | 2702 +++++++++ > arch/arm/dts/msm8996.dtsi | 3884 +++++++++++++ > arch/arm/dts/pm8916.dtsi | 178 + > arch/arm/dts/pm8994.dtsi | 152 + > arch/arm/dts/pm8998.dtsi | 130 + > arch/arm/dts/pmi8994.dtsi | 65 + > arch/arm/dts/pmi8998.dtsi | 98 + > arch/arm/dts/pms405.dtsi | 149 + > arch/arm/dts/qcs404-evb-4000-u-boot.dtsi | 26 + > arch/arm/dts/qcs404-evb-4000.dts | 96 + > arch/arm/dts/qcs404-evb-uboot.dtsi | 30 - > arch/arm/dts/qcs404-evb.dts | 390 -- > arch/arm/dts/qcs404-evb.dtsi | 389 ++ > arch/arm/dts/qcs404.dtsi | 1829 ++++++ > arch/arm/dts/sdm845-db845c.dts | 1190 ++++ > .../arm/dts/sdm845-samsung-starqltechn-u-boot.dtsi | 16 + > arch/arm/dts/sdm845-samsung-starqltechn.dts | 624 +++ > arch/arm/dts/sdm845-wcd9340.dtsi | 86 + > arch/arm/dts/sdm845.dtsi | 5801 +++++++++++++++++++- > arch/arm/dts/starqltechn-uboot.dtsi | 27 - > arch/arm/dts/starqltechn.dts | 68 - > arch/arm/lib/save_prev_bl_data.c | 5 + > arch/arm/mach-snapdragon/Kconfig | 95 +- > arch/arm/mach-snapdragon/Makefile | 8 +- > arch/arm/mach-snapdragon/board.c | 304 + > arch/arm/mach-snapdragon/include/mach/dram.h | 12 - > arch/arm/mach-snapdragon/init_sdm845.c | 73 - > arch/arm/mach-snapdragon/misc.c | 55 - > arch/arm/mach-snapdragon/sysmap-apq8016.c | 31 - > arch/arm/mach-snapdragon/sysmap-apq8096.c | 31 - > arch/arm/mach-snapdragon/sysmap-qcs404.c | 43 - > arch/arm/mach-snapdragon/sysmap-sdm845.c | 31 - > board/qualcomm/dragonboard410c/Kconfig | 15 - > board/qualcomm/dragonboard410c/Makefile | 3 +- > .../dragonboard410c/configs/chainloaded.config | 7 + > board/qualcomm/dragonboard410c/dragonboard410c.c | 109 +- > .../qualcomm/dragonboard410c/misc.c | 51 +- > .../mach => board/qualcomm/dragonboard410c}/misc.h | 1 + > board/qualcomm/dragonboard820c/Kconfig | 15 - > board/qualcomm/dragonboard820c/Makefile | 1 - > board/qualcomm/dragonboard820c/dragonboard820c.c | 39 +- > board/qualcomm/dragonboard820c/head.S | 33 - > board/qualcomm/dragonboard820c/u-boot.lds | 111 - > board/qualcomm/dragonboard845c/Kconfig | 12 - > board/qualcomm/qcs404-evb/Kconfig | 15 - > board/qualcomm/qcs404-evb/Makefile | 6 - > board/qualcomm/qcs404-evb/qcs404-evb.c | 62 - > configs/dragonboard410c_defconfig | 8 +- > configs/dragonboard820c_defconfig | 8 +- > configs/dragonboard845c_defconfig | 29 - > configs/qcom_defconfig | 73 + > configs/qcs404evb_defconfig | 55 - > configs/starqltechn_defconfig | 41 - > doc/board/qualcomm/board.rst | 119 + > doc/board/qualcomm/debugging.rst | 61 + > doc/board/qualcomm/index.rst | 4 +- > doc/board/qualcomm/qcs404.rst | 79 - > doc/board/qualcomm/sdm845.rst | 162 - > doc/device-tree-bindings/mmc/msm_sdhci.txt | 25 - > doc/device-tree-bindings/usb/ehci-msm.txt | 10 - > drivers/clk/qcom/clock-apq8016.c | 9 +- > drivers/clk/qcom/clock-apq8096.c | 7 +- > drivers/gpio/qcom_pmic_gpio.c | 232 +- > drivers/mmc/msm_sdhci.c | 69 +- > drivers/phy/qcom/msm8916-usbh-phy.c | 4 +- > drivers/pinctrl/qcom/pinctrl-apq8016.c | 2 +- > drivers/serial/Kconfig | 8 + > drivers/serial/serial_msm.c | 56 +- > drivers/usb/dwc3/dwc3-generic.c | 12 + > drivers/usb/host/ehci-msm.c | 24 +- > include/configs/dragonboard845c.h | 20 - > include/configs/qcom.h | 21 + > include/configs/qcs404-evb.h | 20 - > include/configs/sdm845.h | 26 - > include/dt-bindings/arm/coresight-cti-dt.h | 37 + > include/dt-bindings/clock/qcom,camcc-sdm845.h | 116 + > include/dt-bindings/clock/qcom,dispcc-sdm845.h | 56 + > include/dt-bindings/clock/qcom,gcc-msm8916.h | 179 + > include/dt-bindings/clock/qcom,gcc-msm8996.h | 360 ++ > include/dt-bindings/clock/qcom,gpucc-sdm845.h | 24 + > include/dt-bindings/clock/qcom,lpass-sdm845.h | 15 + > include/dt-bindings/clock/qcom,mmcc-msm8996.h | 295 + > include/dt-bindings/clock/qcom,rpmcc.h | 174 + > include/dt-bindings/clock/qcom,rpmh.h | 37 + > include/dt-bindings/clock/qcom,turingcc-qcs404.h | 15 + > include/dt-bindings/clock/qcom,videocc-sdm845.h | 35 + > include/dt-bindings/dma/qcom-gpi.h | 11 + > include/dt-bindings/firmware/qcom,scm.h | 18 + > include/dt-bindings/iio/qcom,spmi-vadc.h | 300 + > include/dt-bindings/interconnect/qcom,msm8916.h | 100 + > .../dt-bindings/interconnect/qcom,msm8996-cbf.h | 12 + > include/dt-bindings/interconnect/qcom,msm8996.h | 163 + > include/dt-bindings/interconnect/qcom,osm-l3.h | 15 + > include/dt-bindings/interconnect/qcom,sdm845.h | 150 + > include/dt-bindings/phy/phy-qcom-qmp.h | 20 + > include/dt-bindings/phy/phy-qcom-qusb2.h | 37 + > include/dt-bindings/pinctrl/qcom,pmic-gpio.h | 164 + > include/dt-bindings/pinctrl/qcom,pmic-mpp.h | 106 + > include/dt-bindings/power/qcom-rpmpd.h | 412 ++ > include/dt-bindings/qcom,q6asm.h | 26 + > .../dt-bindings/regulator/qcom,rpmh-regulator.h | 36 + > include/dt-bindings/reset/qcom,gcc-msm8916.h | 100 + > include/dt-bindings/reset/qcom,sdm845-aoss.h | 17 + > include/dt-bindings/reset/qcom,sdm845-pdc.h | 22 + > include/dt-bindings/soc/qcom,apr.h | 28 + > include/dt-bindings/soc/qcom,rpmh-rsc.h | 14 + > include/dt-bindings/sound/apq8016-lpass.h | 9 + > include/dt-bindings/sound/qcom,lpass.h | 46 + > include/dt-bindings/sound/qcom,q6afe.h | 9 + > include/dt-bindings/sound/qcom,q6asm.h | 26 + > include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h | 234 + > include/dt-bindings/sound/qcom,wcd9335.h | 15 + > include/init.h | 11 + > 126 files changed, 23909 insertions(+), 2375 deletions(-) > --- > base-commit: bcb4a9ddbd21a61b5b421ba374a785757bd28c80 > > // Caleb (they/them) >
On 20/12/2023 04:46, Simon Glass wrote: > Hi Caleb, > > On Tue, 19 Dec 2023 at 09:04, Caleb Connolly <caleb.connolly@linaro.org> wrote: >> > [..] > >> == DT loading == >> >> Previously, boards used the FDT blob embedded into U-Boot (via >> OF_SEPARATE). However, most Qualcomm boards run U-Boot as a secondary >> bootloader, so we can instead rely on the first-stage bootloader to >> populate some useful FDT properties for us (notably the /memory node and >> KASLR seed) and fetch the DTB that it provides. Combined with the memory >> map changes above, this let's us entirely avoid configuring the memory >> map explicitly. > > Running U-Boot as a secondary bootloader is the degenerate case. Are > there any Qualcomm boards where U-Boot runs first? In that case, > perhaps the DT could be used in SPL to determine the memory size as > well? Yes, I'm totally fine with having memory maps hardcoded in DT, this would be my go-to approach for running U-Boot as a first-stage bootloader. > > (this series is fine to me, BTW) > > Regards, > Simon
On 20/12/2023 13:07, Sumit Garg wrote: > Hi Caleb, Hi Sumit, [...] >> >> == Upstream DT == >> >> All Qualcomm boards have had their devicetree files replaced with the >> upstream versions. Previous patch series made the necessary driver >> adjustments to fully support the upstream DT format. All future >> Qualcomm boards should use upstream DTS by default. >> >> Once Sumit's work to import dt-rebasing has been merged, we will drop >> the imported DT and bindings again. > > Since there is consensus building in the U-Boot community to use DT > rebasing subtree, I would suggest you rebase your work on top of [1]. > You can take an amlogic SoC patch [2] as a reference and see > corresponding value-add. I don't see the point of unnecessary churn if > there is consensus we agree upon. I designed this so that we can just delete the imported stuff once the dt-rebasing series is merged. Importing a few files and deleting them later is not really a big deal, so please let's not block fixing Qualcomm support on this tangentially related series. Thanks, > > [1] https://lore.kernel.org/all/20231214135103.1606605-1-sumit.garg@linaro.org/ > [2] https://lore.kernel.org/all/20231214135103.1606605-8-sumit.garg@linaro.org/ > >>
On Thu, 21 Dec 2023 at 21:08, Caleb Connolly <caleb.connolly@linaro.org> wrote: > > > > On 20/12/2023 13:07, Sumit Garg wrote: > > Hi Caleb, > > Hi Sumit, > > [...] > > >> > >> == Upstream DT == > >> > >> All Qualcomm boards have had their devicetree files replaced with the > >> upstream versions. Previous patch series made the necessary driver > >> adjustments to fully support the upstream DT format. All future > >> Qualcomm boards should use upstream DTS by default. > >> > >> Once Sumit's work to import dt-rebasing has been merged, we will drop > >> the imported DT and bindings again. > > > > Since there is consensus building in the U-Boot community to use DT > > rebasing subtree, I would suggest you rebase your work on top of [1]. > > You can take an amlogic SoC patch [2] as a reference and see > > corresponding value-add. I don't see the point of unnecessary churn if > > there is consensus we agree upon. > > > I designed this so that we can just delete the imported stuff once the > dt-rebasing series is merged. Importing a few files and deleting them > later is not really a big deal, so please let's not block fixing > Qualcomm support on this tangentially related series. Fair enough, I think I can live with that for the time being. Let me give this series a spin on QCS404. -Sumit > > Thanks, > > > > > [1] https://lore.kernel.org/all/20231214135103.1606605-1-sumit.garg@linaro.org/ > > [2] https://lore.kernel.org/all/20231214135103.1606605-8-sumit.garg@linaro.org/ > > > >> > > -- > // Caleb (they/them)
Hi Caleb, On Tue, 19 Dec 2023 at 21:34, Caleb Connolly <caleb.connolly@linaro.org> wrote: > > Historically, Qualcomm boards in U-Boot have all had their own > board/qualcomm/xyz directory, their own CONFIG_TARGET_XYZ option, their > own hardcoded sysmap-xyz.c file, and their own U-Boot specific > devicetree with little/no compatibility with upstream DT. > > This series makes a few final prepatory changes, and then replaces > almost all of the board specific code with generic alternatives. The end > result is that all Qualcomm boards both current and future (with the > exception of the db410c and db820c) can be supported by a single U-Boot > binary by just providing the correct DT. New boards can be added without > introducing any addition mach/ or board/ code or config options. > > Due to the nature of this change, the patch ("mach-snapdragon: > generalise board support") has become pretty big, I tried a few > different ways to represent this in git history, but the other methods > (e.g. adding a stub "generic" target and removing it again) were more > confusing and made for much messier git history. The current patch is > mostly atomic, but requires regenerating the config. > > The QCS404 EVB board had some code to enable the USB VBUS regulator, > this is dropped in favour of a adding a new vbus-supply property to the > dwc3-generic driver. This will also be used by the dragonboard845c in a > future patch. This handles the common case of a board requiring some > regulator be enabled for USB host mode. > > A more detailed description of the changes is below. > > == Memory map == > > The memory map was historically hardcoded into U-Boot, this meant that > U-Boot had to be built for a specific variant of a device. This is > changed to instead read the memory map from the DT /memory node. > > Additionally, most boards mapped addresss 0x0 as valid, as a result if a > null pointer access happens then it will cause a bus stall (and board > hang). This is fixed so that null pointer accesses will now correctly > throw an exception. > > == DT loading == > > Previously, boards used the FDT blob embedded into U-Boot (via > OF_SEPARATE). However, most Qualcomm boards run U-Boot as a secondary > bootloader, so we can instead rely on the first-stage bootloader to > populate some useful FDT properties for us (notably the /memory node and > KASLR seed) and fetch the DTB that it provides. Combined with the memory > map changes above, this let's us entirely avoid configuring the memory > map explicitly. > > == defconfig == > > Most of the board defconfigs and config headers were quite similar, to > simplify maintenance going forward, all the fully generic boards (sdm845 > and qcs404-evb so far) are adapted to use the new qcom_defconfig. Going > forward, all new Qualcomm boards should be supported by this defconfig. > A notable exception is for specific usecases (like U-Boot as the primary > bootloader). > > == The older dragonboards == > > The db410c and db820c both have some custom board init code, as a result > they aren't yet binary compatible. mach-snapdragon is adjusted so > that all the necessary config options (e.g. CONFIG_SYS_BOARD) can be set > from their defconfigs, this makes it possible to enable support for new > boards without introducing additional config options. > > The db410c can run U-Boot either chainloaded like the other boards, or > as a first-stage bootloader replacing aboot. However it was hardcoded to > only build for the latter option. This series introduces a new > "chainloaded" defconfig to enable easier testing via fastboot. > > == dynamic environment variables == > > This series also introduces runtime-allocated load addresses via the lmb > allocator. This allows for booting on boards with vastly different > memory layouts without any pre-calculation or macro magic in the config > header. This feature is based on similar code in mach-apple. > > The soc, board, and fdtfile environment variables are also generated > automatically. Many Qualcomm boards follow a similar scheme for DTB > naming such that the name can often be derived from the root compatible > properties. This is intended to cover the most common cases and be a > simple solution for booting generic distro images without having to > explicitly choose the right DTB. The U-Boot DTS can be tweaked if > necessary to produce the correct name, the variable can be overwritten, > or a bootloader like GRUB can load the devicetree instead. > > == Upstream DT == > > All Qualcomm boards have had their devicetree files replaced with the > upstream versions. Previous patch series made the necessary driver > adjustments to fully support the upstream DT format. All future > Qualcomm boards should use upstream DTS by default. > > Once Sumit's work to import dt-rebasing has been merged, we will drop > the imported DT and bindings again. > > --- > I have tested this series on the Dragonboard410c, Dragonboard820c, and This series fails to boot (without any U-Boot console print) on db410c. I even added below pinctrl change but without any success: diff --git a/drivers/pinctrl/qcom/pinctrl-apq8016.c b/drivers/pinctrl/qcom/pinctrl-apq8016.c index 8e698085d78..88518845952 100644 --- a/drivers/pinctrl/qcom/pinctrl-apq8016.c +++ b/drivers/pinctrl/qcom/pinctrl-apq8016.c @@ -42,7 +42,7 @@ static const char *apq8016_get_pin_name(struct udevice *dev, unsigned int selector) { if (selector < 122) { - snprintf(pin_name, MAX_PIN_NAME_LEN, "GPIO_%u", selector); + snprintf(pin_name, MAX_PIN_NAME_LEN, "gpio%u", selector); return pin_name; } else { return msm_pinctrl_pins[selector - 122]; > Dragonboard845c. I unfortunately don't have access to a QCS404 EVB board > to test. db820c and qcs404 require a similar pinctrl change though. -Sumit > > This series is based on the qcom-next branch [1] and depends on my PMIC > fixes series [2], an integration branch for testing can be found at [3]. > The non-qualcomm-specific changes (patches 1 and 2) don't have any > dependencies. > > [1]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon > [2]: https://lore.kernel.org/u-boot/20231114-b4-qcom-dt-compat-v3-0-88a92f8f00ba@linaro.org/ > [3]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/tree/b4/qcom-common-target > > --- > Changes in v2: > - Split DTS changes to reduce patch size. > - Import full board DTS files from Linux too, and introduce -u-boot.dtsi > files where necessary to make any U-Boot specific changes. > - Add a pinctrl driver for qcom PMIC GPIOs > - Always enable LINUX_KERNEL_IMAGE_HEADER > - Link to v1: https://lore.kernel.org/r/20231121-b4-qcom-common-target-v1-0-9492198e0c15@linaro.org > > To: Neil Armstrong <neil.armstrong@linaro.org> > To: Sumit Garg <sumit.garg@linaro.org> > To: Ramon Fried <rfried.dev@gmail.com> > Cc: Marek Vasut <marex@denx.de> > To: Dzmitry Sankouski <dsankouski@gmail.com> > To: Caleb Connolly <caleb.connolly@linaro.org> > To: Peng Fan <peng.fan@nxp.com> > To: Jaehoon Chung <jh80.chung@samsung.com> > To: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com> > To: Lukasz Majewski <lukma@denx.de> > To: Sean Anderson <seanga2@gmail.com> > To: Jorge Ramirez-Ortiz <jorge.ramirez.ortiz@gmail.com> > To: Stephan Gerhold <stephan@gerhold.net> > Cc: <u-boot@lists.denx.de> > > --- > Caleb Connolly (32): > arm: init: export prev_bl_fdt_addr > usb: dwc3-generic: support external vbus regulator > mmc: msm_sdhci: use modern clock handling > dt-bindings: drop msm_sdhci binding > clk/qcom: use upstream compatible properties > serial: msm: add debug UART > serial: msm: fix clock handling > gpio: qcom_pmic: 1-based GPIOs > gpio: qcom_pmic: add a quirk to skip GPIO configuration > gpio: qcom_pmic: add pinctrl driver > board: dragonboard410c: add chainloaded config fragment > board: dragonboard410c: upstream DT compat > board: dragonboard410c: import board code from mach-snapdragon > board: dragonboard820c: use LINUX_KERNEL_IMAGE_HEADER > mach-snapdragon: generalise board support > mach-snapdragon: dynamic load addresses > mach-snapdragon: generate fdtfile automatically > doc: board/qualcomm: document generic targets > dt-bindings: import headers for SDM845 > dts: sdm845: import supporting dtsi files > dts: sdm845: replace with upstream DTS > dt-bindings: import headers for MSM8916 > dts: msm8916: import PMIC dtsi files > dts: msm8916: replace with upstream DTS > dt-bindings: import headers for MSM8996 > dts: msm8996: import PMIC dtsi files > dts: dragonboard820c: use correct bindings for clocks > dts: msm8996: replace with upstream DTS > dt-bindings: import headers for qcs404 > dts: qcs404-evb: replace with upstream DT > board: qcs404-evb: drop board code > MAINTAINERS: Qualcomm: add some missing paths > > MAINTAINERS | 12 +- > arch/arm/Kconfig | 4 + > arch/arm/dts/Makefile | 9 +- > arch/arm/dts/apq8016-sbc.dts | 729 +++ > arch/arm/dts/apq8096-db820c-u-boot.dtsi | 10 + > arch/arm/dts/apq8096-db820c.dts | 1137 ++++ > arch/arm/dts/dragonboard410c-uboot.dtsi | 44 - > arch/arm/dts/dragonboard410c.dts | 199 +- > arch/arm/dts/dragonboard820c-uboot.dtsi | 32 - > arch/arm/dts/dragonboard820c.dts | 151 - > arch/arm/dts/dragonboard845c-uboot.dtsi | 26 - > arch/arm/dts/dragonboard845c.dts | 48 - > arch/arm/dts/msm8916-pm8916.dtsi | 157 + > arch/arm/dts/msm8916.dtsi | 2702 +++++++++ > arch/arm/dts/msm8996.dtsi | 3884 +++++++++++++ > arch/arm/dts/pm8916.dtsi | 178 + > arch/arm/dts/pm8994.dtsi | 152 + > arch/arm/dts/pm8998.dtsi | 130 + > arch/arm/dts/pmi8994.dtsi | 65 + > arch/arm/dts/pmi8998.dtsi | 98 + > arch/arm/dts/pms405.dtsi | 149 + > arch/arm/dts/qcs404-evb-4000-u-boot.dtsi | 26 + > arch/arm/dts/qcs404-evb-4000.dts | 96 + > arch/arm/dts/qcs404-evb-uboot.dtsi | 30 - > arch/arm/dts/qcs404-evb.dts | 390 -- > arch/arm/dts/qcs404-evb.dtsi | 389 ++ > arch/arm/dts/qcs404.dtsi | 1829 ++++++ > arch/arm/dts/sdm845-db845c.dts | 1190 ++++ > .../arm/dts/sdm845-samsung-starqltechn-u-boot.dtsi | 16 + > arch/arm/dts/sdm845-samsung-starqltechn.dts | 624 +++ > arch/arm/dts/sdm845-wcd9340.dtsi | 86 + > arch/arm/dts/sdm845.dtsi | 5801 +++++++++++++++++++- > arch/arm/dts/starqltechn-uboot.dtsi | 27 - > arch/arm/dts/starqltechn.dts | 68 - > arch/arm/lib/save_prev_bl_data.c | 5 + > arch/arm/mach-snapdragon/Kconfig | 95 +- > arch/arm/mach-snapdragon/Makefile | 8 +- > arch/arm/mach-snapdragon/board.c | 304 + > arch/arm/mach-snapdragon/include/mach/dram.h | 12 - > arch/arm/mach-snapdragon/init_sdm845.c | 73 - > arch/arm/mach-snapdragon/misc.c | 55 - > arch/arm/mach-snapdragon/sysmap-apq8016.c | 31 - > arch/arm/mach-snapdragon/sysmap-apq8096.c | 31 - > arch/arm/mach-snapdragon/sysmap-qcs404.c | 43 - > arch/arm/mach-snapdragon/sysmap-sdm845.c | 31 - > board/qualcomm/dragonboard410c/Kconfig | 15 - > board/qualcomm/dragonboard410c/Makefile | 3 +- > .../dragonboard410c/configs/chainloaded.config | 7 + > board/qualcomm/dragonboard410c/dragonboard410c.c | 109 +- > .../qualcomm/dragonboard410c/misc.c | 51 +- > .../mach => board/qualcomm/dragonboard410c}/misc.h | 1 + > board/qualcomm/dragonboard820c/Kconfig | 15 - > board/qualcomm/dragonboard820c/Makefile | 1 - > board/qualcomm/dragonboard820c/dragonboard820c.c | 39 +- > board/qualcomm/dragonboard820c/head.S | 33 - > board/qualcomm/dragonboard820c/u-boot.lds | 111 - > board/qualcomm/dragonboard845c/Kconfig | 12 - > board/qualcomm/qcs404-evb/Kconfig | 15 - > board/qualcomm/qcs404-evb/Makefile | 6 - > board/qualcomm/qcs404-evb/qcs404-evb.c | 62 - > configs/dragonboard410c_defconfig | 8 +- > configs/dragonboard820c_defconfig | 8 +- > configs/dragonboard845c_defconfig | 29 - > configs/qcom_defconfig | 73 + > configs/qcs404evb_defconfig | 55 - > configs/starqltechn_defconfig | 41 - > doc/board/qualcomm/board.rst | 119 + > doc/board/qualcomm/debugging.rst | 61 + > doc/board/qualcomm/index.rst | 4 +- > doc/board/qualcomm/qcs404.rst | 79 - > doc/board/qualcomm/sdm845.rst | 162 - > doc/device-tree-bindings/mmc/msm_sdhci.txt | 25 - > doc/device-tree-bindings/usb/ehci-msm.txt | 10 - > drivers/clk/qcom/clock-apq8016.c | 9 +- > drivers/clk/qcom/clock-apq8096.c | 7 +- > drivers/gpio/qcom_pmic_gpio.c | 232 +- > drivers/mmc/msm_sdhci.c | 69 +- > drivers/phy/qcom/msm8916-usbh-phy.c | 4 +- > drivers/pinctrl/qcom/pinctrl-apq8016.c | 2 +- > drivers/serial/Kconfig | 8 + > drivers/serial/serial_msm.c | 56 +- > drivers/usb/dwc3/dwc3-generic.c | 12 + > drivers/usb/host/ehci-msm.c | 24 +- > include/configs/dragonboard845c.h | 20 - > include/configs/qcom.h | 21 + > include/configs/qcs404-evb.h | 20 - > include/configs/sdm845.h | 26 - > include/dt-bindings/arm/coresight-cti-dt.h | 37 + > include/dt-bindings/clock/qcom,camcc-sdm845.h | 116 + > include/dt-bindings/clock/qcom,dispcc-sdm845.h | 56 + > include/dt-bindings/clock/qcom,gcc-msm8916.h | 179 + > include/dt-bindings/clock/qcom,gcc-msm8996.h | 360 ++ > include/dt-bindings/clock/qcom,gpucc-sdm845.h | 24 + > include/dt-bindings/clock/qcom,lpass-sdm845.h | 15 + > include/dt-bindings/clock/qcom,mmcc-msm8996.h | 295 + > include/dt-bindings/clock/qcom,rpmcc.h | 174 + > include/dt-bindings/clock/qcom,rpmh.h | 37 + > include/dt-bindings/clock/qcom,turingcc-qcs404.h | 15 + > include/dt-bindings/clock/qcom,videocc-sdm845.h | 35 + > include/dt-bindings/dma/qcom-gpi.h | 11 + > include/dt-bindings/firmware/qcom,scm.h | 18 + > include/dt-bindings/iio/qcom,spmi-vadc.h | 300 + > include/dt-bindings/interconnect/qcom,msm8916.h | 100 + > .../dt-bindings/interconnect/qcom,msm8996-cbf.h | 12 + > include/dt-bindings/interconnect/qcom,msm8996.h | 163 + > include/dt-bindings/interconnect/qcom,osm-l3.h | 15 + > include/dt-bindings/interconnect/qcom,sdm845.h | 150 + > include/dt-bindings/phy/phy-qcom-qmp.h | 20 + > include/dt-bindings/phy/phy-qcom-qusb2.h | 37 + > include/dt-bindings/pinctrl/qcom,pmic-gpio.h | 164 + > include/dt-bindings/pinctrl/qcom,pmic-mpp.h | 106 + > include/dt-bindings/power/qcom-rpmpd.h | 412 ++ > include/dt-bindings/qcom,q6asm.h | 26 + > .../dt-bindings/regulator/qcom,rpmh-regulator.h | 36 + > include/dt-bindings/reset/qcom,gcc-msm8916.h | 100 + > include/dt-bindings/reset/qcom,sdm845-aoss.h | 17 + > include/dt-bindings/reset/qcom,sdm845-pdc.h | 22 + > include/dt-bindings/soc/qcom,apr.h | 28 + > include/dt-bindings/soc/qcom,rpmh-rsc.h | 14 + > include/dt-bindings/sound/apq8016-lpass.h | 9 + > include/dt-bindings/sound/qcom,lpass.h | 46 + > include/dt-bindings/sound/qcom,q6afe.h | 9 + > include/dt-bindings/sound/qcom,q6asm.h | 26 + > include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h | 234 + > include/dt-bindings/sound/qcom,wcd9335.h | 15 + > include/init.h | 11 + > 126 files changed, 23909 insertions(+), 2375 deletions(-) > --- > base-commit: bcb4a9ddbd21a61b5b421ba374a785757bd28c80 > > // Caleb (they/them) >
On 05/01/2024 13:14, Sumit Garg wrote: > Hi Caleb, Hi Sumit, [snip] >> --- >> I have tested this series on the Dragonboard410c, Dragonboard820c, and > > This series fails to boot (without any U-Boot console print) on > db410c. I even added below pinctrl change but without any success: Are you chainloading from aboot? Or flashing over it? I have only been able to validate the chainloading method, following the steps in doc/board/qualcomm/board.rst and generating the config with make dragonboard410c_defconfig chainloaded.config do you get any output at all? Can you try enabling debug UART output as documented in doc/board/qualcomm/debugging.rst? The pinctrl fix shouldn't be needed to boot to a shell. Thanks, > > diff --git a/drivers/pinctrl/qcom/pinctrl-apq8016.c > b/drivers/pinctrl/qcom/pinctrl-apq8016.c > index 8e698085d78..88518845952 100644 > --- a/drivers/pinctrl/qcom/pinctrl-apq8016.c > +++ b/drivers/pinctrl/qcom/pinctrl-apq8016.c > @@ -42,7 +42,7 @@ static const char *apq8016_get_pin_name(struct udevice *dev, > unsigned int selector) > { > if (selector < 122) { > - snprintf(pin_name, MAX_PIN_NAME_LEN, "GPIO_%u", selector); > + snprintf(pin_name, MAX_PIN_NAME_LEN, "gpio%u", selector); > return pin_name; > } else { > return msm_pinctrl_pins[selector - 122]; > > >> Dragonboard845c. I unfortunately don't have access to a QCS404 EVB board >> to test. > > db820c and qcs404 require a similar pinctrl change though. > > -Sumit > >> >> This series is based on the qcom-next branch [1] and depends on my PMIC >> fixes series [2], an integration branch for testing can be found at [3]. >> The non-qualcomm-specific changes (patches 1 and 2) don't have any >> dependencies. >> >> [1]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon >> [2]: https://lore.kernel.org/u-boot/20231114-b4-qcom-dt-compat-v3-0-88a92f8f00ba@linaro.org/ >> [3]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/tree/b4/qcom-common-target >> >> --- >> Changes in v2: >> - Split DTS changes to reduce patch size. >> - Import full board DTS files from Linux too, and introduce -u-boot.dtsi >> files where necessary to make any U-Boot specific changes. >> - Add a pinctrl driver for qcom PMIC GPIOs >> - Always enable LINUX_KERNEL_IMAGE_HEADER >> - Link to v1: https://lore.kernel.org/r/20231121-b4-qcom-common-target-v1-0-9492198e0c15@linaro.org >> >> To: Neil Armstrong <neil.armstrong@linaro.org> >> To: Sumit Garg <sumit.garg@linaro.org> >> To: Ramon Fried <rfried.dev@gmail.com> >> Cc: Marek Vasut <marex@denx.de> >> To: Dzmitry Sankouski <dsankouski@gmail.com> >> To: Caleb Connolly <caleb.connolly@linaro.org> >> To: Peng Fan <peng.fan@nxp.com> >> To: Jaehoon Chung <jh80.chung@samsung.com> >> To: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com> >> To: Lukasz Majewski <lukma@denx.de> >> To: Sean Anderson <seanga2@gmail.com> >> To: Jorge Ramirez-Ortiz <jorge.ramirez.ortiz@gmail.com> >> To: Stephan Gerhold <stephan@gerhold.net> >> Cc: <u-boot@lists.denx.de> >> >> --- >> Caleb Connolly (32): >> arm: init: export prev_bl_fdt_addr >> usb: dwc3-generic: support external vbus regulator >> mmc: msm_sdhci: use modern clock handling >> dt-bindings: drop msm_sdhci binding >> clk/qcom: use upstream compatible properties >> serial: msm: add debug UART >> serial: msm: fix clock handling >> gpio: qcom_pmic: 1-based GPIOs >> gpio: qcom_pmic: add a quirk to skip GPIO configuration >> gpio: qcom_pmic: add pinctrl driver >> board: dragonboard410c: add chainloaded config fragment >> board: dragonboard410c: upstream DT compat >> board: dragonboard410c: import board code from mach-snapdragon >> board: dragonboard820c: use LINUX_KERNEL_IMAGE_HEADER >> mach-snapdragon: generalise board support >> mach-snapdragon: dynamic load addresses >> mach-snapdragon: generate fdtfile automatically >> doc: board/qualcomm: document generic targets >> dt-bindings: import headers for SDM845 >> dts: sdm845: import supporting dtsi files >> dts: sdm845: replace with upstream DTS >> dt-bindings: import headers for MSM8916 >> dts: msm8916: import PMIC dtsi files >> dts: msm8916: replace with upstream DTS >> dt-bindings: import headers for MSM8996 >> dts: msm8996: import PMIC dtsi files >> dts: dragonboard820c: use correct bindings for clocks >> dts: msm8996: replace with upstream DTS >> dt-bindings: import headers for qcs404 >> dts: qcs404-evb: replace with upstream DT >> board: qcs404-evb: drop board code >> MAINTAINERS: Qualcomm: add some missing paths >> >> MAINTAINERS | 12 +- >> arch/arm/Kconfig | 4 + >> arch/arm/dts/Makefile | 9 +- >> arch/arm/dts/apq8016-sbc.dts | 729 +++ >> arch/arm/dts/apq8096-db820c-u-boot.dtsi | 10 + >> arch/arm/dts/apq8096-db820c.dts | 1137 ++++ >> arch/arm/dts/dragonboard410c-uboot.dtsi | 44 - >> arch/arm/dts/dragonboard410c.dts | 199 +- >> arch/arm/dts/dragonboard820c-uboot.dtsi | 32 - >> arch/arm/dts/dragonboard820c.dts | 151 - >> arch/arm/dts/dragonboard845c-uboot.dtsi | 26 - >> arch/arm/dts/dragonboard845c.dts | 48 - >> arch/arm/dts/msm8916-pm8916.dtsi | 157 + >> arch/arm/dts/msm8916.dtsi | 2702 +++++++++ >> arch/arm/dts/msm8996.dtsi | 3884 +++++++++++++ >> arch/arm/dts/pm8916.dtsi | 178 + >> arch/arm/dts/pm8994.dtsi | 152 + >> arch/arm/dts/pm8998.dtsi | 130 + >> arch/arm/dts/pmi8994.dtsi | 65 + >> arch/arm/dts/pmi8998.dtsi | 98 + >> arch/arm/dts/pms405.dtsi | 149 + >> arch/arm/dts/qcs404-evb-4000-u-boot.dtsi | 26 + >> arch/arm/dts/qcs404-evb-4000.dts | 96 + >> arch/arm/dts/qcs404-evb-uboot.dtsi | 30 - >> arch/arm/dts/qcs404-evb.dts | 390 -- >> arch/arm/dts/qcs404-evb.dtsi | 389 ++ >> arch/arm/dts/qcs404.dtsi | 1829 ++++++ >> arch/arm/dts/sdm845-db845c.dts | 1190 ++++ >> .../arm/dts/sdm845-samsung-starqltechn-u-boot.dtsi | 16 + >> arch/arm/dts/sdm845-samsung-starqltechn.dts | 624 +++ >> arch/arm/dts/sdm845-wcd9340.dtsi | 86 + >> arch/arm/dts/sdm845.dtsi | 5801 +++++++++++++++++++- >> arch/arm/dts/starqltechn-uboot.dtsi | 27 - >> arch/arm/dts/starqltechn.dts | 68 - >> arch/arm/lib/save_prev_bl_data.c | 5 + >> arch/arm/mach-snapdragon/Kconfig | 95 +- >> arch/arm/mach-snapdragon/Makefile | 8 +- >> arch/arm/mach-snapdragon/board.c | 304 + >> arch/arm/mach-snapdragon/include/mach/dram.h | 12 - >> arch/arm/mach-snapdragon/init_sdm845.c | 73 - >> arch/arm/mach-snapdragon/misc.c | 55 - >> arch/arm/mach-snapdragon/sysmap-apq8016.c | 31 - >> arch/arm/mach-snapdragon/sysmap-apq8096.c | 31 - >> arch/arm/mach-snapdragon/sysmap-qcs404.c | 43 - >> arch/arm/mach-snapdragon/sysmap-sdm845.c | 31 - >> board/qualcomm/dragonboard410c/Kconfig | 15 - >> board/qualcomm/dragonboard410c/Makefile | 3 +- >> .../dragonboard410c/configs/chainloaded.config | 7 + >> board/qualcomm/dragonboard410c/dragonboard410c.c | 109 +- >> .../qualcomm/dragonboard410c/misc.c | 51 +- >> .../mach => board/qualcomm/dragonboard410c}/misc.h | 1 + >> board/qualcomm/dragonboard820c/Kconfig | 15 - >> board/qualcomm/dragonboard820c/Makefile | 1 - >> board/qualcomm/dragonboard820c/dragonboard820c.c | 39 +- >> board/qualcomm/dragonboard820c/head.S | 33 - >> board/qualcomm/dragonboard820c/u-boot.lds | 111 - >> board/qualcomm/dragonboard845c/Kconfig | 12 - >> board/qualcomm/qcs404-evb/Kconfig | 15 - >> board/qualcomm/qcs404-evb/Makefile | 6 - >> board/qualcomm/qcs404-evb/qcs404-evb.c | 62 - >> configs/dragonboard410c_defconfig | 8 +- >> configs/dragonboard820c_defconfig | 8 +- >> configs/dragonboard845c_defconfig | 29 - >> configs/qcom_defconfig | 73 + >> configs/qcs404evb_defconfig | 55 - >> configs/starqltechn_defconfig | 41 - >> doc/board/qualcomm/board.rst | 119 + >> doc/board/qualcomm/debugging.rst | 61 + >> doc/board/qualcomm/index.rst | 4 +- >> doc/board/qualcomm/qcs404.rst | 79 - >> doc/board/qualcomm/sdm845.rst | 162 - >> doc/device-tree-bindings/mmc/msm_sdhci.txt | 25 - >> doc/device-tree-bindings/usb/ehci-msm.txt | 10 - >> drivers/clk/qcom/clock-apq8016.c | 9 +- >> drivers/clk/qcom/clock-apq8096.c | 7 +- >> drivers/gpio/qcom_pmic_gpio.c | 232 +- >> drivers/mmc/msm_sdhci.c | 69 +- >> drivers/phy/qcom/msm8916-usbh-phy.c | 4 +- >> drivers/pinctrl/qcom/pinctrl-apq8016.c | 2 +- >> drivers/serial/Kconfig | 8 + >> drivers/serial/serial_msm.c | 56 +- >> drivers/usb/dwc3/dwc3-generic.c | 12 + >> drivers/usb/host/ehci-msm.c | 24 +- >> include/configs/dragonboard845c.h | 20 - >> include/configs/qcom.h | 21 + >> include/configs/qcs404-evb.h | 20 - >> include/configs/sdm845.h | 26 - >> include/dt-bindings/arm/coresight-cti-dt.h | 37 + >> include/dt-bindings/clock/qcom,camcc-sdm845.h | 116 + >> include/dt-bindings/clock/qcom,dispcc-sdm845.h | 56 + >> include/dt-bindings/clock/qcom,gcc-msm8916.h | 179 + >> include/dt-bindings/clock/qcom,gcc-msm8996.h | 360 ++ >> include/dt-bindings/clock/qcom,gpucc-sdm845.h | 24 + >> include/dt-bindings/clock/qcom,lpass-sdm845.h | 15 + >> include/dt-bindings/clock/qcom,mmcc-msm8996.h | 295 + >> include/dt-bindings/clock/qcom,rpmcc.h | 174 + >> include/dt-bindings/clock/qcom,rpmh.h | 37 + >> include/dt-bindings/clock/qcom,turingcc-qcs404.h | 15 + >> include/dt-bindings/clock/qcom,videocc-sdm845.h | 35 + >> include/dt-bindings/dma/qcom-gpi.h | 11 + >> include/dt-bindings/firmware/qcom,scm.h | 18 + >> include/dt-bindings/iio/qcom,spmi-vadc.h | 300 + >> include/dt-bindings/interconnect/qcom,msm8916.h | 100 + >> .../dt-bindings/interconnect/qcom,msm8996-cbf.h | 12 + >> include/dt-bindings/interconnect/qcom,msm8996.h | 163 + >> include/dt-bindings/interconnect/qcom,osm-l3.h | 15 + >> include/dt-bindings/interconnect/qcom,sdm845.h | 150 + >> include/dt-bindings/phy/phy-qcom-qmp.h | 20 + >> include/dt-bindings/phy/phy-qcom-qusb2.h | 37 + >> include/dt-bindings/pinctrl/qcom,pmic-gpio.h | 164 + >> include/dt-bindings/pinctrl/qcom,pmic-mpp.h | 106 + >> include/dt-bindings/power/qcom-rpmpd.h | 412 ++ >> include/dt-bindings/qcom,q6asm.h | 26 + >> .../dt-bindings/regulator/qcom,rpmh-regulator.h | 36 + >> include/dt-bindings/reset/qcom,gcc-msm8916.h | 100 + >> include/dt-bindings/reset/qcom,sdm845-aoss.h | 17 + >> include/dt-bindings/reset/qcom,sdm845-pdc.h | 22 + >> include/dt-bindings/soc/qcom,apr.h | 28 + >> include/dt-bindings/soc/qcom,rpmh-rsc.h | 14 + >> include/dt-bindings/sound/apq8016-lpass.h | 9 + >> include/dt-bindings/sound/qcom,lpass.h | 46 + >> include/dt-bindings/sound/qcom,q6afe.h | 9 + >> include/dt-bindings/sound/qcom,q6asm.h | 26 + >> include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h | 234 + >> include/dt-bindings/sound/qcom,wcd9335.h | 15 + >> include/init.h | 11 + >> 126 files changed, 23909 insertions(+), 2375 deletions(-) >> --- >> base-commit: bcb4a9ddbd21a61b5b421ba374a785757bd28c80 >> >> // Caleb (they/them) >>
On Fri, 5 Jan 2024 at 19:15, Caleb Connolly <caleb.connolly@linaro.org> wrote: > > > > On 05/01/2024 13:14, Sumit Garg wrote: > > Hi Caleb, > > Hi Sumit, > > [snip] > > >> --- > >> I have tested this series on the Dragonboard410c, Dragonboard820c, and > > > > This series fails to boot (without any U-Boot console print) on > > db410c. I even added below pinctrl change but without any success: > > Are you chainloading from aboot? Or flashing over it? > I am using the default mode where U-Boot acts as the first stage bootloader. I suppose it worked for you since LK enabled drivers which were just reused by U-Boot. > I have only been able to validate the chainloading method, following the > steps in doc/board/qualcomm/board.rst and generating the config with > > make dragonboard410c_defconfig chainloaded.config > > do you get any output at all? No output from U-Boot. Last prints from SBL1: <snip> D - 299022 - SBL1, Delta S - Flash Throughput, 81000 KB/s (1537656 Bytes, 18940 us) S - DDR Frequency, 400 MHz > Can you try enabling debug UART output as > documented in doc/board/qualcomm/debugging.rst? I did but it didn't help. > > The pinctrl fix shouldn't be needed to boot to a shell. While at it, I noticed another pinctrl issue which should be fixed by following diff: diff --git a/drivers/serial/serial_msm.c b/drivers/serial/serial_msm.c index 0148ddb54df..6fe7bdd1dca 100644 --- a/drivers/serial/serial_msm.c +++ b/drivers/serial/serial_msm.c @@ -204,7 +204,7 @@ static int msm_serial_probe(struct udevice *dev) if (ret) return ret; - pinctrl_select_state(dev, "uart"); + pinctrl_select_state(dev, "default"); uart_dm_init(priv); return 0; But this still didn't fix the boot problem. As you have the board in your hand, I would suggest you to debug to avoid this back and forth. -Sumit > > Thanks, > > > > diff --git a/drivers/pinctrl/qcom/pinctrl-apq8016.c > > b/drivers/pinctrl/qcom/pinctrl-apq8016.c > > index 8e698085d78..88518845952 100644 > > --- a/drivers/pinctrl/qcom/pinctrl-apq8016.c > > +++ b/drivers/pinctrl/qcom/pinctrl-apq8016.c > > @@ -42,7 +42,7 @@ static const char *apq8016_get_pin_name(struct udevice *dev, > > unsigned int selector) > > { > > if (selector < 122) { > > - snprintf(pin_name, MAX_PIN_NAME_LEN, "GPIO_%u", selector); > > + snprintf(pin_name, MAX_PIN_NAME_LEN, "gpio%u", selector); > > return pin_name; > > } else { > > return msm_pinctrl_pins[selector - 122]; > > > > > >> Dragonboard845c. I unfortunately don't have access to a QCS404 EVB board > >> to test. > > > > db820c and qcs404 require a similar pinctrl change though. > > > > -Sumit > > > >> > >> This series is based on the qcom-next branch [1] and depends on my PMIC > >> fixes series [2], an integration branch for testing can be found at [3]. > >> The non-qualcomm-specific changes (patches 1 and 2) don't have any > >> dependencies. > >> > >> [1]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon > >> [2]: https://lore.kernel.org/u-boot/20231114-b4-qcom-dt-compat-v3-0-88a92f8f00ba@linaro.org/ > >> [3]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/tree/b4/qcom-common-target > >> > >> --- > >> Changes in v2: > >> - Split DTS changes to reduce patch size. > >> - Import full board DTS files from Linux too, and introduce -u-boot.dtsi > >> files where necessary to make any U-Boot specific changes. > >> - Add a pinctrl driver for qcom PMIC GPIOs > >> - Always enable LINUX_KERNEL_IMAGE_HEADER > >> - Link to v1: https://lore.kernel.org/r/20231121-b4-qcom-common-target-v1-0-9492198e0c15@linaro.org > >> > >> To: Neil Armstrong <neil.armstrong@linaro.org> > >> To: Sumit Garg <sumit.garg@linaro.org> > >> To: Ramon Fried <rfried.dev@gmail.com> > >> Cc: Marek Vasut <marex@denx.de> > >> To: Dzmitry Sankouski <dsankouski@gmail.com> > >> To: Caleb Connolly <caleb.connolly@linaro.org> > >> To: Peng Fan <peng.fan@nxp.com> > >> To: Jaehoon Chung <jh80.chung@samsung.com> > >> To: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com> > >> To: Lukasz Majewski <lukma@denx.de> > >> To: Sean Anderson <seanga2@gmail.com> > >> To: Jorge Ramirez-Ortiz <jorge.ramirez.ortiz@gmail.com> > >> To: Stephan Gerhold <stephan@gerhold.net> > >> Cc: <u-boot@lists.denx.de> > >> > >> --- > >> Caleb Connolly (32): > >> arm: init: export prev_bl_fdt_addr > >> usb: dwc3-generic: support external vbus regulator > >> mmc: msm_sdhci: use modern clock handling > >> dt-bindings: drop msm_sdhci binding > >> clk/qcom: use upstream compatible properties > >> serial: msm: add debug UART > >> serial: msm: fix clock handling > >> gpio: qcom_pmic: 1-based GPIOs > >> gpio: qcom_pmic: add a quirk to skip GPIO configuration > >> gpio: qcom_pmic: add pinctrl driver > >> board: dragonboard410c: add chainloaded config fragment > >> board: dragonboard410c: upstream DT compat > >> board: dragonboard410c: import board code from mach-snapdragon > >> board: dragonboard820c: use LINUX_KERNEL_IMAGE_HEADER > >> mach-snapdragon: generalise board support > >> mach-snapdragon: dynamic load addresses > >> mach-snapdragon: generate fdtfile automatically > >> doc: board/qualcomm: document generic targets > >> dt-bindings: import headers for SDM845 > >> dts: sdm845: import supporting dtsi files > >> dts: sdm845: replace with upstream DTS > >> dt-bindings: import headers for MSM8916 > >> dts: msm8916: import PMIC dtsi files > >> dts: msm8916: replace with upstream DTS > >> dt-bindings: import headers for MSM8996 > >> dts: msm8996: import PMIC dtsi files > >> dts: dragonboard820c: use correct bindings for clocks > >> dts: msm8996: replace with upstream DTS > >> dt-bindings: import headers for qcs404 > >> dts: qcs404-evb: replace with upstream DT > >> board: qcs404-evb: drop board code > >> MAINTAINERS: Qualcomm: add some missing paths > >> > >> MAINTAINERS | 12 +- > >> arch/arm/Kconfig | 4 + > >> arch/arm/dts/Makefile | 9 +- > >> arch/arm/dts/apq8016-sbc.dts | 729 +++ > >> arch/arm/dts/apq8096-db820c-u-boot.dtsi | 10 + > >> arch/arm/dts/apq8096-db820c.dts | 1137 ++++ > >> arch/arm/dts/dragonboard410c-uboot.dtsi | 44 - > >> arch/arm/dts/dragonboard410c.dts | 199 +- > >> arch/arm/dts/dragonboard820c-uboot.dtsi | 32 - > >> arch/arm/dts/dragonboard820c.dts | 151 - > >> arch/arm/dts/dragonboard845c-uboot.dtsi | 26 - > >> arch/arm/dts/dragonboard845c.dts | 48 - > >> arch/arm/dts/msm8916-pm8916.dtsi | 157 + > >> arch/arm/dts/msm8916.dtsi | 2702 +++++++++ > >> arch/arm/dts/msm8996.dtsi | 3884 +++++++++++++ > >> arch/arm/dts/pm8916.dtsi | 178 + > >> arch/arm/dts/pm8994.dtsi | 152 + > >> arch/arm/dts/pm8998.dtsi | 130 + > >> arch/arm/dts/pmi8994.dtsi | 65 + > >> arch/arm/dts/pmi8998.dtsi | 98 + > >> arch/arm/dts/pms405.dtsi | 149 + > >> arch/arm/dts/qcs404-evb-4000-u-boot.dtsi | 26 + > >> arch/arm/dts/qcs404-evb-4000.dts | 96 + > >> arch/arm/dts/qcs404-evb-uboot.dtsi | 30 - > >> arch/arm/dts/qcs404-evb.dts | 390 -- > >> arch/arm/dts/qcs404-evb.dtsi | 389 ++ > >> arch/arm/dts/qcs404.dtsi | 1829 ++++++ > >> arch/arm/dts/sdm845-db845c.dts | 1190 ++++ > >> .../arm/dts/sdm845-samsung-starqltechn-u-boot.dtsi | 16 + > >> arch/arm/dts/sdm845-samsung-starqltechn.dts | 624 +++ > >> arch/arm/dts/sdm845-wcd9340.dtsi | 86 + > >> arch/arm/dts/sdm845.dtsi | 5801 +++++++++++++++++++- > >> arch/arm/dts/starqltechn-uboot.dtsi | 27 - > >> arch/arm/dts/starqltechn.dts | 68 - > >> arch/arm/lib/save_prev_bl_data.c | 5 + > >> arch/arm/mach-snapdragon/Kconfig | 95 +- > >> arch/arm/mach-snapdragon/Makefile | 8 +- > >> arch/arm/mach-snapdragon/board.c | 304 + > >> arch/arm/mach-snapdragon/include/mach/dram.h | 12 - > >> arch/arm/mach-snapdragon/init_sdm845.c | 73 - > >> arch/arm/mach-snapdragon/misc.c | 55 - > >> arch/arm/mach-snapdragon/sysmap-apq8016.c | 31 - > >> arch/arm/mach-snapdragon/sysmap-apq8096.c | 31 - > >> arch/arm/mach-snapdragon/sysmap-qcs404.c | 43 - > >> arch/arm/mach-snapdragon/sysmap-sdm845.c | 31 - > >> board/qualcomm/dragonboard410c/Kconfig | 15 - > >> board/qualcomm/dragonboard410c/Makefile | 3 +- > >> .../dragonboard410c/configs/chainloaded.config | 7 + > >> board/qualcomm/dragonboard410c/dragonboard410c.c | 109 +- > >> .../qualcomm/dragonboard410c/misc.c | 51 +- > >> .../mach => board/qualcomm/dragonboard410c}/misc.h | 1 + > >> board/qualcomm/dragonboard820c/Kconfig | 15 - > >> board/qualcomm/dragonboard820c/Makefile | 1 - > >> board/qualcomm/dragonboard820c/dragonboard820c.c | 39 +- > >> board/qualcomm/dragonboard820c/head.S | 33 - > >> board/qualcomm/dragonboard820c/u-boot.lds | 111 - > >> board/qualcomm/dragonboard845c/Kconfig | 12 - > >> board/qualcomm/qcs404-evb/Kconfig | 15 - > >> board/qualcomm/qcs404-evb/Makefile | 6 - > >> board/qualcomm/qcs404-evb/qcs404-evb.c | 62 - > >> configs/dragonboard410c_defconfig | 8 +- > >> configs/dragonboard820c_defconfig | 8 +- > >> configs/dragonboard845c_defconfig | 29 - > >> configs/qcom_defconfig | 73 + > >> configs/qcs404evb_defconfig | 55 - > >> configs/starqltechn_defconfig | 41 - > >> doc/board/qualcomm/board.rst | 119 + > >> doc/board/qualcomm/debugging.rst | 61 + > >> doc/board/qualcomm/index.rst | 4 +- > >> doc/board/qualcomm/qcs404.rst | 79 - > >> doc/board/qualcomm/sdm845.rst | 162 - > >> doc/device-tree-bindings/mmc/msm_sdhci.txt | 25 - > >> doc/device-tree-bindings/usb/ehci-msm.txt | 10 - > >> drivers/clk/qcom/clock-apq8016.c | 9 +- > >> drivers/clk/qcom/clock-apq8096.c | 7 +- > >> drivers/gpio/qcom_pmic_gpio.c | 232 +- > >> drivers/mmc/msm_sdhci.c | 69 +- > >> drivers/phy/qcom/msm8916-usbh-phy.c | 4 +- > >> drivers/pinctrl/qcom/pinctrl-apq8016.c | 2 +- > >> drivers/serial/Kconfig | 8 + > >> drivers/serial/serial_msm.c | 56 +- > >> drivers/usb/dwc3/dwc3-generic.c | 12 + > >> drivers/usb/host/ehci-msm.c | 24 +- > >> include/configs/dragonboard845c.h | 20 - > >> include/configs/qcom.h | 21 + > >> include/configs/qcs404-evb.h | 20 - > >> include/configs/sdm845.h | 26 - > >> include/dt-bindings/arm/coresight-cti-dt.h | 37 + > >> include/dt-bindings/clock/qcom,camcc-sdm845.h | 116 + > >> include/dt-bindings/clock/qcom,dispcc-sdm845.h | 56 + > >> include/dt-bindings/clock/qcom,gcc-msm8916.h | 179 + > >> include/dt-bindings/clock/qcom,gcc-msm8996.h | 360 ++ > >> include/dt-bindings/clock/qcom,gpucc-sdm845.h | 24 + > >> include/dt-bindings/clock/qcom,lpass-sdm845.h | 15 + > >> include/dt-bindings/clock/qcom,mmcc-msm8996.h | 295 + > >> include/dt-bindings/clock/qcom,rpmcc.h | 174 + > >> include/dt-bindings/clock/qcom,rpmh.h | 37 + > >> include/dt-bindings/clock/qcom,turingcc-qcs404.h | 15 + > >> include/dt-bindings/clock/qcom,videocc-sdm845.h | 35 + > >> include/dt-bindings/dma/qcom-gpi.h | 11 + > >> include/dt-bindings/firmware/qcom,scm.h | 18 + > >> include/dt-bindings/iio/qcom,spmi-vadc.h | 300 + > >> include/dt-bindings/interconnect/qcom,msm8916.h | 100 + > >> .../dt-bindings/interconnect/qcom,msm8996-cbf.h | 12 + > >> include/dt-bindings/interconnect/qcom,msm8996.h | 163 + > >> include/dt-bindings/interconnect/qcom,osm-l3.h | 15 + > >> include/dt-bindings/interconnect/qcom,sdm845.h | 150 + > >> include/dt-bindings/phy/phy-qcom-qmp.h | 20 + > >> include/dt-bindings/phy/phy-qcom-qusb2.h | 37 + > >> include/dt-bindings/pinctrl/qcom,pmic-gpio.h | 164 + > >> include/dt-bindings/pinctrl/qcom,pmic-mpp.h | 106 + > >> include/dt-bindings/power/qcom-rpmpd.h | 412 ++ > >> include/dt-bindings/qcom,q6asm.h | 26 + > >> .../dt-bindings/regulator/qcom,rpmh-regulator.h | 36 + > >> include/dt-bindings/reset/qcom,gcc-msm8916.h | 100 + > >> include/dt-bindings/reset/qcom,sdm845-aoss.h | 17 + > >> include/dt-bindings/reset/qcom,sdm845-pdc.h | 22 + > >> include/dt-bindings/soc/qcom,apr.h | 28 + > >> include/dt-bindings/soc/qcom,rpmh-rsc.h | 14 + > >> include/dt-bindings/sound/apq8016-lpass.h | 9 + > >> include/dt-bindings/sound/qcom,lpass.h | 46 + > >> include/dt-bindings/sound/qcom,q6afe.h | 9 + > >> include/dt-bindings/sound/qcom,q6asm.h | 26 + > >> include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h | 234 + > >> include/dt-bindings/sound/qcom,wcd9335.h | 15 + > >> include/init.h | 11 + > >> 126 files changed, 23909 insertions(+), 2375 deletions(-) > >> --- > >> base-commit: bcb4a9ddbd21a61b5b421ba374a785757bd28c80 > >> > >> // Caleb (they/them) > >> > > -- > // Caleb (they/them)
On 09/01/2024 06:07, Sumit Garg wrote: > On Fri, 5 Jan 2024 at 19:15, Caleb Connolly <caleb.connolly@linaro.org> wrote: >> >> >> >> On 05/01/2024 13:14, Sumit Garg wrote: >>> Hi Caleb, >> >> Hi Sumit, >> >> [snip] >> >>>> --- >>>> I have tested this series on the Dragonboard410c, Dragonboard820c, and >>> >>> This series fails to boot (without any U-Boot console print) on >>> db410c. I even added below pinctrl change but without any success: >> >> Are you chainloading from aboot? Or flashing over it? >> > > I am using the default mode where U-Boot acts as the first stage > bootloader. I suppose it worked for you since LK enabled drivers which > were just reused by U-Boot. + Stephan, could you maybe give this a try at some point? Right, although the lack of any output probably indicates that U-Boot code isn't getting run for some reason. Could you check if disabling LINUX_KERNEL_IMAGE_HEADER (remove the select in arch/arm/Kconfig) helps? It was *theorised* that this shouldn't cause any issues but not tested. Oh yeah, you should also hardcode the memory layout in DTS, this got lost when moving to upstream DT and it's needed for the case where we don't have ABL/LK to fill it in for us. > >> I have only been able to validate the chainloading method, following the >> steps in doc/board/qualcomm/board.rst and generating the config with >> >> make dragonboard410c_defconfig chainloaded.config >> >> do you get any output at all? > > No output from U-Boot. Last prints from SBL1: > > <snip> > D - 299022 - SBL1, Delta > S - Flash Throughput, 81000 KB/s (1537656 Bytes, 18940 us) > S - DDR Frequency, 400 MHz > >> Can you try enabling debug UART output as >> documented in doc/board/qualcomm/debugging.rst? > > I did but it didn't help. Hmm, I doubt SBL turns off the UART clock, so the DEBUG_UART ought to work - but this has not been tested so there could be something missing. Maybe you can try calling msm_uart_clk_init() from _debug_uart_init(). > >> >> The pinctrl fix shouldn't be needed to boot to a shell. > > While at it, I noticed another pinctrl issue which should be fixed by > following diff: > > diff --git a/drivers/serial/serial_msm.c b/drivers/serial/serial_msm.c > index 0148ddb54df..6fe7bdd1dca 100644 > --- a/drivers/serial/serial_msm.c > +++ b/drivers/serial/serial_msm.c > @@ -204,7 +204,7 @@ static int msm_serial_probe(struct udevice *dev) > if (ret) > return ret; > > - pinctrl_select_state(dev, "uart"); > + pinctrl_select_state(dev, "default"); > uart_dm_init(priv); > > return 0; > > But this still didn't fix the boot problem. As you have the board in > your hand, I would suggest you to debug to avoid this back and forth. I don't have the board unfortunately, only remote access - hence I can only debug the chainloaded U-Boot and not "u-boot1st" (or however we call it :P). Sorry. > > -Sumit > >> >> Thanks, >>> >>> diff --git a/drivers/pinctrl/qcom/pinctrl-apq8016.c >>> b/drivers/pinctrl/qcom/pinctrl-apq8016.c >>> index 8e698085d78..88518845952 100644 >>> --- a/drivers/pinctrl/qcom/pinctrl-apq8016.c >>> +++ b/drivers/pinctrl/qcom/pinctrl-apq8016.c >>> @@ -42,7 +42,7 @@ static const char *apq8016_get_pin_name(struct udevice *dev, >>> unsigned int selector) >>> { >>> if (selector < 122) { >>> - snprintf(pin_name, MAX_PIN_NAME_LEN, "GPIO_%u", selector); >>> + snprintf(pin_name, MAX_PIN_NAME_LEN, "gpio%u", selector); >>> return pin_name; >>> } else { >>> return msm_pinctrl_pins[selector - 122]; >>> >>> >>>> Dragonboard845c. I unfortunately don't have access to a QCS404 EVB board >>>> to test. >>> >>> db820c and qcs404 require a similar pinctrl change though. >>> >>> -Sumit >>> >>>> >>>> This series is based on the qcom-next branch [1] and depends on my PMIC >>>> fixes series [2], an integration branch for testing can be found at [3]. >>>> The non-qualcomm-specific changes (patches 1 and 2) don't have any >>>> dependencies. >>>> >>>> [1]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon >>>> [2]: https://lore.kernel.org/u-boot/20231114-b4-qcom-dt-compat-v3-0-88a92f8f00ba@linaro.org/ >>>> [3]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/tree/b4/qcom-common-target >>>> >>>> --- >>>> Changes in v2: >>>> - Split DTS changes to reduce patch size. >>>> - Import full board DTS files from Linux too, and introduce -u-boot.dtsi >>>> files where necessary to make any U-Boot specific changes. >>>> - Add a pinctrl driver for qcom PMIC GPIOs >>>> - Always enable LINUX_KERNEL_IMAGE_HEADER >>>> - Link to v1: https://lore.kernel.org/r/20231121-b4-qcom-common-target-v1-0-9492198e0c15@linaro.org >>>> >>>> To: Neil Armstrong <neil.armstrong@linaro.org> >>>> To: Sumit Garg <sumit.garg@linaro.org> >>>> To: Ramon Fried <rfried.dev@gmail.com> >>>> Cc: Marek Vasut <marex@denx.de> >>>> To: Dzmitry Sankouski <dsankouski@gmail.com> >>>> To: Caleb Connolly <caleb.connolly@linaro.org> >>>> To: Peng Fan <peng.fan@nxp.com> >>>> To: Jaehoon Chung <jh80.chung@samsung.com> >>>> To: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com> >>>> To: Lukasz Majewski <lukma@denx.de> >>>> To: Sean Anderson <seanga2@gmail.com> >>>> To: Jorge Ramirez-Ortiz <jorge.ramirez.ortiz@gmail.com> >>>> To: Stephan Gerhold <stephan@gerhold.net> >>>> Cc: <u-boot@lists.denx.de> >>>> >>>> --- >>>> Caleb Connolly (32): >>>> arm: init: export prev_bl_fdt_addr >>>> usb: dwc3-generic: support external vbus regulator >>>> mmc: msm_sdhci: use modern clock handling >>>> dt-bindings: drop msm_sdhci binding >>>> clk/qcom: use upstream compatible properties >>>> serial: msm: add debug UART >>>> serial: msm: fix clock handling >>>> gpio: qcom_pmic: 1-based GPIOs >>>> gpio: qcom_pmic: add a quirk to skip GPIO configuration >>>> gpio: qcom_pmic: add pinctrl driver >>>> board: dragonboard410c: add chainloaded config fragment >>>> board: dragonboard410c: upstream DT compat >>>> board: dragonboard410c: import board code from mach-snapdragon >>>> board: dragonboard820c: use LINUX_KERNEL_IMAGE_HEADER >>>> mach-snapdragon: generalise board support >>>> mach-snapdragon: dynamic load addresses >>>> mach-snapdragon: generate fdtfile automatically >>>> doc: board/qualcomm: document generic targets >>>> dt-bindings: import headers for SDM845 >>>> dts: sdm845: import supporting dtsi files >>>> dts: sdm845: replace with upstream DTS >>>> dt-bindings: import headers for MSM8916 >>>> dts: msm8916: import PMIC dtsi files >>>> dts: msm8916: replace with upstream DTS >>>> dt-bindings: import headers for MSM8996 >>>> dts: msm8996: import PMIC dtsi files >>>> dts: dragonboard820c: use correct bindings for clocks >>>> dts: msm8996: replace with upstream DTS >>>> dt-bindings: import headers for qcs404 >>>> dts: qcs404-evb: replace with upstream DT >>>> board: qcs404-evb: drop board code >>>> MAINTAINERS: Qualcomm: add some missing paths >>>> >>>> MAINTAINERS | 12 +- >>>> arch/arm/Kconfig | 4 + >>>> arch/arm/dts/Makefile | 9 +- >>>> arch/arm/dts/apq8016-sbc.dts | 729 +++ >>>> arch/arm/dts/apq8096-db820c-u-boot.dtsi | 10 + >>>> arch/arm/dts/apq8096-db820c.dts | 1137 ++++ >>>> arch/arm/dts/dragonboard410c-uboot.dtsi | 44 - >>>> arch/arm/dts/dragonboard410c.dts | 199 +- >>>> arch/arm/dts/dragonboard820c-uboot.dtsi | 32 - >>>> arch/arm/dts/dragonboard820c.dts | 151 - >>>> arch/arm/dts/dragonboard845c-uboot.dtsi | 26 - >>>> arch/arm/dts/dragonboard845c.dts | 48 - >>>> arch/arm/dts/msm8916-pm8916.dtsi | 157 + >>>> arch/arm/dts/msm8916.dtsi | 2702 +++++++++ >>>> arch/arm/dts/msm8996.dtsi | 3884 +++++++++++++ >>>> arch/arm/dts/pm8916.dtsi | 178 + >>>> arch/arm/dts/pm8994.dtsi | 152 + >>>> arch/arm/dts/pm8998.dtsi | 130 + >>>> arch/arm/dts/pmi8994.dtsi | 65 + >>>> arch/arm/dts/pmi8998.dtsi | 98 + >>>> arch/arm/dts/pms405.dtsi | 149 + >>>> arch/arm/dts/qcs404-evb-4000-u-boot.dtsi | 26 + >>>> arch/arm/dts/qcs404-evb-4000.dts | 96 + >>>> arch/arm/dts/qcs404-evb-uboot.dtsi | 30 - >>>> arch/arm/dts/qcs404-evb.dts | 390 -- >>>> arch/arm/dts/qcs404-evb.dtsi | 389 ++ >>>> arch/arm/dts/qcs404.dtsi | 1829 ++++++ >>>> arch/arm/dts/sdm845-db845c.dts | 1190 ++++ >>>> .../arm/dts/sdm845-samsung-starqltechn-u-boot.dtsi | 16 + >>>> arch/arm/dts/sdm845-samsung-starqltechn.dts | 624 +++ >>>> arch/arm/dts/sdm845-wcd9340.dtsi | 86 + >>>> arch/arm/dts/sdm845.dtsi | 5801 +++++++++++++++++++- >>>> arch/arm/dts/starqltechn-uboot.dtsi | 27 - >>>> arch/arm/dts/starqltechn.dts | 68 - >>>> arch/arm/lib/save_prev_bl_data.c | 5 + >>>> arch/arm/mach-snapdragon/Kconfig | 95 +- >>>> arch/arm/mach-snapdragon/Makefile | 8 +- >>>> arch/arm/mach-snapdragon/board.c | 304 + >>>> arch/arm/mach-snapdragon/include/mach/dram.h | 12 - >>>> arch/arm/mach-snapdragon/init_sdm845.c | 73 - >>>> arch/arm/mach-snapdragon/misc.c | 55 - >>>> arch/arm/mach-snapdragon/sysmap-apq8016.c | 31 - >>>> arch/arm/mach-snapdragon/sysmap-apq8096.c | 31 - >>>> arch/arm/mach-snapdragon/sysmap-qcs404.c | 43 - >>>> arch/arm/mach-snapdragon/sysmap-sdm845.c | 31 - >>>> board/qualcomm/dragonboard410c/Kconfig | 15 - >>>> board/qualcomm/dragonboard410c/Makefile | 3 +- >>>> .../dragonboard410c/configs/chainloaded.config | 7 + >>>> board/qualcomm/dragonboard410c/dragonboard410c.c | 109 +- >>>> .../qualcomm/dragonboard410c/misc.c | 51 +- >>>> .../mach => board/qualcomm/dragonboard410c}/misc.h | 1 + >>>> board/qualcomm/dragonboard820c/Kconfig | 15 - >>>> board/qualcomm/dragonboard820c/Makefile | 1 - >>>> board/qualcomm/dragonboard820c/dragonboard820c.c | 39 +- >>>> board/qualcomm/dragonboard820c/head.S | 33 - >>>> board/qualcomm/dragonboard820c/u-boot.lds | 111 - >>>> board/qualcomm/dragonboard845c/Kconfig | 12 - >>>> board/qualcomm/qcs404-evb/Kconfig | 15 - >>>> board/qualcomm/qcs404-evb/Makefile | 6 - >>>> board/qualcomm/qcs404-evb/qcs404-evb.c | 62 - >>>> configs/dragonboard410c_defconfig | 8 +- >>>> configs/dragonboard820c_defconfig | 8 +- >>>> configs/dragonboard845c_defconfig | 29 - >>>> configs/qcom_defconfig | 73 + >>>> configs/qcs404evb_defconfig | 55 - >>>> configs/starqltechn_defconfig | 41 - >>>> doc/board/qualcomm/board.rst | 119 + >>>> doc/board/qualcomm/debugging.rst | 61 + >>>> doc/board/qualcomm/index.rst | 4 +- >>>> doc/board/qualcomm/qcs404.rst | 79 - >>>> doc/board/qualcomm/sdm845.rst | 162 - >>>> doc/device-tree-bindings/mmc/msm_sdhci.txt | 25 - >>>> doc/device-tree-bindings/usb/ehci-msm.txt | 10 - >>>> drivers/clk/qcom/clock-apq8016.c | 9 +- >>>> drivers/clk/qcom/clock-apq8096.c | 7 +- >>>> drivers/gpio/qcom_pmic_gpio.c | 232 +- >>>> drivers/mmc/msm_sdhci.c | 69 +- >>>> drivers/phy/qcom/msm8916-usbh-phy.c | 4 +- >>>> drivers/pinctrl/qcom/pinctrl-apq8016.c | 2 +- >>>> drivers/serial/Kconfig | 8 + >>>> drivers/serial/serial_msm.c | 56 +- >>>> drivers/usb/dwc3/dwc3-generic.c | 12 + >>>> drivers/usb/host/ehci-msm.c | 24 +- >>>> include/configs/dragonboard845c.h | 20 - >>>> include/configs/qcom.h | 21 + >>>> include/configs/qcs404-evb.h | 20 - >>>> include/configs/sdm845.h | 26 - >>>> include/dt-bindings/arm/coresight-cti-dt.h | 37 + >>>> include/dt-bindings/clock/qcom,camcc-sdm845.h | 116 + >>>> include/dt-bindings/clock/qcom,dispcc-sdm845.h | 56 + >>>> include/dt-bindings/clock/qcom,gcc-msm8916.h | 179 + >>>> include/dt-bindings/clock/qcom,gcc-msm8996.h | 360 ++ >>>> include/dt-bindings/clock/qcom,gpucc-sdm845.h | 24 + >>>> include/dt-bindings/clock/qcom,lpass-sdm845.h | 15 + >>>> include/dt-bindings/clock/qcom,mmcc-msm8996.h | 295 + >>>> include/dt-bindings/clock/qcom,rpmcc.h | 174 + >>>> include/dt-bindings/clock/qcom,rpmh.h | 37 + >>>> include/dt-bindings/clock/qcom,turingcc-qcs404.h | 15 + >>>> include/dt-bindings/clock/qcom,videocc-sdm845.h | 35 + >>>> include/dt-bindings/dma/qcom-gpi.h | 11 + >>>> include/dt-bindings/firmware/qcom,scm.h | 18 + >>>> include/dt-bindings/iio/qcom,spmi-vadc.h | 300 + >>>> include/dt-bindings/interconnect/qcom,msm8916.h | 100 + >>>> .../dt-bindings/interconnect/qcom,msm8996-cbf.h | 12 + >>>> include/dt-bindings/interconnect/qcom,msm8996.h | 163 + >>>> include/dt-bindings/interconnect/qcom,osm-l3.h | 15 + >>>> include/dt-bindings/interconnect/qcom,sdm845.h | 150 + >>>> include/dt-bindings/phy/phy-qcom-qmp.h | 20 + >>>> include/dt-bindings/phy/phy-qcom-qusb2.h | 37 + >>>> include/dt-bindings/pinctrl/qcom,pmic-gpio.h | 164 + >>>> include/dt-bindings/pinctrl/qcom,pmic-mpp.h | 106 + >>>> include/dt-bindings/power/qcom-rpmpd.h | 412 ++ >>>> include/dt-bindings/qcom,q6asm.h | 26 + >>>> .../dt-bindings/regulator/qcom,rpmh-regulator.h | 36 + >>>> include/dt-bindings/reset/qcom,gcc-msm8916.h | 100 + >>>> include/dt-bindings/reset/qcom,sdm845-aoss.h | 17 + >>>> include/dt-bindings/reset/qcom,sdm845-pdc.h | 22 + >>>> include/dt-bindings/soc/qcom,apr.h | 28 + >>>> include/dt-bindings/soc/qcom,rpmh-rsc.h | 14 + >>>> include/dt-bindings/sound/apq8016-lpass.h | 9 + >>>> include/dt-bindings/sound/qcom,lpass.h | 46 + >>>> include/dt-bindings/sound/qcom,q6afe.h | 9 + >>>> include/dt-bindings/sound/qcom,q6asm.h | 26 + >>>> include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h | 234 + >>>> include/dt-bindings/sound/qcom,wcd9335.h | 15 + >>>> include/init.h | 11 + >>>> 126 files changed, 23909 insertions(+), 2375 deletions(-) >>>> --- >>>> base-commit: bcb4a9ddbd21a61b5b421ba374a785757bd28c80 >>>> >>>> // Caleb (they/them) >>>> >> >> -- >> // Caleb (they/them)
On Tue, 9 Jan 2024 at 17:03, Caleb Connolly <caleb.connolly@linaro.org> wrote: > > > > On 09/01/2024 06:07, Sumit Garg wrote: > > On Fri, 5 Jan 2024 at 19:15, Caleb Connolly <caleb.connolly@linaro.org> wrote: > >> > >> > >> > >> On 05/01/2024 13:14, Sumit Garg wrote: > >>> Hi Caleb, > >> > >> Hi Sumit, > >> > >> [snip] > >> > >>>> --- > >>>> I have tested this series on the Dragonboard410c, Dragonboard820c, and > >>> > >>> This series fails to boot (without any U-Boot console print) on > >>> db410c. I even added below pinctrl change but without any success: > >> > >> Are you chainloading from aboot? Or flashing over it? > >> > > > > I am using the default mode where U-Boot acts as the first stage > > bootloader. I suppose it worked for you since LK enabled drivers which > > were just reused by U-Boot. > > + Stephan, could you maybe give this a try at some point? > > Right, although the lack of any output probably indicates that U-Boot > code isn't getting run for some reason. Could you check if disabling > LINUX_KERNEL_IMAGE_HEADER (remove the select in arch/arm/Kconfig) helps? > It was *theorised* that this shouldn't cause any issues but not tested. So I did: diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 5ed9cbf378f..61192fb4a43 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1077,8 +1077,6 @@ config ARCH_SNAPDRAGON select SPMI select BOARD_LATE_INIT select OF_BOARD - select SAVE_PREV_BL_FDT_ADDR - select LINUX_KERNEL_IMAGE_HEADER imply CMD_DM config ARCH_SOCFPGA But it didn't help. > > Oh yeah, you should also hardcode the memory layout in DTS, this got > lost when moving to upstream DT and it's needed for the case where we > don't have ABL/LK to fill it in for us. I see you have still preserved arch/arm/dts/dragonboard410c.dts with memory layout. I switched to it via: diff --git a/configs/dragonboard410c_defconfig b/configs/dragonboard410c_defconfig index a9a48c2212d..600d614643f 100644 --- a/configs/dragonboard410c_defconfig +++ b/configs/dragonboard410c_defconfig @@ -9,7 +9,7 @@ CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x8007fff0 CONFIG_ENV_SIZE=0x2000 CONFIG_ENV_OFFSET=0x0 -CONFIG_DEFAULT_DEVICE_TREE="apq8016-sbc" +CONFIG_DEFAULT_DEVICE_TREE="dragonboard410c" CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_IDENT_STRING="\nQualcomm-DragonBoard 410C" CONFIG_SYS_LOAD_ADDR=0x80080000 But that didn't help it to boot, still no U-Boot console log. > > > >> I have only been able to validate the chainloading method, following the > >> steps in doc/board/qualcomm/board.rst and generating the config with > >> > >> make dragonboard410c_defconfig chainloaded.config > >> > >> do you get any output at all? > > > > No output from U-Boot. Last prints from SBL1: > > > > <snip> > > D - 299022 - SBL1, Delta > > S - Flash Throughput, 81000 KB/s (1537656 Bytes, 18940 us) > > S - DDR Frequency, 400 MHz > > > >> Can you try enabling debug UART output as > >> documented in doc/board/qualcomm/debugging.rst? > > > > I did but it didn't help. > > Hmm, I doubt SBL turns off the UART clock, so the DEBUG_UART ought to > work - but this has not been tested so there could be something missing. > Maybe you can try calling msm_uart_clk_init() from _debug_uart_init(). The driver model isn't available for DEBUG_UART, so it can directly invoke msm_uart_clk_init(). > > > >> > >> The pinctrl fix shouldn't be needed to boot to a shell. > > > > While at it, I noticed another pinctrl issue which should be fixed by > > following diff: > > > > diff --git a/drivers/serial/serial_msm.c b/drivers/serial/serial_msm.c > > index 0148ddb54df..6fe7bdd1dca 100644 > > --- a/drivers/serial/serial_msm.c > > +++ b/drivers/serial/serial_msm.c > > @@ -204,7 +204,7 @@ static int msm_serial_probe(struct udevice *dev) > > if (ret) > > return ret; > > > > - pinctrl_select_state(dev, "uart"); > > + pinctrl_select_state(dev, "default"); > > uart_dm_init(priv); > > > > return 0; > > > > But this still didn't fix the boot problem. As you have the board in > > your hand, I would suggest you to debug to avoid this back and forth. > > I don't have the board unfortunately, only remote access - hence I can > only debug the chainloaded U-Boot and not "u-boot1st" (or however we > call it :P). Sorry. I can help keep digging in but since this series overhauls db410c support I expected it to be at least tested. -Sumit > > > > -Sumit > > > >> > >> Thanks, > >>> > >>> diff --git a/drivers/pinctrl/qcom/pinctrl-apq8016.c > >>> b/drivers/pinctrl/qcom/pinctrl-apq8016.c > >>> index 8e698085d78..88518845952 100644 > >>> --- a/drivers/pinctrl/qcom/pinctrl-apq8016.c > >>> +++ b/drivers/pinctrl/qcom/pinctrl-apq8016.c > >>> @@ -42,7 +42,7 @@ static const char *apq8016_get_pin_name(struct udevice *dev, > >>> unsigned int selector) > >>> { > >>> if (selector < 122) { > >>> - snprintf(pin_name, MAX_PIN_NAME_LEN, "GPIO_%u", selector); > >>> + snprintf(pin_name, MAX_PIN_NAME_LEN, "gpio%u", selector); > >>> return pin_name; > >>> } else { > >>> return msm_pinctrl_pins[selector - 122]; > >>> > >>> > >>>> Dragonboard845c. I unfortunately don't have access to a QCS404 EVB board > >>>> to test. > >>> > >>> db820c and qcs404 require a similar pinctrl change though. > >>> > >>> -Sumit > >>> > >>>> > >>>> This series is based on the qcom-next branch [1] and depends on my PMIC > >>>> fixes series [2], an integration branch for testing can be found at [3]. > >>>> The non-qualcomm-specific changes (patches 1 and 2) don't have any > >>>> dependencies. > >>>> > >>>> [1]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon > >>>> [2]: https://lore.kernel.org/u-boot/20231114-b4-qcom-dt-compat-v3-0-88a92f8f00ba@linaro.org/ > >>>> [3]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/tree/b4/qcom-common-target > >>>> > >>>> --- > >>>> Changes in v2: > >>>> - Split DTS changes to reduce patch size. > >>>> - Import full board DTS files from Linux too, and introduce -u-boot.dtsi > >>>> files where necessary to make any U-Boot specific changes. > >>>> - Add a pinctrl driver for qcom PMIC GPIOs > >>>> - Always enable LINUX_KERNEL_IMAGE_HEADER > >>>> - Link to v1: https://lore.kernel.org/r/20231121-b4-qcom-common-target-v1-0-9492198e0c15@linaro.org > >>>> > >>>> To: Neil Armstrong <neil.armstrong@linaro.org> > >>>> To: Sumit Garg <sumit.garg@linaro.org> > >>>> To: Ramon Fried <rfried.dev@gmail.com> > >>>> Cc: Marek Vasut <marex@denx.de> > >>>> To: Dzmitry Sankouski <dsankouski@gmail.com> > >>>> To: Caleb Connolly <caleb.connolly@linaro.org> > >>>> To: Peng Fan <peng.fan@nxp.com> > >>>> To: Jaehoon Chung <jh80.chung@samsung.com> > >>>> To: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com> > >>>> To: Lukasz Majewski <lukma@denx.de> > >>>> To: Sean Anderson <seanga2@gmail.com> > >>>> To: Jorge Ramirez-Ortiz <jorge.ramirez.ortiz@gmail.com> > >>>> To: Stephan Gerhold <stephan@gerhold.net> > >>>> Cc: <u-boot@lists.denx.de> > >>>> > >>>> --- > >>>> Caleb Connolly (32): > >>>> arm: init: export prev_bl_fdt_addr > >>>> usb: dwc3-generic: support external vbus regulator > >>>> mmc: msm_sdhci: use modern clock handling > >>>> dt-bindings: drop msm_sdhci binding > >>>> clk/qcom: use upstream compatible properties > >>>> serial: msm: add debug UART > >>>> serial: msm: fix clock handling > >>>> gpio: qcom_pmic: 1-based GPIOs > >>>> gpio: qcom_pmic: add a quirk to skip GPIO configuration > >>>> gpio: qcom_pmic: add pinctrl driver > >>>> board: dragonboard410c: add chainloaded config fragment > >>>> board: dragonboard410c: upstream DT compat > >>>> board: dragonboard410c: import board code from mach-snapdragon > >>>> board: dragonboard820c: use LINUX_KERNEL_IMAGE_HEADER > >>>> mach-snapdragon: generalise board support > >>>> mach-snapdragon: dynamic load addresses > >>>> mach-snapdragon: generate fdtfile automatically > >>>> doc: board/qualcomm: document generic targets > >>>> dt-bindings: import headers for SDM845 > >>>> dts: sdm845: import supporting dtsi files > >>>> dts: sdm845: replace with upstream DTS > >>>> dt-bindings: import headers for MSM8916 > >>>> dts: msm8916: import PMIC dtsi files > >>>> dts: msm8916: replace with upstream DTS > >>>> dt-bindings: import headers for MSM8996 > >>>> dts: msm8996: import PMIC dtsi files > >>>> dts: dragonboard820c: use correct bindings for clocks > >>>> dts: msm8996: replace with upstream DTS > >>>> dt-bindings: import headers for qcs404 > >>>> dts: qcs404-evb: replace with upstream DT > >>>> board: qcs404-evb: drop board code > >>>> MAINTAINERS: Qualcomm: add some missing paths > >>>> > >>>> MAINTAINERS | 12 +- > >>>> arch/arm/Kconfig | 4 + > >>>> arch/arm/dts/Makefile | 9 +- > >>>> arch/arm/dts/apq8016-sbc.dts | 729 +++ > >>>> arch/arm/dts/apq8096-db820c-u-boot.dtsi | 10 + > >>>> arch/arm/dts/apq8096-db820c.dts | 1137 ++++ > >>>> arch/arm/dts/dragonboard410c-uboot.dtsi | 44 - > >>>> arch/arm/dts/dragonboard410c.dts | 199 +- > >>>> arch/arm/dts/dragonboard820c-uboot.dtsi | 32 - > >>>> arch/arm/dts/dragonboard820c.dts | 151 - > >>>> arch/arm/dts/dragonboard845c-uboot.dtsi | 26 - > >>>> arch/arm/dts/dragonboard845c.dts | 48 - > >>>> arch/arm/dts/msm8916-pm8916.dtsi | 157 + > >>>> arch/arm/dts/msm8916.dtsi | 2702 +++++++++ > >>>> arch/arm/dts/msm8996.dtsi | 3884 +++++++++++++ > >>>> arch/arm/dts/pm8916.dtsi | 178 + > >>>> arch/arm/dts/pm8994.dtsi | 152 + > >>>> arch/arm/dts/pm8998.dtsi | 130 + > >>>> arch/arm/dts/pmi8994.dtsi | 65 + > >>>> arch/arm/dts/pmi8998.dtsi | 98 + > >>>> arch/arm/dts/pms405.dtsi | 149 + > >>>> arch/arm/dts/qcs404-evb-4000-u-boot.dtsi | 26 + > >>>> arch/arm/dts/qcs404-evb-4000.dts | 96 + > >>>> arch/arm/dts/qcs404-evb-uboot.dtsi | 30 - > >>>> arch/arm/dts/qcs404-evb.dts | 390 -- > >>>> arch/arm/dts/qcs404-evb.dtsi | 389 ++ > >>>> arch/arm/dts/qcs404.dtsi | 1829 ++++++ > >>>> arch/arm/dts/sdm845-db845c.dts | 1190 ++++ > >>>> .../arm/dts/sdm845-samsung-starqltechn-u-boot.dtsi | 16 + > >>>> arch/arm/dts/sdm845-samsung-starqltechn.dts | 624 +++ > >>>> arch/arm/dts/sdm845-wcd9340.dtsi | 86 + > >>>> arch/arm/dts/sdm845.dtsi | 5801 +++++++++++++++++++- > >>>> arch/arm/dts/starqltechn-uboot.dtsi | 27 - > >>>> arch/arm/dts/starqltechn.dts | 68 - > >>>> arch/arm/lib/save_prev_bl_data.c | 5 + > >>>> arch/arm/mach-snapdragon/Kconfig | 95 +- > >>>> arch/arm/mach-snapdragon/Makefile | 8 +- > >>>> arch/arm/mach-snapdragon/board.c | 304 + > >>>> arch/arm/mach-snapdragon/include/mach/dram.h | 12 - > >>>> arch/arm/mach-snapdragon/init_sdm845.c | 73 - > >>>> arch/arm/mach-snapdragon/misc.c | 55 - > >>>> arch/arm/mach-snapdragon/sysmap-apq8016.c | 31 - > >>>> arch/arm/mach-snapdragon/sysmap-apq8096.c | 31 - > >>>> arch/arm/mach-snapdragon/sysmap-qcs404.c | 43 - > >>>> arch/arm/mach-snapdragon/sysmap-sdm845.c | 31 - > >>>> board/qualcomm/dragonboard410c/Kconfig | 15 - > >>>> board/qualcomm/dragonboard410c/Makefile | 3 +- > >>>> .../dragonboard410c/configs/chainloaded.config | 7 + > >>>> board/qualcomm/dragonboard410c/dragonboard410c.c | 109 +- > >>>> .../qualcomm/dragonboard410c/misc.c | 51 +- > >>>> .../mach => board/qualcomm/dragonboard410c}/misc.h | 1 + > >>>> board/qualcomm/dragonboard820c/Kconfig | 15 - > >>>> board/qualcomm/dragonboard820c/Makefile | 1 - > >>>> board/qualcomm/dragonboard820c/dragonboard820c.c | 39 +- > >>>> board/qualcomm/dragonboard820c/head.S | 33 - > >>>> board/qualcomm/dragonboard820c/u-boot.lds | 111 - > >>>> board/qualcomm/dragonboard845c/Kconfig | 12 - > >>>> board/qualcomm/qcs404-evb/Kconfig | 15 - > >>>> board/qualcomm/qcs404-evb/Makefile | 6 - > >>>> board/qualcomm/qcs404-evb/qcs404-evb.c | 62 - > >>>> configs/dragonboard410c_defconfig | 8 +- > >>>> configs/dragonboard820c_defconfig | 8 +- > >>>> configs/dragonboard845c_defconfig | 29 - > >>>> configs/qcom_defconfig | 73 + > >>>> configs/qcs404evb_defconfig | 55 - > >>>> configs/starqltechn_defconfig | 41 - > >>>> doc/board/qualcomm/board.rst | 119 + > >>>> doc/board/qualcomm/debugging.rst | 61 + > >>>> doc/board/qualcomm/index.rst | 4 +- > >>>> doc/board/qualcomm/qcs404.rst | 79 - > >>>> doc/board/qualcomm/sdm845.rst | 162 - > >>>> doc/device-tree-bindings/mmc/msm_sdhci.txt | 25 - > >>>> doc/device-tree-bindings/usb/ehci-msm.txt | 10 - > >>>> drivers/clk/qcom/clock-apq8016.c | 9 +- > >>>> drivers/clk/qcom/clock-apq8096.c | 7 +- > >>>> drivers/gpio/qcom_pmic_gpio.c | 232 +- > >>>> drivers/mmc/msm_sdhci.c | 69 +- > >>>> drivers/phy/qcom/msm8916-usbh-phy.c | 4 +- > >>>> drivers/pinctrl/qcom/pinctrl-apq8016.c | 2 +- > >>>> drivers/serial/Kconfig | 8 + > >>>> drivers/serial/serial_msm.c | 56 +- > >>>> drivers/usb/dwc3/dwc3-generic.c | 12 + > >>>> drivers/usb/host/ehci-msm.c | 24 +- > >>>> include/configs/dragonboard845c.h | 20 - > >>>> include/configs/qcom.h | 21 + > >>>> include/configs/qcs404-evb.h | 20 - > >>>> include/configs/sdm845.h | 26 - > >>>> include/dt-bindings/arm/coresight-cti-dt.h | 37 + > >>>> include/dt-bindings/clock/qcom,camcc-sdm845.h | 116 + > >>>> include/dt-bindings/clock/qcom,dispcc-sdm845.h | 56 + > >>>> include/dt-bindings/clock/qcom,gcc-msm8916.h | 179 + > >>>> include/dt-bindings/clock/qcom,gcc-msm8996.h | 360 ++ > >>>> include/dt-bindings/clock/qcom,gpucc-sdm845.h | 24 + > >>>> include/dt-bindings/clock/qcom,lpass-sdm845.h | 15 + > >>>> include/dt-bindings/clock/qcom,mmcc-msm8996.h | 295 + > >>>> include/dt-bindings/clock/qcom,rpmcc.h | 174 + > >>>> include/dt-bindings/clock/qcom,rpmh.h | 37 + > >>>> include/dt-bindings/clock/qcom,turingcc-qcs404.h | 15 + > >>>> include/dt-bindings/clock/qcom,videocc-sdm845.h | 35 + > >>>> include/dt-bindings/dma/qcom-gpi.h | 11 + > >>>> include/dt-bindings/firmware/qcom,scm.h | 18 + > >>>> include/dt-bindings/iio/qcom,spmi-vadc.h | 300 + > >>>> include/dt-bindings/interconnect/qcom,msm8916.h | 100 + > >>>> .../dt-bindings/interconnect/qcom,msm8996-cbf.h | 12 + > >>>> include/dt-bindings/interconnect/qcom,msm8996.h | 163 + > >>>> include/dt-bindings/interconnect/qcom,osm-l3.h | 15 + > >>>> include/dt-bindings/interconnect/qcom,sdm845.h | 150 + > >>>> include/dt-bindings/phy/phy-qcom-qmp.h | 20 + > >>>> include/dt-bindings/phy/phy-qcom-qusb2.h | 37 + > >>>> include/dt-bindings/pinctrl/qcom,pmic-gpio.h | 164 + > >>>> include/dt-bindings/pinctrl/qcom,pmic-mpp.h | 106 + > >>>> include/dt-bindings/power/qcom-rpmpd.h | 412 ++ > >>>> include/dt-bindings/qcom,q6asm.h | 26 + > >>>> .../dt-bindings/regulator/qcom,rpmh-regulator.h | 36 + > >>>> include/dt-bindings/reset/qcom,gcc-msm8916.h | 100 + > >>>> include/dt-bindings/reset/qcom,sdm845-aoss.h | 17 + > >>>> include/dt-bindings/reset/qcom,sdm845-pdc.h | 22 + > >>>> include/dt-bindings/soc/qcom,apr.h | 28 + > >>>> include/dt-bindings/soc/qcom,rpmh-rsc.h | 14 + > >>>> include/dt-bindings/sound/apq8016-lpass.h | 9 + > >>>> include/dt-bindings/sound/qcom,lpass.h | 46 + > >>>> include/dt-bindings/sound/qcom,q6afe.h | 9 + > >>>> include/dt-bindings/sound/qcom,q6asm.h | 26 + > >>>> include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h | 234 + > >>>> include/dt-bindings/sound/qcom,wcd9335.h | 15 + > >>>> include/init.h | 11 + > >>>> 126 files changed, 23909 insertions(+), 2375 deletions(-) > >>>> --- > >>>> base-commit: bcb4a9ddbd21a61b5b421ba374a785757bd28c80 > >>>> > >>>> // Caleb (they/them) > >>>> > >> > >> -- > >> // Caleb (they/them) > > -- > // Caleb (they/them)
On Fri, 22 Dec 2023 at 12:36, Sumit Garg <sumit.garg@linaro.org> wrote: > > On Thu, 21 Dec 2023 at 21:08, Caleb Connolly <caleb.connolly@linaro.org> wrote: > > > > > > > > On 20/12/2023 13:07, Sumit Garg wrote: > > > Hi Caleb, > > > > Hi Sumit, > > > > [...] > > > > >> > > >> == Upstream DT == > > >> > > >> All Qualcomm boards have had their devicetree files replaced with the > > >> upstream versions. Previous patch series made the necessary driver > > >> adjustments to fully support the upstream DT format. All future > > >> Qualcomm boards should use upstream DTS by default. > > >> > > >> Once Sumit's work to import dt-rebasing has been merged, we will drop > > >> the imported DT and bindings again. > > > > > > Since there is consensus building in the U-Boot community to use DT > > > rebasing subtree, I would suggest you rebase your work on top of [1]. > > > You can take an amlogic SoC patch [2] as a reference and see > > > corresponding value-add. I don't see the point of unnecessary churn if > > > there is consensus we agree upon. > > > > > > I designed this so that we can just delete the imported stuff once the > > dt-rebasing series is merged. Importing a few files and deleting them > > later is not really a big deal, so please let's not block fixing > > Qualcomm support on this tangentially related series. > > Fair enough, I think I can live with that for the time being. Let me > give this series a spin on QCS404. Just to update here, this series doesn't boot on QCS404. Internally I am working with Caleb to fix issues seen. One of the major issues was to not map reserved memory ranges in U-Boot as mapping then leads to a hang on QCS404 (see [1] for details). [1] https://github.com/u-boot/u-boot/commit/881338a0c6686bbcf043275714d43080b746b17e -Sumit > > > > > Thanks, > > > > > > > > [1] https://lore.kernel.org/all/20231214135103.1606605-1-sumit.garg@linaro.org/ > > > [2] https://lore.kernel.org/all/20231214135103.1606605-8-sumit.garg@linaro.org/ > > > > > >> > > > > -- > > // Caleb (they/them)
On Tue, Jan 9, 2024 at 1:33 PM Caleb Connolly <caleb.connolly@linaro.org> wrote: > > > > On 09/01/2024 06:07, Sumit Garg wrote: > > On Fri, 5 Jan 2024 at 19:15, Caleb Connolly <caleb.connolly@linaro.org> wrote: > >> > >> > >> > >> On 05/01/2024 13:14, Sumit Garg wrote: > >>> Hi Caleb, > >> > >> Hi Sumit, > >> > >> [snip] > >> > >>>> --- > >>>> I have tested this series on the Dragonboard410c, Dragonboard820c, and > >>> > >>> This series fails to boot (without any U-Boot console print) on > >>> db410c. I even added below pinctrl change but without any success: > >> > >> Are you chainloading from aboot? Or flashing over it? > >> > > > > I am using the default mode where U-Boot acts as the first stage > > bootloader. I suppose it worked for you since LK enabled drivers which > > were just reused by U-Boot. > > + Stephan, could you maybe give this a try at some point? > > Right, although the lack of any output probably indicates that U-Boot > code isn't getting run for some reason. Could you check if disabling > LINUX_KERNEL_IMAGE_HEADER (remove the select in arch/arm/Kconfig) helps? > It was *theorised* that this shouldn't cause any issues but not tested. > > Oh yeah, you should also hardcode the memory layout in DTS, this got > lost when moving to upstream DT and it's needed for the case where we > don't have ABL/LK to fill it in for us. > > > >> I have only been able to validate the chainloading method, following the > >> steps in doc/board/qualcomm/board.rst and generating the config with > >> > >> make dragonboard410c_defconfig chainloaded.config > >> > >> do you get any output at all? > > > > No output from U-Boot. Last prints from SBL1: > > > > <snip> > > D - 299022 - SBL1, Delta > > S - Flash Throughput, 81000 KB/s (1537656 Bytes, 18940 us) > > S - DDR Frequency, 400 MHz > > > >> Can you try enabling debug UART output as > >> documented in doc/board/qualcomm/debugging.rst? > > > > I did but it didn't help. > > Hmm, I doubt SBL turns off the UART clock, so the DEBUG_UART ought to > work - but this has not been tested so there could be something missing. > Maybe you can try calling msm_uart_clk_init() from _debug_uart_init(). If I recall correctly when I initially started working on the direct boot, SBL closes all the clocks and everything must be re-initialized. > > > >> > >> The pinctrl fix shouldn't be needed to boot to a shell. > > > > While at it, I noticed another pinctrl issue which should be fixed by > > following diff: > > > > diff --git a/drivers/serial/serial_msm.c b/drivers/serial/serial_msm.c > > index 0148ddb54df..6fe7bdd1dca 100644 > > --- a/drivers/serial/serial_msm.c > > +++ b/drivers/serial/serial_msm.c > > @@ -204,7 +204,7 @@ static int msm_serial_probe(struct udevice *dev) > > if (ret) > > return ret; > > > > - pinctrl_select_state(dev, "uart"); > > + pinctrl_select_state(dev, "default"); > > uart_dm_init(priv); > > > > return 0; > > > > But this still didn't fix the boot problem. As you have the board in > > your hand, I would suggest you to debug to avoid this back and forth. > > I don't have the board unfortunately, only remote access - hence I can > only debug the chainloaded U-Boot and not "u-boot1st" (or however we > call it :P). Sorry. > > > > -Sumit > > > >> > >> Thanks, > >>> > >>> diff --git a/drivers/pinctrl/qcom/pinctrl-apq8016.c > >>> b/drivers/pinctrl/qcom/pinctrl-apq8016.c > >>> index 8e698085d78..88518845952 100644 > >>> --- a/drivers/pinctrl/qcom/pinctrl-apq8016.c > >>> +++ b/drivers/pinctrl/qcom/pinctrl-apq8016.c > >>> @@ -42,7 +42,7 @@ static const char *apq8016_get_pin_name(struct udevice *dev, > >>> unsigned int selector) > >>> { > >>> if (selector < 122) { > >>> - snprintf(pin_name, MAX_PIN_NAME_LEN, "GPIO_%u", selector); > >>> + snprintf(pin_name, MAX_PIN_NAME_LEN, "gpio%u", selector); > >>> return pin_name; > >>> } else { > >>> return msm_pinctrl_pins[selector - 122]; > >>> > >>> > >>>> Dragonboard845c. I unfortunately don't have access to a QCS404 EVB board > >>>> to test. > >>> > >>> db820c and qcs404 require a similar pinctrl change though. > >>> > >>> -Sumit > >>> > >>>> > >>>> This series is based on the qcom-next branch [1] and depends on my PMIC > >>>> fixes series [2], an integration branch for testing can be found at [3]. > >>>> The non-qualcomm-specific changes (patches 1 and 2) don't have any > >>>> dependencies. > >>>> > >>>> [1]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon > >>>> [2]: https://lore.kernel.org/u-boot/20231114-b4-qcom-dt-compat-v3-0-88a92f8f00ba@linaro.org/ > >>>> [3]: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/tree/b4/qcom-common-target > >>>> > >>>> --- > >>>> Changes in v2: > >>>> - Split DTS changes to reduce patch size. > >>>> - Import full board DTS files from Linux too, and introduce -u-boot.dtsi > >>>> files where necessary to make any U-Boot specific changes. > >>>> - Add a pinctrl driver for qcom PMIC GPIOs > >>>> - Always enable LINUX_KERNEL_IMAGE_HEADER > >>>> - Link to v1: https://lore.kernel.org/r/20231121-b4-qcom-common-target-v1-0-9492198e0c15@linaro.org > >>>> > >>>> To: Neil Armstrong <neil.armstrong@linaro.org> > >>>> To: Sumit Garg <sumit.garg@linaro.org> > >>>> To: Ramon Fried <rfried.dev@gmail.com> > >>>> Cc: Marek Vasut <marex@denx.de> > >>>> To: Dzmitry Sankouski <dsankouski@gmail.com> > >>>> To: Caleb Connolly <caleb.connolly@linaro.org> > >>>> To: Peng Fan <peng.fan@nxp.com> > >>>> To: Jaehoon Chung <jh80.chung@samsung.com> > >>>> To: Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com> > >>>> To: Lukasz Majewski <lukma@denx.de> > >>>> To: Sean Anderson <seanga2@gmail.com> > >>>> To: Jorge Ramirez-Ortiz <jorge.ramirez.ortiz@gmail.com> > >>>> To: Stephan Gerhold <stephan@gerhold.net> > >>>> Cc: <u-boot@lists.denx.de> > >>>> > >>>> --- > >>>> Caleb Connolly (32): > >>>> arm: init: export prev_bl_fdt_addr > >>>> usb: dwc3-generic: support external vbus regulator > >>>> mmc: msm_sdhci: use modern clock handling > >>>> dt-bindings: drop msm_sdhci binding > >>>> clk/qcom: use upstream compatible properties > >>>> serial: msm: add debug UART > >>>> serial: msm: fix clock handling > >>>> gpio: qcom_pmic: 1-based GPIOs > >>>> gpio: qcom_pmic: add a quirk to skip GPIO configuration > >>>> gpio: qcom_pmic: add pinctrl driver > >>>> board: dragonboard410c: add chainloaded config fragment > >>>> board: dragonboard410c: upstream DT compat > >>>> board: dragonboard410c: import board code from mach-snapdragon > >>>> board: dragonboard820c: use LINUX_KERNEL_IMAGE_HEADER > >>>> mach-snapdragon: generalise board support > >>>> mach-snapdragon: dynamic load addresses > >>>> mach-snapdragon: generate fdtfile automatically > >>>> doc: board/qualcomm: document generic targets > >>>> dt-bindings: import headers for SDM845 > >>>> dts: sdm845: import supporting dtsi files > >>>> dts: sdm845: replace with upstream DTS > >>>> dt-bindings: import headers for MSM8916 > >>>> dts: msm8916: import PMIC dtsi files > >>>> dts: msm8916: replace with upstream DTS > >>>> dt-bindings: import headers for MSM8996 > >>>> dts: msm8996: import PMIC dtsi files > >>>> dts: dragonboard820c: use correct bindings for clocks > >>>> dts: msm8996: replace with upstream DTS > >>>> dt-bindings: import headers for qcs404 > >>>> dts: qcs404-evb: replace with upstream DT > >>>> board: qcs404-evb: drop board code > >>>> MAINTAINERS: Qualcomm: add some missing paths > >>>> > >>>> MAINTAINERS | 12 +- > >>>> arch/arm/Kconfig | 4 + > >>>> arch/arm/dts/Makefile | 9 +- > >>>> arch/arm/dts/apq8016-sbc.dts | 729 +++ > >>>> arch/arm/dts/apq8096-db820c-u-boot.dtsi | 10 + > >>>> arch/arm/dts/apq8096-db820c.dts | 1137 ++++ > >>>> arch/arm/dts/dragonboard410c-uboot.dtsi | 44 - > >>>> arch/arm/dts/dragonboard410c.dts | 199 +- > >>>> arch/arm/dts/dragonboard820c-uboot.dtsi | 32 - > >>>> arch/arm/dts/dragonboard820c.dts | 151 - > >>>> arch/arm/dts/dragonboard845c-uboot.dtsi | 26 - > >>>> arch/arm/dts/dragonboard845c.dts | 48 - > >>>> arch/arm/dts/msm8916-pm8916.dtsi | 157 + > >>>> arch/arm/dts/msm8916.dtsi | 2702 +++++++++ > >>>> arch/arm/dts/msm8996.dtsi | 3884 +++++++++++++ > >>>> arch/arm/dts/pm8916.dtsi | 178 + > >>>> arch/arm/dts/pm8994.dtsi | 152 + > >>>> arch/arm/dts/pm8998.dtsi | 130 + > >>>> arch/arm/dts/pmi8994.dtsi | 65 + > >>>> arch/arm/dts/pmi8998.dtsi | 98 + > >>>> arch/arm/dts/pms405.dtsi | 149 + > >>>> arch/arm/dts/qcs404-evb-4000-u-boot.dtsi | 26 + > >>>> arch/arm/dts/qcs404-evb-4000.dts | 96 + > >>>> arch/arm/dts/qcs404-evb-uboot.dtsi | 30 - > >>>> arch/arm/dts/qcs404-evb.dts | 390 -- > >>>> arch/arm/dts/qcs404-evb.dtsi | 389 ++ > >>>> arch/arm/dts/qcs404.dtsi | 1829 ++++++ > >>>> arch/arm/dts/sdm845-db845c.dts | 1190 ++++ > >>>> .../arm/dts/sdm845-samsung-starqltechn-u-boot.dtsi | 16 + > >>>> arch/arm/dts/sdm845-samsung-starqltechn.dts | 624 +++ > >>>> arch/arm/dts/sdm845-wcd9340.dtsi | 86 + > >>>> arch/arm/dts/sdm845.dtsi | 5801 +++++++++++++++++++- > >>>> arch/arm/dts/starqltechn-uboot.dtsi | 27 - > >>>> arch/arm/dts/starqltechn.dts | 68 - > >>>> arch/arm/lib/save_prev_bl_data.c | 5 + > >>>> arch/arm/mach-snapdragon/Kconfig | 95 +- > >>>> arch/arm/mach-snapdragon/Makefile | 8 +- > >>>> arch/arm/mach-snapdragon/board.c | 304 + > >>>> arch/arm/mach-snapdragon/include/mach/dram.h | 12 - > >>>> arch/arm/mach-snapdragon/init_sdm845.c | 73 - > >>>> arch/arm/mach-snapdragon/misc.c | 55 - > >>>> arch/arm/mach-snapdragon/sysmap-apq8016.c | 31 - > >>>> arch/arm/mach-snapdragon/sysmap-apq8096.c | 31 - > >>>> arch/arm/mach-snapdragon/sysmap-qcs404.c | 43 - > >>>> arch/arm/mach-snapdragon/sysmap-sdm845.c | 31 - > >>>> board/qualcomm/dragonboard410c/Kconfig | 15 - > >>>> board/qualcomm/dragonboard410c/Makefile | 3 +- > >>>> .../dragonboard410c/configs/chainloaded.config | 7 + > >>>> board/qualcomm/dragonboard410c/dragonboard410c.c | 109 +- > >>>> .../qualcomm/dragonboard410c/misc.c | 51 +- > >>>> .../mach => board/qualcomm/dragonboard410c}/misc.h | 1 + > >>>> board/qualcomm/dragonboard820c/Kconfig | 15 - > >>>> board/qualcomm/dragonboard820c/Makefile | 1 - > >>>> board/qualcomm/dragonboard820c/dragonboard820c.c | 39 +- > >>>> board/qualcomm/dragonboard820c/head.S | 33 - > >>>> board/qualcomm/dragonboard820c/u-boot.lds | 111 - > >>>> board/qualcomm/dragonboard845c/Kconfig | 12 - > >>>> board/qualcomm/qcs404-evb/Kconfig | 15 - > >>>> board/qualcomm/qcs404-evb/Makefile | 6 - > >>>> board/qualcomm/qcs404-evb/qcs404-evb.c | 62 - > >>>> configs/dragonboard410c_defconfig | 8 +- > >>>> configs/dragonboard820c_defconfig | 8 +- > >>>> configs/dragonboard845c_defconfig | 29 - > >>>> configs/qcom_defconfig | 73 + > >>>> configs/qcs404evb_defconfig | 55 - > >>>> configs/starqltechn_defconfig | 41 - > >>>> doc/board/qualcomm/board.rst | 119 + > >>>> doc/board/qualcomm/debugging.rst | 61 + > >>>> doc/board/qualcomm/index.rst | 4 +- > >>>> doc/board/qualcomm/qcs404.rst | 79 - > >>>> doc/board/qualcomm/sdm845.rst | 162 - > >>>> doc/device-tree-bindings/mmc/msm_sdhci.txt | 25 - > >>>> doc/device-tree-bindings/usb/ehci-msm.txt | 10 - > >>>> drivers/clk/qcom/clock-apq8016.c | 9 +- > >>>> drivers/clk/qcom/clock-apq8096.c | 7 +- > >>>> drivers/gpio/qcom_pmic_gpio.c | 232 +- > >>>> drivers/mmc/msm_sdhci.c | 69 +- > >>>> drivers/phy/qcom/msm8916-usbh-phy.c | 4 +- > >>>> drivers/pinctrl/qcom/pinctrl-apq8016.c | 2 +- > >>>> drivers/serial/Kconfig | 8 + > >>>> drivers/serial/serial_msm.c | 56 +- > >>>> drivers/usb/dwc3/dwc3-generic.c | 12 + > >>>> drivers/usb/host/ehci-msm.c | 24 +- > >>>> include/configs/dragonboard845c.h | 20 - > >>>> include/configs/qcom.h | 21 + > >>>> include/configs/qcs404-evb.h | 20 - > >>>> include/configs/sdm845.h | 26 - > >>>> include/dt-bindings/arm/coresight-cti-dt.h | 37 + > >>>> include/dt-bindings/clock/qcom,camcc-sdm845.h | 116 + > >>>> include/dt-bindings/clock/qcom,dispcc-sdm845.h | 56 + > >>>> include/dt-bindings/clock/qcom,gcc-msm8916.h | 179 + > >>>> include/dt-bindings/clock/qcom,gcc-msm8996.h | 360 ++ > >>>> include/dt-bindings/clock/qcom,gpucc-sdm845.h | 24 + > >>>> include/dt-bindings/clock/qcom,lpass-sdm845.h | 15 + > >>>> include/dt-bindings/clock/qcom,mmcc-msm8996.h | 295 + > >>>> include/dt-bindings/clock/qcom,rpmcc.h | 174 + > >>>> include/dt-bindings/clock/qcom,rpmh.h | 37 + > >>>> include/dt-bindings/clock/qcom,turingcc-qcs404.h | 15 + > >>>> include/dt-bindings/clock/qcom,videocc-sdm845.h | 35 + > >>>> include/dt-bindings/dma/qcom-gpi.h | 11 + > >>>> include/dt-bindings/firmware/qcom,scm.h | 18 + > >>>> include/dt-bindings/iio/qcom,spmi-vadc.h | 300 + > >>>> include/dt-bindings/interconnect/qcom,msm8916.h | 100 + > >>>> .../dt-bindings/interconnect/qcom,msm8996-cbf.h | 12 + > >>>> include/dt-bindings/interconnect/qcom,msm8996.h | 163 + > >>>> include/dt-bindings/interconnect/qcom,osm-l3.h | 15 + > >>>> include/dt-bindings/interconnect/qcom,sdm845.h | 150 + > >>>> include/dt-bindings/phy/phy-qcom-qmp.h | 20 + > >>>> include/dt-bindings/phy/phy-qcom-qusb2.h | 37 + > >>>> include/dt-bindings/pinctrl/qcom,pmic-gpio.h | 164 + > >>>> include/dt-bindings/pinctrl/qcom,pmic-mpp.h | 106 + > >>>> include/dt-bindings/power/qcom-rpmpd.h | 412 ++ > >>>> include/dt-bindings/qcom,q6asm.h | 26 + > >>>> .../dt-bindings/regulator/qcom,rpmh-regulator.h | 36 + > >>>> include/dt-bindings/reset/qcom,gcc-msm8916.h | 100 + > >>>> include/dt-bindings/reset/qcom,sdm845-aoss.h | 17 + > >>>> include/dt-bindings/reset/qcom,sdm845-pdc.h | 22 + > >>>> include/dt-bindings/soc/qcom,apr.h | 28 + > >>>> include/dt-bindings/soc/qcom,rpmh-rsc.h | 14 + > >>>> include/dt-bindings/sound/apq8016-lpass.h | 9 + > >>>> include/dt-bindings/sound/qcom,lpass.h | 46 + > >>>> include/dt-bindings/sound/qcom,q6afe.h | 9 + > >>>> include/dt-bindings/sound/qcom,q6asm.h | 26 + > >>>> include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h | 234 + > >>>> include/dt-bindings/sound/qcom,wcd9335.h | 15 + > >>>> include/init.h | 11 + > >>>> 126 files changed, 23909 insertions(+), 2375 deletions(-) > >>>> --- > >>>> base-commit: bcb4a9ddbd21a61b5b421ba374a785757bd28c80 > >>>> > >>>> // Caleb (they/them) > >>>> > >> > >> -- > >> // Caleb (they/them) > > -- > // Caleb (they/them)