summaryrefslogtreecommitdiff
path: root/target/aarch64
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-04-15 14:50:50 (GMT)
committerWaldemar Brodkorb <wbx@openadk.org>2014-04-15 14:50:50 (GMT)
commit786605b21d3996df956bf785b020996cc7df3763 (patch)
treed40b956ce805150c73bc22bc33fbaa097e323f3d /target/aarch64
parent67f34421f0ae00adc39cbf016e4b33d2817b854d (diff)
add basic support for aarch64 with ARMv8 foundation model, toolchain and kernel works, userland broken.
Diffstat (limited to 'target/aarch64')
-rw-r--r--target/aarch64/Config.in9
-rw-r--r--target/aarch64/Makefile38
-rw-r--r--target/aarch64/kernel/arm-fm7
-rw-r--r--target/aarch64/sys-available/arm-fm13
-rw-r--r--target/aarch64/sys-available/toolchain-aarch6414
-rw-r--r--target/aarch64/target.mk4
6 files changed, 85 insertions, 0 deletions
diff --git a/target/aarch64/Config.in b/target/aarch64/Config.in
new file mode 100644
index 0000000..9e48de6
--- /dev/null
+++ b/target/aarch64/Config.in
@@ -0,0 +1,9 @@
+choice
+depends on ADK_LINUX_AARCH64 && !ADK_CHOOSE_TARGET_ARCH
+prompt "Target system"
+
+config ADK_CHOOSE_TARGET_SYSTEM_AARCH64
+ boolean "Choose target system"
+
+source "target/aarch64/Config.in.systems"
+endchoice
diff --git a/target/aarch64/Makefile b/target/aarch64/Makefile
new file mode 100644
index 0000000..d276472
--- /dev/null
+++ b/target/aarch64/Makefile
@@ -0,0 +1,38 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(TOPDIR)/rules.mk
+include $(TOPDIR)/mk/kernel.mk
+include $(TOPDIR)/mk/modules.mk
+include $(TOPDIR)/mk/kernel-build.mk
+include $(TOPDIR)/mk/image.mk
+
+KERNEL:=${LINUX_DIR}/arch/arm64/boot/Image
+
+kernel-install:
+ cd $(TOPDIR) && \
+ make -f Makefile \
+ -C package/boot-wrapper-aarch64 clean
+ cd $(TOPDIR) && \
+ make -f Makefile \
+ -C package/boot-wrapper-aarch64 package
+ ${CP} ${LINUX_DIR}/linux-system.axf \
+ $(FW_DIR)/$(TARGET_KERNEL)
+
+ifeq ($(ADK_TARGET_FS),archive)
+imageinstall: $(FW_DIR)/$(ROOTFSTARBALL)
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
+endif
+ifeq ($(ADK_TARGET_FS),initramfsarchive)
+imageinstall: $(FW_DIR)/$(ROOTFSUSERTARBALL)
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+endif
+ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
+imageinstall: createinitramfs kernel-install
+ @echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_TARGET_SYSTEM_ARM_FM),y)
+ @echo 'Start emulator via:'
+ @echo 'Foundation_v8 --image=$(FW_DIR)/${TARGET_KERNEL}'
+endif
+endif
diff --git a/target/aarch64/kernel/arm-fm b/target/aarch64/kernel/arm-fm
new file mode 100644
index 0000000..db8edb1
--- /dev/null
+++ b/target/aarch64/kernel/arm-fm
@@ -0,0 +1,7 @@
+CONFIG_ARM64=y
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_AEABI=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
diff --git a/target/aarch64/sys-available/arm-fm b/target/aarch64/sys-available/arm-fm
new file mode 100644
index 0000000..4eef2ae
--- /dev/null
+++ b/target/aarch64/sys-available/arm-fm
@@ -0,0 +1,13 @@
+config ADK_TARGET_SYSTEM_ARM_FM
+ bool "ARMv8 Foundation Model"
+ select ADK_aarch64
+ select ADK_arm_fm
+ select ADK_little
+ select ADK_soft_float
+ select ADK_eabi
+ select ADK_CPU_ARMV8
+ select ADK_LINUX_64
+ select ADK_TARGET_KERNEL_IMAGE
+ select ADK_PACKAGE_BOOT_WRAPPER_AARCH64
+ help
+ Support for ARMv8 Foundation Model (aarch64).
diff --git a/target/aarch64/sys-available/toolchain-aarch64 b/target/aarch64/sys-available/toolchain-aarch64
new file mode 100644
index 0000000..638c3cd
--- /dev/null
+++ b/target/aarch64/sys-available/toolchain-aarch64
@@ -0,0 +1,14 @@
+config ADK_TARGET_SYSTEM_TOOLCHAIN_AARCH64
+ bool "Toolchain only (little endian)"
+ select ADK_aarch64
+ select ADK_toolchain_aarch64
+ select ADK_little
+ select ADK_soft_float
+ select ADK_fpu_vfp
+ select ADK_eabi
+ select ADK_TOOLCHAIN
+ select ADK_CPU_ARMV8
+ select ADK_LINUX_64
+ select ADK_TARGET_PACKAGE_TXZ
+ help
+ AARCH64 toolchain.
diff --git a/target/aarch64/target.mk b/target/aarch64/target.mk
new file mode 100644
index 0000000..95a9f33
--- /dev/null
+++ b/target/aarch64/target.mk
@@ -0,0 +1,4 @@
+include $(TOPDIR)/mk/kernel-ver.mk
+ARCH:= arm64
+CPU_ARCH:= $(ADK_TARGET_CPU_ARCH)
+TARGET_CFLAGS_ARCH:= $(ADK_TARGET_CFLAGS)