This file has been truncated. show original
# node-beagle-boot [![Build Status](https://travis-ci.org/ravikp7/node-beagle-boot.svg?branch=master)](https://travis-ci.org/ravikp7/node-beagle-boot) [![npm](https://img.shields.io/npm/v/beagle-boot.svg)](https://www.npmjs.com/package/beagle-boot)
A node.js bootloader server running over usb connection for BeagleBone hardware which can transfer bootloader files, ramdisk etc. It can also boot it into usb mass storage mode utilising the uboot's ums feature for flashing purposes.
This project is developed during `Google Summer of Code 2017 under BeagleBoard Organisation`.
This project differs from BBBlfs in the way of booting into usb mass storage mode. BBBlfs utilizes a Kernel/ Ramdisk approach for the same and this new tool will be using uboot's ums feature for the same purpose. See [this video](https://www.youtube.com/watch?v=5JYfh2_0x8s) for more info about the project.
The ultimate goal for this project is to integrate this bootloader server to an [etcher.io](https://etcher.io) like tool to make a complete flashing tool for BeagleBone hardware.
## Complete Flashing app [here](https://github.com/ravikp7/BeagleBoot)
### Supported Devices: All BeagleBones and PocketBone
### Supported Platforms: Linux, OSX, Windows (work in progress)
#### Working of the bootloader server
When the AM335x ROM is connected to PC by holding down boot switch, it exposes a RNDIS interface which is a virtual ethernet link over usb.
1. After running the server through API or start script, it listens to events of device connection.
2. Once it detects the device connection, it starts serving BOOTP, ARP requests and finally TFTP request for respective file transfer for the device.
3. For USB Mass Storage functionality first TFTP trasnfer of SPL(Secondary Program Loader) is done for ROM device. SPL runs in device.