[OpenBIOS] Reducing OpenBIOS memory footprint

Mark Cave-Ayland mark.cave-ayland at siriusit.co.uk
Thu Dec 2 12:21:36 CET 2010


Tarl Neustaedter wrote:

>> I see that for PPC in packages/video.c::init_video the framebuffer is 
>> allocated using OFMEM and then mapped 1:1. Blue has suggested that if 
>> direct access to the framebuffer is not required then we could try a 
>> similar dynamic allocation for SPARC - does anyone how/where OpenBoot 
>> stores its VGA framebuffer?
> 
> Assuming the AST driver is VGA (I think it is, but I'm not all that 
> familiar with VGA), it does a simple map-in of BAR 10 for size 80.0000, 
> and smaller amounts for BARs 14 and 18. That probably lands it in the 
> 0xfexx.xxxx window.

Look at the Debian sparc-utils prtconf example output, I see the 
following for the SS-5:


             Node 0xffd41b1c
                 address:  ffdcd000
                 character-set:  'ISO8859-1'
                 intr:  00000039.00000000
                 reg:  00000003.00000000.01000000
                 dblbuf:  00000000
                 vmsize:  00000001
                 depth:  00000008
                 height:  00000384
                 awidth:  00000480
                 linebytes:  00000480
                 width:  00000480
                 emulation:  'cgsix'
                 montype:  00000004
                 boardrev:  000000a1
                 pixfreq:  066ff300
                 hfreq:  00011880
                 vfreq:  0000004c
                 hbporch:  000000c0
                 hsync:  00000080
                 hfporch:  00000020
                 vbporch:  00000021
                 vsync:  00000008
                 vfporch:  00000002
                 fbmapped:  00100000
                 global-data:  ffef8f00
                 oscillators:  '84375000,64125000,108000000,94500000'
                 chiprev:  0000000b
                 device_type:  'display'
                 model:  'SUNW,501-2325'
                 name:  'cgsix'


This seems to suggest memory within the 0xff rather than the 0xfe range. 
Interestingly enough, the screen device looks like this:

screen:  '/iommu at 0,10000000/sbus at 0,10001000/cgsix at 3,0'

Perhaps it's hiding on the SBUS and so it doesn't need a direct mapping? 
Does the IOMMU allow paged access into SBUS space to avoid having to map 
it in its entirety?


ATB,

Mark.

-- 
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063

Sirius Labs: http://www.siriusit.co.uk/labs



More information about the OpenBIOS mailing list