Boot from SD without ROM code eMMC

Hi, I need some help in booting my board from SD card.

Since I designed my board (call it BBEv1) based on BBE (beaglebone enhanced) and even after I tested it with the same image I was running on BBE/BBB actual board through SD. BBEv1 is not getting boot up from SD. Since everything is same and exactly as per BBE, I didn’t understand the cause of happening so.
Since there is no ROM code eMMC, it should be by default boot from SD, but nothing happen. Is this could be the hardware issue or boot image issue?
Please suggest.

In addition…

I also checked the uart terminal log, its only printing char ‘C’ on terminal.

C means boot ROM icrocode isn’t finding what’s expected. Could be your hardware or that your needing something in EMC.

You should read the AM335x TRM boot sequence and understand it well even if your only a hardware designer.

  • The AM335x has a boot loader (the ‘0th’ stage if you will) physically encoded in discrete logic on the chip itself (which is one of the reasons there are v 1.0, 2.0, 2.1 ‘silicon’). As such there’s no source/compilation/flashing option here - you get what you’re given!

2 - This boot loader will go through a list of devices it can boot from, depending on some of the pins (on the BBB these are hardwired, with a second boot option available by long-pressing the ‘Boot’ button on the board)

3 - In the case of NAND (which again specifically on the BBB is the 2GB eMCC directly soldered on the board), the on-chip boot loader will look at the first bytes (at this point it knows nothing about ‘partitions’), to determine a) the start address on the NAND of the MLO/SPL, b) how big the MLO img is, and c) where in memory the MLO should be copied.

Surely if you understand hardware you hooked up a logic analyzer to validate your assumptions about SD card are valid? and cross checked the boot sequence with your pin settings.

It’s always a good idea to research what’s supposed to happen from the technical documentation as opposed to asking opinions in group’s or making assumptions that might be incorrect

For example the steps above were found using Google they might not be correct but I do know a C on console is defined as failure. Obviously your new hardware might be an issue.

Have you validated your hardware? Or are you planning to hand this to a software engineer and let him figure it out.

Cold solder joints, board layout errors , manufacturing problems. Do you own a JTAG or are you expecting to copy a design and ignore all possible electrical issues that’s a hardware engineer’s domain.

Typically a software board bring up engineer works with the hardware designer but as a highly skilled properly trained electrical engineer its not uncommon for you to wear both hats.

Myself being an electrical engineer who does low level firmware I’m quick to make sure the hardware is working properly first.

If this is your first design you might want to share that information and more details of what you have tried otherwise your chances of getting anything useful are diminished

Hi @lazarman Thanks for your well explained reply. But the thing is since I am new to this, I just to check one thing whether it works or not.
Since i prepared one sd card with image on it download from here and I tested it on BBB board with out any modification, its boot up well.
since I am using the same SD for booting up my customized BB board, its not boot up. So my point is to is this related to some ROM code which comes from TI or I need to setup SD with u-boot. So if there is no hardware error, it should boot with the same SD what I have tested on BBB board, right?
Please make me understand about this flow.

Best Regards,