diff options
Diffstat (limited to 'target/linux/lantiq/patches/206-owrt-brnboot.patch')
-rw-r--r-- | target/linux/lantiq/patches/206-owrt-brnboot.patch | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/target/linux/lantiq/patches/206-owrt-brnboot.patch b/target/linux/lantiq/patches/206-owrt-brnboot.patch deleted file mode 100644 index d10d66b..0000000 --- a/target/linux/lantiq/patches/206-owrt-brnboot.patch +++ /dev/null @@ -1,93 +0,0 @@ -Index: linux-3.1.10/drivers/mtd/mtdpart.c -=================================================================== ---- linux-3.1.10.orig/drivers/mtd/mtdpart.c 2012-02-14 19:38:40.102266817 +0100 -+++ linux-3.1.10/drivers/mtd/mtdpart.c 2012-02-14 19:38:40.146266819 +0100 -@@ -899,6 +899,38 @@ - return le32_to_cpu(temp) == SQUASHFS_MAGIC; - } - -+static unsigned long find_brnimage_size(struct mtd_info *mtd, -+ unsigned long offset) -+{ -+ unsigned long buf[4]; -+ // Assume at most 2MB of kernel image -+ unsigned long end = offset + (2 << 20); -+ unsigned long ptr = offset + 0x400 - 12; -+ size_t len; -+ int ret; -+ -+ while (ptr < end) { -+ long size_min = ptr - 0x400 - 12 - offset; -+ long size_max = ptr + 12 - offset; -+ ret = mtd->read(mtd, ptr, 16, &len, (void *)buf); -+ if (ret || len != 16) -+ return 0; -+ -+ if (le32_to_cpu(buf[0]) < size_min || -+ le32_to_cpu(buf[0]) > size_max) { -+ ptr += 0x400; -+ continue; -+ } -+ -+ if (le32_to_cpu(buf[3]) == SQUASHFS_MAGIC) -+ return ptr + 12 - offset; -+ -+ ptr += 0x400; -+ } -+ -+ return 0; -+} -+ - static int split_uimage(struct mtd_info *mtd, - const struct mtd_partition *part) - { -@@ -916,8 +948,11 @@ - - split_partitions[0].size = find_uimage_size(mtd, part->offset); - if (!split_partitions[0].size) { -- printk(KERN_NOTICE "no uImage found in linux partition\n"); -- return -1; -+ split_partitions[0].size = find_brnimage_size(mtd, part->offset); -+ if (!split_partitions[0].size) { -+ printk(KERN_NOTICE "no uImage or brnImage found in linux partition\n"); -+ return -1; -+ } - } - - if (!detect_squashfs_partition(mtd, -Index: linux-3.1.10/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h -=================================================================== ---- linux-3.1.10.orig/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h 2012-02-14 19:38:40.058266816 +0100 -+++ linux-3.1.10/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h 2012-02-14 19:57:07.790314179 +0100 -@@ -149,6 +149,7 @@ - - extern __iomem void *ltq_ebu_membase; - extern __iomem void *ltq_cgu_membase; -+extern unsigned long ltq_brn_boot; - - /* request a non-gpio and set the PIO config */ - extern int ltq_gpio_request(unsigned int pin, unsigned int alt0, -Index: linux-3.1.10/arch/mips/lantiq/setup.c -=================================================================== ---- linux-3.1.10.orig/arch/mips/lantiq/setup.c 2012-02-14 19:38:40.010266814 +0100 -+++ linux-3.1.10/arch/mips/lantiq/setup.c 2012-02-14 19:38:40.150266820 +0100 -@@ -20,6 +20,8 @@ - - /* assume 16M as default incase uboot fails to pass proper ramsize */ - unsigned long physical_memsize = 16L; -+/* set to 1 if the bootloader is BRN-BOOT instead of u-boot */ -+unsigned long ltq_brn_boot = 0; - - void __init plat_mem_setup(void) - { -@@ -39,6 +41,10 @@ - if (strict_strtoul(e, 0, &physical_memsize)) - pr_warn("bad memsize specified\n"); - } -+ if (!strncmp(e, "BRN-BOOT", 8)){ -+ pr_info("Found BRN-BOOT instead of u-boot\n"); -+ ltq_brn_boot = 1; -+ } - envp++; - } - physical_memsize *= 1024 * 1024; |