Issue TFTP booting from SPL

In Linux, it does, but with our factory default eMMC, you won’t really see an improvement between 4-bit and 8-bit. There are really cheap microSD’s on the 4-bit interface that are faster then the factory default eMMC at 8-bit…

Factory BBB eMMC in 4-bit:

=> version
U-Boot 2019.04-00002-gc9b3922522 (Aug 24 2020 - 16:42:18 -0500), Build: jenkins-github_Bootloader-Builder-144

arm-linux-gnueabihf-gcc (Linaro GCC 6.5-2018.12) 6.5.0
GNU ld (Linaro_Binutils-2018.12) 2.27.0.20161229
=> mmc dev 1
switch to partitions #0, OK
mmc1(part 0) is current device
=> mmc info
Device: OMAP SD/MMC
Manufacturer ID: fe
OEM: 14e
Name: MMC02 
Bus Speed: 48000000
Mode : MMC High Speed (52MHz)
Rd Block Len: 512
MMC version 4.4.1
High Capacity: No
Capacity: 1.8 GiB
Bus Width: 4-bit
Erase Group Size: 512 KiB
HC WP Group Size: 0 Bytes
User Capacity: 1.8 GiB
Boot Capacity: 1 MiB ENH
RPMB Capacity: 128 KiB ENH

Regards,

Ok, kind of irritating that this one thing isn’t quite perfect but oh well.

Thanks for the help.

EDIT: interesting thing to note, I commented out all the platdata stuff at the bottom of the board.c file and the “No match for driver ‘omap_hsmmc’” messages went away, but both MMC interfaces work exactly the same as before.

Just to update the public record, switching to DM_MMC in 2019.04 worked perfectly, and the eMMC now reports 8-bit.

image

Just needed to add to my defconfig:
CONFIG_OF_CONTROL=y
CONFIG_SUPPORT_OF_CONTROL=y
CONFIG_DEFAULT_DEVICE_TREE=“your-board”
CONFIG_DM_MMC=y

Device Tree entry:

	emmc_pins: pinmux_emmc_pins {
		pinctrl-single,pins = <
			0x080 (PIN_INPUT | MUX_MODE2)		//eMMC_CLK
			0x084 (PIN_INPUT_PULLUP | MUX_MODE2)	//eMMC_CMD
			0x000 (PIN_INPUT_PULLUP | MUX_MODE1)	//eMMC_D0
			0x004 (PIN_INPUT_PULLUP | MUX_MODE1)	//eMMC_D1
			0x008 (PIN_INPUT_PULLUP | MUX_MODE1)	//eMMC_D2
			0x00c (PIN_INPUT_PULLUP | MUX_MODE1)	//eMMC_D3
			0x010 (PIN_INPUT_PULLUP | MUX_MODE1)	//eMMC_D4
			0x014 (PIN_INPUT_PULLUP | MUX_MODE1)	//eMMC_D5
			0x018 (PIN_INPUT_PULLUP | MUX_MODE1)	//eMMC_D6
			0x01c (PIN_INPUT_PULLUP | MUX_MODE1)	//eMMC_D7
		>;
	};

&mmc2 {
	pinctrl-names = "default";
	pinctrl-0 = <&emmc_pins>;
	bus-width = <8>;
	ti,non-removable;
	max-frequency = <96000000>;
	status = "okay";
};
1 Like

Awesome @AdamGerken