[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