On Thu, Mar 21, 2024 at 09:49:17PM -0600, Jeffrey Hugo wrote: > The AIC100 secondary bootloader uses the Sahara protocol for two > purposes - loading the runtime firmware images from the host, and > offloading crashdumps to the host. The crashdump functionality is only > invoked when the AIC100 device encounters a crash and dumps are enabled. > Also the collection of the dump is optional - the host can reject > collecting the dump. > > The Sahara protocol contains many features and modes including firmware > upload, crashdump download, and client commands. For simplicity, > implement the parts of the protocol needed for loading firmware to the > device. > > Fundamentally, the Sahara protocol is an embedded file transfer > protocol. Both sides negotiate a connection through a simple exchange of > hello messages. After handshaking through a hello message, the device > either sends a message requesting images, or a message advertising the > memory dump available for the host. For image transfer, the remote device > issues a read data request that provides an image (by ID), an offset, and > a length. The host has an internal mapping of image IDs to filenames. The > host is expected to access the image and transfer the requested chunk to > the device. The device can issue additional read requests, or signal that > it has consumed enough data from this image with an end of image message. > The host confirms the end of image, and the device can proceed with > another image by starting over with the hello exchange again. > > Some images may be optional, and only provided as part of a provisioning > flow. The host is not aware of this information, and thus should report > an error to the device when an image is not available. The device will > evaluate if the image is required or not, and take the appropriate > action. > > Signed-off-by: Jeffrey Hugo <quic_jhugo@xxxxxxxxxxx> > Reviewed-by: Carl Vanderlip <quic_carlv@xxxxxxxxxxx> > Reviewed-by: Pranjal Ramajor Asha Kanojiya <quic_pkanojiy@xxxxxxxxxxx> Reviewed-by: Bjorn Andersson <andersson@xxxxxxxxxx> Regards, Bjorn