Port-macppc archive

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

Re: Booting netbsd-GENERIC_MD on iMac G3 using ofwboot.xcf + genfb woes



Hello,

On Tue, 20 Oct 2026 18:34:09 +0200
Sam van Kampen <sam%tehsvk.net@localhost> wrote:

> > I'd ssh into the iMac and start the Xserver by hand with -verbose 10,
> > that way you can see how far it gets. Setting a working video mode
> > might be somewhat difficult, I had a 1st generation iMac G3 many years
> > ago, and the built-in monitor is quite odd - it only works with a very
> > narrow range of line frequencies ( I forgot what it was, IIRC
> > 1024x768@60Hz worked, other modes needed the frame rate bumped up to
> > land at the same line frequency ) and of course there was no EDID block
> > to be found either by DDC or in the device tree.
> > I suspect the same applies to all G3 iMacs, more or less.
> > So, in order to figure out what's going on please send me the machine's
> > ofctl -p output ( that will dump the device tree with properties ) and
> > your X -verbose 10 output. I suspect that Xorg's r128 driver just
> > doesn't setup any video mode the monitor can deal with, hence the black
> > screen.  
> 
> The modelines and other monitor configuration (HorzSync, VertRefresh)
> floating around the 'net seem to make no difference - the driver
> simply sees the output as disconnected and doesn't show anything on
> the screen (in fact the whole tube is off, it's not just a black
> screen). Querying with `DISPLAY=:0 xrandr` over ssh shows the same:
> 
> graphite# xrandr -d :0
> Screen 0: minimum 320 x 200, current 1024 x 768, maximum 4096 x 4096
> VGA-0 disconnected primary (normal left inverted right x axis y axis)

Huh, it doesn't even list the modes it thinks are usable in the log.
But either way, it looks like my hunch was right - nothing about an
EDID block so most likely it set something up that the monitor does not
like.

> Nothing I've tried (xset dpms force on, various xrandr incantations,
> ...) seems to be able to convince the driver the monitor exists. And
> it's not just the internal monitor, there is no signal over the VGA
> output either (I'm not sure if that can be configured separately from
> the internal monitor, but I thought it was worth a try).

Did you hook up an external monitor? Then at least the driver should
find an EDID block there.

This is the graphics chip's node:
> ff94a3a0: /pci@f0000000/ATY,Rage128k@10
> 
> #address-cells          00000001 ........ ........ ........     1
> #size-cells             00000000 ........ ........ ........     0
> AGP_Address_Block       10000000 ........ ........ ........   ....
> AGP_Address_Range       00000000 ffffffff ........ ........   ........
> AGP_Alignment           10000000 ........ ........ ........   ....
> AGP_AllowOverlap        00000001 ........ ........ ........   ....
> AGP_Master
> ATY,Fcode               312e3639 00...... ........ ........   1.69.
> ATY,Flags               10ff099b ........ ........ ........   ....
> ATY,Rom#                3131332d 58585858 582d3131 3500....   113-XXXXX-115.
> ATY,Status              00000000 ........ ........ ........   ....

... and this is what I was looking for:

> EDID                    00ffffff ffffff00 0610039d 01010101   ................
>             0010:       00080101 081b1496 e866e99c 574c9626   .........f..WL.&
>             0020:       10484c00 02000101 01010101 01010101   .HL.............
>             0030:       01010101 01018813 80c020e0 22101040   .......... ."..@
>             0040:       13000ec8 1000001e 601820f0 30582020   ........`. .0X
>             0050:       10501300 0ec81000 001e0000 00fd004b   .P.............K
>             0060:       753c3c08 000a2020 20202020 000000fc   u<<...      ....
>             0070:       00694d61 630a2020 20202020 202000cb   .iMac.        ..

We have a mechanism to pass EDID blocks to X if it can't be read them
via DDC ( I had to use it on a Pismo ) but r128fb may not know how to
read it from OpenFirmware, or something went wrong there. I'll have a
look.

have fun
Michael


Home | Main Index | Thread Index | Old Index