Appendix · reference

Internal eMMC (128 GiB)

Onboard flash on the RK3399 SDHCI/eMMC controller; post-install boot target.

Identity

Part128 GiB eMMC (vendor varies by board batch)
RoleInternal mass storage for the installed system
Bus / addressRK3399 sdhci / Arasan eMMC controller @ MMIO 0xfe330000, 8-bit data
GPIO / IRQBus controller IRQ via GIC; no external pins
DatasheetJEDEC eMMC 5.1 (JESD84-B51)
Pine64 wikiPinePhone Pro Hardware
Schematicsheet 4 (eMMC routing)

Status — ● working

The eMMC enumerates and reads/writes reliably, but only at 25 MHz with 8-bit data; HS200 (200 MHz) is not negotiated, so it underperforms its rated speed by roughly 8x. The active development boot path is the microSD slot — the eMMC is reserved for the post-install image once Phase 2 stabilises USB and WiFi. We have not yet flipped the U-Boot boot order to prefer eMMC.

Driver

RK3399 has separate storage hosts here: sdio0 and sdmmc are DesignWare MMC blocks, while eMMC is the sdhci node at 0xfe330000. eMMC needs bus-width = <8>, non-removable, and the mmc-hs200-1_8v capability bit before HS200 can be tried. We have only enabled the basic 8-bit/25 MHz path; the HS200 negotiation requires 1.8 V signaling support that is currently untested in the FreeBSD driver.

Open work