Patchwork [RFC,00/14] mips64 support and sh4 support

login
register
mail settings
Submitter Khem Raj
Date May 21, 2012, 3:35 a.m.
Message ID <cover.1337570904.git.raj.khem@gmail.com>
Download mbox
Permalink /patch/28023/
State New
Headers show

Pull-request

git://git.openembedded.org/openembedded-core-contrib kraj/mips64

Comments

Khem Raj - May 21, 2012, 3:35 a.m.
This patchset adds required bits into metadata for having
mips64/n64 support. I have tested the core-image-sato and core-image-minimal
builds and boots on qemumips64 and runs gcc regression testsuite.
It needs linux-yocto-dev kernel for now which can be obtained from
poky-extra repo. Additionally systemd-image on angstrom-next builds and boots
fine on qemumips64 as well.

Additionally it also adds bits to have SH4 root file systems to be
able to built and again core-image-sato builds for sh4 however qemu
machine support is not yet done but root file sytem boots fine on 
real hardware.

The images are tested on both eglibc and uclibc.

Any help in providing feedback or testing these patches is welcome.

I have tested them enough for over a month now.

The following changes since commit 326563d5a897ae2dba7cfd8d73579d3d979d72c8:

  sstate.bbclass: Make sure we don't have an empty fixmepath file (2012-05-18 15:24:45 +0100)

are available in the git repository at:
  git://git.openembedded.org/openembedded-core-contrib kraj/mips64
  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/mips64

Khem Raj (14):
  insane.bbclass: Add mips64{el} to known machines
  site: Add mips64 eglibc and uclibc site files
  gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler
  binutils: Default to n64 when configured for mips64
  kernel-arch.bbclass: Map mips64{el} to mips KARCH
  eglibc-2.15: Support mips64
  libc-package: Add sh4 and mips64 to arch options
  runqemu: Add qemush4 and qemumips64 knowledge
  netbase: Add interface files for qemumips64 and qemush4
  site/sh-common: Add missing caches variables to build glib-2.32
  xserver-xorg: Fix build for mips64
  tune-mips64.inc: Add new tune file for mips64 big-endian
  qemumips64.conf: Add machine configuration for mips64(eb)
  qemush4.conf: Add machine configuration for qemush4

 meta/classes/insane.bbclass                        |    4 +
 meta/classes/kernel-arch.bbclass                   |    2 +-
 meta/classes/libc-package.bbclass                  |    3 +
 meta/conf/machine/include/tune-mips64.inc          |    3 +
 meta/conf/machine/qemumips64.conf                  |   13 +++
 meta/conf/machine/qemush4.conf                     |   13 +++
 meta/recipes-core/eglibc/eglibc-locale.inc         |    2 +-
 meta/recipes-core/eglibc/eglibc_2.15.bb            |    2 +-
 .../netbase/netbase-4.47/qemumips64/interfaces     |    8 ++
 .../netbase/netbase-4.47/qemush4/interfaces        |    8 ++
 meta/recipes-core/netbase/netbase_4.47.bb          |    4 +-
 .../binutils/mips64-default-ld-emulation.patch     |   49 +++++++++
 meta/recipes-devtools/binutils/binutils_2.22.bb    |    3 +-
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    1 +
 .../gcc/gcc-4.6/mips64-default-n64.patch           |   32 ++++++
 meta/recipes-devtools/gcc/gcc-4.7.inc              |    1 +
 .../gcc/gcc-4.7/mips64-default-n64.patch           |   19 ++++
 meta/recipes-devtools/gcc/gcc-configure-common.inc |    4 +
 .../xorg-xserver/xserver-xorg-1.11.2.inc           |    1 +
 .../xserver-xorg-1.11.2/mips64-compiler.patch      |   29 +++++
 meta/site/mips64-linux                             |   82 +++++++++++++++
 meta/site/mips64-linux-uclibc                      |   83 +++++++++++++++
 meta/site/mips64el-linux                           |   82 +++++++++++++++
 meta/site/mips64el-linux-uclibc                    |  108 ++++++++++++++++++++
 meta/site/sh-common                                |    4 +
 scripts/runqemu                                    |   10 ++-
 scripts/runqemu-internal                           |   35 ++++++-
 27 files changed, 594 insertions(+), 11 deletions(-)
 create mode 100644 meta/conf/machine/include/tune-mips64.inc
 create mode 100644 meta/conf/machine/qemumips64.conf
 create mode 100644 meta/conf/machine/qemush4.conf
 create mode 100644 meta/recipes-core/netbase/netbase-4.47/qemumips64/interfaces
 create mode 100644 meta/recipes-core/netbase/netbase-4.47/qemush4/interfaces
 create mode 100644 meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.7/mips64-default-n64.patch
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xorg-1.11.2/mips64-compiler.patch
 create mode 100644 meta/site/mips64-linux
 create mode 100644 meta/site/mips64-linux-uclibc
 create mode 100644 meta/site/mips64el-linux
 create mode 100644 meta/site/mips64el-linux-uclibc
Richard Purdie - May 21, 2012, 8:21 a.m.
On Sun, 2012-05-20 at 20:35 -0700, Khem Raj wrote:
> This patchset adds required bits into metadata for having
> mips64/n64 support. I have tested the core-image-sato and core-image-minimal
> builds and boots on qemumips64 and runs gcc regression testsuite.
> It needs linux-yocto-dev kernel for now which can be obtained from
> poky-extra repo. Additionally systemd-image on angstrom-next builds and boots
> fine on qemumips64 as well.
> 
> Additionally it also adds bits to have SH4 root file systems to be
> able to built and again core-image-sato builds for sh4 however qemu
> machine support is not yet done but root file sytem boots fine on 
> real hardware.
> 
> The images are tested on both eglibc and uclibc.
> 
> Any help in providing feedback or testing these patches is welcome.
> 
> I have tested them enough for over a month now.
> 
> The following changes since commit 326563d5a897ae2dba7cfd8d73579d3d979d72c8:
> 
>   sstate.bbclass: Make sure we don't have an empty fixmepath file (2012-05-18 15:24:45 +0100)
> 
> are available in the git repository at:
>   git://git.openembedded.org/openembedded-core-contrib kraj/mips64
>   http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/mips64
> 
> Khem Raj (14):
>   insane.bbclass: Add mips64{el} to known machines
>   site: Add mips64 eglibc and uclibc site files
>   gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler
>   binutils: Default to n64 when configured for mips64
>   kernel-arch.bbclass: Map mips64{el} to mips KARCH
>   eglibc-2.15: Support mips64
>   libc-package: Add sh4 and mips64 to arch options
>   runqemu: Add qemush4 and qemumips64 knowledge
>   netbase: Add interface files for qemumips64 and qemush4
>   site/sh-common: Add missing caches variables to build glib-2.32
>   xserver-xorg: Fix build for mips64
>   tune-mips64.inc: Add new tune file for mips64 big-endian
>   qemumips64.conf: Add machine configuration for mips64(eb)
>   qemush4.conf: Add machine configuration for qemush4


We need to figure out what it means to add new qemu machines like this
to OE-Core. I'm not against it however I can't offer the Yocto Project's
resources to test them at this point as we're haven't budgeted for it.

The above patches make sense regardless so I've merged them except the
final two machine files. I'd like to hold off adding those until the
system builds and runs with our default kernel and qemu recipes.
Hopefully this lets you develop without having a huge queue of patches. 

In the meantime we need to figure out the resource concern for testing.
Is there a commercial interest in these new machines from anyone who
could perhaps help with the resource issue?

Cheers,

Richard
Bruce Ashfield - May 21, 2012, 12:43 p.m.
On Mon, May 21, 2012 at 12:35 AM, Khem Raj <raj.khem@gmail.com> wrote:
> This patchset adds required bits into metadata for having
> mips64/n64 support. I have tested the core-image-sato and core-image-minimal
> builds and boots on qemumips64 and runs gcc regression testsuite.
> It needs linux-yocto-dev kernel for now which can be obtained from

And as an extra point on this, I have a full _3.4 recipe prep'd, but
vacation reared
it's ugly head. I'll send the changes out when I return (or sooner if
I sneak away
to a decent computer and internet connection :).

The series looks good to me, thanks Khem!

Bruce

> poky-extra repo. Additionally systemd-image on angstrom-next builds and boots
> fine on qemumips64 as well.
>
> Additionally it also adds bits to have SH4 root file systems to be
> able to built and again core-image-sato builds for sh4 however qemu
> machine support is not yet done but root file sytem boots fine on
> real hardware.
>
> The images are tested on both eglibc and uclibc.
>
> Any help in providing feedback or testing these patches is welcome.
>
> I have tested them enough for over a month now.
>
> The following changes since commit 326563d5a897ae2dba7cfd8d73579d3d979d72c8:
>
>  sstate.bbclass: Make sure we don't have an empty fixmepath file (2012-05-18 15:24:45 +0100)
>
> are available in the git repository at:
>  git://git.openembedded.org/openembedded-core-contrib kraj/mips64
>  http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/mips64
>
> Khem Raj (14):
>  insane.bbclass: Add mips64{el} to known machines
>  site: Add mips64 eglibc and uclibc site files
>  gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler
>  binutils: Default to n64 when configured for mips64
>  kernel-arch.bbclass: Map mips64{el} to mips KARCH
>  eglibc-2.15: Support mips64
>  libc-package: Add sh4 and mips64 to arch options
>  runqemu: Add qemush4 and qemumips64 knowledge
>  netbase: Add interface files for qemumips64 and qemush4
>  site/sh-common: Add missing caches variables to build glib-2.32
>  xserver-xorg: Fix build for mips64
>  tune-mips64.inc: Add new tune file for mips64 big-endian
>  qemumips64.conf: Add machine configuration for mips64(eb)
>  qemush4.conf: Add machine configuration for qemush4
>
>  meta/classes/insane.bbclass                        |    4 +
>  meta/classes/kernel-arch.bbclass                   |    2 +-
>  meta/classes/libc-package.bbclass                  |    3 +
>  meta/conf/machine/include/tune-mips64.inc          |    3 +
>  meta/conf/machine/qemumips64.conf                  |   13 +++
>  meta/conf/machine/qemush4.conf                     |   13 +++
>  meta/recipes-core/eglibc/eglibc-locale.inc         |    2 +-
>  meta/recipes-core/eglibc/eglibc_2.15.bb            |    2 +-
>  .../netbase/netbase-4.47/qemumips64/interfaces     |    8 ++
>  .../netbase/netbase-4.47/qemush4/interfaces        |    8 ++
>  meta/recipes-core/netbase/netbase_4.47.bb          |    4 +-
>  .../binutils/mips64-default-ld-emulation.patch     |   49 +++++++++
>  meta/recipes-devtools/binutils/binutils_2.22.bb    |    3 +-
>  meta/recipes-devtools/gcc/gcc-4.6.inc              |    1 +
>  .../gcc/gcc-4.6/mips64-default-n64.patch           |   32 ++++++
>  meta/recipes-devtools/gcc/gcc-4.7.inc              |    1 +
>  .../gcc/gcc-4.7/mips64-default-n64.patch           |   19 ++++
>  meta/recipes-devtools/gcc/gcc-configure-common.inc |    4 +
>  .../xorg-xserver/xserver-xorg-1.11.2.inc           |    1 +
>  .../xserver-xorg-1.11.2/mips64-compiler.patch      |   29 +++++
>  meta/site/mips64-linux                             |   82 +++++++++++++++
>  meta/site/mips64-linux-uclibc                      |   83 +++++++++++++++
>  meta/site/mips64el-linux                           |   82 +++++++++++++++
>  meta/site/mips64el-linux-uclibc                    |  108 ++++++++++++++++++++
>  meta/site/sh-common                                |    4 +
>  scripts/runqemu                                    |   10 ++-
>  scripts/runqemu-internal                           |   35 ++++++-
>  27 files changed, 594 insertions(+), 11 deletions(-)
>  create mode 100644 meta/conf/machine/include/tune-mips64.inc
>  create mode 100644 meta/conf/machine/qemumips64.conf
>  create mode 100644 meta/conf/machine/qemush4.conf
>  create mode 100644 meta/recipes-core/netbase/netbase-4.47/qemumips64/interfaces
>  create mode 100644 meta/recipes-core/netbase/netbase-4.47/qemush4/interfaces
>  create mode 100644 meta/recipes-devtools/binutils/binutils/mips64-default-ld-emulation.patch
>  create mode 100644 meta/recipes-devtools/gcc/gcc-4.6/mips64-default-n64.patch
>  create mode 100644 meta/recipes-devtools/gcc/gcc-4.7/mips64-default-n64.patch
>  create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-xorg-1.11.2/mips64-compiler.patch
>  create mode 100644 meta/site/mips64-linux
>  create mode 100644 meta/site/mips64-linux-uclibc
>  create mode 100644 meta/site/mips64el-linux
>  create mode 100644 meta/site/mips64el-linux-uclibc
>
> --
> 1.7.5.4
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Khem Raj - May 21, 2012, 2:36 p.m.
On Monday, May 21, 2012, Richard Purdie wrote:

> On Sun, 2012-05-20 at 20:35 -0700, Khem Raj wrote:
> > This patchset adds required bits into metadata for having
> > mips64/n64 support. I have tested the core-image-sato and
> core-image-minimal
> > builds and boots on qemumips64 and runs gcc regression testsuite.
> > It needs linux-yocto-dev kernel for now which can be obtained from
> > poky-extra repo. Additionally systemd-image on angstrom-next builds and
> boots
> > fine on qemumips64 as well.
> >
> > Additionally it also adds bits to have SH4 root file systems to be
> > able to built and again core-image-sato builds for sh4 however qemu
> > machine support is not yet done but root file sytem boots fine on
> > real hardware.
> >
> > The images are tested on both eglibc and uclibc.
> >
> > Any help in providing feedback or testing these patches is welcome.
> >
> > I have tested them enough for over a month now.
> >
> > The following changes since commit
> 326563d5a897ae2dba7cfd8d73579d3d979d72c8:
> >
> >   sstate.bbclass: Make sure we don't have an empty fixmepath file
> (2012-05-18 15:24:45 +0100)
> >
> > are available in the git repository at:
> >   git://git.openembedded.org/openembedded-core-contrib kraj/mips64
> >
> http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=kraj/mips64
> >
> > Khem Raj (14):
> >   insane.bbclass: Add mips64{el} to known machines
> >   site: Add mips64 eglibc and uclibc site files
> >   gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler
> >   binutils: Default to n64 when configured for mips64
> >   kernel-arch.bbclass: Map mips64{el} to mips KARCH
> >   eglibc-2.15: Support mips64
> >   libc-package: Add sh4 and mips64 to arch options
> >   runqemu: Add qemush4 and qemumips64 knowledge
> >   netbase: Add interface files for qemumips64 and qemush4
> >   site/sh-common: Add missing caches variables to build glib-2.32
> >   xserver-xorg: Fix build for mips64
> >   tune-mips64.inc: Add new tune file for mips64 big-endian
> >   qemumips64.conf: Add machine configuration for mips64(eb)
> >   qemush4.conf: Add machine configuration for qemush4
>
>
> We need to figure out what it means to add new qemu machines like this
> to OE-Core. I'm not against it however I can't offer the Yocto Project's
> resources to test them at this point as we're haven't budgeted for it.


Yes absolutely, in another version Actually I have these machines in a
separate later
Called meta-qemuextra may be such a layer would make sense ?


>
> The above patches make sense regardless so I've merged them except the
> final two machine files. I'd like to hold off adding those until the
> system builds and runs with our default kernel and qemu recipes.
> Hopefully this lets you develop without having a huge queue of patches.
>
> In the meantime we need to figure out the resource concern for testing.
> Is there a commercial interest in these new machines from anyone who
> could perhaps help with the resource issue?
>
> Cheers,
>
> Richard
>
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org <javascript:;>
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
Mark Hatle - May 21, 2012, 3:51 p.m.
On 5/21/12 3:21 AM, Richard Purdie wrote:
> On Sun, 2012-05-20 at 20:35 -0700, Khem Raj wrote:
>> This patchset adds required bits into metadata for having
>> mips64/n64 support. I have tested the core-image-sato and core-image-minimal
>> builds and boots on qemumips64 and runs gcc regression testsuite.
>> It needs linux-yocto-dev kernel for now which can be obtained from
>> poky-extra repo. Additionally systemd-image on angstrom-next builds and boots
>> fine on qemumips64 as well.

> We need to figure out what it means to add new qemu machines like this
> to OE-Core. I'm not against it however I can't offer the Yocto Project's
> resources to test them at this point as we're haven't budgeted for it.
>
> The above patches make sense regardless so I've merged them except the
> final two machine files. I'd like to hold off adding those until the
> system builds and runs with our default kernel and qemu recipes.
> Hopefully this lets you develop without having a huge queue of patches.
>
> In the meantime we need to figure out the resource concern for testing.
> Is there a commercial interest in these new machines from anyone who
> could perhaps help with the resource issue?

 From a commercial interest standpoint, I don't know if there is any with SH4. 
For the company I work for, SH has been so minor that we likely wouldn't 
consider it significant enough to spend effort on.

However, MIPS64 is completely different.  There are numerous MIPS64 processors 
and such, and I strongly advocate OE (and Yocto Project) support for MIPS64.

One thing to note, it should be possible to use the MIPS64 QEMU to replace the 
"qemumips" configuration already in OE-core.  Then the qemumips64 can be used to 
validation, mips (o32), mips64 (n64) and eventually mips64 (n32) binaries once 
they are available.  This would also be a good target to validation complex 
multilib sets on.

--Mark

> Cheers,
>
> Richard
>
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core