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