diff options
| author | Amlal EL Mahrouss <amlal@softwarelabs.com> | 2024-06-16 12:56:02 +0200 |
|---|---|---|
| committer | Amlal EL Mahrouss <amlal@softwarelabs.com> | 2024-06-16 12:57:28 +0200 |
| commit | 30bcb0416e8acaf3fb7b224e18534e7f64df26af (patch) | |
| tree | 37e7481396c23d321601b091d178f8398b07b6c4 /Kernel | |
| parent | 684197d4bcb66e94c1dbf37591ed2a984792e51d (diff) | |
MHR-31: Work in progress ARM64 port of the kernel.
- This is a very capable kernel, it has HAL capabilities.
- We're going to make a timer to implmenent our scheduler.
- We're going to support flash memoru and SD cards, alongside a SIM
driver.
Signed-off-by: Amlal EL Mahrouss <amlal@softwarelabs.com>
Diffstat (limited to 'Kernel')
| -rw-r--r-- | Kernel/amd64-efi.make (renamed from Kernel/makefile) | 5 | ||||
| -rw-r--r-- | Kernel/arm64-cb.make | 73 |
2 files changed, 75 insertions, 3 deletions
diff --git a/Kernel/makefile b/Kernel/amd64-efi.make index 1f749323..7e076a8d 100644 --- a/Kernel/makefile +++ b/Kernel/amd64-efi.make @@ -6,12 +6,11 @@ CC = x86_64-w64-mingw32-gcc LD = x86_64-w64-mingw32-ld CCFLAGS = -c -fPIC -ffreestanding -D__NEWOS_AMD64__ -mno-red-zone -fno-rtti -fno-exceptions \ - -std=c++20 -D__FSKIT_NEWFS__ -D__KERNEL__ -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ -I../ -I./ \ - -DBLEND2D_NO_STDCXX -DBLEND2D_NO_TLS -DBLEND2D_EMBED + -std=c++20 -D__FSKIT_NEWFS__ -D__KERNEL__ -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ -I../ -I./ ASM = nasm -DISKDRIVER = -D__ATA_PIO__ +DISKDRIVER = ifneq ($(ATA_PIO_SUPPORT), ) DISKDRIVER = -D__ATA_PIO__ diff --git a/Kernel/arm64-cb.make b/Kernel/arm64-cb.make new file mode 100644 index 00000000..3b24bcdb --- /dev/null +++ b/Kernel/arm64-cb.make @@ -0,0 +1,73 @@ +################################################## +# (C) Zeta Electronics Corporation, all rights reserved. +# This is the microkernel makefile. +################################################## + +CC = arm-none-eabi-gcc.exe +LD = arm-none-eabi-ld.exe +CCFLAGS = -c -fPIC -ffreestanding -D__NEWOS_ARM64__ -fno-rtti -fno-exceptions -I../ -I./ \ + -std=c++20 -D__FSKIT_NEWFS__ -D__KERNEL__ -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ + +ASM = arm-none-eabi-as.exe + +DISKDRIVER = -D__FLASH_MEM__ + +ifneq ($(SDCARD_SUPPORT), ) +DISKDRIVER = -D__SDCARD__ +endif + +ifneq ($(DEBUG_SUPPORT), ) +DEBUG = -D__DEBUG__ +endif + +COPY = cp + +# Add assembler, linker, and object files variables. +ASMFLAGS = -f elf64 + +# NewOS subsystem is 17 and entrypoint is __ImageStart +LDFLAGS = -e __ImageStart +LDOBJ = Objects/*.obj + +# This file is the kernel, responsible of task management and memory. +KERNEL = newoskrnl.exe + +.PHONY: error +error: + @echo "=== ERROR ===" + @echo "=> Use a specific target." + +MOVEALL=./MoveAll.sh + +.PHONY: newos-arm64-epm +newos-arm64-epm: clean + $(CC) $(CCFLAGS) $(DISKDRIVER) $(DEBUG) $(wildcard Sources/*.cxx) \ + $(wildcard Sources/FS/*.cxx) $(wildcard HALKit/ARM64/Storage/*.cxx) \ + $(wildcard HALKit/ARM64/PCI/*.cxx) $(wildcard Sources/Network/*.cxx) $(wildcard Sources/Storage/*.cxx) \ + $(wildcard HALKit/ARM64/*.cxx) $(wildcard HALKit/ARM64/*.cpp) \ + $(wildcard HALKit/ARM64/*.s) + + $(MOVEALL) + +OBJCOPY=x86_64-w64-mingw32-objcopy + +.PHONY: link-arm64-epm +link-arm64-epm: + $(LD) $(LDFLAGS) $(LDOBJ) -o $(KERNEL) + +.PHONY: all +all: newos-arm64-epm link-arm64-epm + qemu-img create -f raw newoskrnl.rom 512K + dd if=newoskrnl.exe of=newoskrnl.rom bs=1 seek=0 conv=notrunc + @echo "NewOSKrnl => OK." + +.PHONY: help +help: + @echo "=== HELP ===" + @echo "all: Build kernel and link it." + @echo "link-arm64-epm: Link kernel. (EPM AMD64)" + @echo "newos-arm64-epm: Build kernel. (EPM AMD64)" + +.PHONY: clean +clean: + rm -f $(LDOBJ) $(KERNEL) |
