blob: d35e020bc100e9038a19fa2c420ff13aed4d5317 [file] [log] [blame]
// 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",
},
],
}