diff options
author | Robin Randhawa <robin.randhawa@arm.com> | 2021-01-13 10:51:28 -0700 |
---|---|---|
committer | Jeremy Soller <jeremy@system76.com> | 2021-01-15 05:56:34 -0700 |
commit | aa7e59a9d908279ea368bfbb4848676871165be9 (patch) | |
tree | 49285a77cc48843a3af5df655d87bcd8681973d4 | |
parent | 563261b11c370a7cdad9f206daf5cca1f9c6221f (diff) |
WIP: aarch64 rebase
-rw-r--r-- | .gitmodules | 2 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rwxr-xr-x | aarch64.sh | 28 | ||||
-rw-r--r-- | initfs.toml | 16 | ||||
m--------- | kernel | 0 | ||||
-rw-r--r-- | mk/config.mk | 4 | ||||
-rw-r--r-- | mk/kernel.mk | 2 | ||||
-rw-r--r-- | u-boot.bin | bin | 0 -> 745312 bytes |
8 files changed, 41 insertions, 13 deletions
diff --git a/.gitmodules b/.gitmodules index ceb4bd4..9641a61 100644 --- a/.gitmodules +++ b/.gitmodules @@ -21,7 +21,7 @@ [submodule "kernel"] path = kernel url = https://gitlab.redox-os.org/redox-os/kernel.git - branch = master + branch = aarch64-rebase [submodule "rust"] path = rust url = https://gitlab.redox-os.org/redox-os/rust.git @@ -118,7 +118,7 @@ FORCE: # Create a listing for any binary %.list: % export PATH="$(PREFIX_PATH):$$PATH" && \ - $(OBJDUMP) -C -M intel -D $< > $@ + $(OBJDUMP) -C -D $< > $@ # Wireshark wireshark: FORCE diff --git a/aarch64.sh b/aarch64.sh new file mode 100755 index 0000000..a971f50 --- /dev/null +++ b/aarch64.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +set -ex + +rm -f build/libkernel.a build/kernel +touch kernel +touch kernel/src/arch/aarch64/init/pre_kstart/early_init.S +make build/kernel + +mkimage \ + -A arm64 \ + -O "linux" \ + -T kernel \ + -C none \ + -a 0x40000000 \ + -e 0x40001000 \ + -n 'Redox kernel (qemu AArch64 virt)' \ + -d build/kernel \ + build/kernel.uimage + +qemu-system-aarch64 \ + -M virt \ + -cpu cortex-a57 \ + -bios u-boot.bin \ + -device loader,file=build/kernel.uimage,addr=0x41000000,force-raw=on \ + -serial mon:stdio \ + -nographic \ + -s diff --git a/initfs.toml b/initfs.toml index 40efcf5..4f946ab 100644 --- a/initfs.toml +++ b/initfs.toml @@ -7,14 +7,14 @@ prompt = false # Package settings [packages] -drivers = {} -init = {} -nulld = {} -#pciids = {} -ramfs = {} -randd = {} -redoxfs = {} -zerod = {} +#drivers = {} +#init = {} +#nulld = {} +pciids = {} +#ramfs = {} +#randd = {} +#redoxfs = {} +#zerod = {} [[files]] path="/etc/init.rc" diff --git a/kernel b/kernel -Subproject ea6b1e7f8b605c4f997c00c585f5cecd4ad57ab +Subproject 02c37d3fae3e60a4e2fa27485d990d6d3a830e9 diff --git a/mk/config.mk b/mk/config.mk index 642803c..b6a31f8 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -2,7 +2,7 @@ # Configuration ## Architecture to build Redox for (aarch64 or x86_64) -ARCH?=x86_64 +ARCH?=aarch64 ## Flags to pass to the installer (empty to download binary packages) INSTALLER_FLAGS?=--cookbook=cookbook ## Enabled to use binary prefix (much faster) @@ -41,7 +41,7 @@ export RUST_TARGET_PATH=$(ROOT)/kernel/targets export XARGO_RUST_SRC=$(ROOT)/rust/src ## Kernel variables -KTARGET=$(ARCH)-unknown-none +KTARGET=$(ARCH)-unknown-redox KBUILD=build/kernel ## Userspace variables diff --git a/mk/kernel.mk b/mk/kernel.mk index b6634bd..ae0321a 100644 --- a/mk/kernel.mk +++ b/mk/kernel.mk @@ -2,7 +2,7 @@ build/libkernel.a: kernel/Cargo.lock kernel/Cargo.toml kernel/src/* kernel/src/* export PATH="$(PREFIX_PATH):$$PATH" && \ export INITFS_FOLDER=$(ROOT)/build/initfs && \ cd kernel && \ - cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release -Z build-std=core,alloc -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@ + cargo rustc --lib --target=$(KTARGET) --release -Z build-std=core,alloc -- -C code-model=kernel -C soft-float -C debuginfo=2 -C lto --emit link=../$@ build/libkernel_coreboot.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs_coreboot.tag export PATH="$(PREFIX_PATH):$$PATH" && \ diff --git a/u-boot.bin b/u-boot.bin Binary files differnew file mode 100644 index 0000000..d57bf73 --- /dev/null +++ b/u-boot.bin |