[PATCH] ARM: put a valid "barebox" signature in the header on big-endian systems.
Antony Pavlov
antonynpavlov at gmail.com
Sat May 12 19:56:48 EDT 2012
On 13 May 2012 01:38, Uwe Kleine-König <u.kleine-koenig at pengutronix.de> wrote:
> Hello Krzysztof,
>
> On Sat, May 05, 2012 at 11:47:19PM +0200, Krzysztof Halasa wrote:
>> Signed-off-by: Krzysztof Hałasa <khc at pm.waw.pl>
>>
>> diff --git a/arch/arm/include/asm/barebox-arm-head.h b/arch/arm/include/asm/barebox-arm-head.h
>> index 0dc3074..2c250e9 100644
>> --- a/arch/arm/include/asm/barebox-arm-head.h
>> +++ b/arch/arm/include/asm/barebox-arm-head.h
>> @@ -24,8 +24,7 @@ static inline void barebox_arm_head(void)
>> "1: b 1b\n"
>> "1: b 1b\n"
>> #endif
>> - ".word 0x65726162\n" /* 'bare' */
>> - ".word 0x00786f62\n" /* 'box' */
>> + ".asciz \"barebox\"\n"
>> ".word _text\n" /* text base. If copied there,
>> * barebox can skip relocation
>> */
> Another downside of this patch (apart from the file type detection that
> still needs adaption?) is that the magic is different depending on
> endianess.
Can this addition to the patch fix the endianess issue?
--- a/common/filetype.c
+++ b/common/filetype.c
@@ -56,7 +56,7 @@ enum filetype file_detect_type(void *_buf)
if (strncmp(buf8, "#!/bin/sh", 9) == 0)
return filetype_sh;
- if (buf[8] == 0x65726162 && buf[9] == 0x00786f62)
+ if (strncmp(buf8 + 0x20, "barebox", 7) == 0)
return filetype_arm_barebox;
if (buf[9] == 0x016f2818 || buf[9] == 0x18286f01)
return filetype_arm_zimage;
--
Best regards,
Antony Pavlov
More information about the barebox
mailing list