iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
tags: 鐵人賽

0. 前言

昨日已經先簡單介紹 IMSIC 、 interrupt ID,以及 interrupt file,進天繼續介紹吧。

1. Interrupt priorities(中斷優先順序)

在單個 interrupt file 當中,interrupt 的優先順序是由 interrupt ID 決定的,號碼越低表示優先順序越高。

2. Reset and revealed state

當 IMSIC 重置時,其所有 interrupt file 的狀態將變為有效且一致,但除了 machien level 和 supervisor level 的 interrupt file 中可能指定了eidelivery,其餘狀態將未指定。

3. Interrupt file 的 memory 區域

IMSIC 中的每個 interrupt file 有一個或兩個用來接收 MSI 的暫存器(32 bit 暫存器),這些暫存器位在 physical address 空間對齊4KB,也就是每個 interrupt file 即一頁(page)
interrupt file 的 meomry region:

interrupt file 的 memory region 當中,除了已定義的部分,其他 byte 皆被保留,並且須為 read only 0。
interrupt file 的 memory region,對於已定義的部分,則只接受對其 32bit 的 read 和 write。若對 read only 的 byte 進行寫入,則直接忽略。

支援 little-edian 系統,假設 i 是 interrupt ID,則以 little-endian 的順序寫入到 setitpnum_le,使 interrupt i pending bit 為1,反之若不是以 little-endian 方式的 interrupt ID,則忽略對 setipnum_le 的寫入。

而對於支援 big-endian 系統,如果 i 是 interrupt ID,則以 big-endian 的順序將i寫入到 setipnum_be,interrupt i pending bit 為1,反之若不是以 big-endian 方式的 interrupt ID,則忽略對 setipnum_be 的寫入。

4. 後記

今天介紹 interrupt priority 以及 interrupt file 的 memory region,明天我們繼續,今天行程滿檔,每天要記得 po 文一個不注意,真的會忘了要 po 文章。


上一篇
DAY9: RISC-V: IMSIC(一)
下一篇
DAY11: RISC-V: IMSIC(三)
系列文
RISC-V: 深入淺出從入門到放棄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言