We are currently in the process of converting the website to the new design. Some pages, like this one, are still broken. We appreciate your patience.
RISCY BUSINESS»Episode Guide
Studying entry.S
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
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 brk2
📖
17:11Describe stack and heap memory, including brk2
📖
17:11Describe stack and heap memory, including brk2
📖
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 allocator6
📖
39:04Plug nwr_mem.h, a user-space memory allocator6
📖
39:04Plug nwr_mem.h, a user-space memory allocator6
📖
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