[Top] [All Lists]

Kernel space access to 2GB of physical memory

To: linux-mips <>
Subject: Kernel space access to 2GB of physical memory
From: "Alex Gonzalez" <>
Date: Thu, 2 Aug 2007 14:47:37 +0100
Dkim-signature: a=rsa-sha1; c=relaxed/relaxed;; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=CO9w6eamRo94O+cYQLGIGu2ZNodtPPeF3Fp1IuLpqzTCC52sILS6ylMseNkKd2HcZY34TbGQyxR4YBotEV54LbduICBpgFVp8OiPnEUIC9LEnweVakjI2kDjmGEd6nQrRWo12K9rbIKcxZTyhsK7NrDL7iodKKJqG1irLbIrGiQ=
Domainkey-signature: a=rsa-sha1; c=nofws;; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=mjlFqWz5x+gghlaImWqpISUM1rgvKK8IGOAD3KZluVrew8IOUQCmgE2677T0j/A0KNDXpjIR3cYoV1ZiTaeRkcAdAoVR6C5LioJsDsPdaPvusuKiKbMG8xGDsDZLCJ8fW/wk+MgwRljK2ezdl0GuU4ku4LZDNaELXE9K715crm0=
Original-recipient: rfc822;

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

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,

<Prev in Thread] Current Thread [Next in Thread>