[video member=miotatsu stream_platform=twitch project=riscy title="Studying local-interrupts Demo" vod_platform=youtube id=oB4Ll_ZPPBY annotator=Miblo] [0:14][@riskyfive][Do you have any init.h in your RISC-V SDKs?] [0:59][@riskyfive][It's required by riscv-tests, but I can't find it anywhere] [2:18][Shout-out to The RISC-V Reader: An Open Architecture Atlas[ref site="The RISC-V Reader: An Open Architecture Atlas" url=http://riscvbook.com/]] [5:42][Plug RISC-V Books[ref site=RISC-V page="RISC-V Books" url=https://riscv.org/risc-v-books/]] [7:12][@riskyfive][By the way, you totally have to read these three blog posts[ref site="SiFive Blog" author="Palmer Dabbelt" page="All Aboard, Part 1: The -march, -mabi, and -mtune arguments to RISC-V Compilers" url=https://www.sifive.com/blog/2017/08/14/all-aboard-part-1-compiler-args/][ref site="SiFive Blog" author="Palmer Dabbelt" page="All Aboard, Part 2: Relocations in ELF Toolchains" url=https://www.sifive.com/blog/2017/08/21/all-aboard-part-2-relocations/][ref site="SiFive Blog" author="Palmer Dabbelt" page="All Aboard, Part 3: Linker Relaxation in the RISC-V Toolchain" url=https://www.sifive.com/blog/2017/08/28/all-aboard-part-3-linker-relaxation-in-riscv-toolchain/]] [8:44][Plug SiFive's bi-monthly newsletter[ref site=Twitter page="Earlier this morning, we shipped the 2nd iteration of our bi-monthly newsletter, The SiFive Download! Take a look" url=https://twitter.com/SiFiveInc/status/902606788310249472]] [9:12][Plug the 100-subscriber milestone giveaway contest[ref site=Twitter page="[Announcement] Giveaway Contest (100 Subs)!" url=https://twitter.com/hmn_riscy/status/908924885598113792]] [10:05][Jump back into perusing the demos] [10:45][@riskyfive][Be right back] [10:49][Continue to peruse the demos] [11:18][Mention the second webcam] [13:45][@riskyfive][Back] [13:49][Plan our studies] [14:45][@riskyfive][So what's the plan, again? Sorry] [15:10][Jump in to the local_interrupts.c demo][:research] [22:35][Consult handle_trap() in the HiFive1's init.c][:research] [23:36][Continue studying local_interrupts.c, on the Machine Software Interrupt Handler][:research] [26:56][Check out SiFive's site for information on the E51 Coreplex[ref site=SiFive page=Products url=https://www.sifive.com/products/coreplex-risc-v-ip/] and the Freedom platforms[ref site=SiFive page="Freedom Platforms" url=https://www.sifive.com/products/freedom/]] [29:13][@riskyfive][That's not new. But they don't sell it] [29:41][Continue to check out the E51[ref site=SiFive page="Freedom Platforms" url=https://www.sifive.com/products/freedom/]] [32:36][Continue to study local_interrupts.c, on :"input handling" and :timing][:research] [40:50][Hunt for MIP_MLIP][:research] [44:50][Learn the definition of MIP_MLIP, and review set_csr()][:research] [48:01][Learn the LOCAL_INT_* definitions][:research] [48:38][@bananathemonkey][Probably the lower 16b are reserved for something else] [48:53][Relate those LOCAL_INT* values to their usage in enable_local_interrupts()][:research] [51:03][Shifting MIP_MLIP by local interrupt values][:blackboard :memory] [52:34][@bananathemonkey][It's the amount you're left-shifting by, though, not the actual value] [53:55][@bananathemonkeys][It looks like it's a single bit mask for a 32b field where the lower 16b are reserved for something (local interrupts, maybe?)] [54:14][Address some texts] [55:21][Wrap it up with a shout-out to new Patreon supporters] [/video]