Some Makefile tweaks

pull/41/head
Andre Richter 5 years ago
parent d904486573
commit 9d77f46759
No known key found for this signature in database
GPG Key ID: 2116C1AB102F615E

@ -83,7 +83,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -83,7 +83,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -83,7 +83,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -83,7 +83,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -83,7 +83,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -83,7 +83,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -102,7 +102,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -93,7 +93,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -121,7 +121,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -121,7 +121,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -145,28 +145,28 @@ make objdump
Disassembly of section .text:
0000000000080000 _start:
80000: a8 00 38 d5 mrs x8, MPIDR_EL1
80004: 1f 05 40 f2 tst x8, #0x3
80008: 81 00 00 54 b.ne #0x10 <_start+0x18>
8000c: 48 42 38 d5 mrs x8, CurrentEL
80010: 1f 21 00 71 cmp w8, #0x8
80014: 60 00 00 54 b.eq #0xc <_start+0x20>
80018: 5f 20 03 d5 wfe
8001c: ff ff ff 17 b #-0x4 <_start+0x18>
80020: e8 03 1f aa mov x8, xzr
80024: 69 00 80 52 mov w9, #0x3
80028: 09 e1 1c d5 msr CNTHCTL_EL2, x9
8002c: 68 e0 1c d5 msr CNTVOFF_EL2, x8
80030: 08 00 00 90 adrp x8, #0x0
80034: 0a 00 b0 52 mov w10, #-0x80000000
80038: ab 78 80 52 mov w11, #0x3c5
8003c: 0c 01 a0 52 mov w12, #0x80000
80040: 0a 11 1c d5 msr HCR_EL2, x10
80044: 0b 40 1c d5 msr SPSR_EL2, x11
80048: 08 91 2f 91 add x8, x8, #0xbe4
8004c: 28 40 1c d5 msr ELR_EL2, x8
80050: 0c 41 1c d5 msr SP_EL1, x12
80054: e0 03 9f d6 eret
80000: mrs x8, MPIDR_EL1
80004: tst x8, #0x3
80008: b.ne #0x10 <_start+0x18>
8000c: mrs x8, CurrentEL
80010: cmp w8, #0x8
80014: b.eq #0xc <_start+0x20>
80018: wfe
8001c: b #-0x4 <_start+0x18>
80020: mov x8, xzr
80024: mov w9, #0x3
80028: msr CNTHCTL_EL2, x9
8002c: msr CNTVOFF_EL2, x8
80030: adrp x8, #0x0
80034: mov w10, #-0x80000000
80038: mov w11, #0x3c5
8003c: mov w12, #0x80000
80040: msr HCR_EL2, x10
80044: msr SPSR_EL2, x11
80048: add x8, x8, #0xdd0
8004c: msr ELR_EL2, x8
80050: msr SP_EL1, x12
80054: eret
```
Looks good! Thanks zero-overhead abstractions in the

@ -121,7 +121,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -121,7 +121,7 @@ readelf:
readelf -a kernel
objdump:
cargo objdump --target $(TARGET) -- -disassemble -print-imm-hex kernel
cargo objdump --target $(TARGET) -- -disassemble -no-show-raw-insn -print-imm-hex kernel
nm:
cargo nm --target $(TARGET) -- kernel | sort
cargo nm --target $(TARGET) -- -print-size kernel | sort

@ -716,13 +716,13 @@ diff -uNr 11_virtual_memory/src/arch/aarch64/exception.rs 12_cpu_exceptions_part
diff -uNr 11_virtual_memory/src/arch/aarch64/exception.S 12_cpu_exceptions_part1/src/arch/aarch64/exception.S
--- 11_virtual_memory/src/arch/aarch64/exception.S
+++ 12_cpu_exceptions_part1/src/arch/aarch64/exception.S
@@ -0,0 +1,135 @@
@@ -0,0 +1,133 @@
+// SPDX-License-Identifier: MIT OR Apache-2.0
+//
+// Copyright (c) 2018-2019 Andre Richter <andre.o.richter@gmail.com>
+
+/// Call the function provided by parameter `\handler` after saving exception context, providing the
+/// same as the first parameter.
+/// Call the function provided by parameter `\handler` after saving exception context. Provide the
+/// context as the first parameter to '\handler'.
+.macro CALL_WITH_CONTEXT handler
+ // Make room on the stack for the exception context.
+ sub sp, sp, #16 * 17
@ -775,7 +775,6 @@ diff -uNr 11_virtual_memory/src/arch/aarch64/exception.S 12_cpu_exceptions_part1
+.align 11
+
+// Export a symbol for the Rust code to use.
+.global __exception_vector_start
+__exception_vector_start:
+
+// Current exception level with SP_EL0.
@ -825,7 +824,6 @@ diff -uNr 11_virtual_memory/src/arch/aarch64/exception.S 12_cpu_exceptions_part1
+//--------------------------------------------------------------------------------------------------
+// Helper functions
+//--------------------------------------------------------------------------------------------------
+.global __exception_restore_context
+__exception_restore_context:
+ ldr w19, [sp, #16 * 16]
+ ldp lr, x20, [sp, #16 * 15]

Binary file not shown.

@ -2,8 +2,8 @@
//
// Copyright (c) 2018-2019 Andre Richter <andre.o.richter@gmail.com>
/// Call the function provided by parameter `\handler` after saving exception context, providing the
/// same as the first parameter.
/// Call the function provided by parameter `\handler` after saving exception context. Provide the
/// context as the first parameter to '\handler'.
.macro CALL_WITH_CONTEXT handler
// Make room on the stack for the exception context.
sub sp, sp, #16 * 17
@ -56,7 +56,6 @@
.align 11
// Export a symbol for the Rust code to use.
.global __exception_vector_start
__exception_vector_start:
// Current exception level with SP_EL0.
@ -106,7 +105,6 @@ __exception_vector_start:
//--------------------------------------------------------------------------------------------------
// Helper functions
//--------------------------------------------------------------------------------------------------
.global __exception_restore_context
__exception_restore_context:
ldr w19, [sp, #16 * 16]
ldp lr, x20, [sp, #16 * 15]

Loading…
Cancel
Save