Identity
| Part | microSD slot (user-supplied card) |
| Role | Primary boot device for development |
| Bus / address | RK3399 sdmmc / DWMMC @ MMIO 0xfe320000, 4-bit data |
| GPIO / IRQ | Card-detect via dwmmc internal logic; no external GPIO |
| Datasheet | SD Physical Layer Specification |
| Pine64 wiki | PinePhone Pro Hardware |
| Schematic | sheet 4 (microSD routing) |
Status — ● working
The microSD slot enumerates at 50 MHz with 4-bit data, mounts UFS, and serves as the active boot route for every kernel built in this project. The Honeyguide image flashed with dd boots from here; every kernel rebuild lands in /boot/kernel/kernel on the same card. Primary development device.
Driver
- Our tree:
patches/sys/dev/mmc/host/dwmmc.c.patch— same controller family as the WiFisdio0host, not the eMMCsdhcihost. - Linux mainline:
drivers/mmc/host/dw_mmc-rockchip.c - FreeBSD upstream:
sys/dev/mmc/host/dwmmc.c
sdmmc is the slot under the back cover, exposed as mmcsd1 or mmcsd0 depending on probe order. The card-detect line is GPIO0_A7 in the DTS. 50 MHz / 4-bit is the SD high-speed spec; the controller supports SDR104 at 208 MHz but the FreeBSD driver does not yet negotiate UHS-I modes for this slot.
Open work
- UHS-I (SDR50/SDR104) support to push beyond 50 MHz when a fast card is inserted.
- Add the slot to the boot menu summary in the on-device welcome banner, since that’s the primary install target today.
Related
- Boot from SD with Honeyguide — the canonical bring-up path uses this slot.
- Internal eMMC — separate
sdhcicontroller. - SPI NOR (GD25LQ128) — holds the bootloader that hands off to this slot first under Megi’s U-Boot.
- Hardware reference — full chip manifest.