* [Buildroot] [PATCH 1/2] arch: add OpenRISC architecture support
@ 2017-01-25 6:35 Waldemar Brodkorb
2017-01-25 22:23 ` Peter Korsgaard
0 siblings, 1 reply; 2+ messages in thread
From: Waldemar Brodkorb @ 2017-01-25 6:35 UTC (permalink / raw)
To: buildroot
Add support for OpenRISC. See here for more details about
OpenRISC http://openrisc.io.
All buildroot included upstream binutils versions are supported.
Gcc support is not upstream, to be able to enable musl C library
support later, we use the branch with musl support.
At the moment it is possible to build a musl based toolchain,
but bootup in Qemu fails.
Gdb is only working to debug bare-metal code, there is no support
for gdbserver/gdb on Linux, yet.
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Tested-by: Romain Naour <romain.naour@gmail.com>
---
v1 -> v2:
* add SoB to numerated kernel patches, suggested by Romain
* split defconfig and arch support patches, suggested by Thomas P.
---
Makefile | 1 +
arch/Config.in | 11 +++++++++++
arch/Config.in.or1k | 5 +++++
package/gcc/Config.in.host | 15 ++++++++++++---
package/gcc/gcc.hash | 2 ++
package/gcc/gcc.mk | 6 ++++--
package/uclibc/Config.in | 5 +++--
toolchain/toolchain-buildroot/Config.in | 8 ++++----
8 files changed, 42 insertions(+), 11 deletions(-)
create mode 100644 arch/Config.in.or1k
diff --git a/Makefile b/Makefile
index b80b9e1..b99996e 100644
--- a/Makefile
+++ b/Makefile
@@ -420,6 +420,7 @@ KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \
-e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/aarch64.*/arm64/ \
-e s/bfin/blackfin/ \
+ -e s/or1k/openrisc/ \
-e s/parisc64/parisc/ \
-e s/powerpc64.*/powerpc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
diff --git a/arch/Config.in b/arch/Config.in
index d59cbd7..7149b2c 100644
--- a/arch/Config.in
+++ b/arch/Config.in
@@ -159,6 +159,13 @@ config BR2_nios2
http://www.altera.com/
http://en.wikipedia.org/wiki/Nios_II
+config BR2_or1k
+ bool "OpenRISC"
+ select BR2_ARCH_HAS_MMU_MANDATORY
+ help
+ OpenRISC is a free and open processor for embedded system.
+ http://openrisc.io
+
config BR2_powerpc
bool "PowerPC"
select BR2_ARCH_HAS_MMU_MANDATORY
@@ -378,6 +385,10 @@ if BR2_nios2
source "arch/Config.in.nios2"
endif
+if BR2_or1k
+source "arch/Config.in.or1k"
+endif
+
if BR2_powerpc || BR2_powerpc64 || BR2_powerpc64le
source "arch/Config.in.powerpc"
endif
diff --git a/arch/Config.in.or1k b/arch/Config.in.or1k
new file mode 100644
index 0000000..dba64a6
--- /dev/null
+++ b/arch/Config.in.or1k
@@ -0,0 +1,5 @@
+config BR2_ARCH
+ default "or1k"
+
+config BR2_ENDIAN
+ default "BIG"
diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index d8fbc18..eb41aa4 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -3,6 +3,7 @@ comment "GCC Options"
choice
prompt "GCC compiler Version"
default BR2_GCC_VERSION_ARC if BR2_arc
+ default BR2_GCC_VERSION_OR1K if BR2_or1k
default BR2_GCC_VERSION_5_X
help
Select the version of gcc you wish to use.
@@ -10,7 +11,7 @@ choice
config BR2_GCC_VERSION_4_8_X
bool "gcc 4.8.x"
# Broken or unsupported architectures
- depends on !BR2_microblaze && !BR2_arc \
+ depends on !BR2_microblaze && !BR2_arc && !BR2_or1k \
&& !BR2_powerpc64le && !BR2_nios2 && !BR2_bfin
# Broken or unsupported ARM cores
depends on !BR2_cortex_a12 && !BR2_cortex_a17 && !BR2_ARM_CPU_ARMV8
@@ -36,10 +37,16 @@ choice
depends on BR2_arc
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
+ config BR2_GCC_VERSION_OR1K
+ bool "gcc or1k (5.x)"
+ # Only supported architecture
+ depends on BR2_or1k
+ select BR2_TOOLCHAIN_GCC_AT_LEAST_5
+
config BR2_GCC_VERSION_4_9_X
bool "gcc 4.9.x"
# Broken or unsupported architectures
- depends on !BR2_arc && !BR2_bfin
+ depends on !BR2_arc && !BR2_bfin && !BR2_or1k
# Broken or unsupported ARM cores
depends on !BR2_cortex_a17 && !BR2_cortex_a72
# Unsupported MIPS cores
@@ -60,7 +67,7 @@ choice
config BR2_GCC_VERSION_5_X
bool "gcc 5.x"
# Broken or unsupported architectures
- depends on !BR2_arc && !BR2_bfin
+ depends on !BR2_arc && !BR2_bfin && !BR2_or1k
# musl ppc64 unsupported
depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_powerpc64 || BR2_powerpc64le))
# Unsupported MIPS cores
@@ -75,6 +82,7 @@ choice
# Broken or unsupported architectures
depends on !BR2_arc
depends on !BR2_microblaze
+ depends on !BR2_or1k
# Unsupported MIPS cores
depends on !BR2_mips_m6250 && !BR2_mips_p6600
select BR2_TOOLCHAIN_GCC_AT_LEAST_6
@@ -99,6 +107,7 @@ config BR2_GCC_VERSION
default "5.4.0" if BR2_GCC_VERSION_5_X
default "6.3.0" if BR2_GCC_VERSION_6_X
default "arc-2016.09-release" if BR2_GCC_VERSION_ARC
+ default "musl-5.4.0" if BR2_GCC_VERSION_OR1K
config BR2_EXTRA_GCC_CONFIG_OPTIONS
string "Additional gcc options"
diff --git a/package/gcc/gcc.hash b/package/gcc/gcc.hash
index 1988237..4376db4 100644
--- a/package/gcc/gcc.hash
+++ b/package/gcc/gcc.hash
@@ -13,3 +13,5 @@ sha512 234dd9b1bdc9a9c6e352216a7ef4ccadc6c07f156006a59759c5e0e6a69f0abcdc14630e
# Locally calculated (fetched from Github)
sha512 faae6dc3f7843412068a52de5919797cd23e6ed1b8d140c230d0381f13fd38af67baaa4a09e581c03602127da3dd2fab6f9f5d7ac5d4270585bd079c673dda9a gcc-arc-2016.09-release.tar.gz
+# Locally calculated (fetched from Github)
+sha512 841101f7de45f327bf2e92f3efc73ca88a021e4b9b541458ce80a16e55882bd8606a8492d75c57c589ee2c10d42ae2865b67690155d7289a541df1d68096402f gcc-musl-5.4.0.tar.gz
diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index 464e4c9..7b7a5cf 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -13,11 +13,13 @@ GCC_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
ifeq ($(BR2_arc),y)
GCC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,gcc,$(GCC_VERSION))
GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz
+else ifeq ($(BR2_or1k),y)
+GCC_SITE = $(call github,openrisc,or1k-gcc,$(GCC_VERSION))
+GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz
else
GCC_SITE = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_VERSION)
-endif
-
GCC_SOURCE ?= gcc-$(GCC_VERSION).tar.bz2
+endif
#
# Xtensa special hook
diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in
index a200154..4d5f629 100644
--- a/package/uclibc/Config.in
+++ b/package/uclibc/Config.in
@@ -57,12 +57,12 @@ choice
select BR2_TOOLCHAIN_HAS_THREADS
select BR2_TOOLCHAIN_HAS_THREADS_NPTL
depends on BR2_USE_MMU
- depends on !BR2_m68k && !BR2_microblaze
+ depends on !BR2_m68k && !BR2_microblaze && !BR2_or1k
config BR2_PTHREADS
bool "linuxthreads"
select BR2_TOOLCHAIN_HAS_THREADS
- depends on BR2_bfin || BR2_m68k || BR2_microblaze || BR2_arm || BR2_armeb || BR2_xtensa
+ depends on BR2_bfin || BR2_m68k || BR2_microblaze || BR2_or1k || BR2_arm || BR2_armeb || BR2_xtensa
config BR2_PTHREADS_NONE
bool "none"
@@ -106,6 +106,7 @@ config BR2_UCLIBC_TARGET_ARCH
default "m68k" if BR2_m68k
default "microblaze" if BR2_microblaze
default "mips" if BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
+ default "or1k" if BR2_or1k
default "powerpc" if BR2_powerpc
default "sh" if BR2_sh
default "sparc" if BR2_sparc
diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index c8436cc..d5f98a9 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -32,8 +32,8 @@ config BR2_TOOLCHAIN_BUILDROOT_UCLIBC
depends on BR2_arcle || BR2_arceb || BR2_arm || BR2_armeb || \
BR2_bfin || BR2_i386 || BR2_m68k || BR2_microblaze || \
BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el || \
- BR2_powerpc || BR2_sh2a || BR2_sh4 || BR2_sh4eb || \
- BR2_sparc || BR2_xtensa || BR2_x86_64
+ BR2_or1k || BR2_powerpc || BR2_sh2a || BR2_sh4 || \
+ BR2_sh4eb || BR2_sparc || BR2_xtensa || BR2_x86_64
# Unsupported for MIPS R6
depends on !BR2_MIPS_CPU_MIPS32R6 && !BR2_MIPS_CPU_MIPS64R6
help
--
2.1.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Buildroot] [PATCH 1/2] arch: add OpenRISC architecture support
2017-01-25 6:35 [Buildroot] [PATCH 1/2] arch: add OpenRISC architecture support Waldemar Brodkorb
@ 2017-01-25 22:23 ` Peter Korsgaard
0 siblings, 0 replies; 2+ messages in thread
From: Peter Korsgaard @ 2017-01-25 22:23 UTC (permalink / raw)
To: buildroot
>>>>> "Waldemar" == Waldemar Brodkorb <wbx@openadk.org> writes:
> Add support for OpenRISC. See here for more details about
> OpenRISC http://openrisc.io.
> All buildroot included upstream binutils versions are supported.
> Gcc support is not upstream, to be able to enable musl C library
> support later, we use the branch with musl support.
> At the moment it is possible to build a musl based toolchain,
> but bootup in Qemu fails.
> Gdb is only working to debug bare-metal code, there is no support
> for gdbserver/gdb on Linux, yet.
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> Tested-by: Romain Naour <romain.naour@gmail.com>
> ---
> v1 -> v2:
> * add SoB to numerated kernel patches, suggested by Romain
> * split defconfig and arch support patches, suggested by Thomas P.
> +++ b/package/gcc/gcc.mk
> @@ -13,11 +13,13 @@ GCC_VERSION = $(call qstrip,$(BR2_GCC_VERSION))
> ifeq ($(BR2_arc),y)
> GCC_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,gcc,$(GCC_VERSION))
> GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz
> +else ifeq ($(BR2_or1k),y)
> +GCC_SITE = $(call github,openrisc,or1k-gcc,$(GCC_VERSION))
> +GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz
> else
> GCC_SITE = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_VERSION)
> -endif
> -
> GCC_SOURCE ?= gcc-$(GCC_VERSION).tar.bz2
> +endif
The way things are now structured the ?= isn't needed anymore, so I've
dropped it.
Committed with that changed, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-01-25 22:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-25 6:35 [Buildroot] [PATCH 1/2] arch: add OpenRISC architecture support Waldemar Brodkorb
2017-01-25 22:23 ` Peter Korsgaard
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.