diff options
Diffstat (limited to 'drivers/mtd/maps/uclinux.c')
-rw-r--r-- | drivers/mtd/maps/uclinux.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/mtd/maps/uclinux.c b/drivers/mtd/maps/uclinux.c index 81756e397711..61d4087dd8f7 100644 --- a/drivers/mtd/maps/uclinux.c +++ b/drivers/mtd/maps/uclinux.c | |||
@@ -22,8 +22,12 @@ | |||
22 | 22 | ||
23 | /****************************************************************************/ | 23 | /****************************************************************************/ |
24 | 24 | ||
25 | extern char _ebss; | ||
26 | |||
25 | struct map_info uclinux_ram_map = { | 27 | struct map_info uclinux_ram_map = { |
26 | .name = "RAM", | 28 | .name = "RAM", |
29 | .phys = (unsigned long)&_ebss, | ||
30 | .size = 0, | ||
27 | }; | 31 | }; |
28 | 32 | ||
29 | struct mtd_info *uclinux_ram_mtdinfo; | 33 | struct mtd_info *uclinux_ram_mtdinfo; |
@@ -55,12 +59,10 @@ static int __init uclinux_mtd_init(void) | |||
55 | { | 59 | { |
56 | struct mtd_info *mtd; | 60 | struct mtd_info *mtd; |
57 | struct map_info *mapp; | 61 | struct map_info *mapp; |
58 | extern char _ebss; | ||
59 | unsigned long addr = (unsigned long) &_ebss; | ||
60 | 62 | ||
61 | mapp = &uclinux_ram_map; | 63 | mapp = &uclinux_ram_map; |
62 | mapp->phys = addr; | 64 | if (!mapp->size) |
63 | mapp->size = PAGE_ALIGN(ntohl(*((unsigned long *)(addr + 8)))); | 65 | mapp->size = PAGE_ALIGN(ntohl(*((unsigned long *)(mapp->phys + 8)))); |
64 | mapp->bankwidth = 4; | 66 | mapp->bankwidth = 4; |
65 | 67 | ||
66 | printk("uclinux[mtd]: RAM probe address=0x%x size=0x%x\n", | 68 | printk("uclinux[mtd]: RAM probe address=0x%x size=0x%x\n", |