// 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", // Unique comportable IP identifier defined under KNOWN_CIP_IDS in the regtool. cip_id: "33", design_spec: "../doc", dv_doc: "../doc/dv", hw_checklist: "../doc/checklist", sw_checklist: "/sw/device/lib/dif/dif_rv_plic", revisions: [ { version: "1.0.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: "182", 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." } ] features: [ { name: "RV_PLIC.PRIORITY", desc: '''Each interrupt source can be given a configurable priority.''' } { name: "RV_PLIC.ENABLE", desc: '''Each target has an associated set of interrupt enable bits. Configuring these controls whether a target will be notified when the interrupt is triggered. ''' } ] 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" } ], } { 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.'", } ], } ], }