All of lore.kernel.org
 help / color / mirror / Atom feed
* Multiboot physical and virtual addresses
@ 2010-04-21  9:33 Vladimir 'φ-coder/phcoder' Serbinenko
  0 siblings, 0 replies; only message in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2010-04-21  9:33 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 1274 bytes --]

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 #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 293 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2010-04-21  9:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-21  9:33 Multiboot physical and virtual addresses Vladimir 'φ-coder/phcoder' Serbinenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.