diff mbox

[1/1] Fix microblize little endian toolchain

Message ID 1395230465-4421-1-git-send-email-xvikto03@stud.fit.vutbr.cz
State Accepted
Commit c220581c789a49e6e00e7125301bd23d1651224a
Headers show

Commit Message

Jan Viktorin March 19, 2014, 12:01 p.m. UTC
From: Jan Drazil <xdrazi00@stud.fit.vutbr.cz>

Buildroot toolchain creates big endian binaries instead of little endian
ones for microblaze architecture. The reason is wrong BR2_ARCH string.
KERNEL_ARCH must contain microblaze in both cases.

Signed-off-by: Jan Drazil <xdrazi00@stud.fit.vutbr.cz>
Signed-off-by: Jan Viktorin <xvikto03@stud.fit.vutbr.cz>
---
 Makefile                  | 3 ++-
 arch/Config.in.microblaze | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

Comments

Gustavo Zacarias March 19, 2014, 1:02 p.m. UTC | #1
On 03/19/2014 09:01 AM, Jan Viktorin wrote:

> From: Jan Drazil <xdrazi00@stud.fit.vutbr.cz>
> 
> Buildroot toolchain creates big endian binaries instead of little endian
> ones for microblaze architecture. The reason is wrong BR2_ARCH string.
> KERNEL_ARCH must contain microblaze in both cases.
> 
> Signed-off-by: Jan Drazil <xdrazi00@stud.fit.vutbr.cz>
> Signed-off-by: Jan Viktorin <xvikto03@stud.fit.vutbr.cz>

Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar>

The qemu_microblazeel_mmu_defconfig now starts the kernel (before it was
a big failure). Still not great since OOM killer strikes before the
login prompt.
Regards.
Jan Viktorin March 19, 2014, 1:53 p.m. UTC | #2
On Wed, 19 Mar 2014 10:02:07 -0300
Gustavo Zacarias <gustavo@zacarias.com.ar> wrote:

> On 03/19/2014 09:01 AM, Jan Viktorin wrote:
> 
> > From: Jan Drazil <xdrazi00@stud.fit.vutbr.cz>
> > 
> > Buildroot toolchain creates big endian binaries instead of little
> > endian ones for microblaze architecture. The reason is wrong
> > BR2_ARCH string. KERNEL_ARCH must contain microblaze in both cases.
> > 
> > Signed-off-by: Jan Drazil <xdrazi00@stud.fit.vutbr.cz>
> > Signed-off-by: Jan Viktorin <xvikto03@stud.fit.vutbr.cz>
> 
> Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> Tested-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
> 
> The qemu_microblazeel_mmu_defconfig now starts the kernel (before it
> was a big failure). Still not great since OOM killer strikes before
> the login prompt.
> Regards.
> 

Hello Gustavo,

thanks for the testing report.

It is possible to boot the system on Microblaze but it is impossible to
login (getty shows prompt without hostname: "(none) login:" and it
always fails). A similar behaviour was seen a while before with one of
the Xilinx toolchains (14.3?).

We tried to hack into the system from an init script by starting a
shell. This failed with Illegal instruction exception. Another strange
thing happens while calling "ls -l /". It lists all the filesystem
recursively (I suppose, this is wrong as well).

Do you have any idea how to debug it? (qemu + gdb?)

Regards
Jan Viktorin
Peter Korsgaard March 20, 2014, 3:47 p.m. UTC | #3
>>>>> "Jan" == Jan Viktorin <xvikto03@stud.fit.vutbr.cz> writes:

 > From: Jan Drazil <xdrazi00@stud.fit.vutbr.cz>
 > Buildroot toolchain creates big endian binaries instead of little endian
 > ones for microblaze architecture. The reason is wrong BR2_ARCH string.
 > KERNEL_ARCH must contain microblaze in both cases.

Committed, thanks.
diff mbox

Patch

diff --git a/Makefile b/Makefile
index 011af57..d49d7bf 100644
--- a/Makefile
+++ b/Makefile
@@ -318,7 +318,8 @@  KERNEL_ARCH:=$(shell echo "$(ARCH)" | sed -e "s/-.*//" \
 	-e s/parisc64/parisc/ \
 	-e s/powerpc64/powerpc/ \
 	-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
-	-e s/sh.*/sh/)
+	-e s/sh.*/sh/ \
+	-e s/microblazeel/microblaze/)
 
 ZCAT:=$(call qstrip,$(BR2_ZCAT))
 BZCAT:=$(call qstrip,$(BR2_BZCAT))
diff --git a/arch/Config.in.microblaze b/arch/Config.in.microblaze
index dbdd99a..2d4c1fe 100644
--- a/arch/Config.in.microblaze
+++ b/arch/Config.in.microblaze
@@ -1,5 +1,6 @@ 
 config BR2_ARCH
-	default "microblaze"
+	default "microblazeel"  if BR2_microblazeel
+	default "microblaze"    if BR2_microblazebe
 
 config BR2_ENDIAN
 	default "LITTLE" if BR2_microblazeel