grub-devel
[Top][All Lists]
Advanced

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

Multiboot physical and virtual addresses


From: Vladimir 'φ-coder/phcoder' Serbinenko
Subject: Multiboot physical and virtual addresses
Date: Wed, 21 Apr 2010 11:33:21 +0200
User-agent: Mozilla-Thunderbird 2.0.0.22 (X11/20091109)

Hello, all. On i386 multiboot requires for paging to be disabled and on
amd64 it will be required to map P=V so physical and virtual adresses
are the same. However on MIPS it's inadequate to ask for bootloader to
set such a mode because to do so one would need to go into mode with TLB
activated and have TLB refill routines. It's much easier to run payload
in "kernel mode" which is easy to use but is not P=V. I suppose on some
platforms it's even not possible to have such an easy mapping at all
(especially openfirmware ones). So we have to decide which values will
be used. I think that it should be virtual for a simple reason that it
allows early startup to directly access the data even if it has no way
of knowing what the v2p map is or before it setup its own paging table.
Then when OS is initialising its own v2p map it should be able to remap
virtual addresses to physical ones. The only problem is that some coders
prefer to create a new v2p map in asm code and coding v2p converter in
asm may be painful.
I think the same applies for MMIO too.
Possible alternatives:
- supply physical addresses
- supply both virtual and physical addresses. OS is able to choose the
one it wants

-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko


Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]