I have a beaglebone derived custom board that hangs once it gets to looking for the rootfs off the mmc:
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.
I have a beaglebone derived custom board that hangs once it gets to looking for the rootfs off the mmc:
Hi,
Are you seeing the above scenario on Evaluation board or custom board.
If custom board with MMC driver enabled, you are right its CD pin is not getting detected. You will not see this problem with MLO and u-boot because boot loader does not look for this pin.
I have seen this problem couple of times on few of our custom boards and most of the times it was soldering issue or chasi problem.
Try checking the CD pin transition on connecting and look for whether all the pins are soldered on SDcard Chasi.
Regards,
Raja.
@Raja - We're seeing it on our custom board, and yep, we've verified the CD pin is correct, so I'm confused as to why the kernel wouldn't see it correctly.
@Renjith - it turns out we're using a build of OE that runs on the beaglebone, and have verified the card running on the beaglebone. So, we're thinking that the mmc driver and pin detect should work identically - we've used the same pins. The CD line goes to the same pin as the beaglebone, ball C15.
I'm going to double-check this again, but at this point it seems that the card detect pin is in the right state. Have you ever seen anything else cause this hang besides the CD line being incorrect?
Thanks!
Morgan
Hi Morgan,
Have you checked the state of the Write protect pin? Check the state change when SD card is locked and unlocked. I have seen this scenario once.
Thanks
Raja.
Hi Morgan,
I too faced the similar problem in our board i initialized setup_starterkit(); & am33xx_sr_init(); in am335x_evm_setup.
In your board as you don't have EEPROM it gets failed to initialize your board configuration in eeprom
As from your logs it is clear that beaglebome setup is not invoked.
[ 0.831823] at24 1-0051: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[ 0.896903] No daughter card found
[ 0.900505] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[ 0.966906] AM335X: EVM Config read fail: -110
Make sure that in am335x_evm_setup function call
setup_beaglebone();
am33xx_sr_init();
if (ret != sizeof(am335x_mac_addr)) {
setup_beaglebone();
am33xx_sr_init();
pr_warning("AM335X:AFTER setup_starterkit & am33xx_sr_init ----------------> ");
//pr_warning("AM335X: EVM Config read fail: %d\n", ret);
return;
}
If you get following in debug msg you are done.
The board is a AM335x Beaglebone.
Rajeev Battu.
Thank you very much for that idea Rajeev, that put us on the right track.
Here's what we ended up with that works:
static struct evm_dev_cfg beaglebone_dev_cfg[] = {
//{tps65217_init, DEV_ON_BASEBOARD, PROFILE_NONE},
//{i2c2_init, DEV_ON_BASEBOARD, PROFILE_NONE},
//{mii1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
{usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
{mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
//{usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
{NULL, 0, 0},
};
if (ret != sizeof(am335x_mac_addr)) {
//pr_warning("AM335X: EVM Config read fail: %d\n", ret);
pr_warning("AM335X:BEFORE setup_starterkit & am33xx_cpsw_init ----------------> ");
setup_beaglebone();
//am33xx_cpsw_init(gigabit_enable);
pr_warning("AM335X:AFTER setup_starterkit & am33xx_cpsw_init ----------------> ");
return;
}
Adding in the mmc0_init into the beaglebone_dev_config and taking the others out ended up being the other trick. With the others in, we saw a kernel panic, but it still hung on mounting the root fs. Putting in the mmc line got us fully booted.
Thanks again, that was a huge help!
Morgan