Patchwork tune-ppce5500: Add a tune file for PowerPC e5500 core

login
register
mail settings
Submitter Kumar Gala
Date Aug. 5, 2011, 8:11 p.m.
Message ID <1312575061-27569-1-git-send-email-galak@kernel.crashing.org>
Download mbox | patch
Permalink /patch/9407/
State New, archived
Headers show

Comments

Kumar Gala - Aug. 5, 2011, 8:11 p.m.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 meta/conf/machine/include/tune-ppce5500.inc |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
 create mode 100644 meta/conf/machine/include/tune-ppce5500.inc
Khem Raj - Aug. 5, 2011, 9:17 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 08/05/2011 01:11 PM, Kumar Gala wrote:
> Signed-off-by: Kumar Gala <galak@kernel.crashing.org> --- 
> meta/conf/machine/include/tune-ppce5500.inc |   14 ++++++++++++++ 1
> files changed, 14 insertions(+), 0 deletions(-) create mode 100644
> meta/conf/machine/include/tune-ppce5500.inc
> 
> diff --git a/meta/conf/machine/include/tune-ppce5500.inc
> b/meta/conf/machine/include/tune-ppce5500.inc new file mode 100644 
> index 0000000..8e6403d --- /dev/null +++
> b/meta/conf/machine/include/tune-ppce5500.inc @@ -0,0 +1,14 @@ 
> +DEFAULTTUNE ?= "ppce5500" + +require
> conf/machine/include/powerpc/arch-powerpc64.inc + 
> +TUNEVALID[ppce5500] = "Enable ppce5500 specific processor
> optimizations"

just a nit may be it should read "Enable ppce5500 processor specific
optimizations"

> +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "ppce5500",
> "-mcpu=e5500", "", d)}" +TUNE_PKGARCH =
> "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "ppce5500",
> "${PPCPKGARCH}", d)}" + +AVAILTUNES += "ppce5500" 
> +TUNE_FEATURES_tune-ppce5500 = "m64 ppce5500" 
> +PACKAGE_EXTRA_ARCHS_tune-ppce5500 = "powerpc64 ppce5500" + +# glibc
> configure options to get e5500 specific library (for sqrt) 
> +GLIBC_EXTRA_OECONF += "--with-cpu=e5500"

hmm so this essentially makes eglibc specific to this processor. Does it
build eglibc inside work/ppce5500-oe-linux-gnuspe dir ? or something
generic e.g. powerpc64-oe-linux-gnuspe dir ? In case its former then all
is well but latter case may not be ok since we may not be able to share
eglibc binaries with similar implementations of ppc64 in this case

I am more worried about proliferation into other architectures e.g. arm
which has multiple armv7 implementations e.g.
- -- 
- -Khem
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iEYEARECAAYFAk48XecACgkQuwUzVZGdMxRMtwCfVFeKRwn9xv8pksvWDi2r9VAG
ntUAnjudbnXU2uiM1nINLU/rmtlIb4dT
=re3u
-----END PGP SIGNATURE-----
Kumar Gala - Aug. 6, 2011, 8:49 p.m.
On Aug 5, 2011, at 4:17 PM, Khem Raj wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 08/05/2011 01:11 PM, Kumar Gala wrote:
>> Signed-off-by: Kumar Gala <galak@kernel.crashing.org> --- 
>> meta/conf/machine/include/tune-ppce5500.inc |   14 ++++++++++++++ 1
>> files changed, 14 insertions(+), 0 deletions(-) create mode 100644
>> meta/conf/machine/include/tune-ppce5500.inc
>> 
>> diff --git a/meta/conf/machine/include/tune-ppce5500.inc
>> b/meta/conf/machine/include/tune-ppce5500.inc new file mode 100644 
>> index 0000000..8e6403d --- /dev/null +++
>> b/meta/conf/machine/include/tune-ppce5500.inc @@ -0,0 +1,14 @@ 
>> +DEFAULTTUNE ?= "ppce5500" + +require
>> conf/machine/include/powerpc/arch-powerpc64.inc + 
>> +TUNEVALID[ppce5500] = "Enable ppce5500 specific processor
>> optimizations"
> 
> just a nit may be it should read "Enable ppce5500 processor specific
> optimizations"
> 
>> +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "ppce5500",
>> "-mcpu=e5500", "", d)}" +TUNE_PKGARCH =
>> "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "ppce5500",
>> "${PPCPKGARCH}", d)}" + +AVAILTUNES += "ppce5500" 
>> +TUNE_FEATURES_tune-ppce5500 = "m64 ppce5500" 
>> +PACKAGE_EXTRA_ARCHS_tune-ppce5500 = "powerpc64 ppce5500" + +# glibc
>> configure options to get e5500 specific library (for sqrt) 
>> +GLIBC_EXTRA_OECONF += "--with-cpu=e5500"
> 
> hmm so this essentially makes eglibc specific to this processor. Does it
> build eglibc inside work/ppce5500-oe-linux-gnuspe dir ? or something
> generic e.g. powerpc64-oe-linux-gnuspe dir ? In case its former then all
> is well but latter case may not be ok since we may not be able to share
> eglibc binaries with similar implementations of ppc64 in this case
> 
> I am more worried about proliferation into other architectures e.g. arm
> which has multiple armv7 implementations e.g.

On PPC the works dirs are already somewhat 'tune' specific:

build-p5020/tmp/work/p5020_ds-poky-linux
build-p5020/tmp/work/ppce5500-poky-linux

An eglibc is built in ppce5500-poky-linux

- k
Kumar Gala - Aug. 8, 2011, 2:39 p.m.
On Aug 5, 2011, at 3:11 PM, Kumar Gala wrote:

> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
> ---
> meta/conf/machine/include/tune-ppce5500.inc |   14 ++++++++++++++
> 1 files changed, 14 insertions(+), 0 deletions(-)
> create mode 100644 meta/conf/machine/include/tune-ppce5500.inc
> 
> diff --git a/meta/conf/machine/include/tune-ppce5500.inc b/meta/conf/machine/include/tune-ppce5500.inc
> new file mode 100644
> index 0000000..8e6403d
> --- /dev/null
> +++ b/meta/conf/machine/include/tune-ppce5500.inc
> @@ -0,0 +1,14 @@
> +DEFAULTTUNE ?= "ppce5500"
> +
> +require conf/machine/include/powerpc/arch-powerpc64.inc
> +
> +TUNEVALID[ppce5500] = "Enable ppce5500 specific processor optimizations"
> +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "-mcpu=e5500", "", d)}"
> +TUNE_PKGARCH = "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "ppce5500", "${PPCPKGARCH}", d)}"
> +
> +AVAILTUNES += "ppce5500"
> +TUNE_FEATURES_tune-ppce5500 = "m64 ppce5500"
> +PACKAGE_EXTRA_ARCHS_tune-ppce5500 = "powerpc64 ppce5500"
> +
> +# glibc configure options to get e5500 specific library (for sqrt)
> +GLIBC_EXTRA_OECONF += "--with-cpu=e5500"
> -- 
> 1.7.3.4

If I want to have a version of this for 32-bit only (or default) and one for 64-bit, how would it be best to handle that?

- k
Richard Purdie - Aug. 8, 2011, 2:48 p.m.
On Mon, 2011-08-08 at 09:39 -0500, Kumar Gala wrote:
> On Aug 5, 2011, at 3:11 PM, Kumar Gala wrote:
> 
> > Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
> > ---
> > meta/conf/machine/include/tune-ppce5500.inc |   14 ++++++++++++++
> > 1 files changed, 14 insertions(+), 0 deletions(-)
> > create mode 100644 meta/conf/machine/include/tune-ppce5500.inc
> > 
> > diff --git a/meta/conf/machine/include/tune-ppce5500.inc b/meta/conf/machine/include/tune-ppce5500.inc
> > new file mode 100644
> > index 0000000..8e6403d
> > --- /dev/null
> > +++ b/meta/conf/machine/include/tune-ppce5500.inc
> > @@ -0,0 +1,14 @@
> > +DEFAULTTUNE ?= "ppce5500"
> > +
> > +require conf/machine/include/powerpc/arch-powerpc64.inc
> > +
> > +TUNEVALID[ppce5500] = "Enable ppce5500 specific processor optimizations"
> > +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "-mcpu=e5500", "", d)}"
> > +TUNE_PKGARCH = "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "ppce5500", "${PPCPKGARCH}", d)}"
> > +
> > +AVAILTUNES += "ppce5500"
> > +TUNE_FEATURES_tune-ppce5500 = "m64 ppce5500"
> > +PACKAGE_EXTRA_ARCHS_tune-ppce5500 = "powerpc64 ppce5500"
> > +
> > +# glibc configure options to get e5500 specific library (for sqrt)
> > +GLIBC_EXTRA_OECONF += "--with-cpu=e5500"
> > -- 
> > 1.7.3.4
> 
> If I want to have a version of this for 32-bit only (or default) and one for 64-bit, how would it be best to handle that?

I was wondering about this. You really need to make it conditional on
something, e.g.

GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "m32", ""--with-cpu=e5500", "", d)}"

however, if you do this you need to ensure that TUNE_PKGARCH is not
powerpc but something e5500 specific at this point since you are
enabling e5500 specific optimisations.

Cheers,

Richard
Kumar Gala - Aug. 8, 2011, 3:53 p.m.
On Aug 8, 2011, at 9:48 AM, Richard Purdie wrote:

> On Mon, 2011-08-08 at 09:39 -0500, Kumar Gala wrote:
>> On Aug 5, 2011, at 3:11 PM, Kumar Gala wrote:
>> 
>>> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
>>> ---
>>> meta/conf/machine/include/tune-ppce5500.inc |   14 ++++++++++++++
>>> 1 files changed, 14 insertions(+), 0 deletions(-)
>>> create mode 100644 meta/conf/machine/include/tune-ppce5500.inc
>>> 
>>> diff --git a/meta/conf/machine/include/tune-ppce5500.inc b/meta/conf/machine/include/tune-ppce5500.inc
>>> new file mode 100644
>>> index 0000000..8e6403d
>>> --- /dev/null
>>> +++ b/meta/conf/machine/include/tune-ppce5500.inc
>>> @@ -0,0 +1,14 @@
>>> +DEFAULTTUNE ?= "ppce5500"
>>> +
>>> +require conf/machine/include/powerpc/arch-powerpc64.inc
>>> +
>>> +TUNEVALID[ppce5500] = "Enable ppce5500 specific processor optimizations"
>>> +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "-mcpu=e5500", "", d)}"
>>> +TUNE_PKGARCH = "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "ppce5500", "${PPCPKGARCH}", d)}"
>>> +
>>> +AVAILTUNES += "ppce5500"
>>> +TUNE_FEATURES_tune-ppce5500 = "m64 ppce5500"
>>> +PACKAGE_EXTRA_ARCHS_tune-ppce5500 = "powerpc64 ppce5500"
>>> +
>>> +# glibc configure options to get e5500 specific library (for sqrt)
>>> +GLIBC_EXTRA_OECONF += "--with-cpu=e5500"
>>> -- 
>>> 1.7.3.4
>> 
>> If I want to have a version of this for 32-bit only (or default) and one for 64-bit, how would it be best to handle that?
> 
> I was wondering about this. You really need to make it conditional on
> something, e.g.
> 
> GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "m32", ""--with-cpu=e5500", "", d)}"

Sorry, I meant for the whole file, not just the GLIBC_EXTRA_OECONF (That has to be done regardless of 32-bit or 64-bit).

> however, if you do this you need to ensure that TUNE_PKGARCH is not
> powerpc but something e5500 specific at this point since you are
> enabling e5500 specific optimisations.

Which it is, or do you mean being more explicit about it via:

TUNE_PKGARCH = "ppce5500"

rather than:

TUNE_PKGARCH = "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "ppce5500", "${PPCPKGARCH}", d)}"

- k

Patch

diff --git a/meta/conf/machine/include/tune-ppce5500.inc b/meta/conf/machine/include/tune-ppce5500.inc
new file mode 100644
index 0000000..8e6403d
--- /dev/null
+++ b/meta/conf/machine/include/tune-ppce5500.inc
@@ -0,0 +1,14 @@ 
+DEFAULTTUNE ?= "ppce5500"
+
+require conf/machine/include/powerpc/arch-powerpc64.inc
+
+TUNEVALID[ppce5500] = "Enable ppce5500 specific processor optimizations"
+TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "-mcpu=e5500", "", d)}"
+TUNE_PKGARCH = "${@bb.utils.contains("TUNE_FEATURES", "ppce5500", "ppce5500", "${PPCPKGARCH}", d)}"
+
+AVAILTUNES += "ppce5500"
+TUNE_FEATURES_tune-ppce5500 = "m64 ppce5500"
+PACKAGE_EXTRA_ARCHS_tune-ppce5500 = "powerpc64 ppce5500"
+
+# glibc configure options to get e5500 specific library (for sqrt)
+GLIBC_EXTRA_OECONF += "--with-cpu=e5500"