Never mind, our board has a wiring problem.
Basic device tree in linux (u-boot same)
// …
eth1_pins_mx: eth1_mx-0 {
pins1 {
pinmux = <STM32_PINMUX(‘A’, 1, AF11)>, /* ETH1_RX_CLK */
<STM32_PINMUX(‘A’, 7, AF11)>, /* ETH1_RX_DV */
<STM32_PINMUX(‘C’, 3, AF11)>, /* ETH1_TX_CLK */
<STM32_PINMUX(‘C’, 4, AF11)>, /* ETH1_RXD0 */
<STM32_PINMUX(‘C’, 5, AF11)>, /* ETH1_RXD1 */
<STM32_PINMUX(‘B’, 0, AF11)>, /* ETH1_RXD2 */
<STM32_PINMUX(‘B’, 1, AF11)>; /* ETH1_RXD3 */
bias-disable;
};
pins2 {
pinmux = <STM32_PINMUX(‘A’, 2, AF11)>; /* ETH1_MDIO */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins3 {
pinmux = <STM32_PINMUX(‘B’, 11, AF11)>; /* ETH1_TX_EN */
};
pins4 {
pinmux = <STM32_PINMUX(‘C’, 1, AF11)>, /* ETH1_MDC */
<STM32_PINMUX(‘C’, 2, AF11)>, /* ETH1_TXD2 */
<STM32_PINMUX(‘E’, 2, AF11)>, /* ETH1_TXD3 */
<STM32_PINMUX(‘G’, 13, AF11)>, /* ETH1_TXD0 */
<STM32_PINMUX(‘G’, 14, AF11)>; /* ETH1_TXD1 */
bias-disable;
drive-push-pull;
slew-rate = <1>;
};
};
eth1_sleep_pins_mx: eth1_sleep_mx-0 {
pins {
pinmux = <STM32_PINMUX(‘A’, 1, ANALOG)>, /* ETH1_RX_CLK */
<STM32_PINMUX(‘A’, 7, ANALOG)>, /* ETH1_RX_DV */
<STM32_PINMUX(‘A’, 2, ANALOG)>, /* ETH1_MDIO */
<STM32_PINMUX(‘C’, 1, ANALOG)>, /* ETH1_MDC */
<STM32_PINMUX(‘B’, 11, ANALOG)>,/* ETH1_TX_EN */
<STM32_PINMUX(‘C’, 3, ANALOG)>, /* ETH1_TX_CLK */
<STM32_PINMUX(‘C’, 4, ANALOG)>, /* ETH1_RXD0 */
<STM32_PINMUX(‘C’, 5, ANALOG)>, /* ETH1_RXD1 */
<STM32_PINMUX(‘B’, 0, ANALOG)>, /* ETH1_RXD2 */
<STM32_PINMUX(‘B’, 1, ANALOG)>, /* ETH1_RXD3 */
<STM32_PINMUX(‘G’, 13, ANALOG)>,/* ETH1_TXD0 */
<STM32_PINMUX(‘G’, 14, ANALOG)>,/* ETH1_TXD1 */
<STM32_PINMUX(‘C’, 2, ANALOG)>, /* ETH1_TXD2 */
<STM32_PINMUX(‘E’, 2, ANALOG)>; /* ETH1_TXD3 */
};
};
// …
ðernet0{
pinctrl-names = “default”, “sleep”;
pinctrl-0 = <ð1_pins_mx>;
pinctrl-1 = <ð1_sleep_pins_mx>;
status = “okay”;
st,eth_clk_sel = <1>;
phy-mode = “mii”;
max-speed = <100>;
phy-handle = <&phy0>;
mdio0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = “snps,dwmac-mdio”;
phy0: ethernet-phy@0 {
reg = <3>;
};
};
};
I followed directions to instead do it from u-boot and it will boot now.
I was unaware that eMMC has some dedicated boot partitions.
a) prepare GPT on eMMC,
example with 2 partitions, bootfs and rootfs:
# setenv emmc_part “name=ssbl,size=2MiB;name=bootfs,type=linux,bootable,size=64MiB;name=rootfs,type=linux,size=512”
# gpt write mmc 1 ${emmc_part}
b) copy SPL on eMMC on first boot partition
(SPL max size is 256kB, with LBA 512, 0x200)
# ext4load mmc 0:4 0xC0000000 tf-a.stm32
# mmc dev 1
# mmc partconf 1 1 1 1
# mmc write ${fileaddr} 0 200
# mmc partconf 1 1 1 0
b) copy U-Boot in first GPT partition of eMMC
# ext4load mmc 0:4 0xC0000000 u-boot.stm32
# mmc dev 1
# part start mmc 1 1 partstart
# part size mmc 1 1 partsize
# mmc write ${fileaddr} ${partstart} ${partsize}
To boot from eMMC, select BootPinMode = 0 1 0 and reset.
eMMC info from u-boot, in case its of use:
OSD32MP> mmc dev 1
switch to partitions #0, OK
mmc1(part 0) is current device
OSD32MP> mmc info
Device: STM32 SD/MMC
Manufacturer ID: 13
OEM: 14e
Name: S0J56
Bus Speed: 52000000
Mode: MMC High Speed (52MHz)
Rd Block Len: 512
MMC version 5.1
High Capacity: Yes
Capacity: 14.8 GiB
Bus Width: 8-bit
Erase Group Size: 512 KiB
HC WP Group Size: 8 MiB
User Capacity: 14.8 GiB WRREL
Boot Capacity: 31.5 MiB ENH
RPMB Capacity: 4 MiB ENH
Turns out this step was not mentioned anywhere, in order to generate the required image tf-a-stm32mp157c-osd32mp1-brk-serialboot.stm32:
make -f $PWD/../Makefile.sdk TFA_DEVICETREE=stm32mp157c-osd32mp1-brk TF_A_CONFIG=serialboot ELF_DEBUG_ENABLE=’1′ all
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields