diff options
Diffstat (limited to 'drivers/mtd/maps/uclinux.c')
-rw-r--r-- | drivers/mtd/maps/uclinux.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/mtd/maps/uclinux.c b/drivers/mtd/maps/uclinux.c index 81756e397711..d4314fb88212 100644 --- a/drivers/mtd/maps/uclinux.c +++ b/drivers/mtd/maps/uclinux.c | |||
@@ -22,15 +22,19 @@ | |||
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 | static struct mtd_info *uclinux_ram_mtdinfo; |
30 | 34 | ||
31 | /****************************************************************************/ | 35 | /****************************************************************************/ |
32 | 36 | ||
33 | struct mtd_partition uclinux_romfs[] = { | 37 | static struct mtd_partition uclinux_romfs[] = { |
34 | { .name = "ROMfs" } | 38 | { .name = "ROMfs" } |
35 | }; | 39 | }; |
36 | 40 | ||
@@ -38,7 +42,7 @@ struct mtd_partition uclinux_romfs[] = { | |||
38 | 42 | ||
39 | /****************************************************************************/ | 43 | /****************************************************************************/ |
40 | 44 | ||
41 | int uclinux_point(struct mtd_info *mtd, loff_t from, size_t len, | 45 | static int uclinux_point(struct mtd_info *mtd, loff_t from, size_t len, |
42 | size_t *retlen, void **virt, resource_size_t *phys) | 46 | size_t *retlen, void **virt, resource_size_t *phys) |
43 | { | 47 | { |
44 | struct map_info *map = mtd->priv; | 48 | struct map_info *map = mtd->priv; |
@@ -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", |