Skip to contentSkip to conversation

Question about aarch64 target

PATCH Kang Kai 3 participants 5 messages Aug 27, 2014 – Aug 28, 2014

lore
Share & tools
lore

Kang Kai

author
#0 lore raw

Hi Saul,

I am working on Bug 6487 - Add Aarch64 qemu target. I take tune and config files from linaro then succeeds to build core-image-minimal and core-image-sato.

And I have 2 question about it now:
1 What should the new qemu aarch64 bsp looks like at the end? Do the files in the patch attached are enough? And what more test should we do except to build images such as core-image-sato, core-image-sato even build world?

2 There 2 aarch64 configure files from linaro. First one is little endian and it is as default, and the other one is big endian. I take the little endian one as qemuarm64.conf as linaro does. Do we need add the other one as qemuarm64_be.conf or something like that?

Signature · 2 lines
Regards,
Neil | Kai Kang

From e20a3e1252d895c2098fc99d7a0b8ff42ec2c439 Mon Sep 17 00:00:00 2001
From: Kai Kang <[email protected]>
Date: Fri, 22 Aug 2014 10:46:10 +0800
Subject: [PATCH] add qemu aarch64

---
 meta/conf/machine/genericarmv8.conf          | 37 ++++++++++++++++++++++++++
 meta/conf/machine/genericarmv8b.conf         |  8 ++++++
 meta/conf/machine/include/arm/arch-armv8.inc | 20 ++++++++++++++
 meta/conf/machine/qemuarm64.conf             | 39 ++++++++++++++++++++++++++++
 4 files changed, 104 insertions(+)
 create mode 100644 meta/conf/machine/genericarmv8.conf
 create mode 100644 meta/conf/machine/genericarmv8b.conf
 create mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
 create mode 100644 meta/conf/machine/qemuarm64.conf
meta/conf/machine/genericarmv8.conf new file +37 -0
new file mode 100644
index 0000000..1d05238
@@ -0,0 +1,37 @@
+#@TYPE: Machine
+#@NAME: generic armv8 machine
+#@DESCRIPTION: generic machine to be used by linaro-media-create
+
+require conf/machine/include/arm64/arch-armv8.inc
+
+PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
+
+XSERVER ?= "xserver-xorg \
+            mesa-driver-swrast \
+            xf86-input-evdev \
+            xf86-input-mouse \
+            xf86-video-fbdev \
+            xf86-input-keyboard"
+
+MACHINE_FEATURES = ""
+
+# Don't include kernels in standard images
+RDEPENDS_kernel-base = ""
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-linaro"
+
+KERNEL_IMAGETYPE = "Image"
+
+# We have to disable SERIAL_CONSOLE due to auto-serial-console
+#SERIAL_CONSOLE = "115200 ttyAMA0"
+
+# Force auto-serial-console to be used by all image types
+# Ideally this would be part of core oe or as a bbclassappend,
+# but as we don't have an easy way to append a class, defining
+# it here
+EXTRA_IMAGE_FEATURES += "autoserial"
+FEATURE_PACKAGES_autoserial = "auto-serial-console"
+
+# we do not want to have getty running on tty1 as we run
+# auto-serial-console there
+USE_VT = "0"
meta/conf/machine/genericarmv8b.conf new file +8 -0
new file mode 100644
index 0000000..e70de08
@@ -0,0 +1,8 @@
+#@TYPE: Machine
+#@NAME: generic armv8 big endian machine
+#@DESCRIPTION: generic machine to be used by linaro-media-create
+DEFAULTTUNE = "aarch64_be"
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-dummy"
+
+require conf/machine/genericarmv8.conf
meta/conf/machine/include/arm/arch-armv8.inc new file +20 -0
new file mode 100644
index 0000000..c86142a
@@ -0,0 +1,20 @@
+DEFAULTTUNE ?= "aarch64"
+
+ARMPKGARCH ?= "aarch64"
+
+TUNEVALID[aarch64] = "Enable instructions for aarch64"
+TUNEVALID[bigendian] = "Enable big-endian mode."
+TUNECONFLICTS[aarch64] = ""
+MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}"
+
+# Little Endian base configs
+AVAILTUNES += "aarch64 aarch64_be"
+TUNE_FEATURES_tune-aarch64 ?= "aarch64"
+TUNE_FEATURES_tune-aarch64_be ?= "${TUNE_FEATURES_tune-aarch64} bigendian"
+
+ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "_be", "", d)}"
+
+TUNE_ARCH = "aarch64${ARMPKGSFX_ENDIAN}"
+TUNE_PKGARCH = "aarch64${ARMPKGSFX_ENDIAN}"
+
+PACKAGE_EXTRA_ARCHS = "aarch64${ARMPKGSFX_ENDIAN}"
meta/conf/machine/qemuarm64.conf new file +39 -0
new file mode 100644
index 0000000..eca99f7
@@ -0,0 +1,39 @@
+#@TYPE: Machine
+#@NAME: generic armv8 machine
+#@DESCRIPTION: generic machine to be used by linaro-media-create
+
+require conf/machine/include/arm/arch-armv8.inc
+
+PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
+
+XSERVER ?= "xserver-xorg \
+            mesa-driver-swrast \
+            xf86-input-evdev \
+            xf86-input-mouse \
+            xf86-video-fbdev \
+            xf86-input-keyboard"
+
+MACHINE_FEATURES = ""
+
+# Don't include kernels in standard images
+RDEPENDS_kernel-base = ""
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-linaro"
+
+KERNEL_IMAGETYPE = "Image"
+
+# We have to disable SERIAL_CONSOLE due to auto-serial-console
+#SERIAL_CONSOLE = "115200 ttyAMA0"
+
+# Force auto-serial-console to be used by all image types
+# Ideally this would be part of core oe or as a bbclassappend,
+# but as we don't have an easy way to append a class, defining
+# it here
+#EXTRA_IMAGE_FEATURES += "autoserial"
+#FEATURE_PACKAGES_autoserial = "auto-serial-console"
+
+# we do not want to have getty running on tty1 as we run
+# auto-serial-console there
+USE_VT = "0"
+
+baselib="lib64"
Signature · 1 line
1.9.1
#1 lore raw
Quoted 9 lines · Kang Kai

Hi Saul,

I am working on Bug 6487 - Add Aarch64 qemu target. I take tune and config files from linaro then succeeds to build core-image-minimal and core-image-sato.

And I have 2 question about it now:
1 What should the new qemu aarch64 bsp looks like at the end? Do the files in the patch attached are enough? And what more test should we do except to

I've said this *many* times, but no one has ever responded. We need the kernel support to match the linux-yocto* home for the other core/emulated BSPs .. that way I can help support, test and bring everything forward.

We have a 3.14 and 3.16+ version of the recipe available, and I've looked into this
in the past ... the delta needed in those kernel versions is not significant.

Bruce

Quoted 18 lines

build images such as core-image-sato, core-image-sato even build world?

2 There 2 aarch64 configure files from linaro. First one is little endian and it is as default, and the other one is big endian. I take the little endian one as qemuarm64.conf as linaro does. Do we need add the other one as qemuarm64_be.conf or something like that?

--
Regards,
Neil | Kai Kang

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Signature · 2 lines
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"
#2 lore raw
In reply to Kang Kai
Quoted 11 lines · Kang Kai

Hi Saul,

I am working on Bug 6487 - Add Aarch64 qemu target. I take tune and config files from linaro then succeeds to build core-image-minimal and core-image-sato.

And I have 2 question about it now:
1 What should the new qemu aarch64 bsp looks like at the end? Do the files in the patch attached are enough? And what more test should we do except to build images such as core-image-sato, core-image-sato even build world?

may be eventually support linux-yocto, and linux-linaro both, it should be tested at same level as other QEMU BSPs

Quoted 4 lines

2 There 2 aarch64 configure files from linaro. First one is little endian and it is as default, and the other one is big endian. I take the little endian one as qemuarm64.conf as linaro does. Do we need add the other one as qemuarm64_be.conf or something like that?

Name them same as meta-linaro please, so eventually linaro layer can drop it and take up the maintenance of them in OE-Core

Quoted 160 lines
Signature · 21 lines
-- 
Regards,
Neil | Kai Kang


From e20a3e1252d895c2098fc99d7a0b8ff42ec2c439 Mon Sep 17 00:00:00 2001
From: Kai Kang <[email protected]>
Date: Fri, 22 Aug 2014 10:46:10 +0800
Subject: [PATCH] add qemu aarch64

Signed-off-by: Kai Kang <[email protected]>
---
 meta/conf/machine/genericarmv8.conf          | 37 ++++++++++++++++++++++++++
 meta/conf/machine/genericarmv8b.conf         |  8 ++++++
 meta/conf/machine/include/arm/arch-armv8.inc | 20 ++++++++++++++
 meta/conf/machine/qemuarm64.conf             | 39 ++++++++++++++++++++++++++++
 4 files changed, 104 insertions(+)
 create mode 100644 meta/conf/machine/genericarmv8.conf
 create mode 100644 meta/conf/machine/genericarmv8b.conf
 create mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
 create mode 100644 meta/conf/machine/qemuarm64.conf
meta/conf/machine/genericarmv8.conf new file +37 -0
new file mode 100644
index 0000000..1d05238
@@ -0,0 +1,37 @@
+#@TYPE: Machine
+#@NAME: generic armv8 machine
+#@DESCRIPTION: generic machine to be used by linaro-media-create
+
+require conf/machine/include/arm64/arch-armv8.inc
+
+PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
+
+XSERVER ?= "xserver-xorg \
+            mesa-driver-swrast \
+            xf86-input-evdev \
+            xf86-input-mouse \
+            xf86-video-fbdev \
+            xf86-input-keyboard"
+
+MACHINE_FEATURES = ""
+
+# Don't include kernels in standard images
+RDEPENDS_kernel-base = ""
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-linaro"
+
+KERNEL_IMAGETYPE = "Image"
+
+# We have to disable SERIAL_CONSOLE due to auto-serial-console
+#SERIAL_CONSOLE = "115200 ttyAMA0"
+
+# Force auto-serial-console to be used by all image types
+# Ideally this would be part of core oe or as a bbclassappend,
+# but as we don't have an easy way to append a class, defining
+# it here
+EXTRA_IMAGE_FEATURES += "autoserial"
+FEATURE_PACKAGES_autoserial = "auto-serial-console"
+
+# we do not want to have getty running on tty1 as we run
+# auto-serial-console there
+USE_VT = "0"
meta/conf/machine/genericarmv8b.conf new file +8 -0
new file mode 100644
index 0000000..e70de08
@@ -0,0 +1,8 @@
+#@TYPE: Machine
+#@NAME: generic armv8 big endian machine
+#@DESCRIPTION: generic machine to be used by linaro-media-create
+DEFAULTTUNE = "aarch64_be"
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-dummy"
+
+require conf/machine/genericarmv8.conf
meta/conf/machine/include/arm/arch-armv8.inc new file +20 -0
new file mode 100644
index 0000000..c86142a
@@ -0,0 +1,20 @@
+DEFAULTTUNE ?= "aarch64"
+
+ARMPKGARCH ?= "aarch64"
+
+TUNEVALID[aarch64] = "Enable instructions for aarch64"
+TUNEVALID[bigendian] = "Enable big-endian mode."
+TUNECONFLICTS[aarch64] = ""
+MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}"
+
+# Little Endian base configs
+AVAILTUNES += "aarch64 aarch64_be"
+TUNE_FEATURES_tune-aarch64 ?= "aarch64"
+TUNE_FEATURES_tune-aarch64_be ?= "${TUNE_FEATURES_tune-aarch64} bigendian"
+
+ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "_be", "", d)}"
+
+TUNE_ARCH = "aarch64${ARMPKGSFX_ENDIAN}"
+TUNE_PKGARCH = "aarch64${ARMPKGSFX_ENDIAN}"
+
+PACKAGE_EXTRA_ARCHS = "aarch64${ARMPKGSFX_ENDIAN}"
meta/conf/machine/qemuarm64.conf new file +39 -0
new file mode 100644
index 0000000..eca99f7
@@ -0,0 +1,39 @@
+#@TYPE: Machine
+#@NAME: generic armv8 machine
+#@DESCRIPTION: generic machine to be used by linaro-media-create
+
+require conf/machine/include/arm/arch-armv8.inc
+
+PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
+
+XSERVER ?= "xserver-xorg \
+            mesa-driver-swrast \
+            xf86-input-evdev \
+            xf86-input-mouse \
+            xf86-video-fbdev \
+            xf86-input-keyboard"
+
+MACHINE_FEATURES = ""
+
+# Don't include kernels in standard images
+RDEPENDS_kernel-base = ""
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-linaro"
+
+KERNEL_IMAGETYPE = "Image"
+
+# We have to disable SERIAL_CONSOLE due to auto-serial-console
+#SERIAL_CONSOLE = "115200 ttyAMA0"
+
+# Force auto-serial-console to be used by all image types
+# Ideally this would be part of core oe or as a bbclassappend,
+# but as we don't have an easy way to append a class, defining
+# it here
+#EXTRA_IMAGE_FEATURES += "autoserial"
+#FEATURE_PACKAGES_autoserial = "auto-serial-console"
+
+# we do not want to have getty running on tty1 as we run
+# auto-serial-console there
+USE_VT = "0"
+
+baselib="lib64"
Signature · 8 lines
1.9.1


-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
author
#3 lore raw
Quoted 15 lines · Khem Raj
Quoted 11 lines · Kang Kai

Hi Saul,

I am working on Bug 6487 - Add Aarch64 qemu target. I take tune and config files from linaro then succeeds to build core-image-minimal and core-image-sato.

And I have 2 question about it now:
1 What should the new qemu aarch64 bsp looks like at the end? Do the files in the patch attached are enough? And what more test should we do except to build images such as core-image-sato, core-image-sato even build world?

may be eventually support linux-yocto, and linux-linaro both, it should be tested at same level as other QEMU BSPs

Quoted 6 lines
Quoted 4 lines

2 There 2 aarch64 configure files from linaro. First one is little endian and it is as default, and the other one is big endian. I take the little endian one as qemuarm64.conf as linaro does. Do we need add the other one as qemuarm64_be.conf or something like that?

Name them same as meta-linaro please, so eventually linaro layer can drop it and take up the maintenance of them in OE-Core

Keep same name with linaro is convenient for merge work. But the name 'genericarmv8' is not coordinated with existing qemu bsps. I prefer to use qemuarmv8 for coordination.

Regards,
Kai

Quoted 160 lines
Quoted 158 lines
Signature · 20 lines
-- 
Regards,
Neil | Kai Kang

 From e20a3e1252d895c2098fc99d7a0b8ff42ec2c439 Mon Sep 17 00:00:00 2001
From: Kai Kang <[email protected]>
Date: Fri, 22 Aug 2014 10:46:10 +0800
Subject: [PATCH] add qemu aarch64

Signed-off-by: Kai Kang <[email protected]>
---
  meta/conf/machine/genericarmv8.conf          | 37 ++++++++++++++++++++++++++
  meta/conf/machine/genericarmv8b.conf         |  8 ++++++
  meta/conf/machine/include/arm/arch-armv8.inc | 20 ++++++++++++++
  meta/conf/machine/qemuarm64.conf             | 39 ++++++++++++++++++++++++++++
  4 files changed, 104 insertions(+)
  create mode 100644 meta/conf/machine/genericarmv8.conf
  create mode 100644 meta/conf/machine/genericarmv8b.conf
  create mode 100644 meta/conf/machine/include/arm/arch-armv8.inc
  create mode 100644 meta/conf/machine/qemuarm64.conf
meta/conf/machine/genericarmv8.conf new file +37 -0
new file mode 100644
index 0000000..1d05238
@@ -0,0 +1,37 @@
+#@TYPE: Machine
+#@NAME: generic armv8 machine
+#@DESCRIPTION: generic machine to be used by linaro-media-create
+
+require conf/machine/include/arm64/arch-armv8.inc
+
+PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
+
+XSERVER ?= "xserver-xorg \
+            mesa-driver-swrast \
+            xf86-input-evdev \
+            xf86-input-mouse \
+            xf86-video-fbdev \
+            xf86-input-keyboard"
+
+MACHINE_FEATURES = ""
+
+# Don't include kernels in standard images
+RDEPENDS_kernel-base = ""
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-linaro"
+
+KERNEL_IMAGETYPE = "Image"
+
+# We have to disable SERIAL_CONSOLE due to auto-serial-console
+#SERIAL_CONSOLE = "115200 ttyAMA0"
+
+# Force auto-serial-console to be used by all image types
+# Ideally this would be part of core oe or as a bbclassappend,
+# but as we don't have an easy way to append a class, defining
+# it here
+EXTRA_IMAGE_FEATURES += "autoserial"
+FEATURE_PACKAGES_autoserial = "auto-serial-console"
+
+# we do not want to have getty running on tty1 as we run
+# auto-serial-console there
+USE_VT = "0"
meta/conf/machine/genericarmv8b.conf new file +8 -0
new file mode 100644
index 0000000..e70de08
@@ -0,0 +1,8 @@
+#@TYPE: Machine
+#@NAME: generic armv8 big endian machine
+#@DESCRIPTION: generic machine to be used by linaro-media-create
+DEFAULTTUNE = "aarch64_be"
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-dummy"
+
+require conf/machine/genericarmv8.conf
meta/conf/machine/include/arm/arch-armv8.inc new file +20 -0
new file mode 100644
index 0000000..c86142a
@@ -0,0 +1,20 @@
+DEFAULTTUNE ?= "aarch64"
+
+ARMPKGARCH ?= "aarch64"
+
+TUNEVALID[aarch64] = "Enable instructions for aarch64"
+TUNEVALID[bigendian] = "Enable big-endian mode."
+TUNECONFLICTS[aarch64] = ""
+MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}"
+
+# Little Endian base configs
+AVAILTUNES += "aarch64 aarch64_be"
+TUNE_FEATURES_tune-aarch64 ?= "aarch64"
+TUNE_FEATURES_tune-aarch64_be ?= "${TUNE_FEATURES_tune-aarch64} bigendian"
+
+ARMPKGSFX_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "_be", "", d)}"
+
+TUNE_ARCH = "aarch64${ARMPKGSFX_ENDIAN}"
+TUNE_PKGARCH = "aarch64${ARMPKGSFX_ENDIAN}"
+
+PACKAGE_EXTRA_ARCHS = "aarch64${ARMPKGSFX_ENDIAN}"
meta/conf/machine/qemuarm64.conf new file +39 -0
new file mode 100644
index 0000000..eca99f7
@@ -0,0 +1,39 @@
+#@TYPE: Machine
+#@NAME: generic armv8 machine
+#@DESCRIPTION: generic machine to be used by linaro-media-create
+
+require conf/machine/include/arm/arch-armv8.inc
+
+PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
+
+XSERVER ?= "xserver-xorg \
+            mesa-driver-swrast \
+            xf86-input-evdev \
+            xf86-input-mouse \
+            xf86-video-fbdev \
+            xf86-input-keyboard"
+
+MACHINE_FEATURES = ""
+
+# Don't include kernels in standard images
+RDEPENDS_kernel-base = ""
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-linaro"
+
+KERNEL_IMAGETYPE = "Image"
+
+# We have to disable SERIAL_CONSOLE due to auto-serial-console
+#SERIAL_CONSOLE = "115200 ttyAMA0"
+
+# Force auto-serial-console to be used by all image types
+# Ideally this would be part of core oe or as a bbclassappend,
+# but as we don't have an easy way to append a class, defining
+# it here
+#EXTRA_IMAGE_FEATURES += "autoserial"
+#FEATURE_PACKAGES_autoserial = "auto-serial-console"
+
+# we do not want to have getty running on tty1 as we run
+# auto-serial-console there
+USE_VT = "0"
+
+baselib="lib64"
Signature · 7 lines
1.9.1

-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 2 lines
Regards,
Neil | Kai Kang
#4 lore raw
Quoted 20 lines · Kang Kai
Quoted 19 lines · Khem Raj
Quoted 11 lines · Kang Kai

Hi Saul,

I am working on Bug 6487 - Add Aarch64 qemu target. I take tune and config files from linaro then succeeds to build core-image-minimal and core-image-sato.

And I have 2 question about it now:
1 What should the new qemu aarch64 bsp looks like at the end? Do the files in the patch attached are enough? And what more test should we do except to build images such as core-image-sato, core-image-sato even build world?

may be eventually support linux-yocto, and linux-linaro both, it should be tested at same level as other QEMU BSPs

Quoted 4 lines

2 There 2 aarch64 configure files from linaro. First one is little endian and it is as default, and the other one is big endian. I take the little endian one as qemuarm64.conf as linaro does. Do we need add the other one as qemuarm64_be.conf or something like that?

Quoted 6 lines
Quoted 2 lines

Name them same as meta-linaro please, so eventually linaro layer can drop it and take up the maintenance of them in OE-Core

Keep same name with linaro is convenient for merge work. But the name 'genericarmv8' is not coordinated with existing qemu bsps. I prefer to use qemuarmv8 for coordination.

Thats a valid point, I would give in.