Can't boot without RJ45 Connection(Ethernet) - STM32MP157F
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-12-21 11:10 PM
Hello Guys.
​
I made a custom board from the EV1 circuit base, removing unnecessary parts.
(Most of them are the same as the EV1. Only parts that are not in use have been removed.)
​
And after creating Device Tree using CubeMX, I succeeded in making my image.
(EMMC's circuit connection and Device Tree are the same as EV1.)
​
But my board can't boot to EMMC if I remove the RJ45 connection.
If booting without RJ45 connection (Ethernet), I can check the following message.
(The same message could be confirmed even after power reset.)
DRAM: 1 GiB
Clocks:
- MPU : 800 MHz
- MCU : 208.878 MHz
- AXI : 266.500 MHz
- PER : 0 MHz
- DDR : 533 MHz
Fastboot key pressed, STM32Programmer key pressed, entering download mode...
WDT: Started with servicing (32s timeout)
NAND: 0 MiB
MMC: STM32 SD/MMC: 2, STM32 SD/MMC: 0, STM32 SD/MMC: 1
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
invalid MAC address in OTP 00:00:00:00:00:00
Net:
Error: ethernet@5800a000 address not set.
No ethernet found.
Hit any key to stop autoboot: 0
Boot over usb0!
Invalid or missing layout file.DFU alt info setting: done
In case of RJ45 connection (Ethernet), EMMC boots normally.
​
So I tested with Image of Distribution Package provided by ST, but the problem is the same.
(It's normal on EV1, but my board has the same problem - ST Distribution Image.)
​
How should I approach this issue? I'm not sure how.
​
I need your help.
​
Thanks.​
- Labels:
-
Ethernet
-
STM32MP15 Lines
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-12-22 1:14 AM
In U-Boot there is the possibility to enable "fastboot" to support Android. By default "fastboot" is enabled by pressing the button "User PA13" on EV1.
Some additional detail is available here:
https://wiki.st.com/stm32mpu/wiki/LEDs_and_buttons_on_STM32_MPU_boards#Description
https://wiki.st.com/stm32mpu/wiki/How_to_configure_U-Boot_for_your_board#Config_node
I suspect that in your board you are reusing GPIO PA13 for some other purpose, somehow linked with the ethernet.
As a solution, you can either:
- completely disable "fastboot" in U-Boot, by re-configure it and disable CONFIG_FASTBOOT, or
- move to another button the enabling of "fastboot" by changing in U-Boot the following line in "arch/arm/dts/stm32mp157a-ed1-u-boot.dtsi", or
st,fastboot-gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
- use another GPIO for the ethernet, instead of PA13.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2020-12-22 3:58 PM
Thanks for your answer.
​
Through your answers, I learned the function of the PA13 and PA14.
​
​But there is something I can't understand.
There is no connection of PA13 to PA14 in the schematic of my board.​
And the relevant part of my CubeMX Device tree is as follows.
{
/* USER CODE BEGIN root */
aliases{
i2c3 = &i2c4;
mmc0 = &sdmmc1;
mmc1 = &sdmmc2;
i2c1 = &i2c2;
i2c4 = &i2c5;
spi0 = &qspi;
usb0 = &usbotg_hs;
};
config{
u-boot,boot-led = "heartbeat";
u-boot,error-led = "error";
u-boot,mmc-env-partition = "ssbl";
st,fastboot-gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
st,stm32prog-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
};
led{
red{
label = "error";
gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
default-state = "off";
status = "okay";
};
};
/* USER CODE END root */
clocks {
u-boot,dm-pre-reloc;
/* USER CODE BEGIN clocks */
/* USER CODE END clocks */
#ifndef CONFIG_STM32MP1_TRUSTED
clk_lsi: clk-lsi {
u-boot,dm-pre-reloc;
/* USER CODE BEGIN clk_lsi */
/* USER CODE END clk_lsi */
};
clk_hsi: clk-hsi {
u-boot,dm-pre-reloc;
/* USER CODE BEGIN clk_hsi */
/* USER CODE END clk_hsi */
};
clk_csi: clk-csi {
u-boot,dm-pre-reloc;
status = "disabled";
/* USER CODE BEGIN clk_csi */
/* USER CODE END clk_csi */
};
clk_lse: clk-lse {
u-boot,dm-pre-reloc;
st,drive = < LSEDRV_MEDIUM_HIGH >;
/* USER CODE BEGIN clk_lse */
/* USER CODE END clk_lse */
};
clk_hse: clk-hse {
u-boot,dm-pre-reloc;
st,digbypass;
/* USER CODE BEGIN clk_hse */
/* USER CODE END clk_hse */
};
#endif /*CONFIG_STM32MP1_TRUSTED*/
};
}; /*root*/
So I want to completely disable the function you mentioned.
However, the CONFIG_FASTBOOT does not exist in any ST base layer.
How do I disable that feature? Please provide guidelines.
​
And what happens when you remove the line below?
I want to completely remove it.
st,fastboot-gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
st,stm32prog-gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
I need your help​
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2021-01-04 1:37 AM
If you only remove the line
st,fastboot-gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
without disabling CONFIG_FASTBOOT you should get an error at boot time.
The option CONFIG_FASTBOOT is activated automatically by the option CONFIG_USB_FUNCTION_FASTBOOT that is in U-Boot default configuration files '<u-boot>/configs/stm32mp15_*_defconfig' and/or in the patches applied to U-Boot by yocto layers.
Disabling CONFIG_USB_FUNCTION_FASTBOOT should fix the issue.
The fact that you have 'interference' from ethernet cable on 'floating' PA13 could be explained with board noise; probably your device tree doesn't set any pull-up to PA13, so it get sensitive to some noise on the board.
