blob: 812f5c0d6b048291ac33c7e77dba2ceea0f56fc9 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
# RV_PLIC register template
#
# Parameter (given by Python tool)
# - src: Number of Interrupt Sources
# - target: Number of Targets that handle interrupt requests
# - prio: Max value of interrupt priorities
# - module_instance_name: Module instance name.
{
name: "rv_plic",
design_spec: "../doc",
dv_doc: "../doc/dv",
hw_checklist: "../doc/checklist",
sw_checklist: "/sw/device/lib/dif/dif_rv_plic",
revisions: [
{
version: "1.0",
life_stage: "L1",
design_stage: "D3",
verification_stage: "V2",
dif_stage: "S2",
commit_id: "",
notes: "Use FPV to perform block level verification.",
}
],
clocking: [{clock: "clk_i", reset: "rst_ni"}],
bus_interfaces: [
{ protocol: "tlul", direction: "device" }
],
param_list: [
{ name: "NumSrc",
desc: "Number of interrupt sources",
type: "int",
default: "185",
local: "true"
},
{ name: "NumTarget",
desc: "Number of Targets (Harts)",
type: "int",
default: "1",
local: "true",
},
{ name: "PrioWidth",
desc: "Width of priority signals",
type: "int",
default: "2",
local: "true",
},
],
// In order to not disturb the PLIC address map, we place the alert test
// register manually at a safe offset after the main CSRs.
no_auto_alert_regs: "True",
alert_list: [
{ name: "fatal_fault",
desc: '''
This fatal alert is triggered when a fatal TL-UL bus integrity fault is detected.
'''
}
],
inter_signal_list: [
{ struct: "logic",
type: "uni",
name: "irq",
act: "req",
package: "",
width: "1"
},
{ struct: "logic",
type: "uni",
name: "irq_id",
act: "req",
package: "",
},
{ struct: "logic",
type: "uni",
name: "msip",
act: "req",
package: "",
width: "1"
},
]
countermeasures: [
{ name: "BUS.INTEGRITY",
desc: "End-to-end bus integrity scheme."
}
]
regwidth: "32",
registers: [
{ name: "PRIO0",
desc: "Interrupt Source 0 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO1",
desc: "Interrupt Source 1 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO2",
desc: "Interrupt Source 2 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO3",
desc: "Interrupt Source 3 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO4",
desc: "Interrupt Source 4 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO5",
desc: "Interrupt Source 5 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO6",
desc: "Interrupt Source 6 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO7",
desc: "Interrupt Source 7 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO8",
desc: "Interrupt Source 8 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO9",
desc: "Interrupt Source 9 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO10",
desc: "Interrupt Source 10 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO11",
desc: "Interrupt Source 11 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO12",
desc: "Interrupt Source 12 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO13",
desc: "Interrupt Source 13 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO14",
desc: "Interrupt Source 14 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO15",
desc: "Interrupt Source 15 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO16",
desc: "Interrupt Source 16 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO17",
desc: "Interrupt Source 17 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO18",
desc: "Interrupt Source 18 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO19",
desc: "Interrupt Source 19 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO20",
desc: "Interrupt Source 20 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO21",
desc: "Interrupt Source 21 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO22",
desc: "Interrupt Source 22 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO23",
desc: "Interrupt Source 23 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO24",
desc: "Interrupt Source 24 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO25",
desc: "Interrupt Source 25 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO26",
desc: "Interrupt Source 26 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO27",
desc: "Interrupt Source 27 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO28",
desc: "Interrupt Source 28 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO29",
desc: "Interrupt Source 29 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO30",
desc: "Interrupt Source 30 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO31",
desc: "Interrupt Source 31 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO32",
desc: "Interrupt Source 32 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO33",
desc: "Interrupt Source 33 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO34",
desc: "Interrupt Source 34 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO35",
desc: "Interrupt Source 35 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO36",
desc: "Interrupt Source 36 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO37",
desc: "Interrupt Source 37 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO38",
desc: "Interrupt Source 38 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO39",
desc: "Interrupt Source 39 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO40",
desc: "Interrupt Source 40 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO41",
desc: "Interrupt Source 41 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO42",
desc: "Interrupt Source 42 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO43",
desc: "Interrupt Source 43 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO44",
desc: "Interrupt Source 44 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO45",
desc: "Interrupt Source 45 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO46",
desc: "Interrupt Source 46 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO47",
desc: "Interrupt Source 47 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO48",
desc: "Interrupt Source 48 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO49",
desc: "Interrupt Source 49 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO50",
desc: "Interrupt Source 50 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO51",
desc: "Interrupt Source 51 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO52",
desc: "Interrupt Source 52 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO53",
desc: "Interrupt Source 53 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO54",
desc: "Interrupt Source 54 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO55",
desc: "Interrupt Source 55 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO56",
desc: "Interrupt Source 56 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO57",
desc: "Interrupt Source 57 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO58",
desc: "Interrupt Source 58 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO59",
desc: "Interrupt Source 59 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO60",
desc: "Interrupt Source 60 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO61",
desc: "Interrupt Source 61 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO62",
desc: "Interrupt Source 62 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO63",
desc: "Interrupt Source 63 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO64",
desc: "Interrupt Source 64 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO65",
desc: "Interrupt Source 65 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO66",
desc: "Interrupt Source 66 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO67",
desc: "Interrupt Source 67 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO68",
desc: "Interrupt Source 68 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO69",
desc: "Interrupt Source 69 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO70",
desc: "Interrupt Source 70 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO71",
desc: "Interrupt Source 71 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO72",
desc: "Interrupt Source 72 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO73",
desc: "Interrupt Source 73 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO74",
desc: "Interrupt Source 74 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO75",
desc: "Interrupt Source 75 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO76",
desc: "Interrupt Source 76 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO77",
desc: "Interrupt Source 77 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO78",
desc: "Interrupt Source 78 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO79",
desc: "Interrupt Source 79 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO80",
desc: "Interrupt Source 80 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO81",
desc: "Interrupt Source 81 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO82",
desc: "Interrupt Source 82 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO83",
desc: "Interrupt Source 83 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO84",
desc: "Interrupt Source 84 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO85",
desc: "Interrupt Source 85 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO86",
desc: "Interrupt Source 86 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO87",
desc: "Interrupt Source 87 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO88",
desc: "Interrupt Source 88 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO89",
desc: "Interrupt Source 89 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO90",
desc: "Interrupt Source 90 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO91",
desc: "Interrupt Source 91 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO92",
desc: "Interrupt Source 92 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO93",
desc: "Interrupt Source 93 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO94",
desc: "Interrupt Source 94 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO95",
desc: "Interrupt Source 95 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO96",
desc: "Interrupt Source 96 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO97",
desc: "Interrupt Source 97 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO98",
desc: "Interrupt Source 98 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO99",
desc: "Interrupt Source 99 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO100",
desc: "Interrupt Source 100 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO101",
desc: "Interrupt Source 101 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO102",
desc: "Interrupt Source 102 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO103",
desc: "Interrupt Source 103 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO104",
desc: "Interrupt Source 104 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO105",
desc: "Interrupt Source 105 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO106",
desc: "Interrupt Source 106 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO107",
desc: "Interrupt Source 107 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO108",
desc: "Interrupt Source 108 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO109",
desc: "Interrupt Source 109 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO110",
desc: "Interrupt Source 110 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO111",
desc: "Interrupt Source 111 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO112",
desc: "Interrupt Source 112 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO113",
desc: "Interrupt Source 113 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO114",
desc: "Interrupt Source 114 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO115",
desc: "Interrupt Source 115 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO116",
desc: "Interrupt Source 116 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO117",
desc: "Interrupt Source 117 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO118",
desc: "Interrupt Source 118 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO119",
desc: "Interrupt Source 119 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO120",
desc: "Interrupt Source 120 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO121",
desc: "Interrupt Source 121 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO122",
desc: "Interrupt Source 122 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO123",
desc: "Interrupt Source 123 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO124",
desc: "Interrupt Source 124 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO125",
desc: "Interrupt Source 125 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO126",
desc: "Interrupt Source 126 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO127",
desc: "Interrupt Source 127 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO128",
desc: "Interrupt Source 128 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO129",
desc: "Interrupt Source 129 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO130",
desc: "Interrupt Source 130 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO131",
desc: "Interrupt Source 131 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO132",
desc: "Interrupt Source 132 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO133",
desc: "Interrupt Source 133 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO134",
desc: "Interrupt Source 134 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO135",
desc: "Interrupt Source 135 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO136",
desc: "Interrupt Source 136 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO137",
desc: "Interrupt Source 137 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO138",
desc: "Interrupt Source 138 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO139",
desc: "Interrupt Source 139 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO140",
desc: "Interrupt Source 140 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO141",
desc: "Interrupt Source 141 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO142",
desc: "Interrupt Source 142 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO143",
desc: "Interrupt Source 143 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO144",
desc: "Interrupt Source 144 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO145",
desc: "Interrupt Source 145 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO146",
desc: "Interrupt Source 146 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO147",
desc: "Interrupt Source 147 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO148",
desc: "Interrupt Source 148 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO149",
desc: "Interrupt Source 149 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO150",
desc: "Interrupt Source 150 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO151",
desc: "Interrupt Source 151 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO152",
desc: "Interrupt Source 152 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO153",
desc: "Interrupt Source 153 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO154",
desc: "Interrupt Source 154 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO155",
desc: "Interrupt Source 155 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO156",
desc: "Interrupt Source 156 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO157",
desc: "Interrupt Source 157 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO158",
desc: "Interrupt Source 158 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO159",
desc: "Interrupt Source 159 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO160",
desc: "Interrupt Source 160 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO161",
desc: "Interrupt Source 161 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO162",
desc: "Interrupt Source 162 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO163",
desc: "Interrupt Source 163 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO164",
desc: "Interrupt Source 164 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO165",
desc: "Interrupt Source 165 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO166",
desc: "Interrupt Source 166 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO167",
desc: "Interrupt Source 167 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO168",
desc: "Interrupt Source 168 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO169",
desc: "Interrupt Source 169 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO170",
desc: "Interrupt Source 170 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO171",
desc: "Interrupt Source 171 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO172",
desc: "Interrupt Source 172 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO173",
desc: "Interrupt Source 173 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO174",
desc: "Interrupt Source 174 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO175",
desc: "Interrupt Source 175 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO176",
desc: "Interrupt Source 176 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO177",
desc: "Interrupt Source 177 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO178",
desc: "Interrupt Source 178 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO179",
desc: "Interrupt Source 179 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO180",
desc: "Interrupt Source 180 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO181",
desc: "Interrupt Source 181 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO182",
desc: "Interrupt Source 182 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO183",
desc: "Interrupt Source 183 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "PRIO184",
desc: "Interrupt Source 184 Priority",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ skipto: "0x00001000" }
{ multireg: {
name: "IP",
desc: "Interrupt Pending",
count: "NumSrc",
cname: "RV_PLIC",
swaccess: "ro",
hwaccess: "hwo",
fields: [
{ bits: "0", name: "P", desc: "Interrupt Pending of Source" }
],
tags: [// IP is driven by intr_src, cannot auto-predict
"excl:CsrNonInitTests:CsrExclCheck"],
}
},
{ skipto: "0x2000" }
{ multireg: {
name: "IE0",
desc: "Interrupt Enable for Target 0",
count: "NumSrc",
cname: "RV_PLIC",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "0", name: "E", desc: "Interrupt Enable of Source" }
],
}
}
{ skipto: "0x200000" }
{ name: "THRESHOLD0",
desc: "Threshold of priority for Target 0",
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "1:0" }
],
}
{ name: "CC0",
desc: '''Claim interrupt by read, complete interrupt by write for Target 0.
Value read/written is interrupt ID. Reading a value of 0 means no pending interrupts.''',
swaccess: "rw",
hwaccess: "hrw",
hwext: "true",
hwqe: "true",
hwre: "true",
fields: [
{ bits: "7:0" }
],
tags: [// CC register value is related to IP
"excl:CsrNonInitTests:CsrExclCheck"],
}
{ skipto: "0x4000000" }
{ name: "MSIP0",
desc: '''msip for Hart 0.
Write 1 to here asserts software interrupt for Hart msip_o[0], write 0 to clear.''',
swaccess: "rw",
hwaccess: "hro",
fields: [
{ bits: "0",
desc: "Software Interrupt Pending register",
}
],
}
{ skipto: "0x4004000" }
{ name: "ALERT_TEST",
desc: '''Alert Test Register.''',
swaccess: "wo",
hwaccess: "hro",
hwqe: "True",
hwext: "True",
fields: [
{ bits: "0",
name: "fatal_fault",
desc: "'Write 1 to trigger one alert event of this kind.'",
}
],
}
],
}