// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
  fields : [
    { name: "manifest_identifier",
      desc: '''ROM_EXT Manifest identifier.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    { type: "reserved",
      size: 32,
    },
    { name: "image_signature",
      desc: '''ROM_EXT Manifest image signature.

            TODO
            ''',
      type: "field",
      size: 3072,
    },
    {
      name: 'signed_area_start',
      desc: '''ROM_EXT Manifest image start of signed area.

            TODO
            ''',
      type: "offset",
    },
    {
      name: "image_length",
      desc: '''ROM_EXT Manifest image length.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      name: "image_version",
      desc: '''ROM_EXT Manifest image version.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      name: "image_timestamp",
      desc: '''ROM_EXT Manifest image timestamp.

            TODO
            ''',
      type: "field",
      size: 64,
      alignment: 64,
    },
    {
      name: "signature_key_public_exponent",
      desc: '''ROM_EXT Manifest Signature Key Public Exponent.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      type: "reserved",
      size: 32,
    }
    {
      name: "usage_constraints",
      desc: '''ROM_EXT Manifest usage constraints.

            TODO
            ''',
      type: "field",
      size: 256,
    },
    {
      name: "peripheral_lockdown_info",
      desc: '''ROM_EXT Manifest peripheral lockdown info(TBC).

            TODO
            ''',
      type: "field",
      size: 128,
    },
    {
      name: "signature_key_modulus",
      desc: '''ROM_EXT Manifest Signature Key Modulus.

            TODO
            ''',
      type: "field",
      size: 3072,
    },
    {
      name: "extension0_offset",
      desc: '''ROM_EXT Manifest extension0 offset.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      name: "extension0_checksum",
      desc: '''ROM_EXT Manifest extension0 checksum.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      name: "extension1_offset",
      desc: '''ROM_EXT Manifest extension1 offset.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      name: "extension1_checksum",
      desc: '''ROM_EXT Manifest extension1 checksum.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      name: "extension2_offset",
      desc: '''ROM_EXT Manifest extension2 offset.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      name: "extension2_checksum",
      desc: '''ROM_EXT Manifest extension2 checksum.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      name: "extension3_offset",
      desc: '''ROM_EXT Manifest extension3 offset.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      name: "extension3_checksum",
      desc: '''ROM_EXT Manifest extension3 checksum.

            TODO
            ''',
      type: "field",
      size: 32,
    },
    {
      // This is modelled as an offset, as we don't want this to have a size,
      // and if we generate assembly like `rom_ext_manifest.S`, we don't want to
      // allocate this area using `.byte` instructions.
      name: "interrupt_vector",
      desc: '''ROM_EXT Manifest interrupt vector.

            TODO
            ''',
      type: "offset",
      // Ibex requires this to be 256-byte aligned. In this file, all alignments
      // and sizes are in bits.
      alignment: 2048,
    },
    {
      // This reserved area covers the interrupt vector then, to ensure the
      // `entry_point` field is 128 bytes later.
      type: "reserved",
      // A RISC-V interrupt vector is 32*32bit entries.
      size: 1024,
    },
    {
      name: "entry_point",
      desc: '''ROM_EXT Manifest entry point.

            TODO
            ''',
      type: "offset",
    },
  ],
}
