top of page

Memory locations

  • Update binaries (header) *

POI's:

​

  • Offset 0x00000000: Update magic "WODE" (4 bytes)

  • Offset 0x00000004: Size of the included and encrypted U-Boot binary (4 bytes little endian)

  • Offset 0x00000008: Size of the included and unencrypted BMP section (4 bytes little endian)

  • Offset 0x0000000C: Size of the included and encrypted Linux Kernel (4 bytes little endian)

  • Offset 0x00000010: Size of the included FPGA update (4 bytes little endian)

  • Offset 0x00000014: Location of the BMP section in SPI-NOR flash for updating (4 bytes little endian)

  • Offset 0x00000018: Location of the Linux Kernel in SPI-NOR flash for updating (4 bytes little endian)

  • Offset 0x0000001C: New U-Boot version number (2 bytes)

  • Offset 0x0000001E: New BMP version number (2 bytes)

  • Offset 0x00000020: New Linux Kernel version number (2 bytes)

  • Offset 0x00000022: New FPGA version number (2 bytes)

  • Offset 0x00000024: "Allow Downgrade" flag (1 byte)

  • Offset 0x00000025: "FPGA update is included" flag (1 byte)

  • Offset 0x00000026 - 0x0000003B: UNUSED

  • Offset 0x0000003C​: Update header CRC for the first 0x3C bytes (4 bytes)

* - The size of the header within the WODE update binaries is 0x40 bytes.

​

Changing a single bit within the header requires CRC recalculation and replacement.

​

bottom of page