beagleboard "40w"

Hi, Good Afternoon!

Can anyone help me?
When I use the BeagleBoard / serial in the minicom, the result is only
"40w"
http://pastebin.com/uSS22zUQ

I need a manual containing the correct information

Thanks

40W (or 40T, 40V on older boards) is a message from the Boot ROM
that it can't find any X-Loader in NAND or on a SD card.

If you use a SD card:
1. make sure it is formatted correctly
2. MLO is the first file copied to the FAT partition
3. press the User button while booting

If you want to boot from NAND you must reinstall the NAND
X-Loader. Otherwise you can recover through the serial
interface:

http://elinux.org/BeagleBoardRecovery

-- hns

Let me correct the latest message. 40W (or 40T, 40V on older boards) is a CPU identifier, not error message. You can see it every time the Beagleboard boots.

Anyway x-loader is not found at NAND, MMC, USB or UART…

2010/12/16 Dr. H. Nikolaus Schaller <hns@computer.org>

Let me correct the latest message. 40W (or 40T, 40V on older boards) is a CPU identifier, not error message. You can see it every time the Beagleboard boots.

Let me correct this. You can see this ASIC ID structure only if the OMAP Boot ROM tries to boot through UART3. This happens only if all boot methods (NAND, USB) tried before have failed. The boot order is modified by pressing the User button. This is described in section 25 of the OMAP3 manual or 5.14 User/Boot Button of the BB manual. Only the SD card is always tried after UART boot. So if you have a correct X-Loader in NAND you shouldn’t see a “40W” at all (I haven’t on my boards so I can’t test immediately).

Aside from what the 40W designates, I think Frederico needs information on how to fix the problem and boot his board.

Frederico - the 40W implies you are using a revision C board (C3? C4?) that can not load x-loader (MLO), and thus also can not load u-boot (u-boot.bin). There are several reasons for this, but the main one is that the internal NAND flash memory no longer contains a valid MLO. I think if you follow these instructions you will be happy:

http://elinux.org/BeagleBoardRecovery

If that doesn’t work, let us know more details, such as the board revision and what MLO and u-boot.bin you are using.

good luck,

Jeff

I haven’t looked up the various “ASIC IDs” to know which revision of device is being used, but the 40W-style message can show up on xM boards as well if MLO/x-loader isn’t found on the SD card.

Recently there has been some discussion on the IRC channel of putting it in the boot sector instead of the file system to avoid the need for a FAT partition or any special formatting other than inserting the image, but it isn’t clear if we’d do that.

MLO in the boot sector is a very interesting thought - but I worry it would be harder for newbies to understand even than a separate partition, and potentially more difficult to upgrade. What would it take to make the Beagle’s boot ROM understand ext2 or ext3 so we could just have one partition?

(Sorry I have been absent lately on IRC - I’m on vacation, w00t)

I think you would need a different ROM mask for the OMAP
processor. And, looking at the complexity of ext2/3 I doubt
that it fits into the size of the Boot ROM.

AFAIK, this is the main reason for the multi-stage boot process:

1. Boot ROM can load a simple binary X-Loader to SRAM
2. X-Loader can load a larger U-Boot e.g. from a FAT partition on SD
     or through kermit to SDRAM
3. U-Boot can configure and load a very large Linux system from FAT or ext3

So complexity and selection of file system formats increases.

Jason, can you please summarize the technical idea how it
would work to boot from a boot sector and not from a FAT
partition?

Is it by formatting the SD in a way that the current Boot ROM *thinks*
it is a FAT partition while all other systems see it as a single ext2/ext3?

Dr. H. Nikolaus Schaller wrote:

MLO in the boot sector is a very interesting thought - but I worry it would be harder for newbies to understand even than a separate partition, and potentially more difficult to upgrade. What would it take to make the Beagle's boot ROM understand ext2 or ext3 so we could just have one partition?

I think you would need a different ROM mask for the OMAP
processor. And, looking at the complexity of ext2/3 I doubt
that it fits into the size of the Boot ROM.

AFAIK, this is the main reason for the multi-stage boot process:

1. Boot ROM can load a simple binary X-Loader to SRAM
2. X-Loader can load a larger U-Boot e.g. from a FAT partition on SD
      or through kermit to SDRAM
3. U-Boot can configure and load a very large Linux system from FAT or ext3

So complexity and selection of file system formats increases.

Jason, can you please summarize the technical idea how it
would work to boot from a boot sector and not from a FAT
partition?

Is it by formatting the SD in a way that the current Boot ROM *thinks*
it is a FAT partition while all other systems see it as a single ext2/ext3?

No. The ROM code can either boot from a fat partition, or it can boot from
certain sectors on the sd/mmc card (called "raw" mode)

In raw mode, the ROM code reads sectors #0 and #255 and looks for a special
"header" that identifies MLO and then proceeds to boot and load that.

So, one could format a card that has a single ext3 partition that starts after
sector 255+sizeof(MLO). On that card, one would place MLO with the correct
headers at sector #255 and the kernel and rootfs in the ext3.

This MLO would need to know how to read ext3 so that it can boot the linux
kernel from the ext3 partition. The best way for this is to make uboot the
actual MLO and set up the needed SDRAM using configuration headers.

another way is to have a 2-stage approach with MLO at #255 that sets up
sdram and uboot also in raw at #255+sizeof(MLO) and the ext3 start at
#255+sizeof(MLO)+sizeof(uboot)

Regards,