[OE-core] Question about aarch64 target

Khem Raj raj.khem at gmail.com
Thu Aug 28 07:33:15 UTC 2014


On 14-08-27 18:53:41, Kang Kai wrote:
> 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

> 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

> 
> -- 
> Regards,
> Neil | Kai Kang
> 

> From e20a3e1252d895c2098fc99d7a0b8ff42ec2c439 Mon Sep 17 00:00:00 2001
> From: Kai Kang <kai.kang at windriver.com>
> Date: Fri, 22 Aug 2014 10:46:10 +0800
> Subject: [PATCH] add qemu aarch64
> 
> Signed-off-by: Kai Kang <kai.kang at windriver.com>
> ---
>  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
> 
> diff --git a/meta/conf/machine/genericarmv8.conf b/meta/conf/machine/genericarmv8.conf
> new file mode 100644
> index 0000000..1d05238
> --- /dev/null
> +++ b/meta/conf/machine/genericarmv8.conf
> @@ -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"
> diff --git a/meta/conf/machine/genericarmv8b.conf b/meta/conf/machine/genericarmv8b.conf
> new file mode 100644
> index 0000000..e70de08
> --- /dev/null
> +++ b/meta/conf/machine/genericarmv8b.conf
> @@ -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
> diff --git a/meta/conf/machine/include/arm/arch-armv8.inc b/meta/conf/machine/include/arm/arch-armv8.inc
> new file mode 100644
> index 0000000..c86142a
> --- /dev/null
> +++ b/meta/conf/machine/include/arm/arch-armv8.inc
> @@ -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}"
> diff --git a/meta/conf/machine/qemuarm64.conf b/meta/conf/machine/qemuarm64.conf
> new file mode 100644
> index 0000000..eca99f7
> --- /dev/null
> +++ b/meta/conf/machine/qemuarm64.conf
> @@ -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"
> -- 
> 1.9.1
> 

> -- 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list