2002-01-21 13:21:24

by Erez Doron

[permalink] [raw]
Subject: non volatile ram disk

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.


2002-01-21 13:43:00

by Peter Wächtler

[permalink] [raw]
Subject: Re: non volatile ram disk

Erez Doron schrieb:
>
> 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 ?
>

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

2002-01-21 14:00:10

by Erez Doron

[permalink] [raw]
Subject: Re: non volatile ram disk

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

On Mon, 2002-01-21 at 15:41, Peter W?chtler wrote:
> Erez Doron schrieb:
> >
> > 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 ?
> >
>
> 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/

2002-01-21 14:16:12

by Erez Doron

[permalink] [raw]
Subject: Re: non volatile ram disk

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 ?

On Mon, 2002-01-21 at 15:42, Erez Doron wrote:
> 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
>
> On Mon, 2002-01-21 at 15:41, Peter W?chtler wrote:
> > Erez Doron schrieb:
> > >
> > > 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 ?
> > >
> >
> > 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/

2002-01-21 15:17:53

by Peter Wächtler

[permalink] [raw]
Subject: Re: non volatile ram disk

Erez Doron schrieb:
>
> 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 ?

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.


>
> On Mon, 2002-01-21 at 15:42, Erez Doron wrote:
> > 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
> >
> > On Mon, 2002-01-21 at 15:41, Peter W?chtler wrote:
> > > Erez Doron schrieb:
> > > >
> > > > 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 ?
> > > >
> > >
> > > a MTD is the way to go, which uses the "reserved" mem area.
> > > I assume that the RAM is battery backed
> > > -

2002-01-21 23:54:56

by David Woodhouse

[permalink] [raw]
Subject: Re: non volatile ram disk


[email protected] said:
> i tried to map an mtd device to the second part of the ram, but got
> "partition is out of reach"

The numbers you modified are the ones which say how to divide up the flash
chip. Don't do that - you need to use the 'slram' driver and configure that
to tell it which memory to use.

See http://lists.infradead.org/pipermail/linux-mtd/2002-January/003872.html

--
dwmw2


2002-01-22 10:04:17

by Erez Doron

[permalink] [raw]
Subject: Re: non volatile ram disk

On Mon, 2002-01-21 at 17:21, Peter W?chtler wrote:
> Erez Doron schrieb:
> >
> > 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 ?
>
> 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)

> 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.
>
yes it is

thanks anyway
erez.
>
> >
> > On Mon, 2002-01-21 at 15:42, Erez Doron wrote:
> > > 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
> > >
> > > On Mon, 2002-01-21 at 15:41, Peter W?chtler wrote:
> > > > Erez Doron schrieb:
> > > > >
> > > > > 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 ?
> > > > >
> > > >
> > > > a MTD is the way to go, which uses the "reserved" mem area.
> > > > I assume that the RAM is battery backed
> > > > -

2002-01-22 14:10:02

by Erez Doron

[permalink] [raw]
Subject: solved: ( was Re: non volatile ram disk)

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.



On Mon, 2002-01-21 at 15:15, Erez Doron wrote:
> 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/