| // 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", |
| }, |
| ], |
| } |