[video member=miotatsu stream_platform=twitch project=riscy title="Understanding reset_demo" vod_platform=youtube id=3vIk7XXtVHU annotator=Miblo]
[0:05][Start the stream with a mention of the "Useful Links" forum thread[ref
    site="RISCY BUSINESS Forums"
    page="Useful Links"
    url=https://riscy.handmade.network/forums/t/2190]]
[0:57][Start reading the message from Hossein][:hardware :fabrication]
[2:02][Take a little digression to mention the Ultimate Hacking Keyboard[ref
    site="Ultimate Hacking Keyboard"
    url=https://ultimatehackingkeyboard.com/]]
[3:22][Continue reading Hossein's message]
[9:05][Recommend "Indistinguishable From Magic: Manufacturing Modern Computer Chips" video[ref
    site=YouTube
    page="Indistinguishable From Magic: Manufacturing Modern Computer Chips"
    url=https://www.youtube.com/watch?v=NGFhc8R_uO4]]
[9:21][@miblo][Fish 'n' Chip fabrication?]
[10:32][Read Hossein's follow-up message on SiFive's business model][:hardware :fabrication]
[12:52][Take a refresher on what we were doing, before letting in the DOG]
[15:38][Return]
[16:24][@miblo][You can totally do that!]
[16:31][:Research MIE-related and DECLARE_CSR declarations]
[22:05][TODO: dive into DECLARE_CSR()][:blackboard]
[27:57][@miblo][The privileged spec[ref
    site="RISC-V"
    page="Draft Privileged ISA Specification v1.9.1"
    url=https://riscv.org/specifications/privileged-isa/] was the most recent doc you were looking at]
[29:12][Refer to the documentation on currently allocated RISC-V machine-level CSR addresses in conjunction with the code][:research]
[30:56][Note that they only defined values for MIP_*, and :research the IRQ* values]
[33:59][Read about the Machine interrupt-enable register (mie) and summarise what clear_csr() is doing][:research]
[37:26][Continue reading reset_demo(), as it sets g_ext_interrupt_handlers and calls print_instructions()][:research]
[45:02][TODO: STDOUT_FILENO, write, uart...][:blackboard]
[45:57][Continue reading through reset_demo() as it calls PLIC-related functions][:research]
[48:15][TODO: GPIO_REG][:blackboard]
[49:03][Go over reset_demo() again][:research]
[50:22]["And then there's a comment that just says The"][quote 16]
[50:31][Read on about how reset_demo() handles timers][:research]
[51:11][A few words on the code being the documentation]
[53:49]["For Handmade stuff I really do like the idea of just diving in and really understanding the code"][quote 17]
[54:01][@ql1q][Call functions and vars in a sane way and you never need comments]
[54:16][@ql1q][I mean comments like "WIP" or "TODO" are useful indeed]
[54:48][Continue reading about about reset_demo() handles timers and recap the areas to explore from the :blackboard]
[56:52][Start [:research researching] the CLINT in the Freedom E310-G000 Manual[ref
    site="SiFive Developers"
    page="Freedom E310-G000 Manual"
    url=https://www.sifive.com/documentation/chips/freedom-e310-g000-manual/] and the E3 Coreplex Manual[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]]
[1:01:36][Determine to read RISC-V Assembly Programmer's Handbook in the User-Level ISA Specification[ref
    site=RISC-V
    page="User-Level ISA Specification v2.1"
    url=https://riscv.org/specifications]]
[1:02:47][@miblo][Good choice to insert the N in CLINT, methinks]
[1:03:02][That is everything for today]
[/video]
