USER GUIDE / PROCESSOR & BUS / PLIC / REGISTER DESCRIPTION
寄存器描述
PLIC 配置寄存器(PLIC_CONFIG)
该寄存器保存 PLIC 配置信息,例如支持的最高优先级以及支持的中断源数量。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:24 | Reserved | 写入无影响,读取为零。 | R |
| 23:12 | INTPRI | 支持的最高优先级。 | R |
| 11:0 | INTSRC | 支持的中断源数量。 | R |
PLIC 中断优先级寄存器(PLIC_PRIOn,n=1~66)
该寄存器保存对应中断源的优先级值。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:2 | Reserved | 写入无影响,读取为零。 | R |
| 2:0 | PRI0 | 中断源优先级。 | WARL |
PLIC Interrupt Pending 0~31 位寄存器(PLIC_IP0)
该寄存器保存中断源 0~31 的 IP 位,每个中断源对应 1 位。当 IP 位为 1 时,表示对应中断源处于待响应或待服务状态。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | IP | 中断源 0~31 的 IP 位。 | R |
PLIC Interrupt Pending 63~32 位寄存器(PLIC_IP1)
该寄存器保存中断源 63~32 的 IP 位,每个中断源对应 1 位。当 IP 位为 1 时,表示对应中断源处于待响应或待服务状态。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | IP | 中断源 32~63 的 IP 位。 | R |
PLIC Interrupt Pending 64~66 位寄存器(PLIC_IP2)
该寄存器保存中断源 64~66 的 IP 位,每个中断源对应 1 位。当 IP 位为 1 时,表示对应中断源处于待响应或待服务状态。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:3 | Reserved | 写入无影响,读取为零。 | R |
| 2:0 | IP | 中断源 64~66 的 IP 位。 | R |
PLIC Interrupt Enable 0~31 位寄存器(PLIC_IE0_t)
该寄存器保存目标 t 对中断源 0~31 的中断使能(IE)位,每个中断源对应 1 位。当 IE 位为 1 时,对应中断源被使能;否则,该中断源被目标端屏蔽。每个目标的中断 0 均为 Reserved 位,写对应 IE 位无效。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | IE | 中断源 0~31 到目标 t 的使能位。 | RW |
PLIC Interrupt Enable 63~32 位寄存器(PLIC_IE1_t)
该寄存器保存目标 t 对中断源 32~63 的中断使能(IE)位,每个中断源对应 1 位。当 IE 位为 1 时,对应中断源被使能;否则,该中断源被目标端屏蔽。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | IE | 中断源 32~63 到目标 t 的使能位。 | RW |
PLIC Interrupt Enable 64~66 位寄存器(PLIC_IE2_t)
该寄存器保存目标 t 对中断源 64~66 的中断使能(IE)位,每个中断源对应 1 位。当 IE 位为 1 时,对应中断源被使能;否则,该中断源被目标端屏蔽。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:3 | Reserved | 写入无影响,读取为零。 | R |
| 2:0 | IE | 中断源 64~66 到目标 t 的使能位。 | RW |
PLIC Threshold 寄存器(PLIC_THRESHOLD_t)
该寄存器保存目标 t 的优先级阈值。只有优先级严格高于该阈值的活动中断才能发送到目标端。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:3 | Reserved | 写入无影响,读取为零。 | R |
| 2:0 | THRESHOLD | 目标端的优先级阈值。 | WARL |
PLIC Interrupt Claim Register(PLIC_CLAIM_t)
该寄存器保存发往目标 t 的最高优先级挂起中断 ID。读取 PLIC_CLAIM_t 寄存器可获得该中断 ID,同时硬件会自动清除对应的 IP 位。该过程表示一次中断认领(Interrupt Claim)。
对该寄存器写入无效,但目标端会向对应网关发送中断完成(Interrupt Completion)消息,从而在写操作后允许新的中断请求。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:6 | Reserved | 写入无影响,读取为零。 | R |
| 5:0 | ID | 最高优先级挂起中断的 ID。 | WARL |
PLIC Interrupt Mask 0~31 位寄存器(PLIC_IMR0)
该寄存器用于屏蔽中断源 0~31,用于定义哪些中断源对对应 PLIC 可见;被屏蔽的中断源不会进入挂起状态。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | IMR | PLIC 输入中断源的屏蔽位。 0:对应中断源未屏蔽。 1:对应中断源被屏蔽。 | RW |
PLIC Interrupt Mask 63~32 位寄存器(PLIC_IMR1)
该寄存器用于屏蔽中断源 32~63,用于定义哪些中断源对对应 PLIC 可见;被屏蔽的中断源不会进入挂起状态。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | IMR | PLIC 输入中断源的屏蔽位。 0:对应中断源未屏蔽。 1:对应中断源被屏蔽。 | RW |
PLIC Interrupt Mask 64~66 位寄存器(PLIC_IMR2)
该寄存器用于屏蔽中断源 64~66,用于定义哪些中断源对对应 PLIC 可见;被屏蔽的中断源不会进入挂起状态。
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:3 | Reserved | 写入无影响,读取为零。 | R |
| 2:0 | IMR | PLIC 输入中断源的屏蔽位。 | RW |