U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 00/13] arm: u8500: Enable upstream DT based SD card boot
@ 2026-08-23 20:39 Linus Walleij
  2026-08-23 20:39 ` [PATCH v5 01/13] pinctrl: Add compact Nomadik pin controller Linus Walleij
                   ` (12 more replies)
  0 siblings, 13 replies; 26+ messages in thread
From: Linus Walleij @ 2026-08-23 20:39 UTC (permalink / raw)
  To: u-boot, Tom Rini, Stefan Hansson, Stephan Gerhold; +Cc: Linus Walleij

Switch the U8500 Stemmy configuration to the upstream Samsung Janice
device tree and enable booting an EFI system from the external SD card.

Add compact DB8500 pinctrl support for applying the default states from
the upstream device trees. Extend the PL180 driver to configure Ux500
signal direction and the SD card supply voltages.

The upstream device trees describe the SD card supplies through the
AB8500 or AB8505 PMIC. Add support for the AUX3 regulator used as
vmmc-supply, using the existing AB8500 PMIC driver for register access.
Enable fixed regulators for the vqmmc level shifters used on the other
supported Samsung boards.

Backport the pending Linux DTS fixes for Golden's duplicate regulator
name and GPIO key labels. These patches are pending but I am also the
Ux500 maintainer upstream and I will apply them. I put some backporting
placeholders into the patches since I can't apply v7.4 material before
v7.3-rc1 is out in a week. (Then I can provide hashes, if this is
necessary.)

The seven supported device trees are packaged into a FIT appended to U-Boot.
The Samsung firmware machine ID selects the matching tree at runtime. Codina
TMO shares the Codina machine ID and is distinguished by board ID. This keeps
the board-specific SD supplies, level-shifter GPIOs and MMCI signal-direction
settings in their respective device trees while using a single U-Boot binary.

This has been tested successfully to boot PostmarketOS on all the known
Sansung Ux500 devices using the EFI boot flow, with some minimal changes to
the PostmarketOS to use systemd-boot and compile in the right EFI kernel
configs and EFI stub.

Signed-off-by: Linus Walleij <linusw@kernel.org>
---
Changes in v5:
- Replace Golden U-Boot overlays with pending Linux DTS backports.
- Add a regulator clamp API in a separate preparatory patch.
- Select the closest supported initial SD supply voltage.
- Support the AB8505 VAUX3 3.05 V selector override.
- Recognize normal and low-power VAUX3 states as enabled.
- Recognize the alternate Gavini firmware machine ID 3296.
- Boot tested on all Ux500 devices including Gavini and Kyle.
- Link to v4: https://patch.msgid.link/20260819-ux500-external-sdcard-v4-0-f1c8c9ffac30@kernel.org

Changes in v4:
- Package all seven Stemmy device trees in an appended FIT.
- Select the Stemmy device tree using the firmware machine and board IDs.
- Print the firmware machine and board IDs for diagnostics.
- Link to v3: https://patch.msgid.link/20260818-ux500-external-sdcard-v3-0-a5d94930f3bb@kernel.org

Changes in v3:
- Disable unsupported DDR mode on the internal eMMC controller.
- Gate idle PL180 card clocks and honor clock-disable requests.
- Shut down PL180 card supplies at OS handoff.
- Skip global EFI boot entries when scanning the external SD card.
- Disable the unused WLAN SDIO controller in U-Boot.
- Remove the obsolete downstream Stemmy and DBx500 device trees.
- Provide a fixed clock for the internal eMMC controller.
- Enter fastboot when the volume-down button is held.
- Use standard DM helpers to bind the AB8500 AUX3 regulator.
- Select 3.3 V supplies for eMMC-only PL180 hosts.
- Use Nomadik DT-binding macros in the pinctrl driver.
- Link to v2: https://patch.msgid.link/20260817-ux500-external-sdcard-v2-0-ca9a110bd9c6@kernel.org

Changes in v2:
- Use the new mailing list address, no other changes.
- Link to v1: https://patch.msgid.link/20260817-ux500-external-sdcard-v1-0-ce1a2d3aa91d@kernel.org

---
Linus Walleij (13):
      pinctrl: Add compact Nomadik pin controller
      mmc: arm_pl180: Configure Ux500 signal direction
      mmc: arm_pl180: Gate idle card clocks
      power: regulator: Add driver voltage clamp callback
      mmc: arm_pl180: Set initial supply voltages
      mmc: arm_pl180: Power down card supplies at OS handoff
      power: regulator: Add AB8500 AUX3 support
      arm: u8500: Enable SD card regulators
      configs: stemmy: Boot EFI from external SD card
      arm: u8500: Switch Stemmy to upstream Janice device tree
      ARM: dts: ux500: Make panel regulators have unique names
      ARM: dts: ux500: Harmonize GPIO key names
      arm: u8500: Package Stemmy device trees in FIT

 MAINTAINERS                                        |    2 +
 arch/arm/Kconfig                                   |    6 +
 arch/arm/dts/Makefile                              |    1 -
 arch/arm/dts/ste-dbx5x0-u-boot.dtsi                |   38 -
 arch/arm/dts/ste-dbx5x0.dtsi                       | 1144 --------------------
 arch/arm/dts/ste-ux500-samsung-stemmy.dts          |   36 -
 arch/arm/dts/u8500-u-boot.dtsi                     |   30 +
 board/ste/stemmy/Kconfig                           |    6 +
 board/ste/stemmy/stemmy.c                          |   77 +-
 configs/stemmy_defconfig                           |    7 +-
 drivers/mmc/arm_pl180_mmci.c                       |   81 +-
 drivers/pinctrl/Kconfig                            |    7 +
 drivers/pinctrl/Makefile                           |    1 +
 drivers/pinctrl/pinctrl-nomadik.c                  |  230 ++++
 drivers/power/pmic/ab8500.c                        |    1 +
 drivers/power/regulator/Kconfig                    |    7 +
 drivers/power/regulator/Makefile                   |    1 +
 drivers/power/regulator/ab8500.c                   |  168 +++
 drivers/power/regulator/regulator-uclass.c         |    2 +
 .../src/arm/st/ste-ux500-samsung-golden.dts        |   10 +-
 include/power/regulator.h                          |    6 +
 21 files changed, 627 insertions(+), 1234 deletions(-)
---
base-commit: 0b581a9612e46310ee52bf8359165950d38b2a2b
change-id: 20260813-ux500-external-sdcard-a49778d77b21

Best regards,
--  
Linus Walleij <linusw@kernel.org>


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2026-08-25  7:43 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-23 20:39 [PATCH v5 00/13] arm: u8500: Enable upstream DT based SD card boot Linus Walleij
2026-08-23 20:39 ` [PATCH v5 01/13] pinctrl: Add compact Nomadik pin controller Linus Walleij
2026-08-24 13:17   ` Stephan Gerhold
2026-08-23 20:39 ` [PATCH v5 02/13] mmc: arm_pl180: Configure Ux500 signal direction Linus Walleij
2026-08-23 20:39 ` [PATCH v5 03/13] mmc: arm_pl180: Gate idle card clocks Linus Walleij
2026-08-24 13:25   ` Stephan Gerhold
2026-08-24 19:50     ` Linus Walleij
2026-08-23 20:39 ` [PATCH v5 04/13] power: regulator: Add driver voltage clamp callback Linus Walleij
2026-08-23 20:39 ` [PATCH v5 05/13] mmc: arm_pl180: Set initial supply voltages Linus Walleij
2026-08-23 20:39 ` [PATCH v5 06/13] mmc: arm_pl180: Power down card supplies at OS handoff Linus Walleij
2026-08-24 13:30   ` Stephan Gerhold
2026-08-24 20:01     ` Linus Walleij
2026-08-25  7:43       ` Stephan Gerhold
2026-08-23 20:39 ` [PATCH v5 07/13] power: regulator: Add AB8500 AUX3 support Linus Walleij
2026-08-24 13:45   ` Stephan Gerhold
2026-08-24 20:04     ` Linus Walleij
2026-08-23 20:39 ` [PATCH v5 08/13] arm: u8500: Enable SD card regulators Linus Walleij
2026-08-23 20:39 ` [PATCH v5 09/13] configs: stemmy: Boot EFI from external SD card Linus Walleij
2026-08-24 13:46   ` Stephan Gerhold
2026-08-23 20:39 ` [PATCH v5 10/13] arm: u8500: Switch Stemmy to upstream Janice device tree Linus Walleij
2026-08-24 13:55   ` Stephan Gerhold
2026-08-24 20:21     ` Linus Walleij
2026-08-23 20:39 ` [PATCH v5 11/13] ARM: dts: ux500: Make panel regulators have unique names Linus Walleij
2026-08-23 20:39 ` [PATCH v5 12/13] ARM: dts: ux500: Harmonize GPIO key names Linus Walleij
2026-08-23 20:39 ` [PATCH v5 13/13] arm: u8500: Package Stemmy device trees in FIT Linus Walleij
2026-08-24 13:59   ` Stephan Gerhold

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox