Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] toolchain: add sparc64 architecture support
@ 2015-08-11 20:37 Waldemar Brodkorb
  2015-08-27 18:27 ` Waldemar Brodkorb
  2015-08-28 18:22 ` Thomas Petazzoni
  0 siblings, 2 replies; 5+ messages in thread
From: Waldemar Brodkorb @ 2015-08-11 20:37 UTC (permalink / raw)
  To: buildroot

Introduce sparc64 architecture to buildroot.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
 arch/Config.in                          |   12 +++++++++++-
 arch/Config.in.sparc                    |    9 +++++++--
 toolchain/toolchain-buildroot/Config.in |    3 ++-
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/arch/Config.in b/arch/Config.in
index 875f412..4cdd54e 100644
--- a/arch/Config.in
+++ b/arch/Config.in
@@ -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
 
diff --git a/arch/Config.in.sparc b/arch/Config.in.sparc
index cc10e8d..faf4a11 100644
--- a/arch/Config.in.sparc
+++ b/arch/Config.in.sparc
@@ -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
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 6d74819..17dba36 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -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
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/2] toolchain: add sparc64 architecture support
  2015-08-11 20:37 [Buildroot] [PATCH 1/2] toolchain: add sparc64 architecture support Waldemar Brodkorb
@ 2015-08-27 18:27 ` Waldemar Brodkorb
  2015-08-28 18:22 ` Thomas Petazzoni
  1 sibling, 0 replies; 5+ messages in thread
From: Waldemar Brodkorb @ 2015-08-27 18:27 UTC (permalink / raw)
  To: buildroot

Hi,

ping...

Waldemar Brodkorb wrote,

> Introduce sparc64 architecture to buildroot.
> 
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> ---
>  arch/Config.in                          |   12 +++++++++++-
>  arch/Config.in.sparc                    |    9 +++++++--
>  toolchain/toolchain-buildroot/Config.in |    3 ++-
>  3 files changed, 20 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/Config.in b/arch/Config.in
> index 875f412..4cdd54e 100644
> --- a/arch/Config.in
> +++ b/arch/Config.in
> @@ -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
>  
> diff --git a/arch/Config.in.sparc b/arch/Config.in.sparc
> index cc10e8d..faf4a11 100644
> --- a/arch/Config.in.sparc
> +++ b/arch/Config.in.sparc
> @@ -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
> diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
> index 6d74819..17dba36 100644
> --- a/toolchain/toolchain-buildroot/Config.in
> +++ b/toolchain/toolchain-buildroot/Config.in
> @@ -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
> -- 
> 1.7.10.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/2] toolchain: add sparc64 architecture support
  2015-08-11 20:37 [Buildroot] [PATCH 1/2] toolchain: add sparc64 architecture support Waldemar Brodkorb
  2015-08-27 18:27 ` Waldemar Brodkorb
@ 2015-08-28 18:22 ` Thomas Petazzoni
       [not found]   ` <20150829074104.GB8475@waldemar-brodkorb.de>
  1 sibling, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2015-08-28 18:22 UTC (permalink / raw)
  To: buildroot

Dear Waldemar Brodkorb,

On Tue, 11 Aug 2015 22:37:09 +0200, Waldemar Brodkorb wrote:
> Introduce sparc64 architecture to buildroot.
> 
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> ---
>  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.


> diff --git a/arch/Config.in.sparc b/arch/Config.in.sparc
> index cc10e8d..faf4a11 100644
> --- a/arch/Config.in.sparc
> +++ b/arch/Config.in.sparc
> @@ -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"

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?

>  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

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
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/2] toolchain: add sparc64 architecture support
       [not found]   ` <20150829074104.GB8475@waldemar-brodkorb.de>
@ 2015-08-29  8:11     ` Thomas Petazzoni
  2015-10-08 14:08       ` Gustavo Zacarias
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2015-08-29  8:11 UTC (permalink / raw)
  To: buildroot

Waldemar,

On Sat, 29 Aug 2015 09:41:04 +0200, Waldemar Brodkorb wrote:

> 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.

> 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).

> > >  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:
> 
> 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
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/2] toolchain: add sparc64 architecture support
  2015-08-29  8:11     ` Thomas Petazzoni
@ 2015-10-08 14:08       ` Gustavo Zacarias
  0 siblings, 0 replies; 5+ messages in thread
From: Gustavo Zacarias @ 2015-10-08 14:08 UTC (permalink / raw)
  To: buildroot

On 29/08/15 05:11, Thomas Petazzoni wrote:

> 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.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-10-08 14:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-11 20:37 [Buildroot] [PATCH 1/2] toolchain: add sparc64 architecture support Waldemar Brodkorb
2015-08-27 18:27 ` Waldemar Brodkorb
2015-08-28 18:22 ` Thomas Petazzoni
     [not found]   ` <20150829074104.GB8475@waldemar-brodkorb.de>
2015-08-29  8:11     ` Thomas Petazzoni
2015-10-08 14:08       ` Gustavo Zacarias

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox