Skip to contentSkip to conversation

Adding Microblaze support to Buildroot

Buildroot New Spenser Gilliland 7 participants 34 messages Nov 10, 2011 – Mar 14, 2012 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

Hi, I'm trying to add the Microblaze arch to buildroot. However, I'm having some issues. The following error comes up when building the intermediate compiler.

zh_HK.utf8
zh_SG.utf8
zh_TW.utf8
zu_ZA.utf8
/usr/bin/make -j1 -C

/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc \
         ARCH="microblaze" \

PREFIX=/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc_dev/

\
         DEVEL_PREFIX=/usr/ \

RUNTIME_PREFIX=/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc_dev/

\
         HOSTCC="/usr/bin/gcc" headers \
         lib/crt1.o lib/crti.o lib/crtn.o \
         install_headers

make[1]: Entering directory /home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc' make[1]: Nothing to be done for headers'.
make[1]: `lib/crt1.o' is up to date.
make[1]: `lib/crti.o' is up to date.
make[1]: `lib/crtn.o' is up to date.
INSTALL include ->
/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc_dev//usr/include
unifdef: can't open include/bits/semaphore.h: No such file or directory
unifdef: can't open include/bits/pthreadtypes.h: No such file or directory make[1]: Leaving directory `/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc'
# Install the kernel headers to the first stage gcc include dir

# if necessary
if [ ! -f
/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc_dev/usr/include/linux/version.h
]; then \
         cp -pLR
/home/spenser/Research/buildroot/buildroot/output/toolchain/linux/include/*
\

/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc_dev/usr/include/; \
fi
/home/spenser/Research/buildroot/buildroot/output/host/usr/bin/microblaze-unknown-linux-uclibc-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o /home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc_dev/usr/lib/libc.so /tmp/ccU2bXNp.o: could not read symbols: No error
collect2: ld returned 1 exit status
make: *** [/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc/.configured] Error 1

The part which states "could not read symbols: No error" leaves me with very little idea on how to proceed.

Additionally, the missing semaphore.h and pthreadtypes.h could be related. Which component provides these files and how do I ensure they are installed correctly.

My changes are available at git://github.com/Spenser309/buildroot.git

Thanks,
Spenser

Signature · 3 lines
Spenser Gilliland
Illinois Institute of Technology
Computer Engineering
#2 lore raw

Am 10.11.2011 23:55, schrieb Spenser Gilliland:

Quoted 1 line

Hi, I'm trying to add the Microblaze arch to buildroot.

Hello Spenser,

I am also working on Microblaze, but did not try to build a toolchain yet. There is some information on this on the internet, especially here:
http://www.monstr.eu/. There are lots of patches for the toolchain and I don't know how complete the Bicroblaze support in the original gcc is.

Instead I use the glibc toolchain provided by Xilinx and the u-boot provided by Avnet for my Avnet Spartan 6 LX9 MicroBoard.

I made a small patch adding the config options and default configurations for buildroot and the kernel. The modifications I made are inspired by prior work I found at some places in the web. I am also planning to publish my microblaze configuration, but this is still work in progress.

Originally, I tried to build a nommu configuration because my FPGA is very small and I wanted to save space. This did not work because the toolchain for FLT binaries that I found on the net did not harmonize with the kernel, the kernel was not able to load the binaries. Finally, I suspended this because of lack of time. If your efforts to buils a toolchain succeed this approach might get interesting again. Xilinx supports only the mmu configuration for Linux.

Regarding the Linux kernel recent versions (3.x) work more or less out of the box after providing a valid device tree file matching the Microblaze configuration.

Kind regards

Stephan

Quoted 6 lines

My changes are available at git://github.com/Spenser309/buildroot.git

Thanks,
Spenser

From: Stephan Hoffmann <[email protected]>
Date: Mon, 31 Oct 2011 14:15:55 +0100
Subject: [PATCH] Added support for MicroBlaze soft cpu

---
 board/relinux/s6lx9microboard/s6lx9_mmu_defconfig |   67
+++++++++++++++++++++
 configs/spartan6lx9_mb_defconfig                  |   21 +++++++
 linux/Config.in                                   |    5 ++
 linux/linux.mk                                    |    8 +++
 target/Config.in.arch                             |    6 ++-
 5 files changed, 106 insertions(+), 1 deletions(-)
 create mode 100644 board/relinux/s6lx9microboard/s6lx9_mmu_defconfig
 create mode 100644 configs/spartan6lx9_mb_defconfig
(quoted diff) +0 -0

b/board/relinux/s6lx9microboard/s6lx9_mmu_defconfig new file mode 100644
index 0000000..ef398de

board/relinux/s6lx9microboard/s6lx9_mmu_defconfig new file +67 -0

67 lines not on this page · raw message

(quoted diff) +0 -0

b/configs/spartan6lx9_mb_defconfig
new file mode 100644
index 0000000..150ad88

configs/spartan6lx9_mb_defconfig new file +21 -0
@@ -0,0 +1,21 @@
+BR2_microblaze=y
+BR2_JLEVEL=4
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_PATH="/opt/microblazeel-unknown-linux-gnu/"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="microblazeel-unknown-linux-gnu"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
+BR2_TARGET_GENERIC_HOSTNAME="Microblaze Buildroot"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Microblaze Buildroot"
+BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0"
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.0.7"
+BR2_LINUX_KERNEL_VERSION="3.0.7"
+BR2_LINUX_KERNEL_PATCH="http://www.kernel.org/pub/linux/kernel/projects/rt/3.0/patch-3.0.7-rt20.patch"
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/board/relinux/s6lx9microboard/s6lx9_mmu_defconfig"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="simpleImage.xilinx"
linux/Config.in +5 -0
index 0082ca8..358747d 100644
@@ -121,6 +121,11 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
        help
          Path to the kernel configuration file
 
+config BR2_LINUX_KERNEL_DTS_FILE
+       string "Device Tree dts file location"
+       depends on BR2_microblaze
+       help
+         Path from where the dts file has to be copied
 #
 # Binary format
 #
linux/linux.mk +4 -0
index 9beb706..690d9f4 100644
@@ -117,6 +117,14 @@ endef
 
 LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES
 
+ifeq ($(KERNEL_ARCH),microblaze)
+define LINUX_COPY_DTS
+       if test -f "$(BR2_LINUX_KERNEL_DTS_FILE)" ; then \
+               cp $(BR2_LINUX_KERNEL_DTS_FILE)

$(@D)/arch/microblaze/boot/dts ; \
+ fi
+endef
+LINUX_POST_PATCH_HOOKS += LINUX_COPY_DTS
+endif

ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y) KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call
qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig

target/Config.in.arch +3 -1
index 5e9fad4..24edfa5 100644
@@ -21,6 +21,8 @@ config BR2_i386
 config BR2_m68k
        bool "m68k"
        depends on BROKEN # ice in uclibc / inet_ntoa_r
+config BR2_microblaze
+       bool "microblaze"
 config BR2_mips
        bool "mips"
 config BR2_mipsel
@@ -490,6 +492,7 @@ config BR2_ARCH
        default "i686"          if BR2_x86_athlon
        default "i686"          if BR2_x86_athlon_4
        default "m68k"          if BR2_m68k
+       default "microblaze"    if BR2_microblaze
        default "mips"          if BR2_mips
        default "mipsel"        if BR2_mipsel
        default "powerpc"       if BR2_powerpc
@@ -515,7 +518,7 @@ config BR2_ARCH
 
 config BR2_ENDIAN
        string
-       default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 ||

BR2_mipsel || \
+ default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 ||

BR2_mipsel || BR2_microblaze || \
                            BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64
|| BR2_sh64
        default "BIG"    if BR2_armeb || BR2_avr32 || BR2_m68k ||
BR2_mips || \
                            BR2_powerpc || BR2_sh2 || BR2_sh2a || \
@@ -580,6 +583,7 @@ config BR2_GCC_TARGET_TUNE
        default 68030           if BR2_m68k_68030
        default 68040           if BR2_m68k_68040
        default 68060           if BR2_m68k_68060
+       default microblaze      if BR2_microblaze
        default mips1           if BR2_mips_1
        default mips2           if BR2_mips_2
        default mips3           if BR2_mips_3
Signature · 8 lines
1.7.0.4


-- 
reLinux     -    Stephan Hoffmann
Am Schmidtgrund 124    50765 K?ln
Tel. +49.221.95595-19    Fax: -64
www.reLinux.de     sho at reLinux.de
#3 lore raw

Am 11.11.2011 13:45, schrieb Stephan Hoffmann:

Quoted 8 lines

Am 10.11.2011 23:55, schrieb Spenser Gilliland:

Quoted 1 line

Hi, I'm trying to add the Microblaze arch to buildroot.

Hello Spenser,

I am also working on Microblaze, but did not try to build a toolchain yet. There is some information on this on the internet, especially here:
http://www.monstr.eu/. There are lots of patches for the toolchain and I don't know how complete the Microblaze support in the original gcc is.

Hello Spenser,

did you have any success in building the toolchain in the meantime?

Hello all,

is there an interest in adding the Microblaze architecture to buildroot?

And, if it is, would it be acceptable to rely on toolchain and/or bootloader coming from the board vendor or Xilinx, at least for some time?

Kind regards

Stephan

Signature · 4 lines
reLinux     -    Stephan Hoffmann
Am Schmidtgrund 124    50765 K?ln
Tel. +49.221.95595-19    Fax: -64
www.reLinux.de     sho at reLinux.de
#4 lore raw

Le Tue, 22 Nov 2011 09:52:24 +0100,
Stephan Hoffmann <[email protected]> a ?crit :

Quoted 2 lines

is there an interest in adding the Microblaze architecture to buildroot?

Definitely, yes.

Quoted 3 lines

And, if it is, would it be acceptable to rely on toolchain and/or bootloader coming from the board vendor or Xilinx, at least for some time?

Yes. It is possible to use the external toolchain mechanism. For example, the Blackfin support relies on an external toolchain provided by ADI, I'm not sure the internal Buildroot code to build a toolchain works for Blackfin. So doing the same for Microblaze seems reasonable.

Regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#5 lore raw

I've been trying to get the buildroot to work but I have been stonewalled by the following error. Not quite sure where to go from here. Anyone have some input?

INSTALL include ->
/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc_dev//usr/include make[1]: Leaving directory `/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc'
# Install the kernel headers to the first stage gcc include dir

# if necessary
if [ ! -f /home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc_dev/usr/include/linux/version.h
]; then \
		cp -pLR /home/spenser/Research/buildroot/buildroot/output/toolchain/linux/include/*
\
			/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc_dev/usr/include/;
\
	fi
/home/spenser/Research/buildroot/buildroot/output/host/usr/bin/microblaze-unknown-linux-uclibc-gcc
-nostdlib -nostartfiles -shared -x c /dev/null -o
/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc_dev/usr/lib/libc.so
/tmp/cceEeb5C.o: could not read symbols: No error
collect2: ld returned 1 exit status
make: *** [/home/spenser/Research/buildroot/buildroot/output/toolchain/uClibc/.configured]
Error 1

Spenser

Quoted 29 lines · Thomas Petazzoni

Le Tue, 22 Nov 2011 09:52:24 +0100,
Stephan Hoffmann <[email protected]> a ?crit :

Quoted 2 lines

is there an interest in adding the Microblaze architecture to buildroot?

Definitely, yes.

Quoted 3 lines

And, if it is, would it be acceptable to rely on toolchain and/or bootloader coming from the board vendor or Xilinx, at least for some time?

Yes. It is possible to use the external toolchain mechanism. For example, the Blackfin support relies on an external toolchain provided by ADI, I'm not sure the internal Buildroot code to build a toolchain works for Blackfin. So doing the same for Microblaze seems reasonable.

Regards,

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology
#6 lore raw
In reply to Stephan Hoffmann
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Stephan" == Stephan Hoffmann <[email protected]> writes:

Stephan> Hello all,

Stephan> is there an interest in adding the Microblaze architecture to Stephan> buildroot?

Yes, I would say so.

Stephan> And, if it is, would it be acceptable to rely on toolchain Stephan> and/or bootloader coming from the board vendor or Xilinx, at Stephan> least for some time?

We're doing that already for avr32, so that's not really a big problem. I'm more worrying about how much we need to patch individual packages to work on microblaze. In the past we had quite some avr32 patches, which made it harder to move to newer versions and added extra complexity to BR.

But as long as the microblaze developers work on getting their changes upstream, I don't have a problem with adding microblaze support.

Signature · 1 line
Bye, Peter Korsgaard
#7 lore raw

Am 22.11.2011 10:14, schrieb Peter Korsgaard:

Quoted 10 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Stephan" == Stephan Hoffmann <[email protected]> writes:

Stephan> Hello all,

Stephan> is there an interest in adding the Microblaze architecture to Stephan> buildroot?

Yes, I would say so.

I'm more worrying about how much we need to patch individual
packages to work on microblaze.

To which extend do you expect individual packages being tested on the different architectures?

By now I have a busybox only configuration that can boot with the U-Boot available from the Avnet website.

I can send a patch against buildroot's next branch if desired.

Stephan

Signature · 4 lines
reLinux     -    Stephan Hoffmann
Am Schmidtgrund 124    50765 K?ln
Tel. +49.221.95595-19    Fax: -64
www.reLinux.de     sho at reLinux.de
#8 lore raw

Le Wed, 23 Nov 2011 12:09:53 +0100,
Stephan Hoffmann <[email protected]> a ?crit :

Quoted 2 lines

To which extend do you expect individual packages being tested on the different architectures?

On Blackfin, there are many packages that don't build, because they simply cannot build on !MMU systems. Our goal is to progressively add the "depends on BR2_USE_MMU" on all packages that need a MMU to build/work properly.

So, it's definitely not a problem if not all packages have not been tested with Microblaze. I'll add a Microblaze toolchain into my Buildroot testing stuff, it will raise issues, and we will fix them as we go.

Quoted 4 lines

By now I have a busybox only configuration that can boot with the U-Boot available from the Avnet website.

I can send a patch against buildroot's next branch if desired.

Excellent. Would be good to have :

* A patch adding the general Microblaze support

* A patch that adds some defconfig for the Microblaze board you have

* It would be even better if another patch could add a defconfig for the Microblaze Qemu emulation, so that those not having a Microblaze board can test.

Best regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#9 lore raw

Am 23.11.2011 14:54, schrieb Thomas Petazzoni:

Quoted 10 lines

Le Wed, 23 Nov 2011 12:09:53 +0100,
Stephan Hoffmann <[email protected]> a ?crit :

Quoted 2 lines

To which extend do you expect individual packages being tested on the different architectures?

On Blackfin, there are many packages that don't build, because they simply cannot build on !MMU systems. Our goal is to progressively add the "depends on BR2_USE_MMU" on all packages that need a MMU to build/work properly.

In fact, my Microblaze is with MMU since Xilinx only supports linux with mmu.

Quoted 5 lines

Excellent. Would be good to have :

* A patch adding the general Microblaze support

* A patch that adds some defconfig for the Microblaze board you have

I'll send these in one patch if that's O.K. There ia also a new kernel defconfig, because the defconfig supplied with the kernel does not work for my configuration.

Quoted 3 lines

* It would be even better if another patch could add a defconfig for the Microblaze Qemu emulation, so that those not having a Microblaze board can test.

That's a real good idea, I'll work on this later.

Stephan

Signature · 4 lines
reLinux     -    Stephan Hoffmann
Am Schmidtgrund 124    50765 K?ln
Tel. +49.221.95595-19    Fax: -64
www.reLinux.de     sho at reLinux.de
#10 lore raw

Le Wed, 23 Nov 2011 16:46:03 +0100,
Stephan Hoffmann <[email protected]> a ?crit :

Quoted 2 lines

In fact, my Microblaze is with MMU since Xilinx only supports linux with mmu.

Ah, ok.

Quoted 3 lines

I'll send these in one patch if that's O.K. There ia also a new kernel defconfig, because the defconfig supplied with the kernel does not work for my configuration.

Ok.

Quoted 4 lines
Quoted 3 lines

* It would be even better if another patch could add a defconfig for the Microblaze Qemu emulation, so that those not having a Microblaze board can test.

That's a real good idea, I'll work on this later.

Do you know if Qemu emulates the Microblaze variants that have a MMU ? It would be good to have samples for both cases.

Regards,

Thomas

Signature · 4 lines
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
#11 lore raw

Am 23.11.2011 16:49, schrieb Thomas Petazzoni:

Quoted 10 lines

Le Wed, 23 Nov 2011 16:46:03 +0100,
Stephan Hoffmann <[email protected]> a ?crit :

Quoted 2 lines

In fact, my Microblaze is with MMU since Xilinx only supports linux with mmu.

Ah, ok.

Quoted 3 lines

I'll send these in one patch if that's O.K. There ia also a new kernel defconfig, because the defconfig supplied with the kernel does not work for my configuration.

Quoted 8 lines

Ok.

Quoted 4 lines
Quoted 3 lines

* It would be even better if another patch could add a defconfig for the Microblaze Qemu emulation, so that those not having a Microblaze board can test.

That's a real good idea, I'll work on this later.

Do you know if Qemu emulates the Microblaze variants that have a MMU ? It would be good to have samples for both cases.

Qemu should support both with and without mmu. Unfortunatelly, I am not very experienced in qemu, so it might take some time to fiugure out how it goes. A first try gives me a error on an address that is neither in the physical nor in the logical address space of my kernel.

Regards

Stephan

Quoted 3 lines

Regards,

Thomas

Signature · 4 lines
reLinux     -    Stephan Hoffmann
Am Schmidtgrund 124    50765 K?ln
Tel. +49.221.95595-19    Fax: -64
www.reLinux.de     sho at reLinux.de
#12 lore raw

PATCH 1/1 Adding Microblaze support to Buildroot

In reply to Thomas Petazzoni

Am 23.11.2011 14:54, schrieb Thomas Petazzoni:

Quoted 6 lines

Excellent. Would be good to have :

* A patch adding the general Microblaze support

* A patch that adds some defconfig for the Microblaze board you have

Hello all,

here is my patch to introduce MicroBlaze to buildroot. Comments are highly welcome!

Kind regards

Stephan Hoffmann

#13 lore raw

PATCH 1/1 Adding Microblaze support to Buildroot

Hi Stephan,

Quoted 11 lines · Stephan Hoffmann

Am 23.11.2011 14:54, schrieb Thomas Petazzoni:

Quoted 6 lines

Excellent. Would be good to have :

* A patch adding the general Microblaze support

* A patch that adds some defconfig for the Microblaze board you have

Hello all,

here is my patch to introduce MicroBlaze to buildroot. Comments are highly welcome!

[snip]

Review

Quoted 3 lines
(quoted diff) +3 -0
+This is the buildroot board support for the Avnet Spartan6 LX9 MicroBoard.
+
+The board can be bought from Avnet or from Trenz for a low prize.

s/prize/price/

baruch

Signature · 3 lines
                                                     ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#14 lore raw

PATCH 1/1 Adding Microblaze support to Buildroot

Hey,

I'm using this Microblaze patch for my project. Will it be part of the official release that is coming up soon?

Spenser

Quoted 33 lines · Baruch Siach

Hi Stephan,

Quoted 11 lines · Stephan Hoffmann

Am 23.11.2011 14:54, schrieb Thomas Petazzoni:

Quoted 6 lines

Excellent. Would be good to have :

?* A patch adding the general Microblaze support

?* A patch that adds some defconfig for the Microblaze board you have

Hello all,

here is my patch to introduce MicroBlaze to buildroot. Comments are highly welcome!

[snip]

Review

Quoted 3 lines
(quoted diff) +3 -0
+This is the buildroot board support for the Avnet Spartan6 LX9 MicroBoard.
+
+The board can be bought from Avnet or from Trenz for a low prize.

s/prize/price/

baruch

--
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ~. .~ ? Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= ? - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology
#15 lore raw

PATCH 1/1 Adding Microblaze support to Buildroot

Quoted 2 lines · On Saturday 11 February 2012 05:58:37 Spenser Gilliland wrote:

I'm using this Microblaze patch for my project. Will it be part of the official release that is coming up soon?

I'm afraid it got lost between the cracks. Could you repost it?

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#16 lore raw

PATCH 1/1 Adding Microblaze support to Buildroot

Sure what's the best way to do that? I had to make some changes to the initial patch.

Spenser

Quoted 16 lines · Arnout Vandecappelle
Quoted 2 lines · On Saturday 11 February 2012 05:58:37 Spenser Gilliland wrote:

I'm using this Microblaze patch for my project. ?Will it be part of the official release that is coming up soon?

?I'm afraid it got lost between the cracks. ?Could you repost it?

?Regards,
?Arnout

--
Arnout Vandecappelle ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? arnout at mind be Senior Embedded Software Architect ? ? ? ? ? ? ? ? +32-16-286540 Essensium/Mind ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium ? ? ? ? ? ? ? ?BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: ?7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology
#17 lore raw

PATCH 1/1 Added microblaze patch

Arnout,

This is the patch with some minor adjustments. I've tested it using a big endian toolchain. Stephen used a little endian toolchain.

I got rid of the BR2_GCC_TARGET_TUNE as the build errored out when I attempt it with the raw patch. The error stated that target tune was not supported by the compiler.

Spenser

---
 board/relinux/avnet_LX9MicroBoard/README           |   64 +++++
 board/relinux/avnet_LX9MicroBoard/TODO             |   19 ++
 board/relinux/avnet_LX9MicroBoard/lx9_mmu.dts      |  247 ++++++++++++++++++++
 .../relinux/avnet_LX9MicroBoard/lx9_mmu_defconfig  |   68 ++++++
 configs/spartan6lx9_mb_defconfig                   |   18 ++
 linux/Config.in                                    |    8 +
 linux/linux.mk                                     |   16 ++
 target/Config.in.arch                              |   26 ++-
 8 files changed, 462 insertions(+), 4 deletions(-)
 create mode 100644 board/relinux/avnet_LX9MicroBoard/README
 create mode 100644 board/relinux/avnet_LX9MicroBoard/TODO
 create mode 100644 board/relinux/avnet_LX9MicroBoard/lx9_mmu.dts
 create mode 100644 board/relinux/avnet_LX9MicroBoard/lx9_mmu_defconfig
 create mode 100644 configs/spartan6lx9_mb_defconfig
board/relinux/avnet_LX9MicroBoard/README new file +64 -0
new file mode 100644
index 0000000..a2e9247
@@ -0,0 +1,64 @@
+This is the buildroot board support for the Avnet Spartan6 LX9 MicroBoard.
+
+The board can be bought from Avnet or from Trenz for a low prize.
+
+To run the Linux built with buildroot you have to install the FPGA bitfile
+and the u-boot boot loader as described in the totorial available on
+
+    http://www.em.avnet.com/s6microboard
+
+The image file (default name is simpleImage.lx9_mmu.ub) has to be
+copied to your tftp folder (often /tftpboot/).
+
+Sample session:
+
+SPI Bootloader
+Loading binary image
+from flash @ address: 00060000
+to RAM address: 83f00000
+Done
+
+
+SDRAM :
+                Icache:ON
+                Dcache:ON
+        U-Boot Start:0x83f00000
+SF: Got idcode 20 ba 18 10 01
+*** Warning - bad CRC, using default environment
+
+Net:   Xilinx_Emaclite
+MAC:   00:0a:35:00:63:37
+U-BOOT for Avnet-LX9-Microboard-AXI-tiny-13.1
+
+BOOTP broadcast 1
+DHCP client bound to address 192.168.11.122
+Hit any key to stop autoboot:  0
+U-Boot-PetaLinux> tftp simpleImage.lx9_mmu.ub
+Using Xilinx_Emaclite device
+TFTP from server 192.168.11.10; our IP address is 192.168.11.122
+Filename 't.ub'.
+Load address: 0x80002000
+Loading: #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         #################################################################
+         ##############################
+done
+Bytes transferred = 5207724 (4f76ac hex)
+U-Boot-PetaLinux> bootm
+## Booting kernel from Legacy Image at 80002000 ...
+   Image Name:   Linux-3.1.0
+   Image Type:   MicroBlaze Linux Kernel Image (uncompressed)
+   Data Size:    5207660 Bytes =  5 MB
+   Load Address: 80000000
+   Entry Point:  80000000
+   Verifying Checksum ... OK
+   Loading Kernel Image ... OK
+OK
+## Transferring control to Linux (at address 80000000), 0x80000000 ramdisk 0x00000000, FDT 0x00000000...
+Early console on uartlite at 0x40600000
+..... boot log skipped
+
+Welcome to Microblaze Buildroot
+Microblaze login:
board/relinux/avnet_LX9MicroBoard/TODO new file +19 -0
new file mode 100644
index 0000000..ca5ee94
@@ -0,0 +1,19 @@
+TODO list for the Spartan LX9 Microboard
+
+Generate u-boot within buildroot
+================================
+Currently, we need to use the u-boot provided by Avnet.
+
+Provide config files for qemu
+=============================
+
+Generate toolchain
+==================
+Currently the GNU toolchain provided by Xilinx has to be used.
+Xilinx does not provide a toolchain suitable to build a mmu-less
+Linux system, but omitting the mmu saved space within the FPGA.
+
+Bring up mmu-less system
+========================
+Hopefully this is easy as soon as we have a working toolchain
+with flt support.
board/relinux/avnet_LX9MicroBoard/lx9_mmu.dts new file +247 -0

247 lines not on this page · raw message

board/relinux/avnet_LX9MicroBoard/lx9_mmu_defconfig new file +68 -0

68 lines not on this page · raw message

configs/spartan6lx9_mb_defconfig new file +18 -0
new file mode 100644
index 0000000..5ae1ede
@@ -0,0 +1,18 @@
+BR2_microblaze=y
+BR2_microblazel=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_PATH="/opt/microblazeel-unknown-linux-gnu/"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="microblazeel-unknown-linux-gnu"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
+BR2_TARGET_GENERIC_HOSTNAME="Microblaze Buildroot"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Microblaze Buildroot"
+BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0"
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu_defconfig"
+BR2_LINUX_KERNEL_DTS_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu.dts"
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="simpleImage.lx9_mmu"
linux/Config.in +8 -0
index 86dc32a..138feb3 100644
@@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
 	help
 	  Path to the kernel configuration file
 
+config BR2_LINUX_KERNEL_DTS_FILE
+    string "Device Tree dts file location"
+    depends on BR2_microblaze
+    help
+      Path from where the dts file has to be copied
+      The final "custom target" name depends on the
+      dts file name:
+          <name>.dts --> simpleImage.<name>
 #
 # Binary format
 #
linux/linux.mk +16 -0
index ae236d4..ade867a 100644
@@ -117,6 +117,18 @@ endef
 
 LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES
 
+ifeq ($(KERNEL_ARCH),microblaze)
+# on microblaze, we always want mkimage
+LINUX_DEPENDENCIES+=host-uboot-tools
+
+define LINUX_COPY_DTS
+    if test -f "$(BR2_LINUX_KERNEL_DTS_FILE)" ; then \
+        cp $(BR2_LINUX_KERNEL_DTS_FILE) $(@D)/arch/microblaze/boot/dts ; \
+    else \
+        echo "Cannot copy dts file!" ; \
+    fi
+endef
+endif
 
 ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
 KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
@@ -131,6 +143,8 @@ define LINUX_CONFIGURE_CMDS
 	$(if $(BR2_ARM_EABI),
 		$(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config),
 		$(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config))
+    $(if $(BR2_microblaze),
+        $(call LINUX_COPY_DTS))
 	# As the kernel gets compiled before root filesystems are
 	# built, we create a fake cpio file. It'll be
 	# replaced later by the real cpio archive, and the kernel will be
@@ -215,6 +229,8 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LI
 	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)
 	# Copy the kernel image to its final destination
 	cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
+	# If there is a .ub file copy it to the final destination
+	test -f $(LINUX_IMAGE_PATH).ub && cp $(LINUX_IMAGE_PATH).ub $(BINARIES_DIR)
 	$(Q)touch $@
 
 # The initramfs building code must make sure this target gets called
target/Config.in.arch +22 -4
index 417441d..0524307 100644
@@ -21,6 +21,8 @@ config BR2_i386
 config BR2_m68k
 	bool "m68k"
 	depends on BROKEN # ice in uclibc / inet_ntoa_r
+config BR2_microblaze
+    bool "microblaze"
 config BR2_mips
 	bool "mips"
 config BR2_mipsel
@@ -477,6 +479,19 @@ config BR2_powerpc_SPE
 	depends on BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc
 endchoice
 
+choice 
+	prompt "Target Endianess"
+	depends on BR2_microblaze
+	default BR2_microblazeel
+	help 
+	  Endianess of the Microblaze Processor
+
+config BR2_microblazeel
+	bool "Little Endian"
+config BR2_microblazebe
+	bool "Big Endian"
+endchoice
+
 config BR2_ARCH
 	string
 	default "arm"		if BR2_arm
@@ -508,6 +523,7 @@ config BR2_ARCH
 	default "i686"		if BR2_x86_athlon
 	default "i686"		if BR2_x86_athlon_4
 	default "m68k"		if BR2_m68k
+	default "microblaze"	if BR2_microblaze
 	default "mips"		if BR2_mips
 	default "mipsel"	if BR2_mipsel
 	default "powerpc"	if BR2_powerpc
@@ -533,11 +549,13 @@ config BR2_ARCH
 
 config BR2_ENDIAN
 	string
-	default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
-			    BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64
+   default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
+			    BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64 || \
+			    BR2_microblazeel 
 	default "BIG"    if BR2_armeb || BR2_avr32 || BR2_m68k || BR2_mips || \
-			    BR2_powerpc || BR2_sh2 || BR2_sh2a || \
-			    BR2_sh3eb || BR2_sh4eb || BR2_sh4aeb || BR2_sparc
+			    BR2_powerpc || BR2_sh2 || BR2_sh2a || BR2_sh3eb || \
+			    BR2_sh4eb || BR2_sh4aeb || BR2_sparc || \
+				BR2_microblazebe
 
 config BR2_GCC_TARGET_TUNE
 	string
Signature · 1 line
1.7.9
#18 lore raw

PATCH 1/1 Added microblaze patch

Quoted 7 lines · On Monday 13 February 2012 02:03:58 Spenser Gilliland wrote:

Arnout,

This is the patch with some minor adjustments. I've tested it using a big endian toolchain. Stephen used a little endian toolchain.

I got rid of the BR2_GCC_TARGET_TUNE as the build errored out when I attempt it with the raw patch. The error stated that target tune was not supported by the compiler.

Spenser

Thanks for this patch!

A few remarks:

* Please add a relevant commit message. It starts with a single line short description followed by an empty line. Then one or more paragraphs of explanation (probably not much needed in this case). And finally, one or more Signed-off-by lines.

* Add a Signed-off-by line for yourself. This is a short way for you to assert that you are entitled to contribute the patch under buildroot's GPL license. See http://kerneltrap.org/files/Jeremy/DCO.txt for more details.

* In addition, include the Signed-off-by line of the original poster:

* There were also a few remarks from Peter Kosgaard, Alvaro Gamez and Thomas Petazonni. Could you include those?

* See additional remarks below.

If you don't have the time to do all this yourself, please let us know
so someone else can take it over. Hopefully it won't fall between the cracks again :-)

[snip]

configs/spartan6lx9_mb_defconfig line 5

Quoted 11 lines
configs/spartan6lx9_mb_defconfig new file +5 -0
new file mode 100644
index 0000000..5ae1ede
@@ -0,0 +1,18 @@
+BR2_microblaze=y
+BR2_microblazel=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_PATH="/opt/microblazeel-unknown-linux-gnu/"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="microblazeel-unknown-linux-gnu"

I don't think we should have defconfigs that depend on pre-extracted toolchains.
Instead, the Xilinx toolchain should be added to the supported external toolchains like Sourcery.

configs/spartan6lx9_mb_defconfig line 9

Quoted 5 lines
configs/spartan6lx9_mb_defconfig new file +4 -0
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
 
+BR2_TARGET_GENERIC_HOSTNAME="Microblaze Buildroot"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Microblaze Buildroot"

No need to change the defaults here.

configs/spartan6lx9_mb_defconfig line 16

Quoted 7 lines
configs/spartan6lx9_mb_defconfig new file +7 -0
+BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0"
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu_defconfig"
+BR2_LINUX_KERNEL_DTS_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu.dts"

The $(TOPDIR)/ is redundant: the build is always executed from $(TOPDIR).

Quoted 8 lines
configs/spartan6lx9_mb_defconfig new file +2 -0
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="simpleImage.lx9_mmu"
linux/Config.in +0 -0
index 86dc32a..138feb3 100644
@@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
 	help

linux/Config.in config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE · line 130

Quoted 10 lines
linux/Config.in +8 -0
 	  Path to the kernel configuration file
 
+config BR2_LINUX_KERNEL_DTS_FILE
+    string "Device Tree dts file location"
+    depends on BR2_microblaze
+    help
+      Path from where the dts file has to be copied
+      The final "custom target" name depends on the
+      dts file name:
+          <name>.dts --> simpleImage.<name>

Device tree support isn't specific to microblaze. It's incredible that
we didn't have that in buildroot yet! Can you make a separate patch to add device tree support? The generic device tree support of course wouldn't have the combination of zImage and .dtb into a simpleImage, so you'd have to add an explicit '$(MAKE) ....dtb' to the linux build commands.

Of course, there should also be support to select an in-kernel dts
(just like the in-kernel defconfigs).

Quoted 8 lines
linux/Config.in +0 -0
 #
 # Binary format
 #
linux/linux.mk +0 -0
index ae236d4..ade867a 100644

linux/linux.mk endef · line 122

Quoted 6 lines
linux/linux.mk +3 -0
@@ -117,6 +117,18 @@ endef
 
 LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES
 
+ifeq ($(KERNEL_ARCH),microblaze)
+# on microblaze, we always want mkimage
+LINUX_DEPENDENCIES+=host-uboot-tools

I think you should define a new image type BR2_LINUX_KERNEL_SIMPLEIMAGE
for microblaze, and only add this dependency if that image type is chosen.

linux/linux.mk endef · line 130

Quoted 8 lines
linux/linux.mk +8 -0
+
+define LINUX_COPY_DTS
+    if test -f "$(BR2_LINUX_KERNEL_DTS_FILE)" ; then \
+        cp $(BR2_LINUX_KERNEL_DTS_FILE) $(@D)/arch/microblaze/boot/dts ; \
+    else \
+        echo "Cannot copy dts file!" ; \
+    fi
+endef

The path should be $(KERNEL_ARCH_PATH)/boot/dts.

It requires an mkdir -p to make sure the target directory exists.

The test -f is redundant, since cp will simply fail and terminate the build
if the source file doesn't exist.

You also need an extra make variable to remove the quotes:
LINUX_KERNEL_DTS_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_DTS_FILE))

And the define should be wrapped in a
ifneq ($(LINUX_KERNEL_DTS_FILE),)
...
endif

linux/linux.mk define LINUX_CONFIGURE_CMDS · line 147

Quoted 10 lines
linux/linux.mk +3 -0
+endif
 
 ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
 KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
@@ -131,6 +143,8 @@ define LINUX_CONFIGURE_CMDS
 	$(if $(BR2_ARM_EABI),
 		$(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config),
 		$(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config))
+    $(if $(BR2_microblaze),
+        $(call LINUX_COPY_DTS))

No call is needed here, the COPY_DTS is not a function. And the
condition isn't necessary: the variable will default to empty.

Quoted 31 lines
linux/linux.mk +2 -0
 	# As the kernel gets compiled before root filesystems are
 	# built, we create a fake cpio file. It'll be
 	# replaced later by the real cpio archive, and the kernel will be
@@ -215,6 +229,8 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LI
 	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)
 	# Copy the kernel image to its final destination
 	cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
+	# If there is a .ub file copy it to the final destination
+	test -f $(LINUX_IMAGE_PATH).ub && cp $(LINUX_IMAGE_PATH).ub $(BINARIES_DIR)
 	$(Q)touch $@
 
 # The initramfs building code must make sure this target gets called
target/Config.in.arch +4 -0
index 417441d..0524307 100644
@@ -21,6 +21,8 @@ config BR2_i386
 config BR2_m68k
 	bool "m68k"
 	depends on BROKEN # ice in uclibc / inet_ntoa_r
+config BR2_microblaze
+    bool "microblaze"
 config BR2_mips
 	bool "mips"
 config BR2_mipsel
@@ -477,6 +479,19 @@ config BR2_powerpc_SPE
 	depends on BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc
 endchoice
 
+choice 
+	prompt "Target Endianess"

target/Config.in.arch config BR2_powerpc_SPE · line 493

Quoted 10 lines
target/Config.in.arch +10 -0
+	depends on BR2_microblaze
+	default BR2_microblazeel
+	help 
+	  Endianess of the Microblaze Processor
+
+config BR2_microblazeel
+	bool "Little Endian"
+config BR2_microblazebe
+	bool "Big Endian"
+endchoice

For ARM and MIPS we define the endianness as the main architecture, not
as a subarchitecture. I would do the same for microblaze.

It does make sense to add a summarizing hidden BR2_microblaze, like this:

config BR2_microblaze

	bool
	default y if BR2_microblazeel || BR2_microblazebe
Quoted 21 lines
target/Config.in.arch +4 -2
+
 config BR2_ARCH
 	string
 	default "arm"		if BR2_arm
@@ -508,6 +523,7 @@ config BR2_ARCH
 	default "i686"		if BR2_x86_athlon
 	default "i686"		if BR2_x86_athlon_4
 	default "m68k"		if BR2_m68k
+	default "microblaze"	if BR2_microblaze
 	default "mips"		if BR2_mips
 	default "mipsel"	if BR2_mipsel
 	default "powerpc"	if BR2_powerpc
@@ -533,11 +549,13 @@ config BR2_ARCH
 
 config BR2_ENDIAN
 	string
-	default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
-			    BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64
+   default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
+			    BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64 || \

target/Config.in.arch config BR2_ARCH · line 561

Quoted 10 lines
target/Config.in.arch +4 -2
+			    BR2_microblazeel 
 	default "BIG"    if BR2_armeb || BR2_avr32 || BR2_m68k || BR2_mips || \
-			    BR2_powerpc || BR2_sh2 || BR2_sh2a || \
-			    BR2_sh3eb || BR2_sh4eb || BR2_sh4aeb || BR2_sparc
+			    BR2_powerpc || BR2_sh2 || BR2_sh2a || BR2_sh3eb || \
+			    BR2_sh4eb || BR2_sh4aeb || BR2_sparc || \
+				BR2_microblazebe
 
 config BR2_GCC_TARGET_TUNE
 	string

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#19 lore raw

PATCH 1/1 Added microblaze patch

Arnout,

I agree with the comments. I'll get on it and have something ASAP. I want to have this in the coming release.

Additionally, I have been working on a Microblaze specific patch which adds the ability to copy parameters.h to the required directory in uboot. This is required to build a working u-boot for a custom board.

Spenser

Quoted 246 lines · Arnout Vandecappelle
Quoted 7 lines · On Monday 13 February 2012 02:03:58 Spenser Gilliland wrote:

Arnout,

This is the patch with some minor adjustments. ?I've tested it using a big endian toolchain. ?Stephen used a little endian toolchain.

I got rid of the BR2_GCC_TARGET_TUNE as the build errored out when I attempt it with the raw patch. ?The error stated that target tune was not supported by the compiler.

Spenser

?Thanks for this patch!

?A few remarks:

* Please add a relevant commit message. ?It starts with a single line short description followed by an empty line. ?Then one or more paragraphs of explanation (probably not much needed in this case). ?And finally, one or more Signed-off-by lines.

* Add a Signed-off-by line for yourself. ?This is a short way for you to assert that you are entitled to contribute the patch under buildroot's GPL license. ?See ?http://kerneltrap.org/files/Jeremy/DCO.txt for more details.

* In addition, include the Signed-off-by line of the original poster:

* There were also a few remarks from Peter Kosgaard, Alvaro Gamez and Thomas Petazonni. ?Could you include those?

* See additional remarks below.

?If you don't have the time to do all this yourself, please let us know so someone else can take it over. ?Hopefully it won't fall between the cracks again :-)

[snip]

configs/spartan6lx9_mb_defconfig line 5

Quoted 11 lines
configs/spartan6lx9_mb_defconfig new file +5 -0
new file mode 100644
index 0000000..5ae1ede
@@ -0,0 +1,18 @@
+BR2_microblaze=y
+BR2_microblazel=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_PATH="/opt/microblazeel-unknown-linux-gnu/"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="microblazeel-unknown-linux-gnu"

?I don't think we should have defconfigs that depend on pre-extracted toolchains. Instead, the Xilinx toolchain should be added to the supported external toolchains like Sourcery.

configs/spartan6lx9_mb_defconfig line 9

Quoted 5 lines
configs/spartan6lx9_mb_defconfig new file +4 -0
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
 
+BR2_TARGET_GENERIC_HOSTNAME="Microblaze Buildroot"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Microblaze Buildroot"

?No need to change the defaults here.

configs/spartan6lx9_mb_defconfig line 16

Quoted 7 lines
configs/spartan6lx9_mb_defconfig new file +7 -0
+BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0"
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu_defconfig"
+BR2_LINUX_KERNEL_DTS_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu.dts"

?The $(TOPDIR)/ is redundant: the build is always executed from $(TOPDIR).

Quoted 10 lines
configs/spartan6lx9_mb_defconfig new file +2 -0
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="simpleImage.lx9_mmu"
linux/Config.in +0 -0
index 86dc32a..138feb3 100644
@@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE

? ? ? help
? ? ? ? Path to the kernel configuration file

Quoted 8 lines

+config BR2_LINUX_KERNEL_DTS_FILE
+ ? ?string "Device Tree dts file location"
+ ? ?depends on BR2_microblaze
+ ? ?help
+ ? ? ?Path from where the dts file has to be copied
+ ? ? ?The final "custom target" name depends on the
+ ? ? ?dts file name:
+ ? ? ? ? ?<name>.dts --> simpleImage.<name>

?Device tree support isn't specific to microblaze. ?It's incredible that we didn't have that in buildroot yet! ?Can you make a separate patch to add device tree support? ?The generic device tree support of course wouldn't have the combination of zImage and .dtb into a simpleImage, so you'd have to add an explicit '$(MAKE) ....dtb' to the linux build commands.

?Of course, there should also be support to select an in-kernel dts (just like the in-kernel defconfigs).

Quoted 11 lines

?#
?# Binary format
?#

linux/linux.mk +0 -0
index ae236d4..ade867a 100644
@@ -117,6 +117,18 @@ endef
 

?LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES

linux/linux.mk endef · line 122

Quoted 3 lines
linux/linux.mk +3 -0
+ifeq ($(KERNEL_ARCH),microblaze)
+# on microblaze, we always want mkimage
+LINUX_DEPENDENCIES+=host-uboot-tools

?I think you should define a new image type BR2_LINUX_KERNEL_SIMPLEIMAGE for microblaze, and only add this dependency if that image type is chosen.

linux/linux.mk

Quoted 8 lines
linux/linux.mk +8 -0
+
+define LINUX_COPY_DTS
+ ? ?if test -f "$(BR2_LINUX_KERNEL_DTS_FILE)" ; then \
+ ? ? ? ?cp $(BR2_LINUX_KERNEL_DTS_FILE) $(@D)/arch/microblaze/boot/dts ; \
+ ? ?else \
+ ? ? ? ?echo "Cannot copy dts file!" ; \
+ ? ?fi
+endef

?The path should be $(KERNEL_ARCH_PATH)/boot/dts.

?It requires an mkdir -p to make sure the target directory exists.

?The test -f is redundant, since cp will simply fail and terminate the build if the source file doesn't exist.

?You also need an extra make variable to remove the quotes:
LINUX_KERNEL_DTS_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_DTS_FILE))

?And the define should be wrapped in a
ifneq ($(LINUX_KERNEL_DTS_FILE),)
...
endif

linux/linux.mk define LINUX_CONFIGURE_CMDS · line 147

Quoted 10 lines

+endif

?ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
?KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig

linux/linux.mk +2 -0
@@ -131,6 +143,8 @@ define LINUX_CONFIGURE_CMDS
 ? ? ? $(if $(BR2_ARM_EABI),
 ? ? ? ? ? ? ? $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config),
 ? ? ? ? ? ? ? $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config))
+ ? ?$(if $(BR2_microblaze),
+ ? ? ? ?$(call LINUX_COPY_DTS))

?No call is needed here, the COPY_DTS is not a function. ?And the condition isn't necessary: the variable will default to empty.

Quoted 31 lines

? ? ? # As the kernel gets compiled before root filesystems are ? ? ? # built, we create a fake cpio file. It'll be
? ? ? # replaced later by the real cpio archive, and the kernel will be

linux/linux.mk +0 -0
@@ -215,6 +229,8 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LI
 ? ? ? $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)

? ? ? # Copy the kernel image to its final destination
? ? ? cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
+ ? ? # If there is a .ub file copy it to the final destination
+ ? ? test -f $(LINUX_IMAGE_PATH).ub && cp $(LINUX_IMAGE_PATH).ub $(BINARIES_DIR) ? ? ? $(Q)touch $@

?# The initramfs building code must make sure this target gets called

target/Config.in.arch +0 -0
index 417441d..0524307 100644
@@ -21,6 +21,8 @@ config BR2_i386

?config BR2_m68k
? ? ? bool "m68k"
? ? ? depends on BROKEN # ice in uclibc / inet_ntoa_r +config BR2_microblaze
+ ? ?bool "microblaze"
?config BR2_mips
? ? ? bool "mips"
?config BR2_mipsel

target/Config.in.arch +0 -0
@@ -477,6 +479,19 @@ config BR2_powerpc_SPE

? ? ? depends on BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc ?endchoice

target/Config.in.arch +2 -0
+choice
+ ? ? prompt "Target Endianess"

target/Config.in.arch

Quoted 10 lines
target/Config.in.arch +10 -0
+ ? ? depends on BR2_microblaze
+ ? ? default BR2_microblazeel
+ ? ? help
+ ? ? ? Endianess of the Microblaze Processor
+
+config BR2_microblazeel
+ ? ? bool "Little Endian"
+config BR2_microblazebe
+ ? ? bool "Big Endian"
+endchoice

?For ARM and MIPS we define the endianness as the main architecture, not as a subarchitecture. ?I would do the same for microblaze.

?It does make sense to add a summarizing hidden BR2_microblaze, like this:

config BR2_microblaze
? ? ? ?bool
? ? ? ?default y if BR2_microblazeel || BR2_microblazebe

Quoted 26 lines

+
?config BR2_ARCH
? ? ? string
? ? ? default "arm" ? ? ? ? ? if BR2_arm

target/Config.in.arch +0 -0
@@ -508,6 +523,7 @@ config BR2_ARCH

? ? ? default "i686" ? ? ? ? ?if BR2_x86_athlon
? ? ? default "i686" ? ? ? ? ?if BR2_x86_athlon_4
? ? ? default "m68k" ? ? ? ? ?if BR2_m68k
+ ? ? default "microblaze" ? ?if BR2_microblaze
? ? ? default "mips" ? ? ? ? ?if BR2_mips
? ? ? default "mipsel" ? ? ? ?if BR2_mipsel
? ? ? default "powerpc" ? ? ? if BR2_powerpc

target/Config.in.arch +0 -0
@@ -533,11 +549,13 @@ config BR2_ARCH
 

?config BR2_ENDIAN
? ? ? string

- ? ? default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
- ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64
+ ? default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64 || \
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_microblazeel
? ? ? default "BIG" ? ?if BR2_armeb || BR2_avr32 || BR2_m68k || BR2_mips || \
- ? ? ? ? ? ? ? ? ? ? ? ? BR2_powerpc || BR2_sh2 || BR2_sh2a || \
- ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh3eb || BR2_sh4eb || BR2_sh4aeb || BR2_sparc
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_powerpc || BR2_sh2 || BR2_sh2a || BR2_sh3eb || \
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh4eb || BR2_sh4aeb || BR2_sparc || \
Quoted 5 lines

+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? BR2_microblazebe

?config BR2_GCC_TARGET_TUNE
? ? ? string

?Regards,
?Arnout

--
Arnout Vandecappelle ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? arnout at mind be Senior Embedded Software Architect ? ? ? ? ? ? ? ? +32-16-286540 Essensium/Mind ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium ? ? ? ? ? ? ? ?BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: ?7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology
#20 lore raw

PATCH 1/1 Added microblaze patch

Arnout,

I'm running into an issue downloading the toolchain. The toolchain is located in a tar ball inside a git repo. I tried the following in toolchain/toolchain-external/ext-tool.mk and it works from the command line but fails in a buildroot build.

ifeq ($(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_20),y)? TOOLCHAIN_EXTERNAL_SITE="http://git.xilinx.com/?p=xldk/microblaze_v2.0.git;a=blob;f="? TOOLCHAIN_EXTERNAL_SOURCE=microblaze-unknown-linux-gnu.tgz

It may be easier to just host these externally. Is there a host available for hosting tarballs?

Spenser

Quoted 267 lines · Spenser Gilliland

Arnout,

I agree with the comments. ?I'll get on it and have something ASAP. ?I want to have this in the coming release.

Additionally, I have been working on a Microblaze specific patch which adds the ability to copy parameters.h to the required directory in uboot. ?This is required to build a working u-boot for a custom board.

Spenser

Quoted 239 lines · Arnout Vandecappelle
Quoted 7 lines · On Monday 13 February 2012 02:03:58 Spenser Gilliland wrote:

Arnout,

This is the patch with some minor adjustments. ?I've tested it using a big endian toolchain. ?Stephen used a little endian toolchain.

I got rid of the BR2_GCC_TARGET_TUNE as the build errored out when I attempt it with the raw patch. ?The error stated that target tune was not supported by the compiler.

Spenser

?Thanks for this patch!

?A few remarks:

* Please add a relevant commit message. ?It starts with a single line short description followed by an empty line. ?Then one or more paragraphs of explanation (probably not much needed in this case). ?And finally, one or more Signed-off-by lines.

* Add a Signed-off-by line for yourself. ?This is a short way for you to assert that you are entitled to contribute the patch under buildroot's GPL license. ?See ?http://kerneltrap.org/files/Jeremy/DCO.txt for more details.

* In addition, include the Signed-off-by line of the original poster:

* There were also a few remarks from Peter Kosgaard, Alvaro Gamez and Thomas Petazonni. ?Could you include those?

* See additional remarks below.

?If you don't have the time to do all this yourself, please let us know so someone else can take it over. ?Hopefully it won't fall between the cracks again :-)

[snip]

configs/spartan6lx9_mb_defconfig line 5

Quoted 11 lines
configs/spartan6lx9_mb_defconfig new file +5 -0
new file mode 100644
index 0000000..5ae1ede
@@ -0,0 +1,18 @@
+BR2_microblaze=y
+BR2_microblazel=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_PATH="/opt/microblazeel-unknown-linux-gnu/"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="microblazeel-unknown-linux-gnu"

?I don't think we should have defconfigs that depend on pre-extracted toolchains. Instead, the Xilinx toolchain should be added to the supported external toolchains like Sourcery.

configs/spartan6lx9_mb_defconfig line 9

Quoted 5 lines
configs/spartan6lx9_mb_defconfig new file +4 -0
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
 
+BR2_TARGET_GENERIC_HOSTNAME="Microblaze Buildroot"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Microblaze Buildroot"

?No need to change the defaults here.

configs/spartan6lx9_mb_defconfig line 16

Quoted 7 lines
configs/spartan6lx9_mb_defconfig new file +7 -0
+BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0"
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu_defconfig"
+BR2_LINUX_KERNEL_DTS_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu.dts"

?The $(TOPDIR)/ is redundant: the build is always executed from $(TOPDIR).

Quoted 10 lines
configs/spartan6lx9_mb_defconfig new file +2 -0
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="simpleImage.lx9_mmu"
linux/Config.in +0 -0
index 86dc32a..138feb3 100644
@@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE

? ? ? help
? ? ? ? Path to the kernel configuration file

Quoted 8 lines

+config BR2_LINUX_KERNEL_DTS_FILE
+ ? ?string "Device Tree dts file location"
+ ? ?depends on BR2_microblaze
+ ? ?help
+ ? ? ?Path from where the dts file has to be copied
+ ? ? ?The final "custom target" name depends on the
+ ? ? ?dts file name:
+ ? ? ? ? ?<name>.dts --> simpleImage.<name>

?Device tree support isn't specific to microblaze. ?It's incredible that we didn't have that in buildroot yet! ?Can you make a separate patch to add device tree support? ?The generic device tree support of course wouldn't have the combination of zImage and .dtb into a simpleImage, so you'd have to add an explicit '$(MAKE) ....dtb' to the linux build commands.

?Of course, there should also be support to select an in-kernel dts (just like the in-kernel defconfigs).

Quoted 11 lines

?#
?# Binary format
?#

linux/linux.mk +0 -0
index ae236d4..ade867a 100644
@@ -117,6 +117,18 @@ endef
 

?LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES

linux/linux.mk endef · line 122

Quoted 3 lines
linux/linux.mk +3 -0
+ifeq ($(KERNEL_ARCH),microblaze)
+# on microblaze, we always want mkimage
+LINUX_DEPENDENCIES+=host-uboot-tools

?I think you should define a new image type BR2_LINUX_KERNEL_SIMPLEIMAGE for microblaze, and only add this dependency if that image type is chosen.

linux/linux.mk

Quoted 8 lines
linux/linux.mk +8 -0
+
+define LINUX_COPY_DTS
+ ? ?if test -f "$(BR2_LINUX_KERNEL_DTS_FILE)" ; then \
+ ? ? ? ?cp $(BR2_LINUX_KERNEL_DTS_FILE) $(@D)/arch/microblaze/boot/dts ; \
+ ? ?else \
+ ? ? ? ?echo "Cannot copy dts file!" ; \
+ ? ?fi
+endef

?The path should be $(KERNEL_ARCH_PATH)/boot/dts.

?It requires an mkdir -p to make sure the target directory exists.

?The test -f is redundant, since cp will simply fail and terminate the build if the source file doesn't exist.

?You also need an extra make variable to remove the quotes:
LINUX_KERNEL_DTS_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_DTS_FILE))

?And the define should be wrapped in a
ifneq ($(LINUX_KERNEL_DTS_FILE),)
...
endif

linux/linux.mk define LINUX_CONFIGURE_CMDS · line 147

Quoted 10 lines

+endif

?ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
?KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig

linux/linux.mk +2 -0
@@ -131,6 +143,8 @@ define LINUX_CONFIGURE_CMDS
 ? ? ? $(if $(BR2_ARM_EABI),
 ? ? ? ? ? ? ? $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config),
 ? ? ? ? ? ? ? $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config))
+ ? ?$(if $(BR2_microblaze),
+ ? ? ? ?$(call LINUX_COPY_DTS))

?No call is needed here, the COPY_DTS is not a function. ?And the condition isn't necessary: the variable will default to empty.

Quoted 31 lines

? ? ? # As the kernel gets compiled before root filesystems are ? ? ? # built, we create a fake cpio file. It'll be
? ? ? # replaced later by the real cpio archive, and the kernel will be

linux/linux.mk +0 -0
@@ -215,6 +229,8 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LI
 ? ? ? $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)

? ? ? # Copy the kernel image to its final destination
? ? ? cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
+ ? ? # If there is a .ub file copy it to the final destination
+ ? ? test -f $(LINUX_IMAGE_PATH).ub && cp $(LINUX_IMAGE_PATH).ub $(BINARIES_DIR) ? ? ? $(Q)touch $@

?# The initramfs building code must make sure this target gets called

target/Config.in.arch +0 -0
index 417441d..0524307 100644
@@ -21,6 +21,8 @@ config BR2_i386

?config BR2_m68k
? ? ? bool "m68k"
? ? ? depends on BROKEN # ice in uclibc / inet_ntoa_r +config BR2_microblaze
+ ? ?bool "microblaze"
?config BR2_mips
? ? ? bool "mips"
?config BR2_mipsel

target/Config.in.arch +0 -0
@@ -477,6 +479,19 @@ config BR2_powerpc_SPE

? ? ? depends on BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc ?endchoice

target/Config.in.arch +2 -0
+choice
+ ? ? prompt "Target Endianess"

target/Config.in.arch

Quoted 10 lines
target/Config.in.arch +10 -0
+ ? ? depends on BR2_microblaze
+ ? ? default BR2_microblazeel
+ ? ? help
+ ? ? ? Endianess of the Microblaze Processor
+
+config BR2_microblazeel
+ ? ? bool "Little Endian"
+config BR2_microblazebe
+ ? ? bool "Big Endian"
+endchoice

?For ARM and MIPS we define the endianness as the main architecture, not as a subarchitecture. ?I would do the same for microblaze.

?It does make sense to add a summarizing hidden BR2_microblaze, like this:

config BR2_microblaze
? ? ? ?bool
? ? ? ?default y if BR2_microblazeel || BR2_microblazebe

Quoted 26 lines

+
?config BR2_ARCH
? ? ? string
? ? ? default "arm" ? ? ? ? ? if BR2_arm

target/Config.in.arch +0 -0
@@ -508,6 +523,7 @@ config BR2_ARCH

? ? ? default "i686" ? ? ? ? ?if BR2_x86_athlon
? ? ? default "i686" ? ? ? ? ?if BR2_x86_athlon_4
? ? ? default "m68k" ? ? ? ? ?if BR2_m68k
+ ? ? default "microblaze" ? ?if BR2_microblaze
? ? ? default "mips" ? ? ? ? ?if BR2_mips
? ? ? default "mipsel" ? ? ? ?if BR2_mipsel
? ? ? default "powerpc" ? ? ? if BR2_powerpc

target/Config.in.arch +0 -0
@@ -533,11 +549,13 @@ config BR2_ARCH
 

?config BR2_ENDIAN
? ? ? string

- ? ? default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
- ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64
+ ? default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64 || \
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_microblazeel
? ? ? default "BIG" ? ?if BR2_armeb || BR2_avr32 || BR2_m68k || BR2_mips || \
- ? ? ? ? ? ? ? ? ? ? ? ? BR2_powerpc || BR2_sh2 || BR2_sh2a || \
- ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh3eb || BR2_sh4eb || BR2_sh4aeb || BR2_sparc
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_powerpc || BR2_sh2 || BR2_sh2a || BR2_sh3eb || \
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh4eb || BR2_sh4aeb || BR2_sparc || \
Quoted 5 lines

+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? BR2_microblazebe

?config BR2_GCC_TARGET_TUNE
? ? ? string

?Regards,
?Arnout

Quoted 7 lines

--
Arnout Vandecappelle ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? arnout at mind be Senior Embedded Software Architect ? ? ? ? ? ? ? ? +32-16-286540 Essensium/Mind ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium ? ? ? ? ? ? ? ?BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: ?7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

--
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology
#21 lore raw

PATCH 1/1 Added microblaze patch

Arnout,

I'm having an issue generating the dtb. What is the command in the kernel build needed to make a dts into a dtb. (should I just use dtc directly?)

Spenser

Quoted 291 lines · Spenser Gilliland

Arnout,

I'm running into an issue downloading the toolchain. ?The toolchain is located in a tar ball inside a git repo. ?I tried the following in toolchain/toolchain-external/ext-tool.mk and it works from the command line but fails in a buildroot build.

ifeq ($(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_20),y)? TOOLCHAIN_EXTERNAL_SITE="http://git.xilinx.com/?p=xldk/microblaze_v2.0.git;a=blob;f="? TOOLCHAIN_EXTERNAL_SOURCE=microblaze-unknown-linux-gnu.tgz

It may be easier to just host these externally. ?Is there a host available for hosting tarballs?

Spenser

Quoted 263 lines · Spenser Gilliland

Arnout,

I agree with the comments. ?I'll get on it and have something ASAP. ?I want to have this in the coming release.

Additionally, I have been working on a Microblaze specific patch which adds the ability to copy parameters.h to the required directory in uboot. ?This is required to build a working u-boot for a custom board.

Spenser

Quoted 239 lines · Arnout Vandecappelle
Quoted 7 lines · On Monday 13 February 2012 02:03:58 Spenser Gilliland wrote:

Arnout,

This is the patch with some minor adjustments. ?I've tested it using a big endian toolchain. ?Stephen used a little endian toolchain.

I got rid of the BR2_GCC_TARGET_TUNE as the build errored out when I attempt it with the raw patch. ?The error stated that target tune was not supported by the compiler.

Spenser

?Thanks for this patch!

?A few remarks:

* Please add a relevant commit message. ?It starts with a single line short description followed by an empty line. ?Then one or more paragraphs of explanation (probably not much needed in this case). ?And finally, one or more Signed-off-by lines.

* Add a Signed-off-by line for yourself. ?This is a short way for you to assert that you are entitled to contribute the patch under buildroot's GPL license. ?See ?http://kerneltrap.org/files/Jeremy/DCO.txt for more details.

* In addition, include the Signed-off-by line of the original poster:

* There were also a few remarks from Peter Kosgaard, Alvaro Gamez and Thomas Petazonni. ?Could you include those?

* See additional remarks below.

?If you don't have the time to do all this yourself, please let us know so someone else can take it over. ?Hopefully it won't fall between the cracks again :-)

[snip]

configs/spartan6lx9_mb_defconfig line 5

Quoted 11 lines
configs/spartan6lx9_mb_defconfig new file +5 -0
new file mode 100644
index 0000000..5ae1ede
@@ -0,0 +1,18 @@
+BR2_microblaze=y
+BR2_microblazel=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_PATH="/opt/microblazeel-unknown-linux-gnu/"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="microblazeel-unknown-linux-gnu"

?I don't think we should have defconfigs that depend on pre-extracted toolchains. Instead, the Xilinx toolchain should be added to the supported external toolchains like Sourcery.

configs/spartan6lx9_mb_defconfig line 9

Quoted 5 lines
configs/spartan6lx9_mb_defconfig new file +4 -0
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
 
+BR2_TARGET_GENERIC_HOSTNAME="Microblaze Buildroot"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Microblaze Buildroot"

?No need to change the defaults here.

configs/spartan6lx9_mb_defconfig line 16

Quoted 7 lines
configs/spartan6lx9_mb_defconfig new file +7 -0
+BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0"
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu_defconfig"
+BR2_LINUX_KERNEL_DTS_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu.dts"

?The $(TOPDIR)/ is redundant: the build is always executed from $(TOPDIR).

Quoted 10 lines
configs/spartan6lx9_mb_defconfig new file +2 -0
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="simpleImage.lx9_mmu"
linux/Config.in +0 -0
index 86dc32a..138feb3 100644
@@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE

? ? ? help
? ? ? ? Path to the kernel configuration file

Quoted 8 lines

+config BR2_LINUX_KERNEL_DTS_FILE
+ ? ?string "Device Tree dts file location"
+ ? ?depends on BR2_microblaze
+ ? ?help
+ ? ? ?Path from where the dts file has to be copied
+ ? ? ?The final "custom target" name depends on the
+ ? ? ?dts file name:
+ ? ? ? ? ?<name>.dts --> simpleImage.<name>

?Device tree support isn't specific to microblaze. ?It's incredible that we didn't have that in buildroot yet! ?Can you make a separate patch to add device tree support? ?The generic device tree support of course wouldn't have the combination of zImage and .dtb into a simpleImage, so you'd have to add an explicit '$(MAKE) ....dtb' to the linux build commands.

?Of course, there should also be support to select an in-kernel dts (just like the in-kernel defconfigs).

Quoted 11 lines

?#
?# Binary format
?#

linux/linux.mk +0 -0
index ae236d4..ade867a 100644
@@ -117,6 +117,18 @@ endef
 

?LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES

linux/linux.mk endef · line 122

Quoted 3 lines
linux/linux.mk +3 -0
+ifeq ($(KERNEL_ARCH),microblaze)
+# on microblaze, we always want mkimage
+LINUX_DEPENDENCIES+=host-uboot-tools

?I think you should define a new image type BR2_LINUX_KERNEL_SIMPLEIMAGE for microblaze, and only add this dependency if that image type is chosen.

linux/linux.mk

Quoted 8 lines
linux/linux.mk +8 -0
+
+define LINUX_COPY_DTS
+ ? ?if test -f "$(BR2_LINUX_KERNEL_DTS_FILE)" ; then \
+ ? ? ? ?cp $(BR2_LINUX_KERNEL_DTS_FILE) $(@D)/arch/microblaze/boot/dts ; \
+ ? ?else \
+ ? ? ? ?echo "Cannot copy dts file!" ; \
+ ? ?fi
+endef

?The path should be $(KERNEL_ARCH_PATH)/boot/dts.

?It requires an mkdir -p to make sure the target directory exists.

?The test -f is redundant, since cp will simply fail and terminate the build if the source file doesn't exist.

?You also need an extra make variable to remove the quotes:
LINUX_KERNEL_DTS_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_DTS_FILE))

?And the define should be wrapped in a
ifneq ($(LINUX_KERNEL_DTS_FILE),)
...
endif

linux/linux.mk define LINUX_CONFIGURE_CMDS · line 147

Quoted 10 lines

+endif

?ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
?KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig

linux/linux.mk +2 -0
@@ -131,6 +143,8 @@ define LINUX_CONFIGURE_CMDS
 ? ? ? $(if $(BR2_ARM_EABI),
 ? ? ? ? ? ? ? $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config),
 ? ? ? ? ? ? ? $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config))
+ ? ?$(if $(BR2_microblaze),
+ ? ? ? ?$(call LINUX_COPY_DTS))

?No call is needed here, the COPY_DTS is not a function. ?And the condition isn't necessary: the variable will default to empty.

Quoted 31 lines

? ? ? # As the kernel gets compiled before root filesystems are ? ? ? # built, we create a fake cpio file. It'll be
? ? ? # replaced later by the real cpio archive, and the kernel will be

linux/linux.mk +0 -0
@@ -215,6 +229,8 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LI
 ? ? ? $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)

? ? ? # Copy the kernel image to its final destination
? ? ? cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
+ ? ? # If there is a .ub file copy it to the final destination
+ ? ? test -f $(LINUX_IMAGE_PATH).ub && cp $(LINUX_IMAGE_PATH).ub $(BINARIES_DIR) ? ? ? $(Q)touch $@

?# The initramfs building code must make sure this target gets called

target/Config.in.arch +0 -0
index 417441d..0524307 100644
@@ -21,6 +21,8 @@ config BR2_i386

?config BR2_m68k
? ? ? bool "m68k"
? ? ? depends on BROKEN # ice in uclibc / inet_ntoa_r +config BR2_microblaze
+ ? ?bool "microblaze"
?config BR2_mips
? ? ? bool "mips"
?config BR2_mipsel

target/Config.in.arch +0 -0
@@ -477,6 +479,19 @@ config BR2_powerpc_SPE

? ? ? depends on BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc ?endchoice

target/Config.in.arch +2 -0
+choice
+ ? ? prompt "Target Endianess"

target/Config.in.arch

Quoted 10 lines
target/Config.in.arch +10 -0
+ ? ? depends on BR2_microblaze
+ ? ? default BR2_microblazeel
+ ? ? help
+ ? ? ? Endianess of the Microblaze Processor
+
+config BR2_microblazeel
+ ? ? bool "Little Endian"
+config BR2_microblazebe
+ ? ? bool "Big Endian"
+endchoice

?For ARM and MIPS we define the endianness as the main architecture, not as a subarchitecture. ?I would do the same for microblaze.

?It does make sense to add a summarizing hidden BR2_microblaze, like this:

config BR2_microblaze
? ? ? ?bool
? ? ? ?default y if BR2_microblazeel || BR2_microblazebe

Quoted 26 lines

+
?config BR2_ARCH
? ? ? string
? ? ? default "arm" ? ? ? ? ? if BR2_arm

target/Config.in.arch +0 -0
@@ -508,6 +523,7 @@ config BR2_ARCH

? ? ? default "i686" ? ? ? ? ?if BR2_x86_athlon
? ? ? default "i686" ? ? ? ? ?if BR2_x86_athlon_4
? ? ? default "m68k" ? ? ? ? ?if BR2_m68k
+ ? ? default "microblaze" ? ?if BR2_microblaze
? ? ? default "mips" ? ? ? ? ?if BR2_mips
? ? ? default "mipsel" ? ? ? ?if BR2_mipsel
? ? ? default "powerpc" ? ? ? if BR2_powerpc

target/Config.in.arch +0 -0
@@ -533,11 +549,13 @@ config BR2_ARCH
 

?config BR2_ENDIAN
? ? ? string

- ? ? default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
- ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64
+ ? default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64 || \
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_microblazeel
? ? ? default "BIG" ? ?if BR2_armeb || BR2_avr32 || BR2_m68k || BR2_mips || \
- ? ? ? ? ? ? ? ? ? ? ? ? BR2_powerpc || BR2_sh2 || BR2_sh2a || \
- ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh3eb || BR2_sh4eb || BR2_sh4aeb || BR2_sparc
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_powerpc || BR2_sh2 || BR2_sh2a || BR2_sh3eb || \
+ ? ? ? ? ? ? ? ? ? ? ? ? BR2_sh4eb || BR2_sh4aeb || BR2_sparc || \
Quoted 5 lines

+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? BR2_microblazebe

?config BR2_GCC_TARGET_TUNE
? ? ? string

?Regards,
?Arnout

Quoted 7 lines

--
Arnout Vandecappelle ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? arnout at mind be Senior Embedded Software Architect ? ? ? ? ? ? ? ? +32-16-286540 Essensium/Mind ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium ? ? ? ? ? ? ? ?BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: ?7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

Quoted 4 lines

--
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology

--
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology
#22 lore raw

PATCH 1/1 Added microblaze patch

Quoted 4 lines · On Tuesday 14 February 2012 06:02:26 Spenser Gilliland wrote:

I'm having an issue generating the dtb. What is the command in the kernel build needed to make a dts into a dtb. (should I just use dtc directly?)

As I mentioned in an earlier mail:

$(MAKE) <linux make flags> <dtc basename>.dtb

Regards,
Arnout

Signature · 9 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120214/8b9a3c3e/attachment.html>
#23 lore raw

PATCH 1/1 Added microblaze patch

Arnout,

I've tried a make target of both <DTS_NAME>.dtb and $(KERNEL_ARCH_PATH/boot/<DTS_NAME>.dtb with no success. Are you sure this is correct? I've tried this both within buildroot and just on a kernel tree directly with the microblaze toolchain.

Spenser

Quoted 37 lines · Arnout Vandecappelle
Quoted 7 lines · On Tuesday 14 February 2012 06:02:26 Spenser Gilliland wrote:

I'm having an issue generating the dtb.??What is the command in the

kernel build needed to make a dts into a dtb. (should I just use dtc

directly?)

As I mentioned in an earlier mail:

$(MAKE) <linux make flags> <dtc basename>.dtb

Regards,

Arnout

--

Arnout Vandecappelle arnout at mind be

Senior Embedded Software Architect +32-16-286540

Essensium/Mind http://www.mind.be

G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven

LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle

GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology
#24 lore raw

PATCH 1/1 Added microblaze patch

Quoted 6 lines · On Thursday 16 February 2012 22:28:08 Spenser Gilliland wrote:

Arnout,

I've tried a make target of both <DTS_NAME>.dtb and $(KERNEL_ARCH_PATH/boot/<DTS_NAME>.dtb with no success. Are you sure this is correct? I've tried this both within buildroot and just on a kernel tree directly with the microblaze toolchain.

I've never tried it myself, I've just looked at
http://www.denx.de/wiki/DULG/LinuxFDTBlob

Regards,
Arnout

Signature · 9 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120218/4e61b07e/attachment.html>
#25 lore raw

PATCH 1/1 Added microblaze patch

I can use the dtc directly. This may be the best solution. As that interface appears to be non-uniform across architectures.

Spenser

Quoted 40 lines · Arnout Vandecappelle
Quoted 11 lines · On Thursday 16 February 2012 22:28:08 Spenser Gilliland wrote:

Arnout,

I've tried a make target of both <DTS_NAME>.dtb and

$(KERNEL_ARCH_PATH/boot/<DTS_NAME>.dtb with no success. Are you sure

this is correct? I've tried this both within buildroot and just on a

kernel tree directly with the microblaze toolchain.

I've never tried it myself, I've just looked at

http://www.denx.de/wiki/DULG/LinuxFDTBlob

Regards,

Arnout

--

Arnout Vandecappelle arnout at mind be

Senior Embedded Software Architect +32-16-286540

Essensium/Mind http://www.mind.be

G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven

LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle

GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

Signature · 3 lines
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology
#26 lore raw

PATCH 1/1 Added microblaze patch

In reply to Spenser Gilliland

The problem is that wget tries to save the file as

index.html?p=xldk%2Fmicroblaze_v2.0.git;a=blob;f=microblaze-unknown-linux-gnu.tgz

so the expected file microblaze-unknown-linux-gnu.tgz doesn't appear. Maybe it is possible to redefine DOWNLOAD_WGET with a third parameter that makes wget execute with -O output.tar.gz option?

2012/2/14 Spenser Gilliland <[email protected]>

Quoted 327 lines

Arnout,

I'm running into an issue downloading the toolchain. The toolchain is located in a tar ball inside a git repo. I tried the following in toolchain/toolchain-external/ext-tool.mk and it works from the command line but fails in a buildroot build.

ifeq ($(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_20),y)? TOOLCHAIN_EXTERNAL_SITE="
http://git.xilinx.com/?p=xldk/microblaze_v2.0.git;a=blob;f="?
TOOLCHAIN_EXTERNAL_SOURCE=microblaze-unknown-linux-gnu.tgz

It may be easier to just host these externally. Is there a host available for hosting tarballs?

Spenser

Quoted 14 lines · Spenser Gilliland

Arnout,

I agree with the comments. I'll get on it and have something ASAP. I want to have this in the coming release.

Additionally, I have been working on a Microblaze specific patch which adds the ability to copy parameters.h to the required directory in uboot. This is required to build a working u-boot for a custom board.

Spenser

On Mon, Feb 13, 2012 at 3:37 PM, Arnout Vandecappelle <[email protected]>

Quoted 4 lines · wrote:
Quoted 4 lines · On Monday 13 February 2012 02:03:58 Spenser Gilliland wrote:
Quoted 3 lines

Arnout,

This is the patch with some minor adjustments. I've tested it using a

big endian toolchain. Stephen used a little endian toolchain.

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

I got rid of the BR2_GCC_TARGET_TUNE as the build errored out when I

attempt it with the raw patch. The error stated that target tune was not supported by the compiler.

Quoted 9 lines
Quoted 9 lines
Quoted 2 lines

Spenser

Thanks for this patch!

A few remarks:

* Please add a relevant commit message. It starts with a single line short description followed by an empty line. Then one or more

paragraphs

Quoted 1 line
Quoted 1 line

of explanation (probably not much needed in this case). And finally,

one

Quoted 13 lines
Quoted 13 lines

or more Signed-off-by lines.

* Add a Signed-off-by line for yourself. This is a short way for you to assert that you are entitled to contribute the patch under buildroot's GPL license. See http://kerneltrap.org/files/Jeremy/DCO.txt for more details.

* In addition, include the Signed-off-by line of the original poster:

* There were also a few remarks from Peter Kosgaard, Alvaro Gamez and Thomas Petazonni. Could you include those?

Quoted 8 lines
Quoted 8 lines

* See additional remarks below.

If you don't have the time to do all this yourself, please let us know
so someone else can take it over. Hopefully it won't fall between the cracks again :-)

[snip]

Review

Quoted 1 line
(quoted diff) +0 -0

b/configs/spartan6lx9_mb_defconfig

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

new file mode 100644
index 0000000..5ae1ede

configs/spartan6lx9_mb_defconfig new file +0 -0
Quoted 8 lines
Quoted 8 lines

configs/spartan6lx9_mb_defconfig line 5

Quoted 6 lines
configs/spartan6lx9_mb_defconfig new file +5 -0
@@ -0,0 +1,18 @@
+BR2_microblaze=y
+BR2_microblazel=y
+BR2_TOOLCHAIN_EXTERNAL=y
+BR2_TOOLCHAIN_EXTERNAL_PATH="/opt/microblazeel-unknown-linux-gnu/"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="microblazeel-unknown-linux-gnu"

I don't think we should have defconfigs that depend on pre-extracted

toolchains.

Quoted 1 line
Quoted 1 line

Instead, the Xilinx toolchain should be added to the supported external

toolchains

Quoted 9 lines
Quoted 9 lines

like Sourcery.

configs/spartan6lx9_mb_defconfig line 9

Quoted 5 lines
configs/spartan6lx9_mb_defconfig new file +4 -0
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
+BR2_TOOLCHAIN_EXTERNAL_CXX=y
 
+BR2_TARGET_GENERIC_HOSTNAME="Microblaze Buildroot"
+BR2_TARGET_GENERIC_ISSUE="Welcome to Microblaze Buildroot"

No need to change the defaults here.

Quoted 6 lines
Quoted 6 lines

configs/spartan6lx9_mb_defconfig line 14

Quoted 6 lines
configs/spartan6lx9_mb_defconfig new file +5 -0
+BR2_TARGET_GENERIC_GETTY_PORT="ttyUL0"
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_TARGET_ROOTFS_INITRAMFS=y
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y

+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu_defconfig"

Quoted 1 line
Quoted 1 line
Quoted 1 line

+BR2_LINUX_KERNEL_DTS_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu.dts"

Quoted 1 line
Quoted 1 line

The $(TOPDIR)/ is redundant: the build is always executed from

$(TOPDIR).

Quoted 38 lines
Quoted 38 lines
Quoted 9 lines
configs/spartan6lx9_mb_defconfig new file +2 -0
+BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM=y
+BR2_LINUX_KERNEL_IMAGE_TARGET_NAME="simpleImage.lx9_mmu"
linux/Config.in +0 -0
index 86dc32a..138feb3 100644
@@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE
      help

linux/Config.in config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE · line 130

Quoted 10 lines
linux/Config.in +8 -0
        Path to the kernel configuration file
 
+config BR2_LINUX_KERNEL_DTS_FILE
+    string "Device Tree dts file location"
+    depends on BR2_microblaze
+    help
+      Path from where the dts file has to be copied
+      The final "custom target" name depends on the
+      dts file name:
+          <name>.dts --> simpleImage.<name>

Device tree support isn't specific to microblaze. It's incredible that
we didn't have that in buildroot yet! Can you make a separate patch to add device tree support? The generic device tree support of course wouldn't have the combination of zImage and .dtb into a simpleImage, so you'd have to add an explicit '$(MAKE) ....dtb' to the linux build commands.

Of course, there should also be support to select an in-kernel dts
(just like the in-kernel defconfigs).

Quoted 9 lines
linux/Config.in +0 -0
 #
 # Binary format
 #
linux/linux.mk +0 -0
index ae236d4..ade867a 100644
@@ -117,6 +117,18 @@ endef
 
Quoted 8 lines
Quoted 8 lines

linux/linux.mk endef · line 122

Quoted 5 lines
linux/linux.mk +3 -0
 LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES
 
+ifeq ($(KERNEL_ARCH),microblaze)
+# on microblaze, we always want mkimage
+LINUX_DEPENDENCIES+=host-uboot-tools

I think you should define a new image type BR2_LINUX_KERNEL_SIMPLEIMAGE
for microblaze, and only add this dependency if that image type is

chosen.

Quoted 6 lines
Quoted 6 lines

linux/linux.mk endef

Quoted 6 lines
linux/linux.mk +4 -0
+
+define LINUX_COPY_DTS
+    if test -f "$(BR2_LINUX_KERNEL_DTS_FILE)" ; then \
+        cp $(BR2_LINUX_KERNEL_DTS_FILE)

$(@D)/arch/microblaze/boot/dts ; \

Quoted 10 lines
Quoted 10 lines

linux/linux.mk endef · line 130

Quoted 4 lines
linux/linux.mk +4 -0
+    else \
+        echo "Cannot copy dts file!" ; \
+    fi
+endef

The path should be $(KERNEL_ARCH_PATH)/boot/dts.

It requires an mkdir -p to make sure the target directory exists.

The test -f is redundant, since cp will simply fail and terminate the

build

Quoted 10 lines
Quoted 10 lines

if the source file doesn't exist.

You also need an extra make variable to remove the quotes:
LINUX_KERNEL_DTS_FILE = $(call qstrip,$(BR2_LINUX_KERNEL_DTS_FILE))

And the define should be wrapped in a
ifneq ($(LINUX_KERNEL_DTS_FILE),)
...
endif

Quoted 4 lines
Quoted 4 lines

linux/linux.mk endef

Quoted 4 lines
linux/linux.mk +1 -0
+endif
 
 ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
 KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call

qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig

Quoted 9 lines
Quoted 9 lines

linux/linux.mk define LINUX_CONFIGURE_CMDS · line 147

Quoted 6 lines
linux/linux.mk +2 -0
@@ -131,6 +143,8 @@ define LINUX_CONFIGURE_CMDS
      $(if $(BR2_ARM_EABI),
              $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config),
              $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config))
+    $(if $(BR2_microblaze),
+        $(call LINUX_COPY_DTS))

No call is needed here, the COPY_DTS is not a function. And the
condition isn't necessary: the variable will default to empty.

Quoted 4 lines
Quoted 4 lines

linux/linux.mk $(LINUX_DIR)/.stamp_initramfs_rebuilt:

Quoted 4 lines
linux/linux.mk +0 -0
      # As the kernel gets compiled before root filesystems are
      # built, we create a fake cpio file. It'll be
      # replaced later by the real cpio archive, and the kernel will be
@@ -215,6 +229,8 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt:

$(LINUX_DIR)/.stamp_target_installed $(LI

Quoted 1 line
Quoted 1 line

linux/linux.mk $(LINUX_DIR)/.stamp_initramfs_rebuilt: · line 229

Quoted 1 line
linux/linux.mk +0 -0
      $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D)

$(LINUX_IMAGE_NAME)

Quoted 4 lines
Quoted 4 lines

linux/linux.mk $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LI

Quoted 4 lines
linux/linux.mk +2 -0
      # Copy the kernel image to its final destination
      cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
+     # If there is a .ub file copy it to the final destination
+     test -f $(LINUX_IMAGE_PATH).ub && cp $(LINUX_IMAGE_PATH).ub

$(BINARIES_DIR)

Quoted 18 lines
Quoted 18 lines
Quoted 17 lines
linux/linux.mk +0 -0
      $(Q)touch $@
 
 # The initramfs building code must make sure this target gets called
target/Config.in.arch +2 -0
index 417441d..0524307 100644
@@ -21,6 +21,8 @@ config BR2_i386
 config BR2_m68k
      bool "m68k"
      depends on BROKEN # ice in uclibc / inet_ntoa_r
+config BR2_microblaze
+    bool "microblaze"
 config BR2_mips
      bool "mips"
 config BR2_mipsel

target/Config.in.arch config BR2_powerpc_SPE · line 479

Quoted 1 line
target/Config.in.arch +0 -0
@@ -477,6 +479,19 @@ config BR2_powerpc_SPE
      depends on BR2_powerpc_8540 || BR2_powerpc_8548 ||

BR2_powerpc_e500mc

Quoted 18 lines
Quoted 18 lines
Quoted 4 lines
target/Config.in.arch +2 -0
 endchoice
 
+choice
+     prompt "Target Endianess"

target/Config.in.arch config BR2_powerpc_SPE · line 493

Quoted 10 lines
target/Config.in.arch +10 -0
+     depends on BR2_microblaze
+     default BR2_microblazeel
+     help
+       Endianess of the Microblaze Processor
+
+config BR2_microblazeel
+     bool "Little Endian"
+config BR2_microblazebe
+     bool "Big Endian"
+endchoice

For ARM and MIPS we define the endianness as the main architecture, not
as a subarchitecture. I would do the same for microblaze.

Quoted 1 line
Quoted 1 line

It does make sense to add a summarizing hidden BR2_microblaze, like

this:

Quoted 19 lines
Quoted 19 lines

config BR2_microblaze

       bool
       default y if BR2_microblazeel || BR2_microblazebe
Quoted 14 lines
target/Config.in.arch +2 -0
+
 config BR2_ARCH
      string
      default "arm"           if BR2_arm
@@ -508,6 +523,7 @@ config BR2_ARCH
      default "i686"          if BR2_x86_athlon
      default "i686"          if BR2_x86_athlon_4
      default "m68k"          if BR2_m68k
+     default "microblaze"    if BR2_microblaze
      default "mips"          if BR2_mips
      default "mipsel"        if BR2_mipsel
      default "powerpc"       if BR2_powerpc
@@ -533,11 +549,13 @@ config BR2_ARCH
 
Quoted 3 lines
Quoted 3 lines

target/Config.in.arch config BR2_ARCH

Quoted 3 lines
target/Config.in.arch +0 -1
 config BR2_ENDIAN
      string
-     default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 ||

BR2_mipsel || \

Quoted 1 line
Quoted 1 line

target/Config.in.arch config BR2_ARCH · line 537

Quoted 1 line
target/Config.in.arch +0 -1
-                         BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64
|| BR2_sh64
>>> +   default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel
|| \
>>> +                         BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64
|| BR2_sh64 || \
>>> +                         BR2_microblazeel
>>>       default "BIG"    if BR2_armeb || BR2_avr32 || BR2_m68k ||
BR2_mips || \
>>> -                         BR2_powerpc || BR2_sh2 || BR2_sh2a || \
>>> -                         BR2_sh3eb || BR2_sh4eb || BR2_sh4aeb ||

BR2_sparc

Quoted 1 line
Quoted 1 line

target/Config.in.arch config BR2_ARCH · line 552

Quoted 1 line
target/Config.in.arch +1 -0
+                         BR2_powerpc || BR2_sh2 || BR2_sh2a ||

BR2_sh3eb || \

Quoted 8 lines
Quoted 8 lines
Quoted 6 lines
target/Config.in.arch +2 -0
+                         BR2_sh4eb || BR2_sh4aeb || BR2_sparc || \
+                             BR2_microblazebe
 
 config BR2_GCC_TARGET_TUNE
      string
 
Quoted 8 lines
Quoted 8 lines

Regards,
Arnout

--

Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR

Leuven

Quoted 9 lines
Quoted 2 lines
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

--
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology

--
Spenser Gilliland
Computer Engineer
Illinois Institute of Technology
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

Signature · 4 lines
?lvaro G?mez Machado
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120214/5f80e71e/attachment-0001.html>
#27 lore raw

PATCH 1/1 Added microblaze patch

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Alvaro" == Alvaro Gamez <[email protected]> writes:

Alvaro> The problem is that wget tries to save the file as Alvaro> index.html?p=xldk%2Fmicroblaze_v2.0.git;a=blob;f= Alvaro> microblaze-unknown-linux-gnu.tgz

Alvaro> so the expected file microblaze-unknown-linux-gnu.tgz doesn't Alvaro> appear. Maybe it is possible to redefine DOWNLOAD_WGET with a Alvaro> third parameter that makes wget execute with -O output.tar.gz Alvaro> option?

Yes, I think so. I'll look into it. We had somewhat similar problems with mpfr, where upstream provides a non-unique patch name (patches or allpatches or something like that), where we would like to rename it to mpfr-$VERSION-patches after download.

Signature · 1 line
Bye, Peter Korsgaard
#28 lore raw

PATCH 1/1 DOWNLOAD_WGET: use -O instead of -P to set output file

In reply to Alvaro Gamez

From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]>

Some URLs use url-encoded arguments to specify the file to download. Wget will then use an output file name which includes all the ampersands and such. However, this is not what we see from buildroot.

E.g.:
FOO_SITE="http://git.foo.com/?p=foo.git;a=blob;f=" FOO_SOURCE="foo.tgz"

wget will download this into $(DL_DIR)/index.html?p=foo.git;a=blob;f=foo.tgz buildroot thinks it's in $(DL_DIR)/foo.tgz

To make sure the view of wget and buildroot are consistent, specify the output file explicitly.

---
Alvaro, this should fix the download problem in a more generic way.

---
 package/Makefile.package.in |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
package/Makefile.package.in +1 -1
index 33461b4..ea44c6c 100644
@@ -238,7 +238,7 @@ endef
 
 define DOWNLOAD_WGET
 	test -e $(DL_DIR)/$(2) || \
-	$(WGET) -P $(DL_DIR) $(call qstrip,$(1))/$(2)
+	$(WGET) -O $(DL_DIR)/$(2) $(call qstrip,$(1))/$(2)
 endef
 
 define SOURCE_CHECK_WGET
Signature · 1 line
1.7.8.3
#29 lore raw

PATCH 1/1 DOWNLOAD_WGET: use -O instead of -P to set output file

Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Arnout" == Arnout Vandecappelle (Essensium/Mind) <[email protected]> writes:

Arnout> From: "Arnout Vandecappelle (Essensium/Mind)" <[email protected]> Arnout> Some URLs use url-encoded arguments to specify the file to download. Arnout> Wget will then use an output file name which includes all the ampersands Arnout> and such. However, this is not what we see from buildroot.

Arnout> E.g.:
Arnout> FOO_SITE="http://git.foo.com/?p=foo.git;a=blob;f=" Arnout> FOO_SOURCE="foo.tgz"

Committed to next, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#30 lore raw

[Buildroot] Added microblaze patch

In reply to Arnout Vandecappelle

Hello all,

there has been a lot of effort regarding the microblaze integration in the last months. But there is still some work to be done to get it into the buildroot tree.

Obviously, there are still some issues:

* Device-tree support
* SimpleImage support
* Toolchain download from the Xilinx site (see below)
* Some more improvements/flaws
* maybe more?

I rebased the patches (not the one with dts) to the current HEAD and tested them (see seperate mail with patches).

Alvaro's Patch to load the toolchain from Xilinx does not work for me.
http://git.xilinx.com always ends up with a timeout leaving an empty tgz-file in the dl folder after the third try. To come further I downloaded the tgz manually.

After doing some fixes the whole build starting from "make Avnet_S6LX9_MicroBoard_defconfig" in an empty folder works for me.

I am really interested in getting Microblaze into the next buildroot release, and have some (little) time to contribute.

I just fixed some of Arnout's remarks, the others seem to be related to the DTS and SimpleImage topic:

Am 13.02.2012 22:37, schrieb Arnout Vandecappelle:

Quoted 7 lines · On Monday 13 February 2012 02:03:58 Spenser Gilliland wrote:

+BR2_TOOLCHAIN_EXTERNAL=y

configs/spartan6lx9_mb_defconfig line 5

Quoted 2 lines
configs/spartan6lx9_mb_defconfig new file +2 -0
+BR2_TOOLCHAIN_EXTERNAL_PATH="/opt/microblazeel-unknown-linux-gnu/"
+BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="microblazeel-unknown-linux-gnu"

I don't think we should have defconfigs that depend on pre-extracted toolchains.
Instead, the Xilinx toolchain should be added to the supported external toolchains like Sourcery.

Downloading the Xilinx toolchain seems not to work. Should we really insist in doing this automatically, since putting a tgz into a git archive seems
kind of foolish. I think using a previously downloaded tgz file will be good until
we can build our own toolchain.

Quoted 3 lines

+BR2_TARGET_GENERIC_HOSTNAME="Microblaze Buildroot"

Quoted 1 line

+BR2_TARGET_GENERIC_ISSUE="Welcome to Microblaze Buildroot"

No need to change the defaults here.

Removed these.

Quoted 3 lines

configs/spartan6lx9_mb_defconfig line 16

Quoted 2 lines
configs/spartan6lx9_mb_defconfig new file +2 -0
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu_defconfig"
+BR2_LINUX_KERNEL_DTS_FILE="$(TOPDIR)/board/relinux/avnet_LX9MicroBoard/lx9_mmu.dts"

The $(TOPDIR)/ is redundant: the build is always executed from $(TOPDIR).

Removed these

Kind regards

Stephan

Signature · 4 lines
reLinux     -    Stephan Hoffmann
Am Schmidtgrund 124    50765 K?ln
Tel. +49.221.95595-19    Fax: -64
www.reLinux.de     sho at reLinux.de
#31 lore raw

[Buildroot] Added microblaze patch

Hi

2012/3/11 Stephan Hoffmann <[email protected]>

Quoted 5 lines

Alvaro's Patch to load the toolchain from Xilinx does not work for me.
http://git.xilinx.com always ends up with a timeout leaving an empty tgz-file in the dl folder after the third try. To come further I downloaded the tgz manually.

I don't see the reason for this. I've downloaded it several times with no problem. Maybe there has been some DNS issues or the server was down for a while?

Signature · 4 lines
?lvaro G?mez Machado
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120312/b91478b4/attachment.html>
#32 lore raw

[Buildroot] Added microblaze patch

Am 12.03.2012 11:58, schrieb Alvaro Gamez:

Quoted 10 lines

Hi

2012/3/11 Stephan Hoffmann <sho at relinux.de <mailto:[email protected]>>

Alvaro's Patch to load the toolchain from Xilinx does not work for me.
http://git.xilinx.com always ends up with a timeout leaving an empty tgz-file in the dl folder after the third try. To come further I downloaded the tgz manually.

Quoted 3 lines

I don't see the reason for this. I've downloaded it several times with no problem. Maybe there has been some DNS issues or the server was down for a while?

I see, seems you are right. Now the download seems to work better. But it loads a XML file. The URL wget tries to load is:

http://git.xilinx.com/?p=xldk/microblaze_v2.0_le.git;a=blob;hb=HEAD;f=/microblazeel-unknown-linux-gnu.tgz

This extra "/" in front of the filename seems to be the problem. In fact, I don't know where it comes from;-(

When I use the version with the "h=d7..." it seems to work. possibly the URL gets cut to:

http://git.xilinx.com/?p=xldk/microblaze_v2.0_le.git;a=blob;h=d7b493c5dbcc24ba9cc3be2e4c14d6d9701e6805

which is printed in the log.

In any case I have to add escape characters in front of the semicolons. I'll send a patch fixing this.

Have a nice time

Stephan

Quoted 5 lines
Signature · 2 lines
-- 
?lvaro G?mez Machado
Signature · 9 lines
reLinux     -    Stephan Hoffmann
Am Schmidtgrund 124    50765 K?ln
Tel. +49.221.95595-19    Fax: -64
www.reLinux.de     sho at reLinux.de


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120312/c3ddf4dc/attachment.html>
#33 lore raw

[Buildroot] Added microblaze patch

Quoted 8 lines · On Monday 12 March 2012 19:03:22 Stephan Hoffmann wrote:

I see, seems you are right. Now the download seems to work better. But it loads a XML file. The URL wget tries to load is:

http://git.xilinx.com/?p=xldk/microblaze_v2.0_le.git;a=blob;hb=HEAD;f=/microblazeel-unknown-linux-gnu.tgz

This extra "/" in front of the filename seems to be the problem. In fact, I don't know where it comes from;-(

Alvaro had patches that refactored the DOWNLOAD macro so the / was
removed. Did you apply those patches?

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
#34 lore raw

[Buildroot] Added microblaze patch

Am 13.03.2012 23:35, schrieb Arnout Vandecappelle:

Quoted 11 lines · On Monday 12 March 2012 19:03:22 Stephan Hoffmann wrote:
Quoted 8 lines

I see, seems you are right. Now the download seems to work better. But it loads a XML file. The URL wget tries to load is:

http://git.xilinx.com/?p=xldk/microblaze_v2.0_le.git;a=blob;hb=HEAD;f=/microblazeel-unknown-linux-gnu.tgz

This extra "/" in front of the filename seems to be the problem. In fact, I don't know where it comes from;-(

Alvaro had patches that refactored the DOWNLOAD macro so the / was
removed. Did you apply those patches?

No, I missed them.

Thank you

Stephan

Quoted 3 lines

Regards,
Arnout

Signature · 4 lines
reLinux     -    Stephan Hoffmann
Am Schmidtgrund 124    50765 K?ln
Tel. +49.221.95595-19    Fax: -64
www.reLinux.de     sho at reLinux.de