Skip to contentSkip to conversation

non volatile ram disk

DISCUSSION Erez Doron 3 participants 8 messages Jan 21, 2002 – Jan 22, 2002

lore
Share & tools
lore

Erez Doron

author
#0 lore raw

hi

I'm looking for a way to make a ramdisk which is not erased on reboot this is for use with ipaq/linux.

i tought of booting with mem=32m and map a block device to the rest of the 32M ram i have.

the probelm is that giving mem=32m to the kernel will cause the kernel to map only the first 32m of physical memory to virtual one, so using __pa(ptr) on the top 32m causes a kernel oops.

any idea ?

regards
erez.

#1 lore raw
Quoted 6 lines · Erez Doron

hi

I'm looking for a way to make a ramdisk which is not erased on reboot this is for use with ipaq/linux.

Quoted 9 lines

i tought of booting with mem=32m and map a block device to the rest of the 32M ram i have.

the probelm is that giving mem=32m to the kernel will cause the kernel to map only the first 32m of physical memory to virtual one, so using __pa(ptr) on the top 32m causes a kernel oops.

any idea ?

a MTD is the way to go, which uses the "reserved" mem area. I assume that the RAM is battery backed

author
#2 lore raw

hi

thanks for replying,

I already tried to map an MTD to physical memory, but got an error and an mtd with size 0

dou you know why ?

regards
erez

Quoted 24 lines · Peter Wächtler
Quoted 6 lines · Erez Doron

hi

I'm looking for a way to make a ramdisk which is not erased on reboot this is for use with ipaq/linux.

Quoted 9 lines

i tought of booting with mem=32m and map a block device to the rest of the 32M ram i have.

the probelm is that giving mem=32m to the kernel will cause the kernel to map only the first 32m of physical memory to virtual one, so using __pa(ptr) on the top 32m causes a kernel oops.

any idea ?

a MTD is the way to go, which uses the "reserved" mem area.
I assume that the RAM is battery backed
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

author
#3 lore raw

the exact log i get:

Creating 3 MTD partitions on "SA1100 flash":
0x00000000-0x00040000 : "bootldr"
mtd: Giving out device 0 to bootldr
0x00040000-0x02000000 : "root"
mtd: Giving out device 1 to root
0xc2000000-0xc4000000 : "rd"
mtd: partition "rd" is out of reach -- disabled

notes:
1. the flash is at physical adress 0-0x1ffffff (32mb)
2. the ram is at physical adress 0xc0000000-0xc3ffffff
i tried to map an mtd device to the second part of the ram, but got "partition is out of reach"

any idea ?

Quoted 43 lines · Erez Doron

hi

thanks for replying,

I already tried to map an MTD to physical memory, but got an error and an mtd with size 0

dou you know why ?

regards
erez

Quoted 17 lines · Peter Wächtler
Quoted 6 lines · Erez Doron

hi

I'm looking for a way to make a ramdisk which is not erased on reboot this is for use with ipaq/linux.

Quoted 9 lines

i tought of booting with mem=32m and map a block device to the rest of the 32M ram i have.

the probelm is that giving mem=32m to the kernel will cause the kernel to map only the first 32m of physical memory to virtual one, so using __pa(ptr) on the top 32m causes a kernel oops.

any idea ?

Quoted 7 lines

a MTD is the way to go, which uses the "reserved" mem area.
I assume that the RAM is battery backed
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

#5 lore raw
In reply to Erez Doron
Quoted 11 lines · Erez Doron

the exact log i get:

Creating 3 MTD partitions on "SA1100 flash":
0x00000000-0x00040000 : "bootldr"
mtd: Giving out device 0 to bootldr
0x00040000-0x02000000 : "root"
mtd: Giving out device 1 to root
0xc2000000-0xc4000000 : "rd"
mtd: partition "rd" is out of reach -- disabled

Quoted 7 lines

notes:
1. the flash is at physical adress 0-0x1ffffff (32mb)
2. the ram is at physical adress 0xc0000000-0xc3ffffff
i tried to map an mtd device to the second part of the ram, but got "partition is out of reach"

any idea ?

you are confusing the address space of the kernel (starting with 3GB [0xc0000000]) with the addresses of the RAM (the upper 32MB starts at 0x2000000)

Then there will be some CS (chip selects) to distinguish what "bus address space" to use. Like CS1 for Flash and CS0 for RAM (don't know details of SA1100/iPAQ)

You have to use the special MTD device that talks to system RAM. Again, I don't know the details, but menuconfig gives you:

RAM/ROM/Flash chip drivers
Support for RAM chips in bus mapping

Self-contained MTD device drivers
Uncached system RAM (NEW)

The former sounds like RAM on expansion bus, the latter seems to be what you are looking for.

Now: is the RAM battery backed, or not? If not, you want to use the flash as nonvolatile disk - otherwise there would be no need to restart the system and hence a normal RAM disk would be nonvolatile.

Quoted 35 lines · Erez Doron
Quoted 33 lines

hi

thanks for replying,

I already tried to map an MTD to physical memory, but got an error and an mtd with size 0

dou you know why ?

regards
erez

Quoted 20 lines · Peter Wächtler
Quoted 6 lines · Erez Doron

hi

I'm looking for a way to make a ramdisk which is not erased on reboot this is for use with ipaq/linux.

Quoted 9 lines

i tought of booting with mem=32m and map a block device to the rest of the 32M ram i have.

the probelm is that giving mem=32m to the kernel will cause the kernel to map only the first 32m of physical memory to virtual one, so using __pa(ptr) on the top 32m causes a kernel oops.

any idea ?

a MTD is the way to go, which uses the "reserved" mem area. I assume that the RAM is battery backed
-

author
#6 lore raw
Quoted 18 lines · Peter Wächtler
Quoted 17 lines · Erez Doron

the exact log i get:

Creating 3 MTD partitions on "SA1100 flash":
0x00000000-0x00040000 : "bootldr"
mtd: Giving out device 0 to bootldr
0x00040000-0x02000000 : "root"
mtd: Giving out device 1 to root
0xc2000000-0xc4000000 : "rd"
mtd: partition "rd" is out of reach -- disabled

notes:
1. the flash is at physical adress 0-0x1ffffff (32mb)
2. the ram is at physical adress 0xc0000000-0xc3ffffff
i tried to map an mtd device to the second part of the ram, but got "partition is out of reach"

Quoted 5 lines
Quoted 1 line

any idea ?

you are confusing the address space of the kernel (starting with 3GB [0xc0000000]) with the addresses of the RAM (the upper 32MB starts at 0x2000000)

no, i do not ( compaq document says the ram starts at 0xc0000000, i also verified it by doing peek and poke via the bootloader)

Quoted 12 lines

Then there will be some CS (chip selects) to distinguish what "bus address space" to use. Like CS1 for Flash and CS0 for RAM (don't know details of SA1100/iPAQ)

You have to use the special MTD device that talks to system RAM. Again, I don't know the details, but menuconfig gives you:

RAM/ROM/Flash chip drivers
Support for RAM chips in bus mapping

Self-contained MTD device drivers
Uncached system RAM (NEW)

Quoted 7 lines

The former sounds like RAM on expansion bus, the latter seems to be what you are looking for.

Now: is the RAM battery backed, or not? If not, you want to use the flash as nonvolatile disk - otherwise there would be no need to restart the system and hence a normal RAM disk would be nonvolatile.

yes it is

thanks anyway
erez.

Quoted 36 lines
Quoted 36 lines · Erez Doron
Quoted 33 lines

hi

thanks for replying,

I already tried to map an MTD to physical memory, but got an error and an mtd with size 0

dou you know why ?

regards
erez

Quoted 20 lines · Peter Wächtler
Quoted 6 lines · Erez Doron

hi

I'm looking for a way to make a ramdisk which is not erased on reboot this is for use with ipaq/linux.

Quoted 9 lines

i tought of booting with mem=32m and map a block device to the rest of the 32M ram i have.

the probelm is that giving mem=32m to the kernel will cause the kernel to map only the first 32m of physical memory to virtual one, so using __pa(ptr) on the top 32m causes a kernel oops.

any idea ?

a MTD is the way to go, which uses the "reserved" mem area. I assume that the RAM is battery backed
-

author
#7 lore raw

solved: ( was Re: non volatile ram disk)

In reply to Erez Doron

well, i finanly managed to make a ramdisk which will not earsed by reboot.

the solution is to give mem=32m, and use ioremap to map the rest of the 32m to virtual adresses

now it works !!!

thanks anyway
erez.

Quoted 23 lines · Erez Doron

hi

I'm looking for a way to make a ramdisk which is not erased on reboot this is for use with ipaq/linux.

i tought of booting with mem=32m and map a block device to the rest of the 32M ram i have.

the probelm is that giving mem=32m to the kernel will cause the kernel to map only the first 32m of physical memory to virtual one, so using __pa(ptr) on the top 32m causes a kernel oops.

any idea ?

regards
erez.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/