[PATCH V2] mtd: bcm47xxpart: detect block aligned Squashfs partition

Rafał Miłecki zajec5 at gmail.com
Sat Sep 14 03:04:35 EDT 2013


2013/9/13 Florian Fainelli <f.fainelli at gmail.com>:
> Le vendredi 13 septembre 2013 22:25:30 Rafał Miłecki a écrit :
>> diff --git a/drivers/mtd/bcm47xxpart.c b/drivers/mtd/bcm47xxpart.c
>> index 9279a91..61213f9 100644
>> --- a/drivers/mtd/bcm47xxpart.c
>> +++ b/drivers/mtd/bcm47xxpart.c
>> @@ -32,6 +32,7 @@
>>  #define ML_MAGIC1                    0x39685a42
>>  #define ML_MAGIC2                    0x26594131
>>  #define TRX_MAGIC                    0x30524448
>> +#define SQSH_MAGIC                   0x71736873      /* shsq */
>
> You could include uapi/linux/magic.h and use the SQUASHFS_MAGIC constant
> directly, sorry for not noticing earlier.

OK, I need help with that crazy endianness here... When I look at
flash dump in hexdump (or Okteta for gui) I see:
37:0000 | 73 68 73 71 BB 03 00 00 00 00 00 00 88 1B 00 40 | shsq»..........@

bcm47xx is LE, so reading first 4 bytes results in: 0x71'73'68'73 ([3]
+ [2] + [1] + [0]). That is what I used for my SQSH_MAGIC.

However SQUASHFS_MAGIC is 0x73717368. So I need to read [2] + [3] +
[0] + [1]... Any help how to achieve that?

-- 
Rafał



More information about the linux-mtd mailing list