Skip to content

Commit 3d0b6fc

Browse files
Updates on the RPi tutorials (#48)
1 parent 2d327ea commit 3d0b6fc

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

content/this-month/2021-03/index.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,37 @@ The third edition is making progress too. I mostly worked on the post about UEFI
142142
- [Describe how to use various UEFI protocols with the `uefi` crate](https://github.com/phil-opp/blog_os/commit/9c1babd0273ff3d4f632b6e1acf288267138b90f)
143143
- [Provide a high-level explanation on how to create bootloader](https://github.com/phil-opp/blog_os/commit/db47b2702446c1a469e8e064fb090370040bfa2e)
144144

145+
### [`rust-embedded/rust-raspberrypi-OS-tutorials`](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials)
146+
147+
<span class="gray">(Section written by [@andre-richter](https://github.com/andre-richter))</span>
148+
149+
The [Operating System development tutorials in Rust on the Raspberry Pi](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials) project
150+
got two more tutorials this month:
151+
152+
- [Tutorial 15 - `Virtual Memory Part 3: Precomputed Translation Tables`](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials/tree/master/15_virtual_mem_part3_precomputed_tables)
153+
- [Tutorial 16 - `Virtual Memory Part 4: Higher-Half Kernel`](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials/tree/master/16_virtual_mem_part4_higher_half_kernel)
154+
155+
The two tutorials finally conclude the challenging but rewarding journey of enabling the kernel to execute **from the top of the 64 bit virtual address space**.
156+
157+
Here is a sneak peek of the end result when booting the `kernel` on a **Raspberry Pi 4** (slightly modified to fit on the page):
158+
159+
```console
160+
[5.011] Booting on: Raspberry Pi 4
161+
[5.011] MMU online:
162+
[5.011] --------------------------------------------------------------------------------------------------------------
163+
[5.013] Virtual Physical Size Attr Entity
164+
[5.015] --------------------------------------------------------------------------------------------------------------
165+
[5.017] 0xffff_ffff_8008_0000..0xffff_ffff_8008_ffff --> 0x0008_0000..0x0008_ffff | 64 KiB | C RO X | Kernel code
166+
[5.018] 0xffff_ffff_8009_0000..0xffff_ffff_800f_ffff --> 0x0009_0000..0x000f_ffff | 448 KiB | C RW XN | Kernel data
167+
[5.020] 0xffff_ffff_8011_0000..0xffff_ffff_8018_ffff --> 0x0011_0000..0x0018_ffff | 512 KiB | C RW XN | Kernel stack
168+
[5.021] 0xffff_ffff_f000_0000..0xffff_ffff_f000_ffff --> 0xfe20_0000..0xfe20_ffff | 64 KiB | D RW XN | BCM GPIO
169+
[5.023] | BCM PL011 UART
170+
[5.024] 0xffff_ffff_f001_0000..0xffff_ffff_f001_ffff --> 0xff84_0000..0xff84_ffff | 64 KiB | D RW XN | GICD
171+
[5.026] | GICC
172+
[5.027] --------------------------------------------------------------------------------------------------------------
173+
[5.029] Current privilege level: EL1
174+
```
175+
145176
## Join Us?
146177

147178
Are you interested in Rust-based operating system development? Our `rust-osdev` organization is always open to new members and new projects. Just let us know if you want to join! A good way for getting in touch is our [gitter channel](https://gitter.im/rust-osdev/Lobby).

0 commit comments

Comments
 (0)