- add arm64 dependent codes with GICv3 and SVE support - fix bugs based on architecture separation requests
40 lines
1.4 KiB
Plaintext
40 lines
1.4 KiB
Plaintext
CC = ${CROSS_COMPILE}gcc
|
|
LD = ${CROSS_COMPILE}ld
|
|
OBJDUMP = ${CROSS_COMPILE}objdump
|
|
OBJCOPY = ${CROSS_COMPILE}objcopy
|
|
|
|
# ARM64_MEMORY_LAYOUT
|
|
# ----+-----------+-----------------------
|
|
# # | page size | virtual memory space
|
|
# ----+-----------+-----------------------
|
|
# 1 | 4KB | 39bit [linux-linaro-tracking, upstream kernel]
|
|
# 2 | 4KB | 48bit
|
|
# 3 | 64KB | 42bit [CentOS]
|
|
# 4 | 64KB | 48bit
|
|
# ----+-----------+-----------------------
|
|
HOST_DIR=@KDIR@
|
|
HOST_CONFIG=$(HOST_DIR)/.config
|
|
HOST_KERNEL_CONFIG_ARM64_64K_PAGES=$(shell grep -E "^CONFIG_ARM64_64K_PAGES=y" $(HOST_CONFIG) | sed 's|CONFIG_ARM64_64K_PAGES=||g')
|
|
HOST_KERNEL_CONFIG_ARM64_VA_BITS=$(shell grep -E "^CONFIG_ARM64_VA_BITS=" $(HOST_CONFIG) | sed 's|CONFIG_ARM64_VA_BITS=||g')
|
|
|
|
ifeq ($(HOST_KERNEL_CONFIG_ARM64_64K_PAGES), y)
|
|
ifeq ($(HOST_KERNEL_CONFIG_ARM64_VA_BITS), 42)
|
|
$(info PAGE_SIZE:64KB VA_BITS:42 PGTABLE_LEVELS:2)
|
|
ARM64_MEMORY_LAYOUT=3
|
|
else
|
|
$(info PAGE_SIZE:64KB VA_BITS:48, PGTABLE_LEVELS:3)
|
|
ARM64_MEMORY_LAYOUT=4
|
|
endif
|
|
else
|
|
ifeq ($(HOST_KERNEL_CONFIG_ARM64_VA_BITS), 39)
|
|
$(info PAGE_SIZE:4KB VA_BITS:39 PGTABLE_LEVELS:3)
|
|
ARM64_MEMORY_LAYOUT=1
|
|
else
|
|
$(info PAGE_SIZE:4KB VA_BITS:48 PGTABLE_LEVELS:4)
|
|
ARM64_MEMORY_LAYOUT=2
|
|
endif
|
|
endif
|
|
|
|
$(info linker script:smp-arm64_type$(ARM64_MEMORY_LAYOUT).lds)
|
|
LDFLAGS += -T $(SRC)/config/smp-arm64_type$(ARM64_MEMORY_LAYOUT).lds
|