Skip to content

Commit e563c79

Browse files
committed
Adding Secure Monitor, Hypervisor and System modularity, some advances on Makefile compilation, word alignment for .data sections, data localization into sm, hv, system modules
1 parent 1887f40 commit e563c79

File tree

12 files changed

+2228
-2501
lines changed

12 files changed

+2228
-2501
lines changed

Makefile

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,35 @@
2525

2626
SRCS = $(wildcard *.c)
2727
OBJS = $(SRCS:.c=.o)
28+
29+
ASMSRCS = $(wildcard *.S)
30+
ASMOBJS = $(ASMSRCS:.S=.o)
31+
32+
2833
CFLAGS = -Wall -O2 -ffreestanding -nostdinc -nostdlib -nostartfiles
34+
CC = aarch64-linux-gnu-gcc
35+
LD = aarch64-linux-gnu-ld
36+
OBJCPY = aarch64-linux-gnu-objcopy
37+
RUN = qemu-system-aarch64
38+
TARGET = kernel8.img
39+
LINKMAP = link.ld
40+
KERNEL = kernel.elf
2941

30-
all: clean kernel8.img
42+
all: clean $(TARGET)
3143

32-
start.o: start.S
33-
aarch64-linux-gnu-gcc $(CFLAGS) -c start.S -o start.o
3444

45+
%.o: %.S
46+
$(CC) $(CFLAGS) -c $< -o $@
47+
3548
%.o: %.c
36-
aarch64-linux-gnu-gcc $(CFLAGS) -c $< -o $@
49+
$(CC) $(CFLAGS) -c $< -o $@
3750

38-
kernel8.img: start.o $(OBJS)
39-
aarch64-linux-gnu-ld -nostdlib -nostartfiles start.o $(OBJS) -T link.ld -o kernel8.elf
40-
aarch64-linux-gnu-objcopy -O binary kernel8.elf kernel8.img
51+
$(TARGET): $(ASMOBJS) $(OBJS)
52+
$(LD) -nostdlib -nostartfiles $(ASMOBJS) $(OBJS) -T $(LINKMAP) -o $(KERNEL)
53+
$(OBJCPY) -O binary $(KERNEL) $(TARGET)
4154

4255
clean:
43-
rm kernel8.elf *.o >/dev/null 2>/dev/null || true
56+
rm $(KERNEL) *.o >/dev/null 2>/dev/null || true
4457

4558
run:
46-
sudo qemu-system-aarch64 -M virt -machine type=raspi3,accel=tcg,kernel_irqchip=on -cpu cortex-a53 -smp 4 -kernel kernel8.img -serial stdio
59+
sudo $(RUN) -M virt -machine type=raspi3,accel=tcg,kernel_irqchip=on -cpu cortex-a53 -smp 4 -kernel $(TARGET) -serial stdio

0 commit comments

Comments
 (0)