From 5e567c109122fc555a924d0ed15379fec39daa63 Mon Sep 17 00:00:00 2001 From: Fredrik Holmqvist Date: Sat, 21 Aug 2021 14:32:32 +0200 Subject: [PATCH] ARM64 Jamfiles, missed in previous commit * Use generic c versions of memset and memcpy Wwrite fast asm for that later, therefore no need for arch_string.S * Disable FDT and DTB until ARM64 is ready (WIP: do it later) * use ELF64 --- src/system/boot/arch/arm64/Jamfile | 66 ++++++++++++++-------------- src/system/boot/loader/Jamfile | 4 ++ src/system/boot/platform/efi/Jamfile | 6 +-- 3 files changed, 41 insertions(+), 35 deletions(-) diff --git a/src/system/boot/arch/arm64/Jamfile b/src/system/boot/arch/arm64/Jamfile index c89edfd49a..339df36d8b 100644 --- a/src/system/boot/arch/arm64/Jamfile +++ b/src/system/boot/arch/arm64/Jamfile @@ -1,41 +1,43 @@ SubDir HAIKU_TOP src system boot arch arm64 ; -UseLibraryHeaders [ FDirName libfdt ] ; -UsePrivateHeaders [ FDirName kernel platform $(TARGET_BOOT_PLATFORM) ] ; -SubDirHdrs $(HAIKU_TOP) src add-ons kernel bus_managers fdt ; - -# TODO: Is there any reason to recompile arch_string.S here? -local librootArchObjects = -# arch_string.o - arch_string.S -; - -local kernelLibArchObjects = - byteorder.o - memset.o -; - local platform ; -for platform in [ MultiBootSubDirSetup u-boot efi ] { - on $(platform) { + +local kernelArchSources = + arch_elf.cpp +; + +kernelLibGenericSources = + memcpy.c + memset.c +; + +local kernelLibArchSources = ; + +local librootOsArchSources = + byteorder.S +; + +for platform in [ MultiBootSubDirSetup efi ] { + on $(platform) { DEFINES += _BOOT_MODE ; + + BootMergeObject [ FGristFiles boot_arch_$(TARGET_KERNEL_ARCH).o ] : - # Reuse a subset of kernel debugging. - $(librootArchObjects) - : - : - $(kernelLibArchObjects) + $(kernelArchSources) + $(kernelLibArchSources) + $(kernelLibGenericSources) + $(librootOsArchSources) + arch_cpu.cpp + : # additional flags ; - SEARCH on [ FGristFiles arch_elf.cpp $(kernelArchDriverSources) ] - = [ FDirName $(HAIKU_TOP) src system kernel arch $(TARGET_KERNEL_ARCH) ] ; - SEARCH on [ FGristFiles $(kernelGenericDriverSources) ] - = [ FDirName $(HAIKU_TOP) src system kernel arch generic ] ; - - SEARCH on [ FGristFiles $(librootArchObjects) ] - = [ FDirName $(HAIKU_TOP) src system libroot posix string arch $(TARGET_ARCH) ] ; - - SEARCH on [ FGristFiles $(kernelDebugSources) ] - = [ FDirName $(HAIKU_TOP) src system kernel debug ] ; + SEARCH on [ FGristFiles $(kernelArchSources) ] + = [ FDirName $(HAIKU_TOP) src system kernel arch arm64 ] ; + SEARCH on [ FGristFiles $(kernelLibGenericSources) ] + = [ FDirName $(HAIKU_TOP) src system libroot posix string arch generic ] ; + SEARCH on [ FGristFiles $(kernelLibArchSources) ] + = [ FDirName $(HAIKU_TOP) src system libroot posix string arch arm64 ] ; + SEARCH on [ FGristFiles $(librootOsArchSources) ] + = [ FDirName $(HAIKU_TOP) src system libroot os arch arm64 ] ; } } diff --git a/src/system/boot/loader/Jamfile b/src/system/boot/loader/Jamfile index b54b861bb2..b82a08e59d 100644 --- a/src/system/boot/loader/Jamfile +++ b/src/system/boot/loader/Jamfile @@ -83,6 +83,10 @@ for platform in [ MultiBootSubDirSetup ] { { DEFINES += BOOT_SUPPORT_ELF32 ; } + case "arm64" : + { + DEFINES += BOOT_SUPPORT_ELF64 ; + } } local kernelC++Header = [ FDirName $(HAIKU_TOP) headers private kernel util diff --git a/src/system/boot/platform/efi/Jamfile b/src/system/boot/platform/efi/Jamfile index 5103824581..258784d0d3 100644 --- a/src/system/boot/platform/efi/Jamfile +++ b/src/system/boot/platform/efi/Jamfile @@ -5,7 +5,7 @@ UsePrivateHeaders [ FDirName kernel platform ] ; UsePrivateHeaders [ FDirName kernel boot platform efi ] ; UsePrivateHeaders [ FDirName kernel boot arch $(TARGET_KERNEL_ARCH) ] ; -if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 { +if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != arm64 { UseLibraryHeaders [ FDirName libfdt ] ; } @@ -14,7 +14,7 @@ SubDirHdrs $(HAIKU_TOP) src add-ons kernel partitioning_systems gpt ; { local defines = _BOOT_MODE _BOOT_PLATFORM_EFI ; - if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 { + if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != arm64 { defines += _BOOT_FDT_SUPPORT ; } @@ -42,7 +42,7 @@ local platform_src = local support_libs ; -if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 { +if $(TARGET_ARCH) != x86_64 && $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != arm64 { support_libs += boot_fdt.a ; platform_src += dtb.cpp ; }