Microblaze fixes
cover Microblaze fixes
The microblaze buildoot support is in a bad state. Startup of the resulting image in Qemu is killed by OOM-killer. These patches resolves the issues and the resulting images for little endian and big endian are working fine. Network support is working now, too.
Waldemar Brodkorb (6):
use default binutils for microblaze
use default gcc 4.8.2 for microblaze upstream glibc 2.18/2.19 works fine with microblaze disable eglibc, no time to test
temporary hack to fix linking error
update to 3.14
.../{linux-3.13.config => linux-3.14.config} | 1 +
board/qemu/microblazebe-mmu/system.dts | 367 --------------------
.../{linux-3.13.config => linux-3.14.config} | 1 +
board/qemu/microblazeel-mmu/system.dts | 367 --------------------
board/qemu/microblazeel-mmu/xilinx-xemaclite.patch | 11 +
configs/qemu_microblazebe_mmu_defconfig | 8 +-
configs/qemu_microblazeel_mmu_defconfig | 8 +-
linux/Config.in | 2 -
package/binutils/Config.in.host | 3 +-
package/binutils/binutils.mk | 5 -
package/gcc/Config.in.host | 12 +-
package/gcc/gcc.mk | 4 -
package/glibc/2.18/microblaze-libgcc_eh.patch | 18 +
package/glibc/2.19/microblaze-libgcc_eh.patch | 18 +
package/glibc/Config.in | 2 +-
package/glibc/glibc.mk | 12 -
toolchain/toolchain-buildroot/Config.in | 2 +-
17 files changed, 63 insertions(+), 778 deletions(-)
rename board/qemu/microblazebe-mmu/{linux-3.13.config => linux-3.14.config} (98%)
delete mode 100644 board/qemu/microblazebe-mmu/system.dts
rename board/qemu/microblazeel-mmu/{linux-3.13.config => linux-3.14.config} (98%)
delete mode 100644 board/qemu/microblazeel-mmu/system.dts
create mode 100644 board/qemu/microblazeel-mmu/xilinx-xemaclite.patch
create mode 100644 package/glibc/2.18/microblaze-libgcc_eh.patch
create mode 100644 package/glibc/2.19/microblaze-libgcc_eh.patchSignature · 1 line
1.7.10.4
PATCH 1/6 use default binutils for microblaze
Upstream binutils 2.24 works fine for microblaze, no need for Xilinx Git.
--- package/binutils/Config.in.host | 3 +-- package/binutils/binutils.mk | 5 ----- 2 files changed, 1 insertion(+), 7 deletions(-)
package/binutils/Config.in.host +1 -2
@@ -3,8 +3,8 @@ comment "Binutils Options" choice prompt "Binutils Version" depends on !BR2_arc - depends on !BR2_microblaze default BR2_BINUTILS_VERSION_2_21 if (BR2_mips || BR2_mipsel || BR2_sh) + default BR2_BINUTILS_VERSION_2_24 if BR2_microblaze default BR2_BINUTILS_VERSION_2_22 help Select the version of binutils you wish to use.
@@ -50,7 +50,6 @@ config BR2_BINUTILS_VERSION string default "2.18-avr32-1.0.1" if BR2_BINUTILS_VERSION_2_18_AVR32_1_0_1 default "a934fe50786aa0dc0fb5da4754e7e07591c9cd8e" if BR2_arc - default "8351467c933d277ebea0c8d99ad2b65b5f7b6bc2" if BR2_microblaze default "2.20.1" if BR2_BINUTILS_VERSION_2_20_1 default "2.21" if BR2_BINUTILS_VERSION_2_21 default "2.21.1" if BR2_BINUTILS_VERSION_2_21_1
package/binutils/binutils.mk +0 -5
@@ -28,11 +28,6 @@ BINUTILS_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils,$(BI BINUTILS_SOURCE = binutils-$(BINUTILS_VERSION).tar.gz BINUTILS_FROM_GIT = y endif -ifeq ($(BR2_microblaze),y) -BINUTILS_SITE = $(call github,Xilinx,binutils,$(BINUTILS_VERSION)) -BINUTILS_SOURCE = binutils-$(BINUTILS_VERSION).tar.gz -BINUTILS_FROM_GIT = y -endif BINUTILS_SITE ?= $(BR2_GNU_MIRROR)/binutils BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.bz2 BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
Signature · 1 line
1.7.10.4
PATCH 1/6 use default binutils for microblaze
Quoted 4 lines · Waldemar Brodkorb
Upstream binutils 2.24 works fine for microblaze, no need for Xilinx Git.
Signed-off-by Waldemar Brodkorb <[email protected]>
You could depend on !BR2_microblaze for older versions since they won't work.
Otherwise:
(on Qemu)
Thanks.
PATCH 1/6 use default binutils for microblaze
In reply to Waldemar BrodkorbQuoted 6 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Waldemar" == Waldemar Brodkorb <[email protected]> writes:
Upstream binutils 2.24 works fine for microblaze, no need for Xilinx Git.
Signed-off-by Waldemar Brodkorb <[email protected]>
Committed with the earlier versions disabled as suggested by Gustavo, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 2/6 use default gcc 4.8.2 for microblaze
In reply to Waldemar BrodkorbUpstream gcc 4.8.2 works fine for microblaze, no need for Xilinx Git.
--- package/gcc/Config.in.host | 12 +++--------- package/gcc/gcc.mk | 4 ---- 2 files changed, 3 insertions(+), 13 deletions(-)
package/gcc/Config.in.host +3 -9
@@ -8,7 +8,7 @@ choice default BR2_GCC_VERSION_4_4_X if BR2_sparc_sparchfleon || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleon || BR2_sparc_sparcsfleonv8 default BR2_GCC_VERSION_4_2_2_AVR32_2_1_5 if BR2_avr32 default BR2_GCC_VERSION_4_8_ARC if BR2_arc - default BR2_GCC_VERSION_4_9_MICROBLAZE if BR2_microblaze + default BR2_GCC_VERSION_4_8_X if BR2_microblaze default BR2_GCC_VERSION_4_5_X if BR2_bfin default BR2_GCC_VERSION_4_7_X help
@@ -49,7 +49,7 @@ choice bool "gcc 4.7.x" config BR2_GCC_VERSION_4_8_X - depends on !BR2_microblaze && !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 + depends on !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 select BR2_GCC_NEEDS_MPC bool "gcc 4.8.x"
@@ -58,13 +58,8 @@ choice select BR2_GCC_NEEDS_MPC bool "gcc 4.8-arc" - config BR2_GCC_VERSION_4_9_MICROBLAZE - depends on BR2_microblaze - select BR2_GCC_NEEDS_MPC - bool "gcc 4.9-microblaze" - config BR2_GCC_VERSION_SNAP - depends on !BR2_microblaze && !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 + depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 select BR2_GCC_NEEDS_MPC bool "gcc snapshot" endchoice
@@ -97,7 +92,6 @@ config BR2_GCC_VERSION default "4.7.3" if BR2_GCC_VERSION_4_7_X default "4.8.2" if BR2_GCC_VERSION_4_8_X default "c6227bc154124e270f15793deddfa3fe18f7db54" if BR2_GCC_VERSION_4_8_ARC - default "b93bb009e021aba64dd4b8cdb0bbc5a176c55543" if BR2_GCC_VERSION_4_9_MICROBLAZE default BR2_GCC_SNAP_DATE if BR2_GCC_VERSION_SNAP config BR2_EXTRA_GCC_CONFIG_OPTIONS
package/gcc/gcc.mk +0 -4
@@ -22,10 +22,6 @@ GCC_SITE = ftp://www.at91.com/pub/buildroot/ else 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_microblaze),y) -GCC_SITE = $(call github,Xilinx,gcc,$(GCC_VERSION)) -GCC_SOURCE = gcc-$(GCC_VERSION).tar.gz -else GCC_SITE = $(BR2_GNU_MIRROR:/=)/gcc/gcc-$(GCC_VERSION) endif
Signature · 1 line
1.7.10.4
PATCH 2/6 use default gcc 4.8.2 for microblaze
Quoted 4 lines · Waldemar Brodkorb
Upstream gcc 4.8.2 works fine for microblaze, no need for Xilinx Git.
Signed-off-by Waldemar Brodkorb <[email protected]>
(on Qemu)
Thanks.
PATCH 2/6 use default gcc 4.8.2 for microblaze
In reply to Waldemar BrodkorbQuoted 6 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Waldemar" == Waldemar Brodkorb <[email protected]> writes:
Upstream gcc 4.8.2 works fine for microblaze, no need for Xilinx Git.
Signed-off-by Waldemar Brodkorb <[email protected]>
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 3/6 upstream glibc 2.18/2.19 works fine with microblaze
In reply to Waldemar BrodkorbThere is no need for Xilinx Git.
--- package/glibc/Config.in | 2 +- package/glibc/glibc.mk | 12 ------------ 2 files changed, 1 insertion(+), 13 deletions(-)
package/glibc/Config.in +1 -1
@@ -8,7 +8,7 @@ choice BR2_i386 || BR2_mips || BR2_mipsel || \ BR2_mips64 || BR2_mips64el || BR2_powerpc || \ BR2_sh || BR2_sh64 || BR2_sparc || \ - BR2_x86_64 + BR2_x86_64 || BR2_microblaze config BR2_GLIBC_VERSION_2_18 bool "2.18"
package/glibc/glibc.mk +0 -12
@@ -4,17 +4,6 @@ # ################################################################################ -ifeq ($(BR2_microblaze),y) -ifeq ($(BR2_TOOLCHAIN_BUILDROOT_EGLIBC),y) -GLIBC_VERSION = 7f0bcce417c47aefad06ddfec7cd4ced3a4e10ff -GLIBC_SITE = $(call github,Xilinx,eglibc,$(GLIBC_VERSION)) -GLIBC_SRC_SUBDIR = . -else -GLIBC_VERSION = b86835ca92a1942ed08d8b5ee47498e711feaddb -GLIBC_SITE = $(call github,Xilinx,glibc,$(GLIBC_VERSION)) -GLIBC_SRC_SUBDIR = . -endif -else ifeq ($(BR2_TOOLCHAIN_BUILDROOT_EGLIBC),y) GLIBC_VERSION = 2.18-svnr23787 GLIBC_SITE = http://downloads.yoctoproject.org/releases/eglibc/
@@ -26,7 +15,6 @@ GLIBC_SITE = $(BR2_GNU_MIRROR)/libc GLIBC_SOURCE = glibc-$(GLIBC_VERSION).tar.xz GLIBC_SRC_SUBDIR = . endif -endif GLIBC_LICENSE = GPLv2+ (programs), LGPLv2.1+, BSD-3c, MIT (library) GLIBC_LICENSE_FILES = $(addprefix $(GLIBC_SRC_SUBDIR)/,COPYING COPYING.LIB LICENSES)
Signature · 1 line
1.7.10.4
PATCH 3/6 upstream glibc 2.18/2.19 works fine with microblaze
Quoted 3 lines · Waldemar Brodkorb
There is no need for Xilinx Git.
Signed-off-by Waldemar Brodkorb <[email protected]>
(on Qemu)
PATCH 3/6 upstream glibc 2.18/2.19 works fine with microblaze
Greetings,
When you say BR works fine for microblaze 'on QEMU', could you be more specific? little endian? mmu? which 'defconfig' did you use with buildroot? Which version of QEMU, what command line?
I'd like to recreate your working setup and maybe that will give me a clue to my troubles here...
I am trying to use the 'buildroot native toolchain' with a Spartan 6 little endian microblaze MMU design, but I don't get very far with the native toolchain. However, using the older 'external' toolchain boots linux fine.
thanks,
William
Quoted 8 lines · Gustavo Zacarias
Quoted 3 lines · Waldemar Brodkorb
There is no need for Xilinx Git.
Signed-off-by Waldemar Brodkorb <[email protected]>Acked-by Gustavo Zacarias <[email protected]>Tested-by Gustavo Zacarias <[email protected]>
Quoted 8 lines
(on Qemu)
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140428/56da4166/attachment.html>
PATCH 3/6 upstream glibc 2.18/2.19 works fine with microblaze
Quoted 15 lines · William Welch
Greetings,
When you say BR works fine for microblaze 'on QEMU', could you be more specific? little endian? mmu? which 'defconfig' did you use with buildroot? Which version of QEMU, what command line?
I'd like to recreate your working setup and maybe that will give me a clue to my troubles here...
I am trying to use the 'buildroot native toolchain' with a Spartan 6 little endian microblaze MMU design, but I don't get very far with the native toolchain. However, using the older 'external' toolchain boots linux fine.
Quoted 3 lines
thanks,
William
Hi.
It means all relevant buildroot qemu sample defconfigs boot to a login prompt where you can login and get dhcp working on the emulated network (if said config has networking).
For microblaze this means big and little endian with MMU, we don't have a nommu configuration since i've never managed to get that working in a satisfactory way.
And that's with Waldemar's patches, not as it is right now which broke those qemu defconfigs when the toolchain was changed to the internal backend.
I do not know if it's the toolchain to blame and/or some Qemu limitation, i just know that Waldemar's patches fix it for what i have at hand (no microblaze hardware, just emulation).
Regards.
PATCH 3/6 upstream glibc 2.18/2.19 works fine with microblaze
Hi again,
Thank you for your help on this -- I should have said, that I am using the 'git' buildroot from earlier today ( a few hours ago), with no luck on the native toolchain. So am I correct, that, for example, using the 'git buildroot', then ' make qemu_microblazeel_mmu_defconfig' should build the native toolchain and the resulting image should boot? Or, maybe the patches are not merged into the git tree yet?
I am not very skilled with qemu, so to confirm, are the directions in the boards/qemu/microblazeel-mmu/readme.txt correct? It is a little confusing, since they mention the s3adsp1800, whereas the system.dts mentions a ML505 design. Also the readme mentions qemu 1.7.0? I have 1.5.0 at the moment but I can install 1.7.0 if required.
thank you,
William
Quoted 21 lines · Gustavo Zacarias
Quoted 15 lines · William Welch
Greetings,
When you say BR works fine for microblaze 'on QEMU', could you be more specific? little endian? mmu? which 'defconfig' did you use with buildroot? Which version of QEMU, what command line?
I'd like to recreate your working setup and maybe that will give me a clue to my troubles here...
I am trying to use the 'buildroot native toolchain' with a Spartan 6 little endian microblaze MMU design, but I don't get very far with the native toolchain. However, using the older 'external' toolchain boots linux fine.
Quoted 3 lines
thanks,
William
Quoted 16 lines
Hi.
It means all relevant buildroot qemu sample defconfigs boot to a login prompt where you can login and get dhcp working on the emulated network (if said config has networking).
For microblaze this means big and little endian with MMU, we don't have a nommu configuration since i've never managed to get that working in a satisfactory way.
And that's with Waldemar's patches, not as it is right now which broke those qemu defconfigs when the toolchain was changed to the internal backend.
I do not know if it's the toolchain to blame and/or some Qemu limitation, i just know that Waldemar's patches fix it for what i have at hand (no microblaze hardware, just emulation).
Regards.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20140428/7ba03a0a/attachment.html>
PATCH 3/6 upstream glibc 2.18/2.19 works fine with microblaze
Quoted 15 lines · William Welch
Hi again,
Thank you for your help on this -- I should have said, that I am using the 'git' buildroot from earlier today ( a few hours ago), with no luck on the native toolchain. So am I correct, that, for example, using the 'git buildroot', then ' make
qemu_microblazeel_mmu_defconfig' should build the native toolchain and the resulting image should boot? Or, maybe the patches are not merged into the git tree yet?I am not very skilled with qemu, so to confirm, are the directions in the
boards/qemu/microblazeel-mmu/readme.txtcorrect? It is a little confusing, since they mention the s3adsp1800, whereas thesystem.dtsmentions a ML505 design. Also the readme mentions qemu 1.7.0? I have 1.5.0 at the moment but I can install 1.7.0 if required.
Quoted 3 lines
thank you,
William
Hi.
They are not merged yet, Waldemar was waiting for my gcc 4.9.x patches to get merged (done) and is going to rebase when he has time probably. The directions in the readme.txt are correct, i make it a habit of testing them regularly.
I have seen different versions of Qemu failing to work properly, even if newer or older, there's no rule for that, that's the reason i mention the exact version there.
Unfortunately for the 2014.02 release when the toolchain changes were shipped and the configs weren't updated so they are effectively broken for the current toolchain (it may be that the current toolchain is broken for real scenarios, i can't know).
Waldemar's last patch updates the qemu defconfigs to a nice and simpler config without the need for an external dts and brings in networking support as well.
For the "latest" i've used Qemu 2.0.0
And to make things nicer i've got a patchset that builds qemu within buildroot to avoid the messy problem of different vesions available, it just needs some proper docs i think and should get in, right guys? :) Regards.
PATCH 3/6 upstream glibc 2.18/2.19 works fine with microblaze
In reply to William WelchHi William,
William Welch wrote,
Quoted 8 lines
Hi again,
Thank you for your help on this -- I should have said, that I am using the 'git' buildroot from earlier today ( a few hours ago), with no luck on the native toolchain. ?So am I correct, that, for example, using the 'git buildroot', then ' make
qemu_microblazeel_mmu_defconfig' ?should build the native toolchain and the resulting image should boot? ?Or, maybe the patches are not merged into the git tree yet?
It seems that they will be merged now. I had not the time to respin a new patch set because I didn't know how to do it correctly ;) On sunday I got a nice git workshop by a friend and now I am able to do it right. May be I will add a patch to the manual.
The changes do not show up yet on
http://git.buildroot.net/buildroot. May be Peter did not pushed the changes yesterday.
Quoted 5 lines
I am not very skilled with qemu, so to confirm, are the directions in the
boards/qemu/microblazeel-mmu/readme.txtcorrect? ?It is a little confusing, since they mention the s3adsp1800, whereas thesystem.dtsmentions a ML505 design. ?Also the readme mentions qemu 1.7.0? I have 1.5.0 at the moment but I can install 1.7.0 if required.
If you want to use Qemu with -initrd you should use Qemu 1.7.x or above. I only tested the microblaze stuff with Qemu 1.7.x and 2.0. There is no need for a separate system.dts, because the Qemu provided dtb matches the emulated hardware the best.
The default is to emulate s3adsp1800, but ml605 could be used, too. Networking does work better with s3adsp1800 emulation. Both little endian and big endian targets are tested with default configuration.
Some more Qemu microblaze stuff can be found here:
http://blog.waldemar-brodkorb.de/index.php?archives/10-English.html&serendipity[lang_selected]=en&serendipity[user_language]=en
Unfortunately I was again wrong with my assumption that gcc 4.9.0 solves the linking error with libgcc_eh. I accidently had my patches applied while testing with gcc 4.9.0.
There seems to be a fix in https://github.com/Xilinx/gcc, but I am unsure how to get it extracted. The snapshot for the gcc used in buildroot does not contain the git history and the short tag from the directory (Xilinx-gcc-b93bb00) is not available as an object in the git repository. I would use git bisect to find the required patch to gcc to avoid the eglibc/glibc workaround, but I don't know which branch and commit is used as the basis for the gcc tarball.
Anyone know this?
So the glibc patch is still required.
Have fun
Waldemar
Quoted 47 lines
thank you,
William
On Mon, Apr 28, 2014 at 2:18 PM, Gustavo Zacarias <[email protected]> wrote:
On 04/28/2014 04:08 PM, William Welch wrote:
> Greetings,
>
> When you say BR works fine for microblaze 'on QEMU', could you be more > specific? ?little endian? ?mmu? which 'defconfig' did you use with > buildroot? ?Which version of QEMU, what command line?
>
> I'd like to recreate your working setup and maybe that will give me a > clue to my troubles here...
>
> I am trying to use the 'buildroot native toolchain' with a Spartan 6 > little endian microblaze MMU design, but I don't get very far with the > native toolchain. However, using the older 'external' toolchain boots > linux fine.
>
>
> thanks,
>
> WilliamHi.
It means all relevant buildroot qemu sample defconfigs boot to a login prompt where you can login and get dhcp working on the emulated network (if said config has networking).
For microblaze this means big and little endian with MMU, we don't have a nommu configuration since i've never managed to get that working in a satisfactory way.
And that's with Waldemar's patches, not as it is right now which broke those qemu defconfigs when the toolchain was changed to the internal backend.
I do not know if it's the toolchain to blame and/or some Qemu limitation, i just know that Waldemar's patches fix it for what i have at hand (no microblaze hardware, just emulation).
Regards.
PATCH 3/6 upstream glibc 2.18/2.19 works fine with microblaze
Quoted 8 lines · Waldemar Brodkorb
It seems that they will be merged now. I had not the time to respin a new patch set because I didn't know how to do it correctly ;) On sunday I got a nice git workshop by a friend and now I am able to do it right. May be I will add a patch to the manual.
The changes do not show up yet on
http://git.buildroot.net/buildroot. May be Peter did not pushed the changes yesterday.
Hi Waldemar, William.
It's in the process of being commited, i'm working with Peter on it.
Quoted 15 lines
Some more Qemu microblaze stuff can be found here:
http://blog.waldemar-brodkorb.de/index.php?archives/10-English.html&serendipity[lang_selected]=en&serendipity[user_language]=enUnfortunately I was again wrong with my assumption that gcc 4.9.0 solves the linking error with
libgcc_eh. I accidently had my patches applied while testing with gcc 4.9.0.There seems to be a fix in https://github.com/Xilinx/gcc, but I am unsure how to get it extracted. The snapshot for the gcc used in buildroot does not contain the git history and the short tag from the directory (Xilinx-gcc-b93bb00) is not available as an object in the git repository. I would use git bisect to find the required patch to gcc to avoid the eglibc/glibc workaround, but I don't know which branch and commit is used as the basis for the gcc tarball.
Quoted 3 lines
Anyone know this?
So the glibc patch is still required.
I managed to track the issue down to 23c35173490ac2d6348a668dfc9c1a6eb62171f2 from xilinx-gcc git. Basically that enables DWARF EH handling which is what's getting fixed by including libgcc_eh.
It seems that gcc 4.9.0 with that patch ditches the new to patch glibc (and possibly also eglibc). I'm testing that right now and will send updated patches if that's true, in the meantime i've sent the glibc hack patch conditional on microblaze (it's not commited yet).
The only "drawbrack" is that said patch doesn't apply cleanly to 4.8.x. Regards.
PATCH 3/6 upstream glibc 2.18/2.19 works fine with microblaze
Quoted 3 lines · On Tue, 29 Apr 2014 10:14:09 -0300 Gustavo Zacarias <[email protected]>…
Quoted 3 lines
The changes do not show up yet on
http://git.buildroot.net/buildroot. May be Peter did not pushed the changes yesterday.
Ah, so -
The "Buildroot Gottcha" is back.
Compare the view of:
http://git.buildroot.net/buildroot
with:
http://git.buildroot.net/buildroot/
At least at this moment, they are different (again).
Mike
PATCH 3/6 upstream glibc 2.18/2.19 works fine with microblaze
In reply to Waldemar BrodkorbQuoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Waldemar" == Waldemar Brodkorb <[email protected]> writes:
There is no need for Xilinx Git.
Signed-off-by Waldemar Brodkorb <[email protected]>
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard
PATCH 4/6 disable eglibc, no time to test
In reply to Waldemar Brodkorb--- toolchain/toolchain-buildroot/Config.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
toolchain/toolchain-buildroot/Config.in +1 -1
@@ -44,7 +44,7 @@ config BR2_TOOLCHAIN_BUILDROOT_EGLIBC BR2_i386 || BR2_mips || BR2_mipsel || \ BR2_mips64 || BR2_mips64el || BR2_powerpc || \ BR2_sh || BR2_sh64 || BR2_sparc || \ - BR2_x86_64 || BR2_microblaze + BR2_x86_64 depends on BR2_USE_MMU depends on !BR2_PREFER_STATIC_LIB select BR2_TOOLCHAIN_USES_GLIBC
Signature · 1 line
1.7.10.4
PATCH 4/6 disable eglibc, no time to test
Quoted 1 line · Waldemar Brodkorb
Signed-off-by Waldemar Brodkorb <[email protected]>
It actually fails like you say in
https://sourceware.org/ml/libc-help/2014-04/msg00020.html
So basically:
Probably easy to port the patch to eglibc though.
Regards.
PATCH 5/6 temporary hack to fix linking error
In reply to Waldemar BrodkorbSee here for more info:
https://sourceware.org/ml/libc-help/2014-04/msg00020.html
Still working on the issue.
--- package/glibc/2.18/microblaze-libgcc_eh.patch | 18 ++++++++++++++++++ package/glibc/2.19/microblaze-libgcc_eh.patch | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 package/glibc/2.18/microblaze-libgcc_eh.patch create mode 100644 package/glibc/2.19/microblaze-libgcc_eh.patch
package/glibc/2.18/microblaze-libgcc_eh.patch new file +18 -0
@@ -0,0 +1,18 @@ +diff -Nur glibc-2.19.orig/Makeconfig glibc-2.19/Makeconfig +--- glibc-2.19.orig/Makeconfig 2014-02-07 10:04:38.000000000 +0100 ++++ glibc-2.19/Makeconfig 2014-04-11 08:22:27.000000000 +0200 +@@ -559,12 +559,12 @@ + # statically link programs. When --disable-shared is used, we use + # -lgcc_eh since elf/static-stubs.o isn't sufficient. + ifeq (yes,$(build-shared)) +-static-gnulib = -lgcc $(static-gnulib-arch) ++static-gnulib = -lgcc -lgcc_eh $(static-gnulib-arch) + else + static-gnulib = -lgcc -lgcc_eh $(static-gnulib-arch) + endif + static-gnulib-tests := -lgcc -lgcc_eh $(libunwind) +-libc.so-gnulib := -lgcc ++libc.so-gnulib := -lgcc -lgcc_eh + endif + +preinit = $(addprefix $(csu-objpfx),crti.o) + +postinit = $(addprefix $(csu-objpfx),crtn.o)
package/glibc/2.19/microblaze-libgcc_eh.patch new file +18 -0
@@ -0,0 +1,18 @@ +diff -Nur glibc-2.19.orig/Makeconfig glibc-2.19/Makeconfig +--- glibc-2.19.orig/Makeconfig 2014-02-07 10:04:38.000000000 +0100 ++++ glibc-2.19/Makeconfig 2014-04-11 08:22:27.000000000 +0200 +@@ -559,12 +559,12 @@ + # statically link programs. When --disable-shared is used, we use + # -lgcc_eh since elf/static-stubs.o isn't sufficient. + ifeq (yes,$(build-shared)) +-static-gnulib = -lgcc $(static-gnulib-arch) ++static-gnulib = -lgcc -lgcc_eh $(static-gnulib-arch) + else + static-gnulib = -lgcc -lgcc_eh $(static-gnulib-arch) + endif + static-gnulib-tests := -lgcc -lgcc_eh $(libunwind) +-libc.so-gnulib := -lgcc ++libc.so-gnulib := -lgcc -lgcc_eh + endif + +preinit = $(addprefix $(csu-objpfx),crti.o) + +postinit = $(addprefix $(csu-objpfx),crtn.o)
Signature · 1 line
1.7.10.4
PATCH 5/6 temporary hack to fix linking error
Quoted 4 lines · Waldemar Brodkorb
See here for more info:
https://sourceware.org/ml/libc-help/2014-04/msg00020.htmlStill working on the issue.
This patch works, but by it being temporary/hacky it should be conditionally applied just for microblaze since you probably have no idea how it can affect other architectures.
By the way, how is it that we're not interested in fixing things or something like that?
(https://sourceware.org/ml/libc-help/2014-04/msg00027.html)
I'm using my (volunteer/spare) time looking at your patchset and testing it, so i think that's not a fair assessment, and disabling eglibc because "no time to test" and saying that at the same time sounds pretty much like double-standards.
I'm not saying this to get you angry or anything like that, it's just that you're stating it in a very public mailing list and it seems utterly unfair to many BR contributors. Many people do what they can when they can.
Now with that out of the way, care to respin this patch with the consideration i mentioned above?
Regards.
PATCH 5/6 temporary hack to fix linking error
Hi Gustavo,
Gustavo Zacarias wrote,
Quoted 11 lines · Waldemar Brodkorb
Quoted 5 lines
See here for more info:
https://sourceware.org/ml/libc-help/2014-04/msg00020.htmlStill working on the issue.
This patch works, but by it being temporary/hacky it should be conditionally applied just for microblaze since you probably have no idea how it can affect other architectures.
Quoted 11 lines
By the way, how is it that we're not interested in fixing things or something like that?
(https://sourceware.org/ml/libc-help/2014-04/msg00027.html)
I'm using my (volunteer/spare) time looking at your patchset and testing it, so i think that's not a fair assessment, and disabling eglibc because "no time to test" and saying that at the same time sounds pretty much like double-standards.
I'm not saying this to get you angry or anything like that, it's just that you're stating it in a very public mailing list and it seems utterly unfair to many BR contributors. Many people do what they can when they can.
Okay, sorry. I thought that there is no interest in my patches, because I got no feedback at all. Looking at the traffic on the mailinglist nearly every patch set gets some feedback after 2-3 days. My bug report about the microblaze OOM got no feedback, too. I stop whining now, and start hacking.
Quoted 2 lines
Now with that out of the way, care to respin this patch with the consideration i mentioned above?
I will respin the patches after your gcc 4.9 patch set gets committed. I tested with gcc 4.9 and the workaround for glibc/eglibc is not required anymore.
best regards
Waldemar
PATCH 5/6 temporary hack to fix linking error
Quoted 5 lines · Waldemar Brodkorb
Okay, sorry. I thought that there is no interest in my patches, because I got no feedback at all. Looking at the traffic on the mailinglist nearly every patch set gets some feedback after 2-3 days. My bug report about the microblaze OOM got no feedback, too. I stop whining now, and start hacking.
Hi.
Ok, cool, now we're talking! :)
Quoted 3 lines
I will respin the patches after your gcc 4.9 patch set gets committed. I tested with gcc 4.9 and the workaround for glibc/eglibc is not required anymore.
Great.
Only the gcc patch would need a respin i think, the rest can be committed as they are.
Thanks.
Regards.
PATCH 6/6 update to 3.14
In reply to Waldemar Brodkorb* fix networking in Qemu using a small patch
* disable DTS, because linux.bin does not include any DTB the default Qemu included DTB is used and this is okay and works fine
---
.../{linux-3.13.config => linux-3.14.config} | 1 +
board/qemu/microblazebe-mmu/system.dts | 367 --------------------
.../{linux-3.13.config => linux-3.14.config} | 1 +
board/qemu/microblazeel-mmu/system.dts | 367 --------------------
board/qemu/microblazeel-mmu/xilinx-xemaclite.patch | 11 +
configs/qemu_microblazebe_mmu_defconfig | 8 +-
configs/qemu_microblazeel_mmu_defconfig | 8 +-
linux/Config.in | 2 -
8 files changed, 21 insertions(+), 744 deletions(-)
rename board/qemu/microblazebe-mmu/{linux-3.13.config => linux-3.14.config} (98%)
delete mode 100644 board/qemu/microblazebe-mmu/system.dts
rename board/qemu/microblazeel-mmu/{linux-3.13.config => linux-3.14.config} (98%)
delete mode 100644 board/qemu/microblazeel-mmu/system.dts
create mode 100644 board/qemu/microblazeel-mmu/xilinx-xemaclite.patchboard/qemu/microblazebe-mmu/linux-3.14.config renamed from board/qemu/microblazebe-mmu/linux-3.13.config +1 -0
@@ -36,6 +36,7 @@ CONFIG_PROC_DEVICETREE=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_SIZE=8192 CONFIG_NETDEVICES=y +CONFIG_NET_VENDOR_XILINX=y CONFIG_XILINX_EMACLITE=y # CONFIG_INPUT is not set # CONFIG_SERIO is not set
board/qemu/microblazebe-mmu/system.dts deleted +0 -367
367 lines not on this page · raw message
board/qemu/microblazeel-mmu/linux-3.14.config renamed from board/qemu/microblazeel-mmu/linux-3.13.config +1 -0
@@ -35,6 +35,7 @@ CONFIG_PROC_DEVICETREE=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_SIZE=8192 CONFIG_NETDEVICES=y +CONFIG_NET_VENDOR_XILINX=y CONFIG_XILINX_EMACLITE=y # CONFIG_INPUT is not set # CONFIG_SERIO is not set
board/qemu/microblazeel-mmu/system.dts deleted +0 -367
367 lines not on this page · raw message
board/qemu/microblazeel-mmu/xilinx-xemaclite.patch new file +11 -0
@@ -0,0 +1,11 @@ +diff -Nur linux-3.14.orig/drivers/net/ethernet/xilinx/xilinx_emaclite.c linux-3.14/drivers/net/ethernet/xilinx/xilinx_emaclite.c +--- linux-3.14.orig/drivers/net/ethernet/xilinx/xilinx_emaclite.c 2014-03-31 05:40:15.000000000 +0200 ++++ linux-3.14/drivers/net/ethernet/xilinx/xilinx_emaclite.c 2014-04-11 22:53:42.000000000 +0200 +@@ -1249,6 +1249,7 @@ + { .compatible = "xlnx,opb-ethernetlite-1.01.b", }, + { .compatible = "xlnx,xps-ethernetlite-1.00.a", }, + { .compatible = "xlnx,xps-ethernetlite-2.00.a", }, ++ { .compatible = "xlnx,xps-ethernetlite-2.00.b", }, + { .compatible = "xlnx,xps-ethernetlite-2.01.a", }, + { .compatible = "xlnx,xps-ethernetlite-3.00.a", }, + { /* end of list */ },
configs/qemu_microblazebe_mmu_defconfig +4 -4
@@ -12,9 +12,9 @@ BR2_TARGET_ROOTFS_INITRAMFS=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.13.5" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.14" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazebe-mmu/linux-3.13.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazebe-mmu/linux-3.14.config" BR2_LINUX_KERNEL_LINUX_BIN=y -BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y -BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/qemu/microblazebe-mmu/system.dts" +BR2_LINUX_KERNEL_USE_CUSTOM_DTS=n +BR2_LINUX_KERNEL_PATCH="board/qemu/microblazeel-mmu/xilinx-xemaclite.patch"
configs/qemu_microblazeel_mmu_defconfig +4 -4
@@ -12,9 +12,9 @@ BR2_TARGET_ROOTFS_INITRAMFS=y # Kernel BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y -BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.13.5" +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.14" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux-3.13.config" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/microblazeel-mmu/linux-3.14.config" BR2_LINUX_KERNEL_LINUX_BIN=y -BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y -BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/qemu/microblazeel-mmu/system.dts" +BR2_LINUX_KERNEL_USE_CUSTOM_DTS=n +BR2_LINUX_KERNEL_PATCH="board/qemu/microblazeel-mmu/xilinx-xemaclite.patch"
linux/Config.in +0 -2
@@ -210,8 +210,6 @@ config BR2_LINUX_KERNEL_LINUX_BIN bool "linux.bin" depends on BR2_microblaze select BR2_LINUX_KERNEL_UBOOT_IMAGE - select BR2_LINUX_KERNEL_DTS_SUPPORT - select BR2_LINUX_KERNEL_DTB_IS_SELF_BUILT config BR2_LINUX_KERNEL_VMLINUX_BIN bool "vmlinux.bin"
Signature · 1 line
1.7.10.4
PATCH 6/6 update to 3.14
Quoted 5 lines · Waldemar Brodkorb
* fix networking in Qemu using a small patch
* disable DTS, because linux.bin does not include any DTB the default Qemu included DTB is used and this is okay and works fineSigned-off-by Waldemar Brodkorb <[email protected]>
(on Qemu)
Some detail nitpicking below:
configs/qemu_microblazebe_mmu_defconfig
Quoted 3 lines
configs/qemu_microblazebe_mmu_defconfig +1
-0+BR2_LINUX_KERNEL_USE_CUSTOM_DTS=n
It's the default so you can just delete it.
Quoted 1 line
+BR2_LINUX_KERNEL_PATCH="board/qemu/microblazeel-mmu/xilinx-xemaclite.patch"
Should use a separate copy of the patch for BE in the BE dir even if it's the same.
configs/qemu_microblazeel_mmu_defconfig
Quoted 5 lines
configs/qemu_microblazeel_mmu_defconfig +1
-0+BR2_LINUX_KERNEL_USE_CUSTOM_DTS=n
Ditto above.
Thanks.