Linux MIPS Architecture development
 help / color / mirror / Atom feed
* Kernel space access to 2GB of physical memory
@ 2007-08-02 13:47 Alex Gonzalez
  2007-08-02 22:23 ` Ralf Baechle
  0 siblings, 1 reply; 2+ messages in thread
From: Alex Gonzalez @ 2007-08-02 13:47 UTC (permalink / raw)
  To: linux-mips

Hi,

I have a system booting the 2.6.12-rc3 32bits kernel on an RM9000
processor and I am trying to get my head around how to access up to
2GB of physical memory with a mem=256MB command line booting
parameter. I read that on the MIPS kernel this is split 2GB/2GB
between kernel and user space, so the kernel should be able to access
directly 2GB of physical memory.

Kernel drivers will access the memory above 256MB using ioremaps. I
need it this way as the memory above 256MB will be used in special
ways.

What I struggle to understand is whether it would be possible to
access all the memory up to 2GB using the ioremap method.

The only way I can think of achieving this would be to use ksseg and
dynamic TLB entries to access it in 256MB chunks. The fact that I can
access ksseg must mean that the kernel is not clearing the TLB entries
that the bootloader sets up before launching the kernel, so I would
expect to be able to add/remove TLB entries dynamically without
affecting the kernel's own memory management.

1) Is there a simpler mechanism to achieve this?

2) Any ill effect on the kernel from the method described above?

Many thanks,
Alex

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Kernel space access to 2GB of physical memory
  2007-08-02 13:47 Kernel space access to 2GB of physical memory Alex Gonzalez
@ 2007-08-02 22:23 ` Ralf Baechle
  0 siblings, 0 replies; 2+ messages in thread
From: Ralf Baechle @ 2007-08-02 22:23 UTC (permalink / raw)
  To: Alex Gonzalez; +Cc: linux-mips

On Thu, Aug 02, 2007 at 02:47:37PM +0100, Alex Gonzalez wrote:

> I have a system booting the 2.6.12-rc3 32bits kernel on an RM9000
> processor and I am trying to get my head around how to access up to
> 2GB of physical memory with a mem=256MB command line booting
> parameter. I read that on the MIPS kernel this is split 2GB/2GB
> between kernel and user space, so the kernel should be able to access
> directly 2GB of physical memory.

No.  You assume there is nothing else in the 2GB of kernel address space.

> Kernel drivers will access the memory above 256MB using ioremaps. I
> need it this way as the memory above 256MB will be used in special
> ways.
>
> What I struggle to understand is whether it would be possible to
> access all the memory up to 2GB using the ioremap method.

Ioremap is meant to be used for MMIO regions only.

> The only way I can think of achieving this would be to use ksseg and
> dynamic TLB entries to access it in 256MB chunks. The fact that I can
> access ksseg must mean that the kernel is not clearing the TLB entries
> that the bootloader sets up before launching the kernel, so I would
> expect to be able to add/remove TLB entries dynamically without
> affecting the kernel's own memory management.
> 
> 1) Is there a simpler mechanism to achieve this?

It's called 64-bit kernel.

> 2) Any ill effect on the kernel from the method described above?

You're basically reinventing high memory in an application optimized
variant and that probably includes a similar set of problems.

  Ralf

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-08-03 12:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-02 13:47 Kernel space access to 2GB of physical memory Alex Gonzalez
2007-08-02 22:23 ` Ralf Baechle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox