cinera_handmade.network/miotatsu/riscy/riscy/riscy016.hmml

41 lines
2.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[video member=miotatsu stream_platform=twitch project=riscy title="Understanding the Relationship Between the PLIC, mie, and mstatus MIE Bit" vod_platform=youtube id=9ZiHmPhOrQ4 annotator=Miblo]
[0:18][Mention John Gustafson's talk on a new way of encoding decimal numbers[ref
site=insideHPC
page="John Gustafson presents: Beyond Floating Point Next Generation Computer Arithmetic"
url=http://insidehpc.com/2017/02/john-gustafson-presents-beyond-floating-point-next-generation-computer-arithmetic/]]
[3:16][Set the stage for the day]
[4:33][Read about mstatus[ref
site="RISC-V"
page="Draft Privileged ISA Specification v1.9.1"
url=https://riscv.org/specifications/privileged-isa/]][:hardware :research]
[5:24][@miblo][Haha! I noticed myself doing that and wanted to break the same habit! (Without success, I think)]
[6:09][:Research the Machine Status Register][:hardware]
[8:32][Consult demo_gpio.c and plic_driver.c and wonder what the machine-external and machine-timer interrupts bits are doing][:hardware :research]
[12:08][Wonder also why we have a separate Coreplex-Local Interrupts controller][:hardware]
[14:35][Continue reading about the machine-mode status register (mstatus)][:hardware :research]
[20:27][Summarise how the mie bit in the mstatus register is being used][:hardware :research]
[21:36][Read about privilege levels][:hardware :research]
[24:32][Determine that the PLIC only handles global interrupts, and read about local interrupt sources][:hardware :research]
[28:01][Read about Interrupt Targets and Hart Contexts][:hardware :research]
[29:19][Consult the PLIC diagram][:blackboard :hardware :research]
[31:00][Continue reading about the interrupts in terms of the mip][:hardware :research]
[39:47][Note that PLIC_enable_interrupt() and PLIC_disable_interrupt() happen on a per-thread basis][:hardware :research :threading]
[41:58][Review the documentation on Machine Interrupt Registers (mip and mie)][:hardware :research]
[46:53][Consult the table on mstatus and consider the difference between mip and mie][:hardware :research]
[49:01][Return to demo_gpio.c, note that the clear_csr() calls in reset_demo() are not disabling software interrupts, and consider asking why][:research]
[53:44][Skim over demo_gpio.c in general][:research]
[55:15][@tenbroya][Heyo]
[55:57][@tenbroya][(it's James from the HMN IRC)]
[56:04][Continue skimming over demo_gpio.c][:research]
[58:35][RISC-V Assembly Programmer's Handbook[ref
site=RISC-V
page="User-Level ISA Specification v2.1"
url=https://riscv.org/specifications]]
[59:28][Read about the Coreplex-Local Interrupts (CLINT)[ref
site="SiFive Developers"
page="E3 Coreplex Manual"
url=https://static.dev.sifive.com/pdfjs/web/viewer.html?file=https://static.dev.sifive.com/SiFive-E3-Coreplex-v1.2.pdf]][:hardware :research]
[1:02:44][Read about MSIP Registers][:hardware :research]
[1:03:40][That's all the time we have for today]
[/video]