On 2021-12-06 4:21 p.m., Ted Bullock wrote:
> Ok, so this time I plugged in a discrete GPU into this ultrasparc
> system, the sun XVR-100 which is a PCI card with vga and dvi ports.  The
> card uses an ati radeon r100 generation video chip.

I think that there is an bug triggered by endian code here:

> radeondrm0: RV100
> BIOS signature incorrect 0 0

in sys/dev/pci/drm/radeon/radeon_bios.c:840

if (rdev->bios[0] != 0x55 || rdev->bios[1] != 0xaa) {
        printk("BIOS signature incorrect %x %x\n", rdev->bios[0], 
rdev->bios[1]);
                goto free_bios;
}

I'm pretty sure that on sparc those bytes aren't going to be reporting
the same information as on a little endian machine. Or am I crazy and
wrong...

At the moment I don't know how to use the debugger to inspect what's
happening here. So stay tuned I suppose while I learn some stuff. In the
meantime I'll throw some printf to see what's actually there (after this
slow machine builds a test kernel which seems to take a while :P

> [drm] *ERROR* radeon: ring test failed (scratch(0x15E4)=0xCAFEDEAD)
> [drm] *ERROR* radeon: cp isn't working (-22).
> drm:pid0:r100_startup *ERROR* failed initializing CP (-22).
> drm:pid0:r100_init *ERROR* Disabling GPU acceleration
> [drm] *ERROR* Wait for CP idle timeout, shutting down CP.
> Failed to wait GUI idle while programming pipes. Bad things might happen.
> radeondrm0: 1280x1024, 8bpp
> wsdisplay1 at radeondrm0 mux 1: console (std, sun emulation), using wskbd0
> Bogus possible_clones: [ENCODER:45:TMDS-45] possible_clones=0x6 (full encoder 
> mask=0x7)
> Bogus possible_clones: [ENCODER:46:TV-46] possible_clones=0x5 (full encoder 
> mask=0x7)
> Bogus possible_clones: [ENCODER:48:DAC-48] possible_clones=0x3 (full encoder 
> mask=0x7)
> 

^^^ I don't think that any of this information means anything until
talking to the cards bios works.

-- 
Ted Bullock <tbull...@comlore.com>

Reply via email to