I'm attempting to boot the Beaglebone Black over USB to prove I can initialy load and flash the MMC of a production Sitara-based system. One question I have is how to configure dhcp.
The Ubuntu 12.04 Set Up to Network Boot an AM335x Based Platform wiki provides this example for dhcp.conf:
subnet 192.168.2.0 netmask 255.255.255.0
{
range dynamic-bootp 192.168.2.2 192.168.2.100;
if substring (option vendor-class-identifier, 0, 10) = "AM335x ROM"
{
filename "u-boot-spl-restore.bin";
}
elsif substring (option vendor-class-identifier, 0, 10) = "DM814x ROM"
{
filename "u-boot-spl-restore.bin";
}
elsif substring (option vendor-class-identifier, 0, 17) = "AM335x U-Boot SPL"
{
filename "u-boot-restore.img";
}
else
{ filename "zImage";
}
range 192.168.2.101 192.168.2.199;
}
The dhcp.conf file specifies the range for assigning addresses for dynamic-bootp clients and specifies the file to upload based on information from the Sitara Boot ROM client.
The AM335x U-Boot User's Guide wiki provides this example in the section "Booting Over CPSW Ethernet":
host am335x_evm
{
hardware ethernet de:ad:be:ee:ee:ef;
if substring (option vendor-class-identifier, 0, 10) = "DM814x ROM"
{
filename "u-boot-spl.bin";
}
elsif substring (option vendor-class-identifier, 0, 17) = "AM335x U-Boot SPL"
{
filename "u-boot.img";
}
else
{
filename "uImage-am335x";
}
}
I believe these two files aim to accomplish the same thing:
- to tftp the u-boot-spi.bin when the Sitara client is Public ROM Code controlled
- and then to tftp u-boot.img files when the Sitara client is running the SPL instructions client.
This should look the same if the transport medium is ethernet or USB.
From the dhcp.conf manpage:
"If clients on a subnet are to be assigned addresses dynamically, a range declaration must appear within the subnetdeclaration. For clients with statically assigned addresses, or for installations where only known clients will be served, each such client must have a host declaration."
So, the first example uses dynamic addresses and the second example uses static addresses.
The dhcp.conf manpages also says this:
"In order for a BOOTP client to be recognized, its network hardware address must be declared using a hardware clause in the host statement. hardware-type must be the name of a physical hardware interface type."
Using the dynamic conf example, I am able to have the Sitara come up, broadcast, and receive the u-boot-spl.bin file via tftp. But I seem to have network errors after the network interfaces goes down after the SPL file is transferred. It looks to me like the Sitara can not connect back to the Linux server. (I aslo cannot figure out how to keep wireshark up at that time, so I can't see what is going on, but that is probably a different topic)
Is the issue that I am not using the hardware statement in the dhcp.conf? My Sitara BOOTP client seems to be recognized initialy, but not after receiving the SPL file. Maybe my most basic question is: what does the statement "in order for a BOOTP client to be recognized" mean in the context of booting the Sitara over USB?


