uboot启动异常及解决
-
网络问题及解决
- 打开STM32CubeMX
- 选中ETH1 - A7NS(Linux)
- Mode:RGMII(Reduced GMII)
- 勾选ETH 125MHz Clock Input
- 修改GPIO引脚如图所示
Net: No ethernet found.
-
生成代码后,修改u-boot下
根节点下新增ethernet0
aliases { serial0 = &uart4; //mmc0 = &sdmmc1; // solved emmc not found issue mmc0 = &sdmmc2; ethernet0 = ðernet0; };
ethernet0节点新增以下代码
ðernet0 { pinctrl-names = "default", "sleep"; pinctrl-0 = <ð1_pins_mx>; pinctrl-1 = <ð1_sleep_pins_mx>; status = "okay"; /* USER CODE BEGIN ethernet0 */ phy-mode = "rgmii-id"; max-speed = <1000>; phy-handle = <&phy0>; mdio0 { #address-cells = <1>; #size-cells = <0>; compatible = "snps,dwmac-mdio"; phy0: ethernet-phy@0 { reg = <0>; }; }; /* USER CODE END ethernet0 */ };
-
源代码uboot源码需要修改drivers/net/phy/phy.c - 详情参考【正点原子】STM32MP1嵌入式Linux驱动开发指南V2.1 13.2.6小节
-
设备树使用旧版本设别墅报警 - TODO
Warning: Device tree includes old 'u-boot,dm-' tags: please fix by 2023.07!
-
启动方式改成EMMC启动,加载环境变量报错
Loading Environment from MMC... Invalid ENV offset in MMC, copy=0
增加
PED 0x09 fip-b FIP mmc0 0x00580000 none PED 0x0A u-boot-env ENV mmc0 0x00980000 none
-
invalid MAC
invalid MAC address 0 in OTP 00:00:00:00:00:00
解决方案:
setenv ethaddr 00:04:9f:04:d2:35 saveenv
编译uboot源码
cd u-boot-stm32mp-v2023.10-stm32mp-r1
export FIP_DEPLOYDIR_ROOT=$PWD/../../FIP_artifacts
source ~/sdk6.6
make -f $PWD/../Makefile.sdk UBOOT_DEFCONFIG=stm32mp15_defconfig UBOOT_BINARY=u-boot.dtb DEVICE_TREE=stm32mp157d-stm32mp157daa1-mx DEPLOYDIR=$FIP_DEPLOYDIR_ROOT/u-boot all
下载到板子上验证
#Opt Id Name Type Device Offset Binary
- 0x01 fsbl-boot Binary none 0x0 new/tf-a-stm32mp157d-stm32mp157daa1-mx-optee-programmer-usb.stm32
- 0x03 fip-boot Binary none 0x0 new/fip-stm32mp157d-stm32mp157daa1-mx-optee-programmer-usb.bin
P 0x04 fsbl1 Binary mmc0 boot1 new/tf-a-stm32mp157d-stm32mp157daa1-mx-optee-emmc.stm32
P 0x05 fsbl2 Binary mmc0 boot2 new/tf-a-stm32mp157d-stm32mp157daa1-mx-optee-emmc.stm32
PD 0x06 metadata1 FWU_MDATA mmc0 0x00080000 new/metadata.bin
PD 0x07 metadata2 FWU_MDATA mmc0 0x00100000 new/metadata.bin
P 0x08 fip-a FIP mmc0 0x00180000 new/fip-stm32mp157d-stm32mp157daa1-mx-optee-emmc.bin
PED 0x09 fip-b FIP mmc0 0x00580000 none
PED 0x0A u-boot-env ENV mmc0 0x00980000 none
思考
-
如何在STM32CubeMX上配置ethernet?如果不参考本文,你会怎么做?
-
如何配置引脚?为什么配置Mode:RGMII和ETH 120MHz Clock Input?