toolchain: add sparc64 architecture support
PATCH 1/2 toolchain: add sparc64 architecture support
Introduce sparc64 architecture to buildroot.
--- arch/Config.in | 12 +++++++++++- arch/Config.in.sparc | 9 +++++++-- toolchain/toolchain-buildroot/Config.in | 3 ++- 3 files changed, 20 insertions(+), 4 deletions(-)
arch/Config.in +11 -1
@@ -217,6 +217,16 @@ config BR2_sparc http://www.oracle.com/sun http://en.wikipedia.org/wiki/Sparc +config BR2_sparc64 + bool "SPARC64" + select BR2_ARCH_IS_64 + select BR2_ARCH_HAS_MMU_MANDATORY + help + SPARC (from Scalable Processor Architecture) is a RISC instruction + set architecture (ISA) developed by Sun Microsystems. + http://www.oracle.com/sun + http://en.wikipedia.org/wiki/Sparc + config BR2_x86_64 bool "x86_64" select BR2_ARCH_IS_64
@@ -388,7 +398,7 @@ if BR2_sh || BR2_sh64 source "arch/Config.in.sh" endif -if BR2_sparc +if BR2_sparc || BR2_sparc64 source "arch/Config.in.sparc" endif
arch/Config.in.sparc +7 -2
@@ -1,7 +1,8 @@ choice prompt "Target Architecture Variant" - depends on BR2_sparc - default BR2_sparc_v8 + depends on BR2_sparc || BR2_sparc64 + default BR2_sparc_v8 if BR2_sparc + default BR2_sparc_v9 if BR2_sparc64 help Specific CPU variant to use
@@ -9,10 +10,13 @@ config BR2_sparc_v8 bool "v8" config BR2_sparc_leon3 bool "leon3" +config BR2_sparc_v9 + bool "v9" endchoice config BR2_ARCH default "sparc" if BR2_sparc + default "sparc64" if BR2_sparc64 config BR2_ENDIAN default "BIG"
@@ -20,3 +24,4 @@ config BR2_ENDIAN config BR2_GCC_TARGET_CPU default "leon3" if BR2_sparc_leon3 default "v8" if BR2_sparc_v8 + default "ultrasparc" if BR2_sparc_v9
toolchain/toolchain-buildroot/Config.in +2 -1
@@ -67,7 +67,8 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC BR2_mipsel || BR2_mips64 || BR2_mips64el|| \ BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \ BR2_sh || BR2_sh64 || BR2_sparc || \ - BR2_x86_64 || BR2_microblaze || BR2_nios2 + BR2_sparc64 || BR2_x86_64 || BR2_microblaze || \ + BR2_nios2 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS depends on !BR2_powerpc_SPE
Signature · 1 line
1.7.10.4
PATCH 1/2 toolchain: add sparc64 architecture support
Hi,
ping...
Waldemar Brodkorb wrote,
Quoted 95 lines
Introduce sparc64 architecture to buildroot.
Signed-off-by Waldemar Brodkorb <[email protected]>--- arch/Config.in | 12 +++++++++++- arch/Config.in.sparc | 9 +++++++-- toolchain/toolchain-buildroot/Config.in | 3 ++- 3 files changed, 20 insertions(+), 4 deletions(-)arch/Config.in +11
-1@@ -217,6 +217,16 @@ config BR2_sparc http://www.oracle.com/sun http://en.wikipedia.org/wiki/Sparc +config BR2_sparc64 + bool "SPARC64" + select BR2_ARCH_IS_64 + select BR2_ARCH_HAS_MMU_MANDATORY + help + SPARC (from Scalable Processor Architecture) is a RISC instruction + set architecture (ISA) developed by Sun Microsystems. + http://www.oracle.com/sun + http://en.wikipedia.org/wiki/Sparc + config BR2_x86_64 bool "x86_64" select BR2_ARCH_IS_64@@ -388,7 +398,7 @@ if BR2_sh || BR2_sh64 source "arch/Config.in.sh" endif -if BR2_sparc +if BR2_sparc || BR2_sparc64 source "arch/Config.in.sparc" endifarch/Config.in.sparc +7
-2@@ -1,7 +1,8 @@ choice prompt "Target Architecture Variant" - depends on BR2_sparc - default BR2_sparc_v8 + depends on BR2_sparc || BR2_sparc64 + default BR2_sparc_v8 if BR2_sparc + default BR2_sparc_v9 if BR2_sparc64 help Specific CPU variant to use@@ -9,10 +10,13 @@ config BR2_sparc_v8 bool "v8" config BR2_sparc_leon3 bool "leon3" +config BR2_sparc_v9 + bool "v9" endchoice config BR2_ARCH default "sparc" if BR2_sparc + default "sparc64" if BR2_sparc64 config BR2_ENDIAN default "BIG"@@ -20,3 +24,4 @@ config BR2_ENDIAN config BR2_GCC_TARGET_CPU default "leon3" if BR2_sparc_leon3 default "v8" if BR2_sparc_v8 + default "ultrasparc" if BR2_sparc_v9toolchain/toolchain-buildroot/Config.in +2
-1@@ -67,7 +67,8 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC BR2_mipsel || BR2_mips64 || BR2_mips64el|| \ BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le || \ BR2_sh || BR2_sh64 || BR2_sparc || \ - BR2_x86_64 || BR2_microblaze || BR2_nios2 + BR2_sparc64 || BR2_x86_64 || BR2_microblaze || \ + BR2_nios2 depends on BR2_USE_MMU depends on !BR2_STATIC_LIBS depends on !BR2_powerpc_SPESignature · 6 lines
1.7.10.4 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
PATCH 1/2 toolchain: add sparc64 architecture support
In reply to Waldemar BrodkorbDear Waldemar Brodkorb,
Quoted 8 lines · Waldemar Brodkorb
Introduce sparc64 architecture to buildroot.
Signed-off-by Waldemar Brodkorb <[email protected]>--- arch/Config.in | 12 +++++++++++- arch/Config.in.sparc | 9 +++++++-- toolchain/toolchain-buildroot/Config.in | 3 ++- 3 files changed, 20 insertions(+), 4 deletions(-)
Are you willing to help fixing the autobuilder failures that will be found on this new architecture? I'm fine with supporting additional architectures, but Sparc64 seems unlikely to be used in embedded contexts, so my concern is that it may be just a "demo support". But of course, if you're fine with helping with autobuilder issues (which you are already doing with lots of uClibc issues), I'll be happy to merge this.
One question below, though.
Quoted 16 lines
arch/Config.in.sparc +3
-2@@ -1,7 +1,8 @@ choice prompt "Target Architecture Variant" - depends on BR2_sparc - default BR2_sparc_v8 + depends on BR2_sparc || BR2_sparc64 + default BR2_sparc_v8 if BR2_sparc + default BR2_sparc_v9 if BR2_sparc64 help Specific CPU variant to use
arch/Config.in.sparc config BR2_sparc_v8 · line 14
Quoted 5 lines
arch/Config.in.sparc +2
-0@@ -9,10 +10,13 @@ config BR2_sparc_v8 bool "v8" config BR2_sparc_leon3 bool "leon3" +config BR2_sparc_v9 + bool "v9"
This means that v8, leon3 or v9 can be selected for either SPARC or SPARC64. Are SPARCv8 or Leon3 really 64 bit capable CPU variants?
arch/Config.in.sparc config BR2_ENDIAN · line 27
Quoted 13 lines
arch/Config.in.sparc +2
-0endchoice config BR2_ARCH default "sparc" if BR2_sparc + default "sparc64" if BR2_sparc64 config BR2_ENDIAN default "BIG"@@ -20,3 +24,4 @@ config BR2_ENDIAN config BR2_GCC_TARGET_CPU default "leon3" if BR2_sparc_leon3 default "v8" if BR2_sparc_v8 + default "ultrasparc" if BR2_sparc_v9
Why not using v9 here? It's a valid -mcpu value:
'-mcpu=CPU_TYPE'
Set the instruction set, register set, and instruction scheduling
parameters for machine type CPU_TYPE. Supported values for
CPU_TYPE are 'v7', 'cypress', 'v8', 'supersparc', 'hypersparc',
'leon', 'sparclite', 'f930', 'f934', 'sparclite86x', 'sparclet',
'tsc701', 'v9', 'ultrasparc', 'ultrasparc3', 'niagara', 'niagara2',
'niagara3', and 'niagara4'.We will have to add one SPARC64 toolchain to the autobuilders to test this architecture. Maybe an external toolchain built by Buildroot is the best option.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
A message that is not in the archive (sent off-list or not yet received): [email protected]
PATCH 1/2 toolchain: add sparc64 architecture support
Waldemar,
Quoted 4 lines · Waldemar Brodkorb
Yeah, the main reason providing the patch is to discover portability issues in software packages for this platform. I like the autobuilder stuff and a greater test coverage is useful in my opinion.
Ok, no problem.
Quoted 2 lines
There is already ppc64-pseries, which isn't an embedded system or do I missed something? :=)
Yes, it was contributed by IBM IIRC, so we kind of assumed they would be around to fix issues if any (though in practice we have not yet added a PowerPC 64 toolchain configuration in the autobuilders, so my comment is a bit moot as we have never tested the reactivity of the IBM guys).
Quoted 10 lines
Quoted 9 lines
arch/Config.in.sparc config BR2_ENDIAN · line 27
Quoted 7 lines
config
BR2_ENDIANarch/Config.in.sparc +1
-0default "BIG"@@ -20,3 +24,4 @@ config BR2_ENDIAN config BR2_GCC_TARGET_CPU default "leon3" if BR2_sparc_leon3 default "v8" if BR2_sparc_v8 + default "ultrasparc" if BR2_sparc_v9Why not using v9 here? It's a valid -mcpu value:
Quoted 2 lines
Valid, but not useful for Linux:
http://permalink.gmane.org/gmane.comp.lib.glibc.alpha/10649
So maybe the option should be called v9a, rather than just v9 ? Or just Ultrasparc so it matches the name of the gcc -mcpu option ?
Thanks!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/2 toolchain: add sparc64 architecture support
Quoted 2 lines · Thomas Petazzoni
So maybe the option should be called v9a, rather than just v9 ? Or just Ultrasparc so it matches the name of the gcc -mcpu option ?
Hi.
ultrasparc (1) is the lowest common denominator/implementation. I'm unsure if it adds anything to the base v9 ISA spec (i think not), but you'd be hard-pressed to find any other more basic implementation if it does, maybe one of the MCST/Elbrus implementations that are impossible to obtain.
Regards.