fixup the weird fis location for the Sidewinder
[openwrt/svn-archive/archive.git] / target / linux / ixp4xx / patches-2.6.26 / 116-sidewinder_fis_location.patch
1 --- a/drivers/mtd/redboot.c
2 +++ b/drivers/mtd/redboot.c
3 @@ -13,6 +13,8 @@
4 #include <linux/mtd/mtd.h>
5 #include <linux/mtd/partitions.h>
6
7 +#include <asm/mach-types.h>
8 +
9 struct fis_image_desc {
10 unsigned char name[16]; // Null terminated name
11 uint32_t flash_base; // Address within FLASH of image
12 @@ -30,7 +32,8 @@
13 struct fis_list *next;
14 };
15
16 -static int directory = CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK;
17 +int directory = CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK;
18 +
19 module_param(directory, int, 0);
20
21 static inline int redboot_checksum(struct fis_image_desc *img)
22 @@ -58,6 +61,8 @@
23 #ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
24 static char nullstring[] = "unallocated";
25 #endif
26 + if (machine_is_sidewinder())
27 + directory = -5;
28
29 if ( directory < 0 ) {
30 offset = master->size + directory * master->erasesize;