[OpenBIOS] [PATCH 0/8] RFC: OFMEM cleanup/memory reduction patch v2

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Sun Apr 22 22:29:01 CEST 2012


v2:

Alter the SPARC64 video initialisation hack code so that it handles having
a video memory mapping where phys_addr != virt_addr.

When allocating the Forth machine memory using OFMEM, align the region on a
512K boundary on SPARC64 so that we only use 1 TLB slot for better efficiency.

v1:

This patchset aims to tidy up various parts of OFMEM, with the ultimate aim
of reducing the image sizes. The first 4 patches perform the reorganisation,
while the remainder of the patches ensure that video memory and the Forth
machine memory are no longer contained within the image.

Note: the resulting SPARC64 image is now approximately half of its original
size - BUT because we require 512K alignment for various parts of the image
because of the 512K MMU page size, our ability to claim this space back 
directly is limited. Any further ideas on this would be welcomed.

Mark Cave-Ayland (8):
  Rename ofmem_arch_early_map_pages() to ofmem_arch_map_pages().
  SPARC32: Move ofmem_arch_map_pages() into ofmem_sparc32.c with all
    the other     architecture-specific code.
  SPARC64: Refactor tte-data code in preparation for moving
    architecture-specific     code to ofmem_sparc64.c.
  SPARC64: Move ofmem_arch_map_pages()/ofmem_arch_unmap_pages() into   
     ofmem_sparc64.c with all the other architecture-specific code.
  Remove architecture-specific routines from ofmem.h.
  SPARC64: Remove majority of the video initialisation hack.
  SPARC64: Swap Forth machine memory allocation over to OFMEM memory
    pool.
  SPARC32: Swap Forth machine memory allocation over to OFMEM memory
    pool.

 openbios-devel/arch/ppc/ofmem.c                    |    2 +-
 openbios-devel/arch/ppc/qemu/ofmem.c               |    6 +-
 openbios-devel/arch/sparc32/lib.c                  |   95 +---------
 openbios-devel/arch/sparc32/ofmem_sparc32.c        |   82 ++++++++-
 openbios-devel/arch/sparc32/openbios.c             |   27 ++-
 openbios-devel/arch/sparc64/ldscript               |    6 -
 openbios-devel/arch/sparc64/lib.c                  |  210 ++------------------
 openbios-devel/arch/sparc64/ofmem_sparc64.c        |  176 ++++++++++++++++-
 openbios-devel/arch/sparc64/ofmem_sparc64.h        |   32 ---
 openbios-devel/arch/sparc64/openbios.c             |   30 ++-
 openbios-devel/drivers/iommu.c                     |    4 +-
 openbios-devel/drivers/vga_vbe.c                   |    9 +-
 .../include/arch/sparc32/ofmem_sparc32.h           |   28 +++
 openbios-devel/include/arch/sparc64/io.h           |    2 +-
 .../include/arch/sparc64/ofmem_sparc64.h           |   50 +++++
 openbios-devel/include/libopenbios/ofmem.h         |   22 +--
 openbios-devel/libopenbios/ofmem_common.c          |    6 +-
 openbios-devel/packages/video.c                    |   36 ++--
 18 files changed, 424 insertions(+), 399 deletions(-)
 delete mode 100644 openbios-devel/arch/sparc64/ofmem_sparc64.h
 create mode 100644 openbios-devel/include/arch/sparc32/ofmem_sparc32.h
 create mode 100644 openbios-devel/include/arch/sparc64/ofmem_sparc64.h

-- 
1.7.2.5




More information about the OpenBIOS mailing list