This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software:
We are using AM64x GP-EVM board for testing.
Boot congratulation is as follows
Primary boot mode SD Card with FS mode
Secondary boot mode is kept to Ethernet.
This takes approximately 40 seconds to boot into u-boot (confirmed by checking debug messages on UART DEBUG port)
By checking waveforms on SD card clk pin and MDIO pins,
it is observed that when SD card with FS mode is selected as primary, it is accessing Ethernet even though SD card it inserted (SD/CD pin low)
and it takes 40 seconds to get any waveform on SD card CLK.
If both primary and backup device is set to SD card, uboot debug messages appear instantly. Also, waveforms are observed instantly on power up on SD card clk.
Please help decoding this bootup behavior.
-------------------------------------------------------------------------------------------------
Another question regarding ethernet boot, which phy's are supported by internal ROM.
Currently DP83869HM is connected to RGMII2 interface with MDIO0 (phy address set to 00001 with auto negotiation enabled)
Is this phy supported by internal ROM?
--------------------------------------------------------------------------------------------------
Can you provide the exact boot switch configuration?
There are a few errata advisories that affect the boot modes you are using (see https://www.ti.com/lit/pdf/sprz457), but i don't think it completely explains the behavior you are seeing. Are you just powering up the board with an SD card installed, and it takes 40sec to get to u-boot? It sounds like in this scenario, SD card boot failed, and it is booting over ethernet. Have you tried cards from different manufacturers?
Note that in the errata, ethernet boot on AM64x is effectively deprecated (see i2331), as it is not reliable. I would not plan on using AM64x with ethernet boot on a custom board.
Regards,
James
Hello,
Thanks for reply.
---------------------------------------------------------------
Below are answers to questions asked:
* Can you provide the exact boot switch configuration?
>> Following are the boot config settings
---------------------------------------------------------------
* Are you just powering up the board with an SD card installed, and it takes 40sec to get to u-boot?
>> YES. I did check SDCD pin to be low (Hence SD card is correctly inserted).
If the backup boot device is set to MMC SD it works correctly. It boots (prints Uboot messages on Serial) as soon as board is powered on.
If the backup boot device is set to Ethernet, it takes 40 seconds to boot. While checking this, I observed that with this config, there is some communication with phy on power up and after 40 seconds there is communication observed on SD card pins. Ideally if primary boot is set to SD card there should be some communication with SD card happening on power up. But it is not the case if backup mode is set to Ethernet.
However, if backup is set to SD card, I got clk waveform on SD card clk pin as soon as board is powered on.
---------------------------------------------------------------
Note: we are using GP EVM for testing. We do have our custom board, but the behavior is same on GP EVM and our custom board.
---------------------------------------------------------------
Here are couple of questions
* Assuming there is some issue with Ethernet boot, why it is booting up directly to Ethernet when I set primary device to SD card and backup to Eth?
* Why is it booting correctly when I set backup and primary to SD card?
---------------------------------------------------------------
I think that when SD card boot is set as primary, it always fails and falls back to backup device.
If SD card as backup device ==> boots correctly.
If eth as backup mode ==>
It tries to boot from ethernet. According to reference manual, in Eth boot, it sends 10 BOOTP messages with 4 sec timeout for each request. That explains the 40 second delay. But in that case, there is something not correct with eth phy as I do not see any bootp messages coming on the ethernet RGMII2 phy port. For this I suspect that internal ROM does not support DP83869 phy or there is some config mismatch between what internal ROM expects phy to be configured and what is actually configured using bootstrap pins on phy.
Is DP83869 supported by internal ROM?
If yes, what should be the default config for DP83869?
---------------------------------------------------------------
Hi Akshay, i just checked the behavior on the GP EVM that i have, and I'm not seeing the same issue. I am able to successfully boot with both boot settings
Here are the two bootmodes setting I used:
Ethernet backup (bit10=0):
SD backup (bit10=1)
Both booted successfully with no delays. Are you doing the same thing? Am i missing something that you are doing? I'm using the latest linux SDK from the AM64x product page.
Regards,
James
Hello James,
Not working on my GP EVM.
Please check this video.
First I checked with MMCSD as primary and Eth as backup boot
Then I checked with MMCSD as primary and MMCSD as backup boot
Not sure if this has to do something with Silicon revision?
Hi Akshay, i was able to finally get a board with the same revision that you have.
As you have shown, I am able to see the delay in boot when ethernet boot is selected as backup, but not when SD card is selected as backup. However, in both cases, boot is successful. I am using the latest SDK from the product page SDK v10.01.10.04, and i noticed you are using an older version (uboot shows 2023.04). Can you try using the latest SDK version.
I think i can explain the behavior. It appears that in either case the primary SD card boot is failing. Then the ROM transitions to the backup boot mode:
-With backup ethernet boot, the ROM is timing out (since it doesn't boot from ethernet). For me, i see a timeout of about 20sec. After the timeout the returns back to the primary boot, the boot is successful from the SD card
-With backup as SD card boot, the ROM appears to successfully boot from SD card in the backup boot mode. The switch from primary to backup is almost immediate (the primary SD card boot failure is quick), so it is not perceivable from the console output that the primary boot failed.
If you change the backup boot mode to UART, for example, you'll see output almost immediately (indicated UART boot attempt), which proves that the initial SD card primary boot is failing.
As to the reason why the initial SD card boot is failing, i'm still investigating this, so give me time to get back to you. I suspect there is some issue powering the card which is resulting in the card not being ready when the ROM tries to access it.
Regards,
James
Hello James,
As suggested I will try latest SDK.
Just to confirm, on new board (With same Revision as my board) that you got, there is a boot delay of 20 seconds on SD card having latest sdk version too?
If yes, we can assume that this is not linked with older sdk version.
On my board(s).. custom as well as GP EVM, whe SD card is set as primary, I suspect that it is not even trying to boot from primary. It's directly switching to backup. This can be confirmed by observing waveforms on clk/cmd pins of SD card.
On my setup too both the cases boot up is successful, but when eth is set as backup, it gets delayed by 20 seconds.
I also suspected SD card power issue. But it seems not to be the issue.. If I do soft reset,still it behaves same. In case of soft reboot there should be no such issues I guess.. please correct me if I am wrong.
Just to let you know, eventually when we move to production, our plan is to use eMMC as primary and eth as backup. if possible, we would like to boot from eth on fresh board to flash eMMC for the first time.
Can we do this? Can you try to boot from eth on your original evm board?
Hi Akshay,
Please check this issue from the EVM User's Guide:
By spec, the MMC interface needs to include external pullups for stable operation. In silicon revision 2.0 of AM64x, the ROM does not set any internal pulls and relies on external board pulls. Rev C of the EVM has v2.0 silicon. On previous boards (at least the ones i have), there is v1.0 AM64x silicon, which does enable internal pulls on the MMC signals. This is why some of the previous boards i had worked fine.
I think the reason why a subsequent boot works is that power is stable to the card at that point (after long delay from the backup boot mode) and some of the data signals may have some leakage so the voltage state may be different than at power on. Regardless of a board power-on event or a warm reset, power to the card is cycled using a load switch on the board, so when the ROM initially access it, without the pull- ups, IO power just completed ramping and data signal may not be at a valid level. Add the pullups will ensure valid levels and more robust operation.
I still would not recommend ethernet boot for the reasons i mentioned below. You may get inconsistent results across multiple devices. It is recommended to use UART or USB-DFU.
Regards,
James
Hello James,
Thanks for your valuable insights. I am able to boot from SD card as primary boot device after I mounted all pull ups.
As suggested, we will use USB-DFU/UART for installing image to fresh eMMC.
One final question (this is purely out of curiosity):
If I want to try Ethernet boot, does the internal rom supports DP83869HM phy? If yes, then what can be the configuration settings for it?
or does it only boot with DP83867 phy as given in SK EVM board?
I'm not familiar with DP83869, but AM64x was designed to boot from either RMII or RGMII mode. It will perform an MDIO scan to gather the appropriate parameters upon boot. If it is close in operation to DP83867, AM64x should be able to boot with it.
Regards,
James