[U-Boot] U-boot versions, DHCP difference

mcsattle matthew.sattlegger at psi.ch
Thu Mar 19 17:50:52 CET 2009


Hello, I'm working on booting Linux from a Virtex 5 ml507 board using U-boot
version 1.3.4.

I have successfully booted Linux on an AVNET ml405 board before with no
problems, but that was with an earlier version of u-boot.

I have narrowed down the problem to DHCP Request errors.
It sends the DHCP Request, the Server recognizes it but because of missing
fields, the packet is discarded, and the board does not get a response.

This is what is invoked and happens in U-boot:

U-Boot 1.3.4 (Mar 19 2009 - 11:00:58)
=> dhcp
BOOTP broadcast 1
DHCPHandler: got packet: (src=138, dst=138, len=191) state: 3
Filtering pkt = -1
BOOTP broadcast 2
DHCPHandler: got packet: (src=138, dst=138, len=191) state: 3
Filtering pkt = -1
BOOTP broadcast 3
DHCPHandler: got packet: (src=138, dst=138, len=191) state: 3
Filtering pkt = -1
DHCPHandler: got packet: (src=138, dst=138, len=191) state: 3
Filtering pkt = -1
BOOTP broadcast 4
DHCPHandler: got packet: (src=138, dst=138, len=191) state: 3
Filtering pkt = -1
DHCPHandler: got packet: (src=137, dst=137, len=68) state: 3
Filtering pkt = -1
DHCPHandler: got packet: (src=32772, dst=5065, len=16) state: 3
Filtering pkt = -1
DHCPHandler: got packet: (src=137, dst=137, len=68) state: 3
Filtering pkt = -1
BOOTP broadcast 5
DHCPHandler: got packet: (src=137, dst=137, len=68) state: 3
Filtering pkt = -1
DHCPHandler: got packet: (src=1044, dst=1947, len=40) state: 3
Filtering pkt = -1
DHCPHandler: got packet: (src=137, dst=137, len=68) state: 3
Filtering pkt = -1
DHCPHandler: got packet: (src=137, dst=137, len=68) state: 3
Filtering pkt = -1


As you can see, no DHCP responses are received.
This is what the Server receives:


New Thread: 92f
thread_pool(): calling dhcpServerProtocol()

          0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
         -----------------------------------------------------------------
0x00000  01 01 06 01 35 14 2B A5 04 E7 00 00 00 00 00 00  ....5.+.........
0x00010  00 00 00 00 00 00 00 00 81 81 90 01 00 0A 35 01  ..............5.
0x00020  02 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x00030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x00040  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x00050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x00060  00 00 00 00 00 00 00 00 00 00 00 00 31 32 39 2E  ............129.
0x00070  31 32 39 2E 31 34 34 2E 38 31 3A 74 65 73 74 2E  129.144.81:test.
0x00080  69 6D 67 00 00 00 00 00 00 00 00 00 00 00 00 00  img.............
0x00090  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000A0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000B0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000C0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000D0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x000E0  00 00 00 00 00 00 00 00 00 00 00 00 63 82 53 63  ............c.Sc
0x000F0  35 01 01 39 02 02 40 37 00 FF 00 00 00 00 00 00  5..9.. at 7........

          0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
         -----------------------------------------------------------------
0x00100  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x00110  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0x00120  00 00 00 00 00 00 00 00 00 00 00 00 00           .............   


op: 1  hType: 1  hLen: 6  hops: 1  xid: 890514341  secs: 1255  flags: 0
ciAddr: 0.0.0.0
yiAddr: 0.0.0.0
siAddr: 0.0.0.0
giAddr: 129.129.144.1
chAddr: 000a35010203
sName: 
bootFile: 129.129.144.81:test.img
Invalid zero length specified for option=55.
Bad packet received on DHCP server port.  Discarded.
thread_pool(): return from dhcpServerProtocol()
thread_pool(): CondWait(S_pool_cv, S_pool_mx)


So a response is not given.

I think that an edit in net/bootp.c could work, adding a case 55 field for
option 55 in the *popt switch, but I'm not sure exactly what I should do for
that, I may mess up the packet.

Any help, or perhaps a much simpler solution would be greatly appreciated.
Thank you!

-Matthew Sattlegger

-- 
View this message in context: http://www.nabble.com/U-boot-versions%2C-DHCP-difference-tp22604330p22604330.html
Sent from the Uboot - Users mailing list archive at Nabble.com.



More information about the U-Boot mailing list