Skip to content

Commit 971a716

Browse files
committed
Update for Rpi4 support
1 parent 93e108f commit 971a716

File tree

26 files changed

+32
-30
lines changed

26 files changed

+32
-30
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
**/target/*
22
**/.gdb_history
33
**/kernel8.img
4+
**/.idea
45

56
node_modules
67
.bundle

01_wait_forever/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ else ifeq ($(BSP),rpi4)
3535
TARGET = aarch64-unknown-none-softfloat
3636
KERNEL_BIN = kernel8.img
3737
QEMU_BINARY = qemu-system-aarch64
38-
QEMU_MACHINE_TYPE =
38+
QEMU_MACHINE_TYPE = raspi4
3939
QEMU_RELEASE_ARGS = -d in_asm -display none
4040
OBJDUMP_BINARY = aarch64-none-elf-objdump
4141
NM_BINARY = aarch64-none-elf-nm

02_runtime_init/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ else ifeq ($(BSP),rpi4)
3535
TARGET = aarch64-unknown-none-softfloat
3636
KERNEL_BIN = kernel8.img
3737
QEMU_BINARY = qemu-system-aarch64
38-
QEMU_MACHINE_TYPE =
38+
QEMU_MACHINE_TYPE = raspi4
3939
QEMU_RELEASE_ARGS = -d in_asm -display none
4040
OBJDUMP_BINARY = aarch64-none-elf-objdump
4141
NM_BINARY = aarch64-none-elf-nm

03_hacky_hello_world/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ else ifeq ($(BSP),rpi4)
3535
TARGET = aarch64-unknown-none-softfloat
3636
KERNEL_BIN = kernel8.img
3737
QEMU_BINARY = qemu-system-aarch64
38-
QEMU_MACHINE_TYPE =
38+
QEMU_MACHINE_TYPE = raspi4
3939
QEMU_RELEASE_ARGS = -serial stdio -display none
4040
OBJDUMP_BINARY = aarch64-none-elf-objdump
4141
NM_BINARY = aarch64-none-elf-nm

03_hacky_hello_world/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ diff -uNr 02_runtime_init/Makefile 03_hacky_hello_world/Makefile
6565
@@ -36,7 +36,7 @@
6666
KERNEL_BIN = kernel8.img
6767
QEMU_BINARY = qemu-system-aarch64
68-
QEMU_MACHINE_TYPE =
68+
QEMU_MACHINE_TYPE = raspi4
6969
- QEMU_RELEASE_ARGS = -d in_asm -display none
7070
+ QEMU_RELEASE_ARGS = -serial stdio -display none
7171
OBJDUMP_BINARY = aarch64-none-elf-objdump

03_hacky_hello_world/src/panic_wait.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,14 @@ fn panic(info: &PanicInfo) -> ! {
5151
};
5252

5353
println!(
54-
"Kernel panic!\n\n\
55-
Panic location:\n File '{}', line {}, column {}\n\n\
56-
{}",
54+
"Kernel panic!\n\
55+
{space}Panic message:\n{space}{space}{}\n\
56+
{space}Panic location:\n{space}{space}File '{}', line {}, column {}",
57+
info.message().unwrap_or(&format_args!("")),
5758
location,
5859
line,
5960
column,
60-
info.message().unwrap_or(&format_args!("")),
61+
space = " ",
6162
);
6263

6364
cpu::wait_forever()

04_safe_globals/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ else ifeq ($(BSP),rpi4)
3535
TARGET = aarch64-unknown-none-softfloat
3636
KERNEL_BIN = kernel8.img
3737
QEMU_BINARY = qemu-system-aarch64
38-
QEMU_MACHINE_TYPE =
38+
QEMU_MACHINE_TYPE = raspi4
3939
QEMU_RELEASE_ARGS = -serial stdio -display none
4040
OBJDUMP_BINARY = aarch64-none-elf-objdump
4141
NM_BINARY = aarch64-none-elf-nm

05_drivers_gpio_uart/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ else ifeq ($(BSP),rpi4)
3838
TARGET = aarch64-unknown-none-softfloat
3939
KERNEL_BIN = kernel8.img
4040
QEMU_BINARY = qemu-system-aarch64
41-
QEMU_MACHINE_TYPE =
41+
QEMU_MACHINE_TYPE = raspi4
4242
QEMU_RELEASE_ARGS = -serial stdio -display none
4343
OBJDUMP_BINARY = aarch64-none-elf-objdump
4444
NM_BINARY = aarch64-none-elf-nm

07_timestamps/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ else ifeq ($(BSP),rpi4)
3838
TARGET = aarch64-unknown-none-softfloat
3939
KERNEL_BIN = kernel8.img
4040
QEMU_BINARY = qemu-system-aarch64
41-
QEMU_MACHINE_TYPE =
41+
QEMU_MACHINE_TYPE = raspi4
4242
QEMU_RELEASE_ARGS = -serial stdio -display none
4343
OBJDUMP_BINARY = aarch64-none-elf-objdump
4444
NM_BINARY = aarch64-none-elf-nm

08_hw_debug_JTAG/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ else ifeq ($(BSP),rpi4)
4040
TARGET = aarch64-unknown-none-softfloat
4141
KERNEL_BIN = kernel8.img
4242
QEMU_BINARY = qemu-system-aarch64
43-
QEMU_MACHINE_TYPE =
43+
QEMU_MACHINE_TYPE = raspi4
4444
QEMU_RELEASE_ARGS = -serial stdio -display none
4545
OBJDUMP_BINARY = aarch64-none-elf-objdump
4646
NM_BINARY = aarch64-none-elf-nm

09_privilege_level/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ else ifeq ($(BSP),rpi4)
4040
TARGET = aarch64-unknown-none-softfloat
4141
KERNEL_BIN = kernel8.img
4242
QEMU_BINARY = qemu-system-aarch64
43-
QEMU_MACHINE_TYPE =
43+
QEMU_MACHINE_TYPE = raspi4
4444
QEMU_RELEASE_ARGS = -serial stdio -display none
4545
OBJDUMP_BINARY = aarch64-none-elf-objdump
4646
NM_BINARY = aarch64-none-elf-nm

10_virtual_mem_part1_identity_mapping/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ else ifeq ($(BSP),rpi4)
4040
TARGET = aarch64-unknown-none-softfloat
4141
KERNEL_BIN = kernel8.img
4242
QEMU_BINARY = qemu-system-aarch64
43-
QEMU_MACHINE_TYPE =
43+
QEMU_MACHINE_TYPE = raspi4
4444
QEMU_RELEASE_ARGS = -serial stdio -display none
4545
OBJDUMP_BINARY = aarch64-none-elf-objdump
4646
NM_BINARY = aarch64-none-elf-nm

11_exceptions_part1_groundwork/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ else ifeq ($(BSP),rpi4)
4040
TARGET = aarch64-unknown-none-softfloat
4141
KERNEL_BIN = kernel8.img
4242
QEMU_BINARY = qemu-system-aarch64
43-
QEMU_MACHINE_TYPE =
43+
QEMU_MACHINE_TYPE = raspi4
4444
QEMU_RELEASE_ARGS = -serial stdio -display none
4545
OBJDUMP_BINARY = aarch64-none-elf-objdump
4646
NM_BINARY = aarch64-none-elf-nm

12_integrated_testing/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ else ifeq ($(BSP),rpi4)
4848
TARGET = aarch64-unknown-none-softfloat
4949
KERNEL_BIN = kernel8.img
5050
QEMU_BINARY = qemu-system-aarch64
51-
QEMU_MACHINE_TYPE =
51+
QEMU_MACHINE_TYPE = raspi4
5252
QEMU_RELEASE_ARGS = -serial stdio -display none
5353
QEMU_TEST_ARGS = $(QEMU_RELEASE_ARGS) -semihosting
5454
OBJDUMP_BINARY = aarch64-none-elf-objdump

12_integrated_testing/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ provided to it by `cargo`, and finally compiles a `docker` command to execute th
449449
reference, here it is fully resolved for an `RPi3 BSP`:
450450

451451
```bash
452-
docker run -t --rm -v /opt/rust-raspberrypi-OS-tutorials/12_integrated_testing:/work/tutorial -w /work/tutorial -v /opt/rust-raspberrypi-OS-tutorials/12_integrated_testing/../common:/work/common rustembedded/osdev-utils:2021.12 ruby ../common/tests/dispatch.rb qemu-system-aarch64 -M raspi3 -serial stdio -display none -semihosting -kernel $TEST_BINARY
452+
docker run -t --rm -v /opt/rust-raspberrypi-OS-tutorials/12_integrated_testing:/work/tutorial -w /work/tutorial -v /opt/rust-raspberrypi-OS-tutorials/12_integrated_testing/../common:/work/common u007d/osdev-utils-rpi4:2023.09 ruby ../common/tests/dispatch.rb qemu-system-aarch64 -M raspi3 -serial stdio -display none -semihosting -kernel $TEST_BINARY
453453
```
454454

455455
This command is quite similar to the one used in the `make test_boot` target that we have since

13_exceptions_part2_peripheral_IRQs/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ else ifeq ($(BSP),rpi4)
4848
TARGET = aarch64-unknown-none-softfloat
4949
KERNEL_BIN = kernel8.img
5050
QEMU_BINARY = qemu-system-aarch64
51-
QEMU_MACHINE_TYPE =
51+
QEMU_MACHINE_TYPE = raspi4
5252
QEMU_RELEASE_ARGS = -serial stdio -display none
5353
QEMU_TEST_ARGS = $(QEMU_RELEASE_ARGS) -semihosting
5454
OBJDUMP_BINARY = aarch64-none-elf-objdump

14_virtual_mem_part2_mmio_remap/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ else ifeq ($(BSP),rpi4)
4848
TARGET = aarch64-unknown-none-softfloat
4949
KERNEL_BIN = kernel8.img
5050
QEMU_BINARY = qemu-system-aarch64
51-
QEMU_MACHINE_TYPE =
51+
QEMU_MACHINE_TYPE = raspi4
5252
QEMU_RELEASE_ARGS = -serial stdio -display none
5353
QEMU_TEST_ARGS = $(QEMU_RELEASE_ARGS) -semihosting
5454
OBJDUMP_BINARY = aarch64-none-elf-objdump

15_virtual_mem_part3_precomputed_tables/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ else ifeq ($(BSP),rpi4)
4848
TARGET = aarch64-unknown-none-softfloat
4949
KERNEL_BIN = kernel8.img
5050
QEMU_BINARY = qemu-system-aarch64
51-
QEMU_MACHINE_TYPE =
51+
QEMU_MACHINE_TYPE = raspi4
5252
QEMU_RELEASE_ARGS = -serial stdio -display none
5353
QEMU_TEST_ARGS = $(QEMU_RELEASE_ARGS) -semihosting
5454
OBJDUMP_BINARY = aarch64-none-elf-objdump

16_virtual_mem_part4_higher_half_kernel/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ else ifeq ($(BSP),rpi4)
4848
TARGET = aarch64-unknown-none-softfloat
4949
KERNEL_BIN = kernel8.img
5050
QEMU_BINARY = qemu-system-aarch64
51-
QEMU_MACHINE_TYPE =
51+
QEMU_MACHINE_TYPE = raspi4
5252
QEMU_RELEASE_ARGS = -serial stdio -display none
5353
QEMU_TEST_ARGS = $(QEMU_RELEASE_ARGS) -semihosting
5454
OBJDUMP_BINARY = aarch64-none-elf-objdump

17_kernel_symbols/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ else ifeq ($(BSP),rpi4)
4848
TARGET = aarch64-unknown-none-softfloat
4949
KERNEL_BIN = kernel8.img
5050
QEMU_BINARY = qemu-system-aarch64
51-
QEMU_MACHINE_TYPE =
51+
QEMU_MACHINE_TYPE = raspi4
5252
QEMU_RELEASE_ARGS = -serial stdio -display none
5353
QEMU_TEST_ARGS = $(QEMU_RELEASE_ARGS) -semihosting
5454
OBJDUMP_BINARY = aarch64-none-elf-objdump

18_backtrace/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ else ifeq ($(BSP),rpi4)
4848
TARGET = aarch64-unknown-none-softfloat
4949
KERNEL_BIN = kernel8.img
5050
QEMU_BINARY = qemu-system-aarch64
51-
QEMU_MACHINE_TYPE =
51+
QEMU_MACHINE_TYPE = raspi4
5252
QEMU_RELEASE_ARGS = -serial stdio -display none
5353
QEMU_TEST_ARGS = $(QEMU_RELEASE_ARGS) -semihosting
5454
OBJDUMP_BINARY = aarch64-none-elf-objdump

19_kernel_heap/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ else ifeq ($(BSP),rpi4)
5353
TARGET = aarch64-unknown-none-softfloat
5454
KERNEL_BIN = kernel8.img
5555
QEMU_BINARY = qemu-system-aarch64
56-
QEMU_MACHINE_TYPE =
56+
QEMU_MACHINE_TYPE = raspi4
5757
QEMU_RELEASE_ARGS = -serial stdio -display none
5858
QEMU_TEST_ARGS = $(QEMU_RELEASE_ARGS) -semihosting
5959
OBJDUMP_BINARY = aarch64-none-elf-objdump

20_timer_callbacks/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ else ifeq ($(BSP),rpi4)
5353
TARGET = aarch64-unknown-none-softfloat
5454
KERNEL_BIN = kernel8.img
5555
QEMU_BINARY = qemu-system-aarch64
56-
QEMU_MACHINE_TYPE =
56+
QEMU_MACHINE_TYPE = raspi4
5757
QEMU_RELEASE_ARGS = -serial stdio -display none
5858
QEMU_TEST_ARGS = $(QEMU_RELEASE_ARGS) -semihosting
5959
OBJDUMP_BINARY = aarch64-none-elf-objdump

X1_JTAG_boot/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ else ifeq ($(BSP),rpi4)
3838
TARGET = aarch64-unknown-none-softfloat
3939
KERNEL_BIN = kernel8.img
4040
QEMU_BINARY = qemu-system-aarch64
41-
QEMU_MACHINE_TYPE =
41+
QEMU_MACHINE_TYPE = raspi4
4242
QEMU_RELEASE_ARGS = -serial stdio -display none
4343
OBJDUMP_BINARY = aarch64-none-elf-objdump
4444
NM_BINARY = aarch64-none-elf-nm

common/docker.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
DOCKER_IMAGE := rustembedded/osdev-utils:2021.12
1+
DOCKER_IMAGE := u007d/osdev-utils-rpi4:2023.09

docker/rustembedded-osdev-utils/Makefile

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44

55
# Reference followed: https://www.docker.com/blog/getting-started-with-docker-for-arm-on-linux
66

7-
TAG := 2021.12
7+
TAG := 2023.09
88

99
default: build_local
1010

1111
build_local:
1212
cp ../../Gemfile .
1313
docker build \
14-
--tag rustembedded/osdev-utils:$(TAG) \
14+
--tag u007d/osdev-utils-rpi4:$(TAG) \
1515
--build-arg VCS_REF=`git rev-parse --short HEAD` .
1616
rm Gemfile
1717

@@ -20,6 +20,6 @@ buildx_push:
2020
docker buildx build \
2121
--push \
2222
--platform linux/arm64/v8,linux/amd64 \
23-
--tag rustembedded/osdev-utils:$(TAG) \
23+
--tag u007d/osdev-utils-rpi4:$(TAG) \
2424
--build-arg VCS_REF=`git rev-parse --short HEAD` .
2525
rm Gemfile

0 commit comments

Comments
 (0)