0:07Recap and set the stage for the day, with a plug of the RISCY BUSINESS GitHub1
0:07Recap and set the stage for the day, with a plug of the RISCY BUSINESS GitHub1
0:07Recap and set the stage for the day, with a plug of the RISCY BUSINESS GitHub1
6:08Embark on studying entry.S, our first substantial look at GNU assembly
6:08Embark on studying entry.S, our first substantial look at GNU assembly
6:08Embark on studying entry.S, our first substantial look at GNU assembly
11:05Adding to the stack pointer
11:05Adding to the stack pointer
11:05Adding to the stack pointer
14:39mcause and mepc to the csrr
14:39mcause and mepc to the csrr
14:39mcause and mepc to the csrr
17:11Describe stack and heap memory, including brk
2
17:11Describe stack and heap memory, including brk
2
17:11Describe stack and heap memory, including brk
2
22:15Hunt the documentation for the register names3
22:15Hunt the documentation for the register names3
22:15Hunt the documentation for the register names3
27:18Plug SiFive's launch announcement of the U54-MC Coreplex4 and Raptor Computing Systems5 with dreams for a RISC-V desktop
27:18Plug SiFive's launch announcement of the U54-MC Coreplex4 and Raptor Computing Systems5 with dreams for a RISC-V desktop
27:18Plug SiFive's launch announcement of the U54-MC Coreplex4 and Raptor Computing Systems5 with dreams for a RISC-V desktop
36:28Continue the description of stack and heap memory allocation
36:28Continue the description of stack and heap memory allocation
36:28Continue the description of stack and heap memory allocation
39:04Plug nwr_mem.h, a user-space memory allocator
6
39:04Plug nwr_mem.h, a user-space memory allocator
6
39:04Plug nwr_mem.h, a user-space memory allocator
6
42:30Argument registers: a0, a1 and a27
42:30Argument registers: a0, a1 and a27
42:30Argument registers: a0, a1 and a27
47:12Hunt the documentation for the control status register8
47:12Hunt the documentation for the control status register8
47:12Hunt the documentation for the control status register8
49:46Read about the Machine Exception Program Counter (mepc) and Machine Cause Register (mcause)9
49:46Read about the Machine Exception Program Counter (mepc) and Machine Cause Register (mcause)9
49:46Read about the Machine Exception Program Counter (mepc) and Machine Cause Register (mcause)9
56:52Refresh our memories about the CSR Instructions10
56:52Refresh our memories about the CSR Instructions10
56:52Refresh our memories about the CSR Instructions10
58:58Reading the exception data and stack pointer into argument registers11
58:58Reading the exception data and stack pointer into argument registers11
58:58Reading the exception data and stack pointer into argument registers11
1:02:19Calling handle_trap and writing the return value into mepc12
1:02:19Calling handle_trap and writing the return value into mepc12
1:02:19Calling handle_trap and writing the return value into mepc12
1:05:17Read about the Machine Exception Program Counter (mepc)13
1:05:17Read about the Machine Exception Program Counter (mepc)13
1:05:17Read about the Machine Exception Program Counter (mepc)13
1:06:28Study handle_trap() in init.c, wondering why write the stack pointer into a2
1:06:28Study handle_trap() in init.c, wondering why write the stack pointer into a2
1:06:28Study handle_trap() in init.c, wondering why write the stack pointer into a2
1:09:54Draft questions in the Big RISCY BUSINESS Question Thread as to why entry.S writes the stack pointer into the trap handler, and the trap handler's return value into mepc14
1:09:54Draft questions in the Big RISCY BUSINESS Question Thread as to why entry.S writes the stack pointer into the trap handler, and the trap handler's return value into mepc14
1:09:54Draft questions in the Big RISCY BUSINESS Question Thread as to why entry.S writes the stack pointer into the trap handler, and the trap handler's return value into mepc14
1:14:54Continue reading entry.S, using li (load immediate) to load MSTATUS_MPP into a temporary register, and then storing that in mstatus
1:14:54Continue reading entry.S, using li (load immediate) to load MSTATUS_MPP into a temporary register, and then storing that in mstatus
1:14:54Continue reading entry.S, using li (load immediate) to load MSTATUS_MPP into a temporary register, and then storing that in mstatus
1:21:48Read about the Machine Status Register (mstatus)15 and CSRS16
1:21:48Read about the Machine Status Register (mstatus)15 and CSRS16
1:21:48Read about the Machine Status Register (mstatus)15 and CSRS16
1:25:22Consult encoding.h for the definition of MSTATUS_MPP, and locate this in the mstatus register17
1:25:22Consult encoding.h for the definition of MSTATUS_MPP, and locate this in the mstatus register17
1:25:22Consult encoding.h for the definition of MSTATUS_MPP, and locate this in the mstatus register17
1:30:04Read about Memory Privilege in mstatus Register18
1:30:04Read about Memory Privilege in mstatus Register18
1:30:04Read about Memory Privilege in mstatus Register18
1:32:37Plug the SiFive webinar19
1:32:37Plug the SiFive webinar19
1:32:37Plug the SiFive webinar19
1:37:02Read about MPP and MRET20
1:37:02Read about MPP and MRET20
1:37:02Read about MPP and MRET20
1:44:19Wonder if we swap MPP with the privileged mode (thus switching to user-mode), or just store the privileged mode into MPP
1:44:19Wonder if we swap MPP with the privileged mode (thus switching to user-mode), or just store the privileged mode into MPP
1:44:19Wonder if we swap MPP with the privileged mode (thus switching to user-mode), or just store the privileged mode into MPP
1:45:30Continue studying entry.S: staying in machine-mode, and then restoring our registers and deallocate
1:45:30Continue studying entry.S: staying in machine-mode, and then restoring our registers and deallocate
1:45:30Continue studying entry.S: staying in machine-mode, and then restoring our registers and deallocate
1:50:59Read about the Machine-Mode Trap-Return Instruction (MRET)21
1:50:59Read about the Machine-Mode Trap-Return Instruction (MRET)21
1:50:59Read about the Machine-Mode Trap-Return Instruction (MRET)21
1:55:13Determine to learn the GNU assembler syntax22
1:55:13Determine to learn the GNU assembler syntax22
1:55:13Determine to learn the GNU assembler syntax22
2:00:28Wrap it up with thoughts about sleep and streaming schedules
2:00:28Wrap it up with thoughts about sleep and streaming schedules
2:00:28Wrap it up with thoughts about sleep and streaming schedules
2:03:52Shout-out to DannyFritz for the support
2:03:52Shout-out to DannyFritz for the support
2:03:52Shout-out to DannyFritz for the support