Port-sparc64 archive

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

Re: SUNW,m46B resolutions?



On Mon, 13 Jun 2011, der Mouse wrote:

> I have a U5 whose framebuffer is a SUNW,m64B according to the ROM code
> and, according to 3.1 (that being what's on the drive at the moment -
> the machine has sat idle for some time now) is
> 
> machfb0 at pci1 dev 2 function 0: ATI Technologies 3D Rage I/II (rev. 0x9a)
> machfb0: 16 MB aperture at 0xe1000000, 4 KB registers at 0x00000000
> memctl: 003210b3
> machfb0: 2048 KB SGRAM 62.999 MHz, maximum RAMDAC clock 170 MHz
> machfb0: initial resolution 1152x864 at 8 bpp
> 
> How can I tell what resolutions are available, and how do I set them?
> On the SS20, I could cd to the device (in OF) and do "words" to get a
> list of, among other things, resolution words with names like
> "r1280x1024x66".  But on the U5, I don't see anything that looks to me
> like a resolution specifier, even with fcode-debug? set true:
> 
> ok cd /pci/pci@1,1/SUNW,m64B
> ok words
> selftest      disp-test     close         remove        restore 
> draw-logo     write         open          install 
> self-test     set-mode      show-modes    mode# 
> read-rectangle              draw-rectangle 
> fill-rectangle              get-colors    set-colors    color! 
> color@        dimensions 
> ok 
> 
> I wandered around the Web a little, but most pages I found that talked
> about setting the resolution were talking from the Solaris command
> line, which of course isn't much use to me.  Some things talked about
> "setenv output-device" to set the device.  A few of them specified
> resolutions, though they disagreed on how to spell them (some used the
> rXxYxHZ syntax, other xXxYxHZ); none of them gave any way to list the
> available resolutions as far as OF is concerned.
> 
> I poked around the device's words some with see, but either I missed
> something or the stupid thing does only one resolution - the device has
> a word "show-modes", but it prints just one line:
> 
> ok show-modes
> 
> 2 = 1152 X 900 @ 9450 MHz
> ok 
> 
> Interestingly, it shows 1152x900, not the 1152x864 printed by NetBSD.
> 
> I'm surely missing something somewhere here.  But what?

I don't think you're missing anything.  I believe OF driver for the m64 
was originally written by ATI so it's not as complete as the ones for 
hardware designed at Sun.

The machfb driver is a full fledged kernel driver and should be able to 
change the device's resolution to anything you want once the OS is loaded.  
Of course your monitor needs to support this resolution.

If you really want to set the resolution of the device from the firmware 
there are still several things you can do.  Make sure the device is open 
and check it's properties.  Something may be advertized there.  

If you can find the location of the mach64 dropin in the ROM image 
(`sifting dropin' may help) you should be able to `dump' it and locate a 
table that maps the mode number with a string.

You can `see' show-modes and mode# to see what they are and if they take a 
parameter to dump the entire table.

You can try giving `set-mode' random values and see which work.

You can boot a solaris CD and run `fbcontrol' to dump out the modes it 
knows about and then feed that into `set-mode'.

Eduardo


Home | Main Index | Thread Index | Old Index