[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: temp. mem mappings



Hi,

On Tue, Jun 05, 2001 at 04:42:52PM -0400, cohutta wrote:

>   Normal memory is identity-mapped very early in boot anyway (except for
>   highmem on large Intel boxes, that is, and kmap() works for that.)
> 
> I don't really want to play with the page tables if i can help it.
> I didn't use ioremap() because it's real system memory, not IO bus
> memory.
> 
> How much normal memory is identity-mapped at boot on x86?
> Is it more than 8 MB?

> I'm trying to read some ACPI tables, like the FACP.
> On my system, this is at physical address 0x3fffd7d7 (e.g.).

It depends at what time during boot.  Some ACPI memory is reusable
once the system boots: the kernel parses the table then frees up the
memory which the BIOS initialised.

VERY early in boot, while the VM is still getting itself set up, there
is only a minimal mapping set up by the boot loader code.  However,
once the VM is initialised far enough to let you play with page
tables, all memory will be identity-mapped up to just below the 1GB
watermark.

> kmap() ends up calling set_pte(), which is close to what i am
> already doing.  i'm having a problem on the unmap side when i
> am done with the temporary mapping.

kunmap().  :-)  But kmap only works on CONFIG_HIGHMEM kernel builds.
On kernels built without high memory support, kmap will not allow you
to access memory beyond the normal physical memory boundary.

Cheers,
 Stephen
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/