[rdc] correct flash size and detection for sitecom targets (#6278), patch from rtz
[openwrt-github/.git] / target / linux / rdc / files-2.6.30 / arch / x86 / mach-rdc321x / platform.c
index 5393996343326d9cf43f8f1cb6bec229ea2a89f4..f59cb15a7c8506a427c7ce42a815993eb9d80996 100644 (file)
@@ -36,7 +36,7 @@
 #include <linux/mtd/physmap.h>
 #include <linux/root_dev.h>
 
-#include <asm/mach-rdc321x/gpio.h>
+#include <asm/rdc321x_gpio.h>
 
 /* Flash */
 #ifdef CONFIG_MTD_R8610
@@ -161,15 +161,15 @@ static int __init rdc_board_setup(void)
 
        ROOT_DEV = 0;
        rdc_map_info.name = rdc_flash_device.name;
-       rdc_map_info.phys = 0xff000000;
-       rdc_map_info.size = 0x1000000;
+       rdc_map_info.size = 0x800000;   //8MB
+       rdc_map_info.phys = (u32) -rdc_map_info.size;
        rdc_map_info.bankwidth = 2;
        rdc_map_info.set_vpp = NULL;
        simple_map_init(&rdc_map_info);
        while (probe_flash_start(&rdc_map_info)) {
-               rdc_map_info.phys++;
-               if (--rdc_map_info.size)
+               if (rdc_map_info.size /= 2 < 0x100000)  //1MB
                        panic("Could not find start of flash!");
+               rdc_map_info.phys = (u32) -rdc_map_info.size;
        }
        rdc_flash_resource.start = rdc_map_info.phys;
        rdc_flash_data.width = rdc_map_info.bankwidth;