mirror of https://github.com/hak5/openwrt.git
103 lines
5.1 KiB
Diff
103 lines
5.1 KiB
Diff
|
diff -urN linux-2.6.19.2.orig/arch/cris/arch-v10/boot/compressed/hw_settings.S linux-2.6.19.2/arch/cris/arch-v10/boot/compressed/hw_settings.S
|
||
|
--- linux-2.6.19.2.orig/arch/cris/arch-v10/boot/compressed/hw_settings.S 2007-05-29 23:30:35.000000000 +0200
|
||
|
+++ linux-2.6.19.2/arch/cris/arch-v10/boot/compressed/hw_settings.S 2007-05-29 23:33:44.000000000 +0200
|
||
|
@@ -60,3 +60,5 @@
|
||
|
.dword R_PORT_PB_SET
|
||
|
.dword PB_SET_VALUE
|
||
|
.dword 0 ; No more register values
|
||
|
+ .ascii "ACME_PART_MAGIC" ; Magic number
|
||
|
+ .dword 0xdeadc0de
|
||
|
diff -urN linux-2.6.19.2.orig/arch/cris/arch-v10/boot/compressed/hw_settings_416.S linux-2.6.19.2/arch/cris/arch-v10/boot/compressed/hw_settings_416.S
|
||
|
--- linux-2.6.19.2.orig/arch/cris/arch-v10/boot/compressed/hw_settings_416.S 2007-05-29 23:30:35.000000000 +0200
|
||
|
+++ linux-2.6.19.2/arch/cris/arch-v10/boot/compressed/hw_settings_416.S 2007-05-29 23:33:44.000000000 +0200
|
||
|
@@ -60,3 +60,5 @@
|
||
|
.dword R_PORT_PB_SET
|
||
|
.dword PB_SET_VALUE
|
||
|
.dword 0 ; No more register values
|
||
|
+ .ascii "ACME_PART_MAGIC" ; Magic number
|
||
|
+ .dword 0xdeadc0de
|
||
|
diff -urN linux-2.6.19.2.orig/arch/cris/arch-v10/boot/compressed/hw_settings_816.S linux-2.6.19.2/arch/cris/arch-v10/boot/compressed/hw_settings_816.S
|
||
|
--- linux-2.6.19.2.orig/arch/cris/arch-v10/boot/compressed/hw_settings_816.S 2007-05-29 23:30:35.000000000 +0200
|
||
|
+++ linux-2.6.19.2/arch/cris/arch-v10/boot/compressed/hw_settings_816.S 2007-05-29 23:33:44.000000000 +0200
|
||
|
@@ -60,3 +60,5 @@
|
||
|
.dword R_PORT_PB_SET
|
||
|
.dword PB_SET_VALUE
|
||
|
.dword 0 ; No more register values
|
||
|
+ .ascii "ACME_PART_MAGIC" ; Magic number
|
||
|
+ .dword 0xdeadc0de
|
||
|
diff -urN linux-2.6.19.2.orig/arch/cris/arch-v10/boot/compressed/hw_settings_832.S linux-2.6.19.2/arch/cris/arch-v10/boot/compressed/hw_settings_832.S
|
||
|
--- linux-2.6.19.2.orig/arch/cris/arch-v10/boot/compressed/hw_settings_832.S 2007-05-29 23:30:35.000000000 +0200
|
||
|
+++ linux-2.6.19.2/arch/cris/arch-v10/boot/compressed/hw_settings_832.S 2007-05-29 23:33:44.000000000 +0200
|
||
|
@@ -60,3 +60,5 @@
|
||
|
.dword R_PORT_PB_SET
|
||
|
.dword PB_SET_VALUE
|
||
|
.dword 0 ; No more register values
|
||
|
+ .ascii "ACME_PART_MAGIC" ; Magic number
|
||
|
+ .dword 0xdeadc0de
|
||
|
diff -urN linux-2.6.19.2.orig/arch/cris/arch-v10/boot/compressed/hw_settings_MCM.S linux-2.6.19.2/arch/cris/arch-v10/boot/compressed/hw_settings_MCM.S
|
||
|
--- linux-2.6.19.2.orig/arch/cris/arch-v10/boot/compressed/hw_settings_MCM.S 2007-05-29 23:30:35.000000000 +0200
|
||
|
+++ linux-2.6.19.2/arch/cris/arch-v10/boot/compressed/hw_settings_MCM.S 2007-05-29 23:33:44.000000000 +0200
|
||
|
@@ -60,3 +60,5 @@
|
||
|
.dword R_PORT_PB_SET
|
||
|
.dword PB_SET_VALUE
|
||
|
.dword 0 ; No more register values
|
||
|
+ .ascii "ACME_PART_MAGIC" ; Magic number
|
||
|
+ .dword 0xdeadc0de
|
||
|
diff -urN linux-2.6.19.2.orig/arch/cris/arch-v10/drivers/axisflashmap.c linux-2.6.19.2/arch/cris/arch-v10/drivers/axisflashmap.c
|
||
|
--- linux-2.6.19.2.orig/arch/cris/arch-v10/drivers/axisflashmap.c 2007-05-29 23:30:36.000000000 +0200
|
||
|
+++ linux-2.6.19.2/arch/cris/arch-v10/drivers/axisflashmap.c 2007-05-29 23:36:31.000000000 +0200
|
||
|
@@ -421,6 +421,11 @@
|
||
|
struct partitiontable_entry *ptable;
|
||
|
int use_default_ptable = 1; /* Until proven otherwise. */
|
||
|
const char pmsg[] = " /dev/flash%d at 0x%08x, size 0x%08x\n";
|
||
|
+ unsigned int kernel_part_size = 0;
|
||
|
+ unsigned char *flash_mem = (unsigned char*)(FLASH_CACHED_ADDR);
|
||
|
+ unsigned int flash_scan_count = 0;
|
||
|
+ const char *part_magic = "ACME_PART_MAGIC";
|
||
|
+ unsigned int magic_len = strlen(part_magic);
|
||
|
|
||
|
if (!(mymtd = flash_probe())) {
|
||
|
/* There's no reason to use this module if no flash chip can
|
||
|
@@ -432,6 +437,32 @@
|
||
|
mymtd->name, mymtd->size);
|
||
|
axisflash_mtd = mymtd;
|
||
|
}
|
||
|
+ /* scan flash to findout where out partition starts */
|
||
|
+
|
||
|
+ printk(KERN_INFO "Scanning flash for end of kernel magic\n");
|
||
|
+ for(flash_scan_count = 0; flash_scan_count < 100000; flash_scan_count++){
|
||
|
+ if(strncmp(&flash_mem[flash_scan_count], part_magic, magic_len - 1) == 0){
|
||
|
+ //printk(KERN_INFO "Found end of kernel magic at 0x%.08X\n", flash_scan_count);
|
||
|
+ kernel_part_size = flash_mem[flash_scan_count + magic_len ];
|
||
|
+ kernel_part_size <<= 8;
|
||
|
+ kernel_part_size += flash_mem[flash_scan_count + magic_len + 2];
|
||
|
+ kernel_part_size <<= 8;
|
||
|
+ kernel_part_size += flash_mem[flash_scan_count + magic_len + 1];
|
||
|
+ kernel_part_size <<= 8;
|
||
|
+ kernel_part_size += flash_mem[flash_scan_count + magic_len + 3];
|
||
|
+ printk(KERN_INFO "Kernel ends at 0x%.08X\n", kernel_part_size);
|
||
|
+ flash_scan_count = 1100000;
|
||
|
+ }
|
||
|
+ }
|
||
|
+
|
||
|
+
|
||
|
+ if(kernel_part_size){
|
||
|
+ kernel_part_size = (kernel_part_size & 0xffff0000);
|
||
|
+ //printk(KERN_INFO "Configuring partition sizes total flash 0x%.08X - kernel 0x%.08X - rootfs 0x%.08X\n", mymtd->size, kernel_part_size, mymtd->size - kernel_part_size);
|
||
|
+ axis_default_partitions[0].size = kernel_part_size;
|
||
|
+ axis_default_partitions[1].size = mymtd->size - axis_default_partitions[0].size;
|
||
|
+ axis_default_partitions[1].offset = axis_default_partitions[0].size;
|
||
|
+ }
|
||
|
|
||
|
if (mymtd) {
|
||
|
mymtd->owner = THIS_MODULE;
|
||
|
@@ -527,7 +558,7 @@
|
||
|
|
||
|
if (mymtd) {
|
||
|
if (use_default_ptable) {
|
||
|
- printk(KERN_INFO " Using default partition table.\n");
|
||
|
+ printk(KERN_INFO " Using ACME partition table.\n");
|
||
|
err = add_mtd_partitions(mymtd, axis_default_partitions,
|
||
|
NUM_DEFAULT_PARTITIONS);
|
||
|
} else {
|