- Make the secondary entry point be logically separate function, though declared in the same file. - Add a trick where the kernel base + 4 is the secondary entry point. Not really useful except makes it easy to compute the offset elsewhere. - Changed the entry point to arm64_reset and move _start to the linker script, which is what most other arches do. - While was in the linker script, make sure the text segment is aligned on MAXPAGESIZE, though doesn't make any real difference currently. - Generally clean up the assembly in start.S with newer macros from Fuchsia, and avoid using ldr X, =value as much as possible. - Fix and make sure arm64 can build and run with WITH_SMP set to false. Add a new no-smp project to test this. Note this will likely break systems where all of the cpus enter the kernel simultaneously, which we can fix if that becomes an issue. Secondary code now completely assumes the cpu number is passed in x0. This can be emulated with platform specific trampoline code if it needs to that then just directs into the the secondary entry point, instead of trying to make the arch code have to deal with all cases.
13 lines
227 B
Makefile
13 lines
227 B
Makefile
# main project for qemu-aarch64
|
|
MODULES += \
|
|
app/shell \
|
|
lib/uefi \
|
|
|
|
WITH_SMP := 0
|
|
|
|
include project/virtual/test.mk
|
|
include project/virtual/fs.mk
|
|
include project/virtual/minip.mk
|
|
include project/target/qemu-virt-arm64.mk
|
|
|