diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-04-02 09:50:31 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-04-02 09:50:31 +0200 |
| commit | 5ab7dfde025cf8ff1d650b2341d1558ba817017c (patch) | |
| tree | 937d04260b3504e7c3fa98b0031adbbf2397de48 | |
| parent | b86c34ad45c2a066a9ca86a86b2c49d30697c671 (diff) | |
arm64: fix CI.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
| -rw-r--r-- | .github/workflows/arm64.yml | 4 | ||||
| -rw-r--r-- | src/arm64/ci.make | 70 |
2 files changed, 72 insertions, 2 deletions
diff --git a/.github/workflows/arm64.yml b/.github/workflows/arm64.yml index 526e8a0..2b513b2 100644 --- a/.github/workflows/arm64.yml +++ b/.github/workflows/arm64.yml @@ -14,6 +14,6 @@ jobs: steps: - uses: actions/checkout@v4 - name: Install Packages - run: sudo apt update && sudo apt install gcc-arm-none-eabi + run: sudo apt update && sudo apt install gcc-aarch64-linux-gnu - name: Build FW (ARM64) - run: cd src && cd arm64 && make all
\ No newline at end of file + run: cd src && cd arm64 && make -f ci.make all
\ No newline at end of file diff --git a/src/arm64/ci.make b/src/arm64/ci.make new file mode 100644 index 0000000..169d7f7 --- /dev/null +++ b/src/arm64/ci.make @@ -0,0 +1,70 @@ + # + # ======================================================== + # + # CoreBoot + # Date Added: 08/11/2023 + # Copyright 2024, ZKA Technologies, all rights reserved. + # + # ======================================================== + # + +CC=aarch64-linux-gnu-gcc +AS=aarch64-linux-gnu-as + +COREBOOT=core-boot.elf +FIRMWARE=boot.rom +STAGE2=bootstg2.rom + +FLAGS=-c -D__COMPILE_ARM64__ -I../../ -Wall -c -nostdlib -ffreestanding -fno-builtin \ + -D__BSTRICT__ -D__BDEBUG__ + +C_SRC=$(wildcard *.c) $(wildcard ../*.c) -c + +AS_FLAGS= -c -I../../ + +LD=aarch64-linux-gnu-ld +OBJ=*.o +FLAGS_LD= --script=script.lds -o core-boot.elf -nostdlib +OBJCOPY=aarch64-linux-gnu-objcopy + +EMU=qemu-system-aarch64 +EMU_FLAGS=-M virt -cpu cortex-a57 -bios $(FIRMWARE) -m 256M -d int -smp 2 + +WAIT=sleep 1 + +.PHONY: all +all: firmware-link + @echo "[CoreBoot] build done." + +.PHONY: firmware-link +firmware-link: firmware-compile + $(LD) $(OBJ) $(FLAGS_LD) + +.PHONY: rom +rom: + qemu-img create -f qcow2 epm.img 256M + qemu-img create -f raw bootstg2.rom 64M + $(OBJCOPY) --strip-all -O binary $(COREBOOT) $(FIRMWARE) + +# compile firmware +.PHONY: firmware-compile +firmware-compile: + $(CC) $(FLAGS) $(C_SRC) + $(AS) arm64-start-context.S -o arm64-start-context.o + $(AS) arm64-boot.S -o arm64-boot.o + + +# launch qemu rule +.PHONY: run +run: + $(EMU) $(EMU_FLAGS) + +# launch qemu with attached debugger +.PHONY: run-dbg +run-dbg: + $(EMU) -s -S $(EMU_FLAGS) + +# remove object files +.PHONY: clean +clean: + rm -f $(wildcard *.o) $(wildcard *.elf) $(wildcard *.rom) $(wildcard *.epm) |
