EFI: Break smp into arch subpath
Change-Id: Ia9438777f1da8ca32f93e0d85229230c809e6711 Reviewed-on: https://review.haiku-os.org/c/haiku/+/1918 Reviewed-by: Alex von Gluck IV <[email protected]> Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
committed by
Alex von Gluck IV
parent
e3c74f400e
commit
761ddb2c4f
@@ -37,14 +37,7 @@ local platform_src =
|
|||||||
support.S
|
support.S
|
||||||
;
|
;
|
||||||
|
|
||||||
local arch_src =
|
Includes [ FGristFiles $(efi_glue_src) $(platform_src) ]
|
||||||
arch_mmu.cpp
|
|
||||||
arch_smp.cpp
|
|
||||||
relocation_func.cpp
|
|
||||||
entry.S
|
|
||||||
;
|
|
||||||
|
|
||||||
Includes [ FGristFiles $(efi_glue_src) $(platform_src) $(arch_src) ]
|
|
||||||
:
|
:
|
||||||
[ BuildFeatureAttribute gnuefi : headers ]
|
[ BuildFeatureAttribute gnuefi : headers ]
|
||||||
[ BuildFeatureAttribute gnuefi : headersProtocol ]
|
[ BuildFeatureAttribute gnuefi : headersProtocol ]
|
||||||
@@ -55,21 +48,26 @@ local platform ;
|
|||||||
for platform in [ MultiBootSubDirSetup efi ] {
|
for platform in [ MultiBootSubDirSetup efi ] {
|
||||||
on $(platform) {
|
on $(platform) {
|
||||||
|
|
||||||
BootMergeObject boot_platform_efi.o :
|
BootMergeObject boot_platform_efi_common.o :
|
||||||
$(efi_glue_src)
|
$(efi_glue_src)
|
||||||
$(platform_src)
|
$(platform_src)
|
||||||
$(arch_src)
|
|
||||||
:
|
:
|
||||||
: boot_platform_generic_efi.a
|
: boot_platform_generic_efi.a
|
||||||
;
|
;
|
||||||
|
|
||||||
SEARCH on [ FGristFiles $(arch_src) ]
|
BootMergeObject boot_platform_efi.o :
|
||||||
= [ FDirName $(SUBDIR) arch $(TARGET_ARCH) ] ;
|
: :
|
||||||
|
boot_platform_efi_$(TARGET_ARCH).o
|
||||||
|
boot_platform_efi_common.o
|
||||||
|
;
|
||||||
|
|
||||||
LOCATE on [ FGristFiles $(efi_glue_src) ]
|
LOCATE on [ FGristFiles $(efi_glue_src) ]
|
||||||
= [ BuildFeatureAttribute gnuefi : libdir : path ] ;
|
= [ BuildFeatureAttribute gnuefi : libdir : path ] ;
|
||||||
Depends [ FGristFiles $(efi_glue_src) ]
|
Depends [ FGristFiles $(efi_glue_src) ]
|
||||||
: [ BuildFeatureAttribute gnuefi : libdir ] ;
|
: [ BuildFeatureAttribute gnuefi : libdir ] ;
|
||||||
Depends [ FGristFiles $(platform_src) $(arch_src) ]
|
Depends [ FGristFiles $(platform_src) ]
|
||||||
: [ BuildFeatureAttribute gnuefi : headers ] ;
|
: [ BuildFeatureAttribute gnuefi : headers ] ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SubInclude HAIKU_TOP src system boot platform efi arch $(TARGET_ARCH) ;
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
SubDir HAIKU_TOP src system boot platform efi arch x86_64 ;
|
||||||
|
|
||||||
|
SubDirHdrs $(HAIKU_TOP) src system boot platform efi ;
|
||||||
|
|
||||||
|
UsePrivateHeaders [ FDirName kernel boot platform efi ] ;
|
||||||
|
UseBuildFeatureHeaders gnuefi ;
|
||||||
|
UseBuildFeatureHeaders gnuefi : headersProtocol ;
|
||||||
|
UseBuildFeatureHeaders gnuefi : headersArch ;
|
||||||
|
|
||||||
|
local arch_src =
|
||||||
|
entry.S
|
||||||
|
relocation_func.cpp
|
||||||
|
arch_smp.cpp
|
||||||
|
arch_mmu.cpp
|
||||||
|
;
|
||||||
|
|
||||||
|
BootMergeObject boot_platform_efi_x86_64.o :
|
||||||
|
$(arch_src)
|
||||||
|
;
|
||||||
|
|
||||||
|
Includes [ FGristFiles $(arch_src) ]
|
||||||
|
:
|
||||||
|
[ BuildFeatureAttribute gnuefi : headers ]
|
||||||
|
[ BuildFeatureAttribute gnuefi : headersProtocol ]
|
||||||
|
[ BuildFeatureAttribute gnuefi : headersArch ]
|
||||||
|
;
|
||||||
|
|
||||||
|
Depends [ FGristFiles $(arch_src) ]
|
||||||
|
: [ BuildFeatureAttribute gnuefi : libdir ] ;
|
||||||
@@ -72,14 +72,14 @@ struct trampoline_args {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static uint32
|
uint32
|
||||||
apic_read(uint32 offset)
|
apic_read(uint32 offset)
|
||||||
{
|
{
|
||||||
return *(volatile uint32 *)((addr_t)gKernelArgs.arch_args.apic_phys + offset);
|
return *(volatile uint32 *)((addr_t)gKernelArgs.arch_args.apic_phys + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
void
|
||||||
apic_write(uint32 offset, uint32 data)
|
apic_write(uint32 offset, uint32 data)
|
||||||
{
|
{
|
||||||
*(volatile uint32 *)((addr_t)gKernelArgs.arch_args.apic_phys + offset) = data;
|
*(volatile uint32 *)((addr_t)gKernelArgs.arch_args.apic_phys + offset) = data;
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
#include <arch/x86/descriptors.h>
|
#include <arch/x86/descriptors.h>
|
||||||
|
|
||||||
#include "mmu.h"
|
|
||||||
|
|
||||||
|
|
||||||
#define GDT_LIMIT 0x800
|
#define GDT_LIMIT 0x800
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user