Booting BB xM over Ethernet

I have a BB xM. I have the MLO, uboot.bin from http://www.angstrom-distribution.org/demo/beagleboard/ and the uImage generated from the narcissus build. I want to boot it over Ethernet or USB. I did a google search but couldn’t find anything which helped me. Can someone give some directions?

Hi Victor -
Beagle has to have the MLO and U-boot binaries on a FAT partition on the microSD card. Assuming you mean downloading the kernel and using nfs, here is what we currently use. Save this off as uEnv.txt to the ‘boot’ partition of your uSD card. It ‘should’ be read by u-boot and allows you to configure the u-boot environment easily.

Copy below here to uEnv.txt :

baudrate=115200
bootcmd=if mmc rescan ${mmcdev}; then if userbutton; then setenv bootenv user.txt;fi;echo SD/MMC found on device ${mmcdev};if run loadbootenv; then echo Loaded environment from ${bootenv};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd …;run uenvcmd;fi;if run loaduimage; then run mmcboot;fi;fi;
bootdelay=3
bootenv=uEnv.txt
buddy=none
camera=none
console=ttyO2,115200n8
dvimode=dvi:640x480MR-16@60
importbootenv=echo Importing environment from mmc …; env import -t $loadaddr $filesize
loadaddr=0x80200000
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}
loaduimage=ext2load mmc ${mmcdev}:2 ${loadaddr} /boot/uImage
loaduimagefat=fatload mmc ${mmcdev} ${loadaddr} uImage
mmcargs=setenv bootargs console=${console} ${optargs} mpurate=${mpurate} buddy=${buddy} camera=${camera} vram=${vram} omapfb.mode=${dvimode} omapdss.def_disp=${defaultdisplay} root=${mmcroot} rootfstype=${mmcrootfstype}
mmcboot=echo Booting from mmc …; run mmcargs; bootm ${loadaddr}
mmcdev=0
mmcroot=/dev/mmcblk0p2 rw
mmcrootfstype=ext3 rootwait
mpurate=auto
usbtty=cdc_acm
vram=12M
ipaddr=192.168.0.10
serverip=192.168.0.111
loadkernel=tftp ${loadaddr} ${bootfile}
nfspath=/targetNFS
nfsargs=setenv bootargs console=${console} ${optargs} mpurate=${mpurate} buddy=${buddy} camera=${camera} vram=${vram} omapfb.mode=${dvimode} ${omapfbopts} omapdss.def_disp=${defaultdisplay} noinitrd ip=${ipaddr} rw root=/dev/nfs nfsroot=${serverip}:${nfspath}
bootfile=uImage.beagleboard
uenvcmd=usb start; run loadkernel; run nfsargs; bootm ${loadaddr}

:::Stop copying at the line above here:::

You’ll need to setup a TFTP server and an NFS server on your system, and configure them properly. Once you’ve done that, put the uImage.beagleboard into your tftpboot directory.

John

I tried doing as you said. I get this while trying to boot over ethernet .

Texas Instruments X-Loader 1.5.1 (Jul 20 2011 - 09:50:57)
Beagle xM
Reading boot sector
Loading u-boot.bin from mmc

U-Boot 2011.06-dirty (Jul 19 2011 - 17:30:34)

OMAP3630/3730-GP ES2.1, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz
OMAP3 Beagle board + LPDDR/NAND
I2C: ready
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0
*** Warning - readenv() failed, using default environment

In: serial
Out: serial
Err: serial
Beagle xM Rev C
No EEPROM on expansion board
Die ID #2e4600029ff80000016830101700b007
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
SD/MMC found on device 0
reading uEnv.txt

1563 bytes read
Importing environment from mmc …
Running uenvcmd …
(Re)start USB…
USB: Register 1313 NbrPorts 3
USB EHCI 1.00
scanning bus for devices… 3 USB Device(s) found
scanning bus for storage devices… 0 Storage Device(s) found
scanning bus for ethernet devices… 1 Ethernet Device(s) found
Waiting for Ethernet connection… done.
Using sms0 device
TFTP from server 192.168.18.128; our IP address is 192.168.18.10
Filename ‘uImage.beagleboard’.
Load address: 0x80200000
Loading: EHCI timed out on TD - token=0x8008d80
T EHCI timed out on TD - token=0x8008d80
EHCI timed out on TD - token=0x80328c80
T EHCI timed out on TD - token=0x80328c80
EHCI timed out on TD - token=0x8008d80
EHCI timed out on TD - token=0x80328c80
T EHCI timed out on TD - token=0x80328c80
EHCI timed out on TD - token=0x8008d80
EHCI timed out on TD - token=0x80328c80
T EHCI timed out on TD - token=0x80328c80
EHCI timed out on TD - token=0x8008d80
EHCI timed out on TD - token=0x80328c80

Works fine if i remove the LAN cable and then it boots from the image in microsd card.

The microSD card is the fallback option for boot.

It looks like the USB Ethernet connection isn’t working. It sees a valid physical connection, but then fails during the TFTP.

Try to cancel the boot process and manually do this in U-boot:

  • usb start

  • setenv ipaddr

  • setenv serverip

  • ping ${serverip}

If that works then try tftping the kernel and see if that TFTP causes the errors or if it errors out on the ping command.

John

Texas Instruments X-Loader 1.5.0 (Jul 5 2011 - 23:22:25)

Beagle xM

Reading boot sector

Loading u-boot.bin from mmc

U-Boot 2011.06-rc3 (Jul 05 2011 - 23:22:46)

OMAP3630/3730-GP ES2.1, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz

OMAP3 Beagle board + LPDDR/NAND

I2C: ready

DRAM: 512 MiB

NAND: 0 MiB

MMC: OMAP SD/MMC: 0

*** Warning - readenv() failed, using default environment

In: serial

Out: serial

Err: serial

Beagle xM Rev C

No EEPROM on expansion board

Die ID #3d4000029ff80000015f26ad0f01a00d

Net: Net Initialization Skipped

No ethernet found.

Hit any key to stop autoboot: 0

SD/MMC found on device 0

reading uEnv.txt

374 bytes read

Importing environment from mmc …

Running uenvcmd …

(Re)start USB…

USB: Register 1313 NbrPorts 3

USB EHCI 1.00

scanning bus for devices… 3 USB Device(s) found

scanning bus for storage devices… 0 Storage Device(s) found

scanning bus for ethernet devices… 1 Ethernet Device(s) found

Waiting for Ethernet connection… done.

Using sms0 device

TFTP from server 192.168.0.20; our IP address is 192.168.0.10

Filename ‘uImage’.

Load address: 0x82000000

Loading: #################################################################

I cancelled the boot process and tried pinging while in uboot. Got the same error. Could it be that the uImage i am using from Narcissus build, is not built for using TFTP or NFS?. My colleague was saying that could be the problem.

Also, i tried connecting the LAN cable from the board directly to my laptop. That didn’t help either. Also the ethernet leds didn’t glow, while they glow if i use the microSD that came with the board.

By the way, i am running linux in VM and my board and laptop are connected to an ADSL modem.

Thanks for all the help till now john.

Your problem occurs before the kernel is downloaded, so it isn’t a problem with the uImage (yet). Seems a little silly for u-boot to not have the USB Ethernet functionality, which appears might be broken in your case.

I’m using the prebuilt binaries for U-boot and MLO from the TI SDK 5.02 for Beagleboard and it works fine.

You are using this?

http://www.ti.com/tool/linuxezsdk-davinci

Nope – this one.

http://software-dl.ti.com/dsps/dsps_public_sw/am_bu/sdk/BeagleBoardSDK/latest/index_FDS.html

I have been using the Angstrom uImage generated from Narcissus build and the MLO and uboot.bin files from their beagleboard demo page.

That TI SDK 5.02 works for xM as well? I was thinking of getting DaVinci SDK.

Hey what filesystem do you use? First i used the tisdk-rootfs-beagleboard. I got the below error at the login prompt

[ 109.478546] mmcblk0: error -110 transferring data, sector 150529, nr 8, card0
[ 109.743530] end_request: I/O error, dev mmcblk0, sector 150530
[ 109.749664] Buffer I/O error on device mmcblk0p2, logical block 743
[ 109.756195] lost page write due to I/O error on mmcblk0p2
[ 110.564727] mmcblk0: error -110 sending read/write command, response 0x900, 0
[ 110.573699] mmcblk0: error -110 transferring data, sector 668889, nr 8, card0
[ 110.786468] end_request: I/O error, dev mmcblk0, sector 668890
[ 110.792572] Buffer I/O error on device mmcblk0p2, logical block 65538
[ 110.799316] lost page write due to I/O error on mmcblk0p2

Then i used the base-rootfs-beagleboard. It didn’t boot giving a wrong image format error. I replaced the files in boot directory of the file system on sdcard using files from the /targetNFS folder on my PC in TI SDK directory. It booted properly.

I still can’t get the board to boot using NFS. Still getting the EHCI Timed out error.