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>