EBOOT

EBOOT is Microsoft's Ethernet Bootloader. It's job is to provide a transport mechanism to load a file with the BIN file format. The BIN's primary record n image to RAM or Flash in the BIN file format, optionally setup, setup OAL Args, and start execution of loaded image. For use with the Beagle Board we are only interested in two of the three EBOOT flavors the TI EVM BSP offers.

nb0 vs BIN

  1. nb0 file - an absolute image suitable for copying directly in RAM, and running. This is the uncompressed version of a BIN file. It contains a lot of zeros.
  2. BIN file - a record based file format that is the compressed version of an nb0 file. Each record contains destination address and segment size. A BIN file is generally loaded by Platform Builder. Simply open BIN file as a solution in Platform Builder, and attach to target.

EBOOTSD (BIN/nb0)

EBOOTSD does not include Flashing routines. It is a read only implemention which enables loading a BIN file into RAM via USBFn RNDIS, or a NK.bin from the SD card.

EBOOTNAND (BIN/nb0)

EBOOTNAND includes Flashing routines. This enables flashing target with either EBOOTNAND.bin, or NK.bin.

DEBUG vs RETAIL

The primary difference between DEBUG and RETAIL is message spew. DEBUG has more, RETAIL has much less.

Build EBOOT from immaculate tree

Open a DEBUG or RETAIL build window and issue
    cleanbsp
    blddemo clean -q
    { build will error }
    builddeps
    blddemo -qbsp


Booting EBOOTNAND.nb0 from SD card

  1. Format your SD card as FAT32.
  2. Make the first file to copy to card MLO
  3. Copy EBOOTNAND.nb0 to SD card.
  4. Rename EBOOTNAND.nb0 to EBOOTSD.nb0 on SD card.
  5. Insert SD card into target.
  6. Reboot while holding the user button.
  7. Wait for NAND device to be formatted. This will take a little bit.

Expected output
40V
Texas Instruments Windows CE SD X-Loader for EVM 3530
Built Nov  8 2009 at 16:14:45
Version 6.12.03
open ebootsd.nb0 file
Init HW: controller RST
SDHC: command response timeout CTO!
MMC::MMCCommandResponse: MMCSendCommand error, command = 8
MMC::MMCCommandResponse: Command Response Error
read ebootsd.nb0 file
jumping to ebootsd image

Microsoft Windows CE Bootloader Common Library Version 1.4 Built Nov 16 2009 22:
11:24

Texas Instruments Windows CE EBOOT for Mistral OMAP EVM, Built Nov 16 2009 at 22
:14:17
EBOOT Version 1.1, BSP 6.12.03

TI OMAP3530 Version 0x3b7ae02f (ES3.0)
TPS659XX Version 0x50 (ES3.1)
System ready!
Preparing for download...
INFO: Predownload....
Checking bootloader blocks are marked as reserved (Num = 14)
..............
WARN: Boot config wasn't found, using defaults
INFO: SW4 boot setting: 0x2f
IsValidMBR: MBR sector = 0x380 (invalid MBR)
OpenPartition: Invalid MBR.  Cannot open existing partition 0x20.
OS partition does not exist!!
Formatting flash...
Enter LowLevelFormat [0x0, 0x7ff].
Erasing flash block(s) [0x0, 0x7ff] (please wait): EraseBlocks: preserving reser
ved block (0x0)
EraseBlocks: preserving reserved block (0x1)
EraseBlocks: preserving reserved block (0x2)
EraseBlocks: preserving reserved block (0x3)
EraseBlocks: preserving reserved block (0x4)
EraseBlocks: preserving reserved block (0x5)
EraseBlocks: preserving reserved block (0x6)
EraseBlocks: preserving reserved block (0x7)
EraseBlocks: preserving reserved block (0x8)
EraseBlocks: preserving reserved block (0x9)
EraseBlocks: preserving reserved block (0xa)
EraseBlocks: preserving reserved block (0xb)
EraseBlocks: preserving reserved block (0xc)
EraseBlocks: preserving reserved block (0xd)
Done.
WriteMBR: MBR block = 0xe.
Done.

IsValidMBR: MBR sector = 0x380 (valid MBR)
OpenPartition: Partition Exists=0x0 for part 0x20.
CreatePartition: Enter CreatePartition for 0x20.
LastLogSector: Last log sector is: 0x1fc7f.
CreatePartition: Start = 0x1, Num = 0x5fff.
Log2Phys: Logical 0x1 -> Physical 0x381
WriteMBR: MBR block = 0xe.
IsValidMBR: MBR sector = 0x380 (valid MBR)
OpenPartition: Partition Exists=0x0 for part 0xb.
CreatePartition: Enter CreatePartition for 0xb.
FindFreeSector: FreeSector is: 0x6000 after processing part 0x20.
CreatePartition: Num sectors set to 0x19b40 to allow for compaction blocks.
CreatePartition: Start = 0x6000, Num = 0x19b40.
WriteMBR: MBR block = 0xe.
Flash format complete!

>>> Forcing cold boot (non-persistent registry and other data will be wiped) <<<

Hit space to enter configuration menu 5...
Hit space to enter configuration menu 4...
Hit space to enter configuration menu 3...


Press space to break into EBOOT

Write EBOOTNAND.bin to target using VS2005

Change boot device to USBFn RNDIS, disable KITL via Network menu, and 0,0 to back out and continue.
Via VS2005 load EBOOTNAND.bin debug build as solution.
Attach to Target
If you have done your homework - installed RNDIS driver, and your Connectivity Options are correct EBOOTNAND.bin will be written to Flash NAND.

Output will look something like this
HostMiniInit:: !!
Rndis:: initialization: with addr=480AB000
Rndis:: Address static map to addr=480AB000
Rndis:: initialization!
+USBFN::Device ID = 0x3b7ae02f
+USBFN::Device ID = 0x3b7ae02f
Rndis:: PDDInit Success!
Rndis:: Get MAC address 200,902F,B5D
RndisMdd:: PDD's max RX buffer = [8192] bytes.
Rndis:: initialization: Success
HostMini:: New filter set: [0x0] --> [0x20]
HostMini:: New filter set: [0x20] --> [0x0]
HostMini:: New filter set: [0x0] --> [0x2]
HostMini:: New filter set: [0x2] --> [0x20]
InitDHCP():: Calling ProcessDHCP()
ProcessDHCP()::DHCP_INIT
Got Response from DHCP server, IP address: 192.168.1.231

ProcessDHCP()::DHCP IP Address Resolved as 192.168.1.231, netmask: 255.255.255.0
Lease time: 259200 seconds
Got Response from DHCP server, IP address: 192.168.1.231
No ARP response in 2 seconds, assuming ownership of 192.168.1.231
+EbootSendBootmeAndWaitForTftp
Sent BOOTME to 255.255.255.255
Packet has the following data:
  boot.bin[NULL]octet[NULL]
TFTP packet could have 1 name/value pairs
Locked Down Link 1
Src IP 192.168.1.231 Port 03D4   Dest IP 192.168.1.233 Port 5D34
Default TFTP block size set to: 512 bytes
There were no options detected in the TFTP
EthDown::TFTPD_OPEN::boot.bin
-EbootSendBootmeAndWaitForTftp

BL_IMAGE_TYPE_BIN

 <> Record [ 0 ] dwRecAddr = 0x87E00000, dwRecLen = 0x4
 <> Record [ 1 ] dwRecAddr = 0x87E00040, dwRecLen = 0x8
 <> Record [ 2 ] dwRecAddr = 0x87E00048, dwRecLen = 0x4
 <> Record [ 3 ] dwRecAddr = 0x87E01000, dwRecLen = 0x34DD8
 <> Record [ 4 ] dwRecAddr = 0x87E36000, dwRecLen = 0xE78
 <> Record [ 5 ] dwRecAddr = 0x87E36E78, dwRecLen = 0x54
rom_offset=0x0.
 <> Record [ 6 ] dwRecAddr = 0x87E36ECC, dwRecLen = 0x30
 <> Record [ 7 ] dwRecAddr = 0x0, dwRecLen = 0x87E01000
ImageStart = 0x87E00000, ImageLength = 0x36EFC, LaunchAddr = 0x87E01000
Computing checksum: image start = 0x80001000, len = 0x36EFC
Checksum = 0x13AED64 (0x36EFC bytes)

Completed file(s):
-------------------------------------------------------------------------------
[0]: Address=0x87E00000  Length=0x36EFC  Name="" Target=FLASH
ROMHDR at Address 87E00044h
Got EDBG_CMD_JUMPIMG
Got EDBG_CMD_CONFIG, flags:0x00000000


Reboot and again break into EBOOT

Last edited Nov 18, 2009 at 2:57 AM by joelw, version 4

Comments

No comments yet.