From: Mark Hatle <mark.hatle@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] Add architecture files for AArch64 architecture.
Date: Thu, 14 Mar 2013 13:45:47 -0500 [thread overview]
Message-ID: <51421ADB.2020803@windriver.com> (raw)
In-Reply-To: <5142148A.7010009@linaro.org>
On 3/14/13 1:18 PM, Marcin Juszkiewicz wrote:
> W dniu 14.03.2013 19:04, Mark Hatle pisze:
>> I'm not completely familiar with aarch64. So a couple of questions.
>> The first is is it supposed to allow a multilib configuration? I.e.
>> being able to run both 32-bit "arm/thumb" code & aarch64 code on the
>> same machine? If so, a "BASE_LIB_tune-aarch64" should be defined with
>> the right value.
>
> AArch64 is able to run ARMv7a code but it not something we worry too
> much now as there is no hardware yet so we mostly use OE for porting
> software. There will be no multilib related work done by Linaro in near
> time (if at all).
What I'm considering are the ability to use existing (binary only) 32-bit
thumb/arm programs with these new cores. I also don't have a good sense of the
executable and memory size requirements of the new aarch64 to decide if multilib
is something desired by the end users. (if the executables are roughly the same
size, then it greatly diminishes the usefulness of 32-bit multilibs.)
>> Second are there expected to be tuned variants for the aarch64, i.e.
>> processor/core tunings that need to get embedded into the package arch.
>> if so the definition of the TUNE_ARCH and TUNE_PKGARCH should probably
>> be based on the tune_feature... (This may simply not be necessary
>> though as this is a new architecture that will expand and grow...)
>
> Probably big endian version will arrive sooner or later. Other than that
> no extra tuning will be needed (no hardware yet).
>
>> My suggestion then, to help with future growth is:
>>
>> DEFAULTTUNE ?= "aarch64"
>>
>> ARMPKGARCH ?= "aarch64"
>>
>> TUNEVALID[aarch64] = "Enable instructions for aarch64"
>> TUNECONFLICTS[aarch64] = ""
>> MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64",
>> ":aarch64", "" ,d)}"
>>
>> # Little Endian base configs
>> AVAILTUNES += "aarch64"
>> TUNE_FEATURES_tune-aarch64 ?= "aarch64"
>> BASE_LIB_tune-aarch64 = "lib64" <-- guess on my part
>
> No, we do not use /lib64/ for AArch64.
This will certainly limit the use of multilibs if it becomes desirable on this
part. I really dislike architectures that use the same directory for two
"machine" compatible libraries with different ABIs.
>> TUNE_ARCH_tune-aarch64 = "aarch64"
>> TUNE_PKGARCH_tune-aarch64 = "aarch64"
>> PACKAGE_EXTRA_ARCHS_tune-aarch64 += "aarch64"
>
> Thanks, changed and attached new version.
>
> From b303dd32eecd2fca3708eef468910f19bb903b3f Mon Sep 17 00:00:00 2001
> From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> Date: Thu, 14 Mar 2013 18:41:08 +0100
> Subject: [PATCH] Add architecture files for AArch64 architecture.
>
> Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> ---
> meta/conf/machine/include/aarch64/README | 9 +++++++++
> meta/conf/machine/include/aarch64/arch-aarch64.inc | 14 ++++++++++++++
> 2 files changed, 23 insertions(+)
> create mode 100644 meta/conf/machine/include/aarch64/README
> create mode 100644 meta/conf/machine/include/aarch64/arch-aarch64.inc
>
> diff --git a/meta/conf/machine/include/aarch64/README b/meta/conf/machine/include/aarch64/README
> new file mode 100644
> index 0000000..59c8710
> --- /dev/null
> +++ b/meta/conf/machine/include/aarch64/README
> @@ -0,0 +1,9 @@
> +2013-03-14 - Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> + - Initial Revision
> +
> +Currently only little endian is defined for AArch64.
> +
> +AArch64 is 64-bit ARM architecture.
> +
> +Also known as ARMv8 (instruction set) or ARM64 (name in Linux kernel and
> +architecture name in Debian and derived).
> diff --git a/meta/conf/machine/include/aarch64/arch-aarch64.inc b/meta/conf/machine/include/aarch64/arch-aarch64.inc
> new file mode 100644
> index 0000000..121d339
> --- /dev/null
> +++ b/meta/conf/machine/include/aarch64/arch-aarch64.inc
> @@ -0,0 +1,14 @@
> +DEFAULTTUNE ?= "aarch64"
> +
> +ARMPKGARCH ?= "aarch64"
> +
> +TUNEVALID[aarch64] = "Enable instructions for aarch64"
> +TUNECONFLICTS[aarch64] = ""
> +MACHINEOVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", ":aarch64", "" ,d)}"
> +
> +# Little Endian base configs
> +AVAILTUNES += "aarch64"
> +TUNE_FEATURES_tune-aarch64 ?= "aarch64"
That should be an "=". Since that tune has a specific "feature" meaning. If
someone wants to deviate, they should establish a new/custom tune.
> +TUNE_ARCH_tune-aarch64 = "aarch64"
> +TUNE_PKGARCH_tune-aarch64 = "aarch64"
> +PACKAGE_EXTRA_ARCHS_tune-aarch64 += "aarch64"
>
Otherwise this looks reasonable to me. (Once real hardware exists and people
start building products.. the multilib question may come back...)
--Mark
next prev parent reply other threads:[~2013-03-14 19:02 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-14 17:41 [PATCH] Add architecture files for AArch64 architecture Marcin Juszkiewicz
2013-03-14 18:04 ` Mark Hatle
2013-03-14 18:18 ` Marcin Juszkiewicz
2013-03-14 18:45 ` Mark Hatle [this message]
2013-03-14 20:24 ` Khem Raj
2013-03-14 20:34 ` Marcin Juszkiewicz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51421ADB.2020803@windriver.com \
--to=mark.hatle@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox