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