Hello everyone,
This week has been so much fun doing coding. I’ve achieved so far 3 weeks milestones that I set in my proposal.
Code: https://github.com/ravikp7/node-beagle-boot
Here they are:
Completed before official coding time:
- Milestone #1
- Choose binary parser modules for JavaScript and create an example
- Write code for ether packet and verify hardware address of BeagleBone from BOOT request data packet received by server
Completed this week
- Milestone #2
- Write code for packet headers to implement all network protocols used and basic testing
- Milestone #3
-
Write code for BOOTP reply from server
-
Receive ARP request from client(BB) and make ARP response from server
Here are the parsed packet data received from BB by node.js Server
- BOOT request (ether header)
{ h_dest: [ 255, 255, 255, 255, 255, 255 ],
h_source: [ 160, 246, 253, 138, 233, 26 ],
h_proto: 2048 }
- ARP request (ARP header)
hlen: 6,
plen: 4,
opcode: 1,
hw_source: [ 160, 246, 253, 138, 233, 26 ],
ip_source: [ 192, 168, 1, 3 ],
hw_dest: [ 0, 0, 0, 0, 0, 0 ],
ip_dest: [ 192, 168, 1, 9 ] }
- SPL tftp request ( udp packet)
{ udpSrc: 1234, udpDest: 69, udpLen: 20, chkSum: 32823 }
Issues that I came across:
-
Schemapack serializer library can’t encode array of more than 9 objects. See https://gist.github.com/ravikp7/1b1b5fa8b78dec300e95aa11feafebd9
-
So, as a workaround, I splitted the packet headers into two or more parts.
Next week goals: -
Configuring SPL/u-boot for USB mass storage mode.
-
Transfer and booting SPL.
Thanks
ravikp7