BBB not booting from sd card

Hi,

I’m trying boot beaglebone black from sd card by holding S2 button before power up but not even user led’s were turning on. I’ve attached bootup messages.

U-Boot SPL 2022.04-dirty (Apr 04 2023 - 18:10:15 +0530)
Trying to boot from MMC1


U-Boot 2022.04-dirty (Apr 04 2023 - 18:10:15 +0530)

CPU  : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM:  512 MiB
Core:  149 devices, 14 uclasses, devicetree: separate
WDT:   Started wdt@44e35000 with servicing (60s timeout)
NAND:  0 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from FAT... Unable to use mmc 0:1... 
<ethaddr> not set. Validating first E-fuse MAC
Net:   eth2: ethernet@4a100000, eth3: usb_ether
Hit any key to stop autoboot:  0 
** Invalid partition 2 **
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk mmc@48060000.blk...
Scanning disk mmc@481d8000.blk...
Found 3 disks
No EFI system partition
BootOrder not defined
EFI boot manager: Cannot load any image
switch to partitions #0, OK
mmc1(part 0) is current device
** No partition table - mmc 1 **
Couldn't find partition mmc 1:1
## Error: "bootcmd_nand0" not defined
starting USB...
Bus usb@47401800: Port not available.
USB is stopped. Please issue 'usb start' first.
starting USB...
Bus usb@47401800: Port not available.
link up on port 0, speed 100, full duplex
BOOTP broadcast 1
DHCP client bound to address 192.168.11.203 (603 ms)
*** ERROR: `serverip' not set
Cannot autoload with TFTPGET
missing environment variable: pxeuuid
Retrieving file: pxelinux.cfg/01-3c-e4-b0-2b-7c-90
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A80BCB
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A80BC
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A80B
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A80
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A8
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0A
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C0
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/C
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/default-arm-am33xx-am335x
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/default-arm-am33xx
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/default-arm
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Retrieving file: pxelinux.cfg/default
link up on port 0, speed 100, full duplex
*** ERROR: `serverip' not set
Config file not found
starting USB...
Bus usb@47401800: Port not available.
link up on port 0, speed 100, full duplex
BOOTP broadcast 1
DHCP client bound to address 192.168.11.203 (598 ms)
*** ERROR: `serverip' not set
Cannot autoload with TFTPGET
link up on port 0, speed 100, full duplex
BOOTP broadcast 1
DHCP client bound to address 192.168.11.203 (600 ms)
*** ERROR: `serverip' not set
Cannot autoload with TFTPGET
=> 

It is never coming out of these messages and i’ve even connected ethernet to board.
Can you please let us know how to boot from sd card permanently.

Thanks,
Anusha

my understanding is that S2 button is not required any longer to boot from sdcard.
have you tried one of the latest images?

this is what I get from the latest image
Debian Bullseye IoT Image 2023-05-03
U-Boot SPL 2022.04

I have installed this image( For am33x-v5.15 (Longterm 5.15.x) )by following the steps provided in this link Debian: Getting Started with the BeagleBone Black - Linux Guides - Electronic Component and Engineering Solution Forum - TechForum │ Digi-Key

Debian GNU/Linux 11 (bullseye)!
U-Boot SPL 2019.04-00002-g31a8ae0206 (May 13 2020 - 09:26:17 -0500)

But with same image if i try to boot up another beaglebone black board with sd card without using S2 button it is booting with sd card.

So how to come out from this to boot normally using sd card?
Thanks,
Anusha

The BBB will always boot from the eMMC first unless you press the button by the SD card.

However if the eMMC is blank ( only needs to be the first 1M) then the BBB will attempt to boot from the SD card without the need to press the button

The button can be a bit hard to press being so small, so make sure it is firmly held down when applying power and keep it pressed for a few seconds after applying power.

Erase the eMMC, your fighting two different versions of u-boot… the one on your microSD and the old one on the eMMC…

Regards,

How to erase eMMC data?
From researching online it seems what I need to do is to write microSD card image to eMMC.

Thanks,
Anusha

Just boot with your microSD and holding the boot button…

and run:

sudo dd if=/dev/zero of=/dev/mmcblk1

Regards,

But to run this command

sudo dd if=/dev/zero of=/dev/mmcblk1

we’re not even able to login or not even able to type anything.

Thanks,
Anusha

as RCN indicated, it may be an issue with an old u-boot in emmc and newer images.
can you boot from emmc? if so, then zero out emmc as RCN has indicated. then reboot with sdcard, no button holds should be needed.

Either you missed some steps in the instructions or something went wrong.

I followed the same instructions a couple of weeks ago and my sd card booted just fine.

Is there any particular reason you are building your own image rather than using a pre built image ?

sudo dd if=/dev/zero of=/dev/mmcblk1 && sync

Not sure if this will help, however it will make sure the buffers are cleared out. Since you are writing zeros to the of it might not matter at all.

sudo dd if=/dev/zero of=/dev/mmcblk1 && sync

Not sure if this will help, however it will make sure the buffers are cleared out. Since you are writing zeros to the of it might not matter at all.
— Since we’re not even able to logging in, how to run this command in board.

Based on requirements of our customer for the project we needed to use UART1, UART2, UART4, LCD, SPI1, GPIO’s… So to use all these we have done the configuration.

If we run another beaglebone black board with the same customized image SD card it directly starts booting with SD card without pressing S2 button.

Everything works fine with the same SD card and our customized image in other beaglebone black board.
The other beaglebone black what i have also has different uboot versions in eMMC and SD card.

Thanks,
Anusha

Ok, so the card works fine in another board.

Pressing the boot button changes the boot order, so it should not matter what is on the eMMC.

Perhaps the button is faulty.
If you have a DVM you can check this, probably need help though.
See below picture. With the button pressed these pins should be shorted.

If you are careful, you could also short these together with a flat blade screwdriver when applying power.

1 Like

Since you are doing this for a customer stop wasting time and just order another board. We went with the BBB boards made by GHI. Those are doing well, the BBB made by Seeed have been dying off. Just had an AI64 from Seeed die. It was one of the first ones and was sitting on the shelf until a week ago…

Keep in mind boards are cheap, your time is expensive relative to the board cost. When you buy boards always buy a few of them.