[OpenBIOS] [PATCH 0/5] v1 alternative implementation of sparc64 boot memory mapping

Igor V. Kovalenko igor.v.kovalenko at gmail.com
Sun Dec 27 12:43:58 CET 2009

The following series implements alternative approach
to solve issue where qemu provides i/o and pci memory
spaces within physical RAM address space, which makes
low memory addresses unusable.

Instead of changing qemu to move i/o and pci spaces
out of RAM space we can remap 64M of i/o and pci
spaces to above 32bit accessible by client program.
Then we map physical RAM at 64M offset to start of
virtual memory.

A few extra changes are required. At very least we
need to find where framebuffer virtual address is
placed by startup code, helper change is provided.

NOTE: this approach may hide up to 128M from client
allocations, therefore default qemu memory size
is not sufficient. Please use at least '-m 256'
on qemu command line to test with these changes.

In my test these series are as efficient as
qemu change to remap i/o and pci spaces in
allowing milax032sparc.iso to not step over
cmd646 registers. Currently milax loader
gets a bit further and fails with

 Can't open /ramdisk-root
 byte-load: exception caught!

v0 -> v1: split ofmem_find_virtual changes into separate patches


Igor V. Kovalenko (5):
      sparc64: remap first 64M physical address space
      sparc64: claim memory mapped by startup code
      ofmem: helper to find first virtual address map entry
      ofmem: use helper to access command line parameters from qemu
      ofmem: use helper to find framebuffer virtual address on sparc64

 arch/sparc64/entry.S         |   68 +++++++++++++++++++-----------------------
 arch/sparc64/ofmem_sparc64.c |    2 +
 arch/sparc64/openbios.c      |   19 ++++++++----
 include/ofmem.h              |    1 +
 modules/ofmem_common.c       |   25 +++++++++++++++
 modules/video.c              |    9 +++++-
 6 files changed, 80 insertions(+), 44 deletions(-)

Kind regards,
Igor V. Kovalenko

More information about the OpenBIOS mailing list