summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Randhawa <robin.randhawa@arm.com>2021-01-13 10:51:28 -0700
committerJeremy Soller <jeremy@system76.com>2021-01-15 05:56:34 -0700
commitaa7e59a9d908279ea368bfbb4848676871165be9 (patch)
tree49285a77cc48843a3af5df655d87bcd8681973d4
parent563261b11c370a7cdad9f206daf5cca1f9c6221f (diff)
WIP: aarch64 rebase
-rw-r--r--.gitmodules2
-rw-r--r--Makefile2
-rwxr-xr-xaarch64.sh28
-rw-r--r--initfs.toml16
m---------kernel0
-rw-r--r--mk/config.mk4
-rw-r--r--mk/kernel.mk2
-rw-r--r--u-boot.binbin0 -> 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
diff --git a/Makefile b/Makefile
index 88b3f05..3be31c8 100644
--- a/Makefile
+++ b/Makefile
@@ -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
new file mode 100644
index 0000000..d57bf73
--- /dev/null
+++ b/u-boot.bin
Binary files differ