Adding Microblaze support to Buildroot
A message that is not in the archive (sent off-list or not yet received): [email protected]
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_headersmake[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
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.gitThanks,
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
@@ -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
@@ -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
@@ -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_3Signature · 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
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
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
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
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
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
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
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
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
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
PATCH 1/1 Adding Microblaze support to Buildroot
In reply to Thomas PetazzoniAm 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
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 -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
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
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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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_TUNEas 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@@ -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@@ -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
-0Path 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
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 calledtarget/Config.in.arch +4
-0@@ -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
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_TUNEas 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:
Signed-off-by Stephan Hoffmann <[email protected]>* 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@@ -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@@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE? ? ? help
? ? ? ? Path to the kernel configuration fileQuoted 8 lines
+config
BR2_LINUX_KERNEL_DTS_FILE
+ ? ?string "Device Tree dts file location"
+ ? ?depends onBR2_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@@ -117,6 +117,18 @@ endef?LINUX_POST_PATCH_HOOKS +=
LINUX_APPLY_PATCHESlinux/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_SIMPLEIMAGEfor 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),)
...
endiflinux/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))_defconfiglinux/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_DTSis 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 belinux/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@@ -21,6 +21,8 @@ config BR2_i386?config
BR2_m68k
? ? ? bool "m68k"
? ? ? depends on BROKEN # ice in uclibc /inet_ntoa_r+configBR2_microblaze
+ ? ?bool "microblaze"
?configBR2_mips
? ? ? bool "mips"
?configBR2_mipseltarget/Config.in.arch +0
-0@@ -477,6 +479,19 @@ config BR2_powerpc_SPE? ? ? depends on
BR2_powerpc_8540||BR2_powerpc_8548||BR2_powerpc_e500mc?endchoicetarget/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 ifBR2_microblazeel||BR2_microblazebeQuoted 26 lines
+
?configBR2_ARCH
? ? ? string
? ? ? default "arm" ? ? ? ? ? ifBR2_armtarget/Config.in.arch +0
-0@@ -508,6 +523,7 @@ config BR2_ARCH? ? ? default "i686" ? ? ? ? ?if
BR2_x86_athlon
? ? ? default "i686" ? ? ? ? ?ifBR2_x86_athlon_4
? ? ? default "m68k" ? ? ? ? ?ifBR2_m68k
+ ? ? default "microblaze" ? ?ifBR2_microblaze
? ? ? default "mips" ? ? ? ? ?ifBR2_mips
? ? ? default "mipsel" ? ? ? ?ifBR2_mipsel
? ? ? default "powerpc" ? ? ? ifBR2_powerpctarget/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
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.hto 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_TUNEas 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:
Signed-off-by Stephan Hoffmann <[email protected]>* 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@@ -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@@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE? ? ? help
? ? ? ? Path to the kernel configuration fileQuoted 8 lines
+config
BR2_LINUX_KERNEL_DTS_FILE
+ ? ?string "Device Tree dts file location"
+ ? ?depends onBR2_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@@ -117,6 +117,18 @@ endef?LINUX_POST_PATCH_HOOKS +=
LINUX_APPLY_PATCHESlinux/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_SIMPLEIMAGEfor 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),)
...
endiflinux/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))_defconfiglinux/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_DTSis 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 belinux/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@@ -21,6 +21,8 @@ config BR2_i386?config
BR2_m68k
? ? ? bool "m68k"
? ? ? depends on BROKEN # ice in uclibc /inet_ntoa_r+configBR2_microblaze
+ ? ?bool "microblaze"
?configBR2_mips
? ? ? bool "mips"
?configBR2_mipseltarget/Config.in.arch +0
-0@@ -477,6 +479,19 @@ config BR2_powerpc_SPE? ? ? depends on
BR2_powerpc_8540||BR2_powerpc_8548||BR2_powerpc_e500mc?endchoicetarget/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 ifBR2_microblazeel||BR2_microblazebeQuoted 26 lines
+
?configBR2_ARCH
? ? ? string
? ? ? default "arm" ? ? ? ? ? ifBR2_armtarget/Config.in.arch +0
-0@@ -508,6 +523,7 @@ config BR2_ARCH? ? ? default "i686" ? ? ? ? ?if
BR2_x86_athlon
? ? ? default "i686" ? ? ? ? ?ifBR2_x86_athlon_4
? ? ? default "m68k" ? ? ? ? ?ifBR2_m68k
+ ? ? default "microblaze" ? ?ifBR2_microblaze
? ? ? default "mips" ? ? ? ? ?ifBR2_mips
? ? ? default "mipsel" ? ? ? ?ifBR2_mipsel
? ? ? default "powerpc" ? ? ? ifBR2_powerpctarget/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,
?ArnoutQuoted 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
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.mkand 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.hto 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_TUNEas 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:
Signed-off-by Stephan Hoffmann <[email protected]>* 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@@ -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@@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE? ? ? help
? ? ? ? Path to the kernel configuration fileQuoted 8 lines
+config
BR2_LINUX_KERNEL_DTS_FILE
+ ? ?string "Device Tree dts file location"
+ ? ?depends onBR2_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@@ -117,6 +117,18 @@ endef?LINUX_POST_PATCH_HOOKS +=
LINUX_APPLY_PATCHESlinux/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_SIMPLEIMAGEfor 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),)
...
endiflinux/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))_defconfiglinux/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_DTSis 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 belinux/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@@ -21,6 +21,8 @@ config BR2_i386?config
BR2_m68k
? ? ? bool "m68k"
? ? ? depends on BROKEN # ice in uclibc /inet_ntoa_r+configBR2_microblaze
+ ? ?bool "microblaze"
?configBR2_mips
? ? ? bool "mips"
?configBR2_mipseltarget/Config.in.arch +0
-0@@ -477,6 +479,19 @@ config BR2_powerpc_SPE? ? ? depends on
BR2_powerpc_8540||BR2_powerpc_8548||BR2_powerpc_e500mc?endchoicetarget/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 ifBR2_microblazeel||BR2_microblazebeQuoted 26 lines
+
?configBR2_ARCH
? ? ? string
? ? ? default "arm" ? ? ? ? ? ifBR2_armtarget/Config.in.arch +0
-0@@ -508,6 +523,7 @@ config BR2_ARCH? ? ? default "i686" ? ? ? ? ?if
BR2_x86_athlon
? ? ? default "i686" ? ? ? ? ?ifBR2_x86_athlon_4
? ? ? default "m68k" ? ? ? ? ?ifBR2_m68k
+ ? ? default "microblaze" ? ?ifBR2_microblaze
? ? ? default "mips" ? ? ? ? ?ifBR2_mips
? ? ? default "mipsel" ? ? ? ?ifBR2_mipsel
? ? ? default "powerpc" ? ? ? ifBR2_powerpctarget/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,
?ArnoutQuoted 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 2F1FQuoted 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
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>
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
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>
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
PATCH 1/1 Added microblaze patch
In reply to Spenser GillilandThe 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.mkand 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.tgzIt 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.hto 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_TUNEas the build errored out when Iattempt 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:
Signed-off-by Stephan Hoffmann <[email protected]>* 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
-0b/configs/spartan6lx9_mb_defconfig
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
new file mode 100644
index 0000000..5ae1edeconfigs/spartan6lx9_mb_defconfig new file +0
-0Quoted 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@@ -120,6 +120,14 @@ config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE helplinux/Config.in config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE · line 130
Quoted 10 lines
linux/Config.in +8
-0Path 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@@ -117,6 +117,18 @@ endefQuoted 8 lines
Quoted 8 lines
linux/linux.mk endef · line 122
Quoted 5 lines
linux/linux.mk +3
-0LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES +ifeq ($(KERNEL_ARCH),microblaze) +# on microblaze, we always want mkimage +LINUX_DEPENDENCIES+=host-uboot-toolsI think you should define a new image type
BR2_LINUX_KERNEL_SIMPLEIMAGE
for microblaze, and only add this dependency if that image type ischosen.
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 +endefThe 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),)
...
endifQuoted 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/$(callqstrip,$(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_DTSis 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 calledtarget/Config.in.arch +2
-0@@ -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_mipseltarget/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_e500mcQuoted 18 lines
Quoted 18 lines
Quoted 4 lines
target/Config.in.arch +2
-0endchoice +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" +endchoiceFor 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, likethis:
Quoted 19 lines
Quoted 19 lines
config
BR2_microblazebool default y if BR2_microblazeel || BR2_microblazebeQuoted 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_ARCHQuoted 3 lines
Quoted 3 lines
target/Config.in.arch config BR2_ARCH
Quoted 3 lines
target/Config.in.arch +0
-1config 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_sparcQuoted 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 stringQuoted 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 RPRLeuven
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>
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
PATCH 1/1 DOWNLOAD_WGET: use -O instead of -P to set output file
In reply to Alvaro GamezFrom: "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
@@ -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
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
[Buildroot] Added microblaze patch
In reply to Arnout VandecappelleHello 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
[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>
[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:
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:
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>
[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:
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
[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:
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