diff --git a/02_runtime_init/Makefile b/02_runtime_init/Makefile index 49ca7b63..af9bbc27 100644 --- a/02_runtime_init/Makefile +++ b/02_runtime_init/Makefile @@ -181,7 +181,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/02_runtime_init/README.md b/02_runtime_init/README.md index 7e4f5c0a..f9d59b30 100644 --- a/02_runtime_init/README.md +++ b/02_runtime_init/README.md @@ -52,12 +52,11 @@ diff -uNr 01_wait_forever/Cargo.toml 02_runtime_init/Cargo.toml diff -uNr 01_wait_forever/Makefile 02_runtime_init/Makefile --- 01_wait_forever/Makefile +++ 02_runtime_init/Makefile -@@ -180,6 +180,8 @@ +@@ -180,6 +180,7 @@ $(call color_header, "Launching objdump") @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ + --section .rodata \ -+ --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ @@ -211,7 +210,7 @@ diff -uNr 01_wait_forever/src/bsp/raspberrypi/kernel.ld 02_runtime_init/src/bsp/ /* The physical address at which the the kernel binary will be loaded by the Raspberry's firmware */ __rpi_phys_binary_load_addr = 0x80000; -@@ -13,21 +15,58 @@ +@@ -13,21 +15,65 @@ * 4 == R * 5 == RX * 6 == RW @@ -257,7 +256,6 @@ diff -uNr 01_wait_forever/src/bsp/raspberrypi/kernel.ld 02_runtime_init/src/bsp/ } :segment_code + + .rodata : ALIGN(8) { *(.rodata*) } :segment_code -+ .got : ALIGN(8) { *(.got) } :segment_code + + /*********************************************************************************************** + * Data + BSS @@ -272,6 +270,14 @@ diff -uNr 01_wait_forever/src/bsp/raspberrypi/kernel.ld 02_runtime_init/src/bsp/ + . = ALIGN(16); + __bss_end_exclusive = .; + } :segment_data ++ ++ /*********************************************************************************************** ++ * Misc ++ ***********************************************************************************************/ ++ .got : { *(.got*) } ++ ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") ++ ++ /DISCARD/ : { *(.comment*) } } diff -uNr 01_wait_forever/src/bsp/raspberrypi.rs 02_runtime_init/src/bsp/raspberrypi.rs diff --git a/02_runtime_init/src/bsp/raspberrypi/kernel.ld b/02_runtime_init/src/bsp/raspberrypi/kernel.ld index 007afd4a..f6c18843 100644 --- a/02_runtime_init/src/bsp/raspberrypi/kernel.ld +++ b/02_runtime_init/src/bsp/raspberrypi/kernel.ld @@ -54,7 +54,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code /*********************************************************************************************** * Data + BSS @@ -69,4 +68,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/03_hacky_hello_world/Makefile b/03_hacky_hello_world/Makefile index 6e5cf32d..8ddaf9e7 100644 --- a/03_hacky_hello_world/Makefile +++ b/03_hacky_hello_world/Makefile @@ -184,7 +184,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/03_hacky_hello_world/README.md b/03_hacky_hello_world/README.md index 348e626a..416cab02 100644 --- a/03_hacky_hello_world/README.md +++ b/03_hacky_hello_world/README.md @@ -95,7 +95,7 @@ diff -uNr 02_runtime_init/Makefile 03_hacky_hello_world/Makefile -@@ -191,3 +194,27 @@ +@@ -190,3 +193,27 @@ $(call color_header, "Launching nm") @$(DOCKER_TOOLS) $(NM_BINARY) --demangle --print-size $(KERNEL_ELF) | sort | rustfilt diff --git a/03_hacky_hello_world/src/bsp/raspberrypi/kernel.ld b/03_hacky_hello_world/src/bsp/raspberrypi/kernel.ld index 007afd4a..f6c18843 100644 --- a/03_hacky_hello_world/src/bsp/raspberrypi/kernel.ld +++ b/03_hacky_hello_world/src/bsp/raspberrypi/kernel.ld @@ -54,7 +54,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code /*********************************************************************************************** * Data + BSS @@ -69,4 +68,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/04_safe_globals/Makefile b/04_safe_globals/Makefile index 6e5cf32d..8ddaf9e7 100644 --- a/04_safe_globals/Makefile +++ b/04_safe_globals/Makefile @@ -184,7 +184,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/04_safe_globals/src/bsp/raspberrypi/kernel.ld b/04_safe_globals/src/bsp/raspberrypi/kernel.ld index 007afd4a..f6c18843 100644 --- a/04_safe_globals/src/bsp/raspberrypi/kernel.ld +++ b/04_safe_globals/src/bsp/raspberrypi/kernel.ld @@ -54,7 +54,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code /*********************************************************************************************** * Data + BSS @@ -69,4 +68,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/05_drivers_gpio_uart/Makefile b/05_drivers_gpio_uart/Makefile index cd8097c8..183d7864 100644 --- a/05_drivers_gpio_uart/Makefile +++ b/05_drivers_gpio_uart/Makefile @@ -203,7 +203,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/05_drivers_gpio_uart/src/bsp/raspberrypi/kernel.ld b/05_drivers_gpio_uart/src/bsp/raspberrypi/kernel.ld index 007afd4a..f6c18843 100644 --- a/05_drivers_gpio_uart/src/bsp/raspberrypi/kernel.ld +++ b/05_drivers_gpio_uart/src/bsp/raspberrypi/kernel.ld @@ -54,7 +54,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code /*********************************************************************************************** * Data + BSS @@ -69,4 +68,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/06_uart_chainloader/Makefile b/06_uart_chainloader/Makefile index 6c60e8ed..91245573 100644 --- a/06_uart_chainloader/Makefile +++ b/06_uart_chainloader/Makefile @@ -209,7 +209,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/06_uart_chainloader/README.md b/06_uart_chainloader/README.md index 38f9cc05..6e4e4530 100644 --- a/06_uart_chainloader/README.md +++ b/06_uart_chainloader/README.md @@ -249,7 +249,7 @@ diff -uNr 05_drivers_gpio_uart/Makefile 06_uart_chainloader/Makefile ##------------------------------------------------------------------------------ ## Run clippy -@@ -232,7 +238,8 @@ +@@ -231,7 +237,8 @@ ##------------------------------------------------------------------------------ test_boot: $(KERNEL_BIN) $(call color_header, "Boot test - $(BSP)") @@ -399,7 +399,7 @@ diff -uNr 05_drivers_gpio_uart/src/bsp/raspberrypi/kernel.ld 06_uart_chainloader .text : { KEEP(*(.text._start)) -@@ -61,6 +61,10 @@ +@@ -60,6 +60,10 @@ ***********************************************************************************************/ .data : { *(.data*) } :segment_data diff --git a/06_uart_chainloader/src/bsp/raspberrypi/kernel.ld b/06_uart_chainloader/src/bsp/raspberrypi/kernel.ld index 4fd5bf6a..c84b6238 100644 --- a/06_uart_chainloader/src/bsp/raspberrypi/kernel.ld +++ b/06_uart_chainloader/src/bsp/raspberrypi/kernel.ld @@ -54,7 +54,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code /*********************************************************************************************** * Data + BSS @@ -73,4 +72,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/07_timestamps/Makefile b/07_timestamps/Makefile index b89cee8c..c183c606 100644 --- a/07_timestamps/Makefile +++ b/07_timestamps/Makefile @@ -203,7 +203,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/07_timestamps/README.md b/07_timestamps/README.md index 2f4ab323..1126d9b7 100644 --- a/07_timestamps/README.md +++ b/07_timestamps/README.md @@ -150,7 +150,7 @@ diff -uNr 06_uart_chainloader/Makefile 07_timestamps/Makefile ##------------------------------------------------------------------------------ ## Run clippy -@@ -238,8 +232,7 @@ +@@ -237,8 +231,7 @@ ##------------------------------------------------------------------------------ test_boot: $(KERNEL_BIN) $(call color_header, "Boot test - $(BSP)") @@ -482,7 +482,7 @@ diff -uNr 06_uart_chainloader/src/bsp/raspberrypi/kernel.ld 07_timestamps/src/bs .text : { KEEP(*(.text._start)) -@@ -61,10 +61,6 @@ +@@ -60,10 +60,6 @@ ***********************************************************************************************/ .data : { *(.data*) } :segment_data diff --git a/07_timestamps/src/bsp/raspberrypi/kernel.ld b/07_timestamps/src/bsp/raspberrypi/kernel.ld index 007afd4a..f6c18843 100644 --- a/07_timestamps/src/bsp/raspberrypi/kernel.ld +++ b/07_timestamps/src/bsp/raspberrypi/kernel.ld @@ -54,7 +54,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code /*********************************************************************************************** * Data + BSS @@ -69,4 +68,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/08_hw_debug_JTAG/Makefile b/08_hw_debug_JTAG/Makefile index 138c5554..3202f53a 100644 --- a/08_hw_debug_JTAG/Makefile +++ b/08_hw_debug_JTAG/Makefile @@ -214,7 +214,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/08_hw_debug_JTAG/README.md b/08_hw_debug_JTAG/README.md index 7f8a1846..53f86807 100644 --- a/08_hw_debug_JTAG/README.md +++ b/08_hw_debug_JTAG/README.md @@ -364,7 +364,7 @@ diff -uNr 07_timestamps/Makefile 08_hw_debug_JTAG/Makefile endif -@@ -215,6 +226,35 @@ +@@ -214,6 +225,35 @@ diff --git a/08_hw_debug_JTAG/src/bsp/raspberrypi/kernel.ld b/08_hw_debug_JTAG/src/bsp/raspberrypi/kernel.ld index 007afd4a..f6c18843 100644 --- a/08_hw_debug_JTAG/src/bsp/raspberrypi/kernel.ld +++ b/08_hw_debug_JTAG/src/bsp/raspberrypi/kernel.ld @@ -54,7 +54,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code /*********************************************************************************************** * Data + BSS @@ -69,4 +68,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/09_privilege_level/Makefile b/09_privilege_level/Makefile index 138c5554..3202f53a 100644 --- a/09_privilege_level/Makefile +++ b/09_privilege_level/Makefile @@ -214,7 +214,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/09_privilege_level/src/bsp/raspberrypi/kernel.ld b/09_privilege_level/src/bsp/raspberrypi/kernel.ld index 007afd4a..f6c18843 100644 --- a/09_privilege_level/src/bsp/raspberrypi/kernel.ld +++ b/09_privilege_level/src/bsp/raspberrypi/kernel.ld @@ -54,7 +54,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code /*********************************************************************************************** * Data + BSS @@ -69,4 +68,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/10_virtual_mem_part1_identity_mapping/Makefile b/10_virtual_mem_part1_identity_mapping/Makefile index 138c5554..3202f53a 100644 --- a/10_virtual_mem_part1_identity_mapping/Makefile +++ b/10_virtual_mem_part1_identity_mapping/Makefile @@ -214,7 +214,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/10_virtual_mem_part1_identity_mapping/README.md b/10_virtual_mem_part1_identity_mapping/README.md index 8bfd54fa..8345aef0 100644 --- a/10_virtual_mem_part1_identity_mapping/README.md +++ b/10_virtual_mem_part1_identity_mapping/README.md @@ -855,9 +855,9 @@ diff -uNr 09_privilege_level/src/bsp/raspberrypi/kernel.ld 10_virtual_mem_part1_ .text : { KEEP(*(.text._start)) -@@ -56,6 +62,9 @@ +@@ -55,6 +61,9 @@ + .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code + . = ALIGN(PAGE_SIZE); + __code_end_exclusive = .; diff --git a/10_virtual_mem_part1_identity_mapping/src/bsp/raspberrypi/kernel.ld b/10_virtual_mem_part1_identity_mapping/src/bsp/raspberrypi/kernel.ld index 2ce4b44b..6d939889 100644 --- a/10_virtual_mem_part1_identity_mapping/src/bsp/raspberrypi/kernel.ld +++ b/10_virtual_mem_part1_identity_mapping/src/bsp/raspberrypi/kernel.ld @@ -60,7 +60,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code . = ALIGN(PAGE_SIZE); __code_end_exclusive = .; @@ -78,4 +77,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/11_exceptions_part1_groundwork/Makefile b/11_exceptions_part1_groundwork/Makefile index 138c5554..3202f53a 100644 --- a/11_exceptions_part1_groundwork/Makefile +++ b/11_exceptions_part1_groundwork/Makefile @@ -214,7 +214,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/11_exceptions_part1_groundwork/src/bsp/raspberrypi/kernel.ld b/11_exceptions_part1_groundwork/src/bsp/raspberrypi/kernel.ld index 2ce4b44b..6d939889 100644 --- a/11_exceptions_part1_groundwork/src/bsp/raspberrypi/kernel.ld +++ b/11_exceptions_part1_groundwork/src/bsp/raspberrypi/kernel.ld @@ -60,7 +60,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code . = ALIGN(PAGE_SIZE); __code_end_exclusive = .; @@ -78,4 +77,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/12_integrated_testing/Makefile b/12_integrated_testing/Makefile index 20007cec..c7552461 100644 --- a/12_integrated_testing/Makefile +++ b/12_integrated_testing/Makefile @@ -226,7 +226,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/12_integrated_testing/kernel/src/bsp/raspberrypi/kernel.ld b/12_integrated_testing/kernel/src/bsp/raspberrypi/kernel.ld index 2ce4b44b..6d939889 100644 --- a/12_integrated_testing/kernel/src/bsp/raspberrypi/kernel.ld +++ b/12_integrated_testing/kernel/src/bsp/raspberrypi/kernel.ld @@ -60,7 +60,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code . = ALIGN(PAGE_SIZE); __code_end_exclusive = .; @@ -78,4 +77,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/13_exceptions_part2_peripheral_IRQs/Makefile b/13_exceptions_part2_peripheral_IRQs/Makefile index 20007cec..c7552461 100644 --- a/13_exceptions_part2_peripheral_IRQs/Makefile +++ b/13_exceptions_part2_peripheral_IRQs/Makefile @@ -226,7 +226,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/13_exceptions_part2_peripheral_IRQs/kernel/src/bsp/raspberrypi/kernel.ld b/13_exceptions_part2_peripheral_IRQs/kernel/src/bsp/raspberrypi/kernel.ld index 2ce4b44b..6d939889 100644 --- a/13_exceptions_part2_peripheral_IRQs/kernel/src/bsp/raspberrypi/kernel.ld +++ b/13_exceptions_part2_peripheral_IRQs/kernel/src/bsp/raspberrypi/kernel.ld @@ -60,7 +60,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code . = ALIGN(PAGE_SIZE); __code_end_exclusive = .; @@ -78,4 +77,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/14_virtual_mem_part2_mmio_remap/Makefile b/14_virtual_mem_part2_mmio_remap/Makefile index 20007cec..c7552461 100644 --- a/14_virtual_mem_part2_mmio_remap/Makefile +++ b/14_virtual_mem_part2_mmio_remap/Makefile @@ -226,7 +226,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/14_virtual_mem_part2_mmio_remap/README.md b/14_virtual_mem_part2_mmio_remap/README.md index 30aa848b..ff6e2416 100644 --- a/14_virtual_mem_part2_mmio_remap/README.md +++ b/14_virtual_mem_part2_mmio_remap/README.md @@ -1480,7 +1480,7 @@ diff -uNr 13_exceptions_part2_peripheral_IRQs/kernel/src/bsp/raspberrypi/kernel. /* | stack */ . += __rpi_phys_binary_load_addr; /* | growth */ /* | direction */ -@@ -68,6 +68,7 @@ +@@ -67,6 +67,7 @@ /*********************************************************************************************** * Data + BSS ***********************************************************************************************/ @@ -1488,11 +1488,10 @@ diff -uNr 13_exceptions_part2_peripheral_IRQs/kernel/src/bsp/raspberrypi/kernel. .data : { *(.data*) } :segment_data /* Section is zeroed in pairs of u64. Align start and end to 16 bytes */ -@@ -78,4 +79,16 @@ - . = ALIGN(16); +@@ -78,6 +79,18 @@ __bss_end_exclusive = .; } :segment_data -+ + + . = ALIGN(PAGE_SIZE); + __data_end_exclusive = .; + @@ -1504,7 +1503,10 @@ diff -uNr 13_exceptions_part2_peripheral_IRQs/kernel/src/bsp/raspberrypi/kernel. + __mmio_remap_end_exclusive = .; + + ASSERT((. & PAGE_MASK) == 0, "MMIO remap reservation is not page aligned") - } ++ + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ diff -uNr 13_exceptions_part2_peripheral_IRQs/kernel/src/bsp/raspberrypi/memory/mmu.rs 14_virtual_mem_part2_mmio_remap/kernel/src/bsp/raspberrypi/memory/mmu.rs --- 13_exceptions_part2_peripheral_IRQs/kernel/src/bsp/raspberrypi/memory/mmu.rs diff --git a/14_virtual_mem_part2_mmio_remap/kernel/src/bsp/raspberrypi/kernel.ld b/14_virtual_mem_part2_mmio_remap/kernel/src/bsp/raspberrypi/kernel.ld index c4a0b6a4..3f5f7043 100644 --- a/14_virtual_mem_part2_mmio_remap/kernel/src/bsp/raspberrypi/kernel.ld +++ b/14_virtual_mem_part2_mmio_remap/kernel/src/bsp/raspberrypi/kernel.ld @@ -60,7 +60,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code . = ALIGN(PAGE_SIZE); __code_end_exclusive = .; @@ -91,4 +90,12 @@ SECTIONS __mmio_remap_end_exclusive = .; ASSERT((. & PAGE_MASK) == 0, "MMIO remap reservation is not page aligned") + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/15_virtual_mem_part3_precomputed_tables/Makefile b/15_virtual_mem_part3_precomputed_tables/Makefile index 0d34c181..6edf29a4 100644 --- a/15_virtual_mem_part3_precomputed_tables/Makefile +++ b/15_virtual_mem_part3_precomputed_tables/Makefile @@ -245,7 +245,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/15_virtual_mem_part3_precomputed_tables/README.md b/15_virtual_mem_part3_precomputed_tables/README.md index 186acc2a..be59abb1 100644 --- a/15_virtual_mem_part3_precomputed_tables/README.md +++ b/15_virtual_mem_part3_precomputed_tables/README.md @@ -1077,6 +1077,15 @@ diff -uNr 14_virtual_mem_part2_mmio_remap/kernel/src/bsp/raspberrypi/kernel.ld 1 PAGE_SIZE = 64K; PAGE_MASK = PAGE_SIZE - 1; +@@ -89,7 +91,7 @@ + . += 8 * 1024 * 1024; + __mmio_remap_end_exclusive = .; + +- ASSERT((. & PAGE_MASK) == 0, "MMIO remap reservation is not page aligned") ++ ASSERT((. & PAGE_MASK) == 0, "End of boot core stack is not page aligned") + + /*********************************************************************************************** + * Misc diff -uNr 14_virtual_mem_part2_mmio_remap/kernel/src/bsp/raspberrypi/kernel_virt_addr_space_size.ld 15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/kernel_virt_addr_space_size.ld --- 14_virtual_mem_part2_mmio_remap/kernel/src/bsp/raspberrypi/kernel_virt_addr_space_size.ld @@ -1888,7 +1897,7 @@ diff -uNr 14_virtual_mem_part2_mmio_remap/Makefile 15_virtual_mem_part3_precompu $(call color_progress_prefix, "Name") @echo $(KERNEL_BIN) $(call color_progress_prefix, "Size") -@@ -301,6 +320,7 @@ +@@ -300,6 +319,7 @@ TEST_ELF=$$(echo $$1 | sed -e 's/.*target/target/g') TEST_BINARY=$$(echo $$1.img | sed -e 's/.*target/target/g') diff --git a/15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/kernel.ld b/15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/kernel.ld index 717d817e..63393bae 100644 --- a/15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/kernel.ld +++ b/15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/kernel.ld @@ -62,7 +62,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code . = ALIGN(PAGE_SIZE); __code_end_exclusive = .; @@ -92,5 +91,13 @@ SECTIONS . += 8 * 1024 * 1024; __mmio_remap_end_exclusive = .; - ASSERT((. & PAGE_MASK) == 0, "MMIO remap reservation is not page aligned") + ASSERT((. & PAGE_MASK) == 0, "End of boot core stack is not page aligned") + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/16_virtual_mem_part4_higher_half_kernel/Makefile b/16_virtual_mem_part4_higher_half_kernel/Makefile index 0d34c181..6edf29a4 100644 --- a/16_virtual_mem_part4_higher_half_kernel/Makefile +++ b/16_virtual_mem_part4_higher_half_kernel/Makefile @@ -245,7 +245,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/16_virtual_mem_part4_higher_half_kernel/README.md b/16_virtual_mem_part4_higher_half_kernel/README.md index 0a30a2aa..cb50cab0 100644 --- a/16_virtual_mem_part4_higher_half_kernel/README.md +++ b/16_virtual_mem_part4_higher_half_kernel/README.md @@ -598,8 +598,7 @@ diff -uNr 15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/ker SECTIONS { - . = __rpi_phys_dram_start_addr; -+ . = __kernel_virt_start_addr; - +- - /*********************************************************************************************** - * Boot Core Stack - ***********************************************************************************************/ @@ -611,7 +610,8 @@ diff -uNr 15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/ker - /* | direction */ - __boot_core_stack_end_exclusive = .; /* | */ - } :segment_boot_core_stack -- ++ . = __kernel_virt_start_addr; + - ASSERT((. & PAGE_MASK) == 0, "End of boot core stack is not page aligned") + ASSERT((. & PAGE_MASK) == 0, "Start of address space is not page aligned") @@ -624,10 +624,11 @@ diff -uNr 15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/ker { KEEP(*(.text._start)) *(.text._start_arguments) /* Constants (or statics in Rust speak) read by _start(). */ -@@ -93,4 +88,23 @@ +@@ -91,6 +86,25 @@ + . += 8 * 1024 * 1024; __mmio_remap_end_exclusive = .; - ASSERT((. & PAGE_MASK) == 0, "MMIO remap reservation is not page aligned") ++ ASSERT((. & PAGE_MASK) == 0, "MMIO remap reservation is not page aligned") + + /*********************************************************************************************** + * Guard Page @@ -646,8 +647,9 @@ diff -uNr 15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/ker + __boot_core_stack_end_exclusive = .; /* | */ + } :segment_boot_core_stack + -+ ASSERT((. & PAGE_MASK) == 0, "End of boot core stack is not page aligned") - } + ASSERT((. & PAGE_MASK) == 0, "End of boot core stack is not page aligned") + + /*********************************************************************************************** diff -uNr 15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/memory/mmu.rs 16_virtual_mem_part4_higher_half_kernel/kernel/src/bsp/raspberrypi/memory/mmu.rs --- 15_virtual_mem_part3_precomputed_tables/kernel/src/bsp/raspberrypi/memory/mmu.rs diff --git a/16_virtual_mem_part4_higher_half_kernel/kernel/src/bsp/raspberrypi/kernel.ld b/16_virtual_mem_part4_higher_half_kernel/kernel/src/bsp/raspberrypi/kernel.ld index 14619829..c17b61f9 100644 --- a/16_virtual_mem_part4_higher_half_kernel/kernel/src/bsp/raspberrypi/kernel.ld +++ b/16_virtual_mem_part4_higher_half_kernel/kernel/src/bsp/raspberrypi/kernel.ld @@ -57,7 +57,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code . = ALIGN(PAGE_SIZE); __code_end_exclusive = .; @@ -107,4 +106,12 @@ SECTIONS } :segment_boot_core_stack ASSERT((. & PAGE_MASK) == 0, "End of boot core stack is not page aligned") + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/17_kernel_symbols/Makefile b/17_kernel_symbols/Makefile index ec71b493..3a7465a3 100644 --- a/17_kernel_symbols/Makefile +++ b/17_kernel_symbols/Makefile @@ -270,7 +270,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/17_kernel_symbols/README.md b/17_kernel_symbols/README.md index d3b42b65..b9d21aec 100644 --- a/17_kernel_symbols/README.md +++ b/17_kernel_symbols/README.md @@ -293,14 +293,12 @@ diff -uNr 16_virtual_mem_part4_higher_half_kernel/kernel/src/_arch/aarch64/excep diff -uNr 16_virtual_mem_part4_higher_half_kernel/kernel/src/bsp/raspberrypi/kernel.ld 17_kernel_symbols/kernel/src/bsp/raspberrypi/kernel.ld --- 16_virtual_mem_part4_higher_half_kernel/kernel/src/bsp/raspberrypi/kernel.ld +++ 17_kernel_symbols/kernel/src/bsp/raspberrypi/kernel.ld -@@ -56,8 +56,12 @@ +@@ -56,7 +56,11 @@ *(.text*) /* Everything else */ } :segment_code - .rodata : ALIGN(8) { *(.rodata*) } :segment_code -- .got : ALIGN(8) { *(.got) } :segment_code + .rodata : ALIGN(8) { *(.rodata*) } :segment_code -+ .got : ALIGN(8) { *(.got) } :segment_code + .kernel_symbols : ALIGN(8) { + __kernel_symbols_start = .; + . += 32 * 1024; @@ -740,7 +738,7 @@ diff -uNr 16_virtual_mem_part4_higher_half_kernel/Makefile 17_kernel_symbols/Mak $(call color_header, "Generating docs") @$(DOC_CMD) --document-private-items --open -@@ -318,10 +343,19 @@ +@@ -317,10 +342,19 @@ cd $(shell pwd) TEST_ELF=$$(echo $$1 | sed -e 's/.*target/target/g') diff --git a/17_kernel_symbols/kernel/src/bsp/raspberrypi/kernel.ld b/17_kernel_symbols/kernel/src/bsp/raspberrypi/kernel.ld index 6fcbf31c..193a5200 100644 --- a/17_kernel_symbols/kernel/src/bsp/raspberrypi/kernel.ld +++ b/17_kernel_symbols/kernel/src/bsp/raspberrypi/kernel.ld @@ -57,7 +57,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code .kernel_symbols : ALIGN(8) { __kernel_symbols_start = .; . += 32 * 1024; @@ -111,4 +110,12 @@ SECTIONS } :segment_boot_core_stack ASSERT((. & PAGE_MASK) == 0, "End of boot core stack is not page aligned") + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/18_backtrace/Makefile b/18_backtrace/Makefile index 5d660332..eba659f0 100644 --- a/18_backtrace/Makefile +++ b/18_backtrace/Makefile @@ -272,7 +272,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/18_backtrace/README.md b/18_backtrace/README.md index f98eafc7..c6417bdd 100644 --- a/18_backtrace/README.md +++ b/18_backtrace/README.md @@ -1253,7 +1253,7 @@ diff -uNr 17_kernel_symbols/Makefile 18_backtrace/Makefile OBJCOPY_CMD = rust-objcopy \ --strip-all \ -O binary -@@ -303,8 +305,7 @@ +@@ -302,8 +304,7 @@ ##------------------------------------------------------------------------------ ## Start GDB session ##------------------------------------------------------------------------------ diff --git a/18_backtrace/kernel/src/bsp/raspberrypi/kernel.ld b/18_backtrace/kernel/src/bsp/raspberrypi/kernel.ld index 6fcbf31c..193a5200 100644 --- a/18_backtrace/kernel/src/bsp/raspberrypi/kernel.ld +++ b/18_backtrace/kernel/src/bsp/raspberrypi/kernel.ld @@ -57,7 +57,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code .kernel_symbols : ALIGN(8) { __kernel_symbols_start = .; . += 32 * 1024; @@ -111,4 +110,12 @@ SECTIONS } :segment_boot_core_stack ASSERT((. & PAGE_MASK) == 0, "End of boot core stack is not page aligned") + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/19_kernel_heap/Makefile b/19_kernel_heap/Makefile index bd1bc803..c9a7d593 100644 --- a/19_kernel_heap/Makefile +++ b/19_kernel_heap/Makefile @@ -277,7 +277,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/19_kernel_heap/README.md b/19_kernel_heap/README.md index 0b4e2348..8a39a231 100644 --- a/19_kernel_heap/README.md +++ b/19_kernel_heap/README.md @@ -512,7 +512,7 @@ diff -uNr 18_backtrace/kernel/src/bsp/raspberrypi/kernel.ld 19_kernel_heap/kerne segment_boot_core_stack PT_LOAD FLAGS(6); } -@@ -85,6 +86,18 @@ +@@ -84,6 +85,18 @@ __data_end_exclusive = .; /*********************************************************************************************** diff --git a/19_kernel_heap/kernel/src/bsp/raspberrypi/kernel.ld b/19_kernel_heap/kernel/src/bsp/raspberrypi/kernel.ld index cbfbb5b5..2408b63c 100644 --- a/19_kernel_heap/kernel/src/bsp/raspberrypi/kernel.ld +++ b/19_kernel_heap/kernel/src/bsp/raspberrypi/kernel.ld @@ -58,7 +58,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code .kernel_symbols : ALIGN(8) { __kernel_symbols_start = .; . += 32 * 1024; @@ -124,4 +123,12 @@ SECTIONS } :segment_boot_core_stack ASSERT((. & PAGE_MASK) == 0, "End of boot core stack is not page aligned") + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } } diff --git a/X1_JTAG_boot/Makefile b/X1_JTAG_boot/Makefile index b89cee8c..c183c606 100644 --- a/X1_JTAG_boot/Makefile +++ b/X1_JTAG_boot/Makefile @@ -203,7 +203,6 @@ objdump: $(KERNEL_ELF) @$(DOCKER_TOOLS) $(OBJDUMP_BINARY) --disassemble --demangle \ --section .text \ --section .rodata \ - --section .got \ $(KERNEL_ELF) | rustfilt ##------------------------------------------------------------------------------ diff --git a/X1_JTAG_boot/src/bsp/raspberrypi/kernel.ld b/X1_JTAG_boot/src/bsp/raspberrypi/kernel.ld index 007afd4a..f6c18843 100644 --- a/X1_JTAG_boot/src/bsp/raspberrypi/kernel.ld +++ b/X1_JTAG_boot/src/bsp/raspberrypi/kernel.ld @@ -54,7 +54,6 @@ SECTIONS } :segment_code .rodata : ALIGN(8) { *(.rodata*) } :segment_code - .got : ALIGN(8) { *(.got) } :segment_code /*********************************************************************************************** * Data + BSS @@ -69,4 +68,12 @@ SECTIONS . = ALIGN(16); __bss_end_exclusive = .; } :segment_data + + /*********************************************************************************************** + * Misc + ***********************************************************************************************/ + .got : { *(.got*) } + ASSERT(SIZEOF(.got) == 0, "Relocation support not expected") + + /DISCARD/ : { *(.comment*) } }