SHIPv5 Boot System

From Serious Documentation
Revision as of 07:05, 13 August 2014 by TerryW-Serious (talk | contribs)
Jump to: navigation, search

Starting in SHIPv5 all SIMs now have a multi-stage boot loader process. This enables the SIM's firmware and data to be upgraded in "offline" mode (when the GUI is not running) or, in some cases, in "online" mode in the background while the GUI is still operating.

The bootloader has these elements/phases:

  1. SHIPPaddle, a very tiny (<16kB) stage 0 boot, which loads and runs SHIPTug (the next stage of boot)
    • On RX600-based SIMs, Paddle occupies the reset vector and the top 8kB of RX program flash
    • On SH/RZ-based SIMs, Paddle occupies the first 8kB or 16kB of the boot serial flash.
  2. SHIPTug, a bootloader application that includes the SHIPBridge protocol over UART/SPI/USB.
    • SHIPPaddleloads and transfers control to SHIPTugug on every system reboot
    • On most SIMs, SHIPTugis loaded by SHIPPaddleinto RAM and run from RAM
    • On most SIMs, two copies of SHIPTug(primary and backup) are stored in a fixed locations in serial flash
    • SHIPTug(via SHIPBridge) allows you to update SHIPPaddle, SHIPTug, SHIPEngine, Cargo, and more over-the-wire and from SHIPTide
    • Similarly Tug (via SHIPBridge) allows you over-the-wire to access/read/write any file system on the SIM, including plugged in USB thumb drives and SDCards, from your host controller without your host controller having a USB or File System stack but merely by making SHIPBridgeremote calls
  3. SHIPEngine, the actual GUI rendering engine for your cargo data file