Bug 33542 - radeon: Don't read BIOS in VRAM on SPARC64
Summary: radeon: Don't read BIOS in VRAM on SPARC64
Status: RESOLVED OBSOLETE
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - non Intel) (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_video-dri
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-18 00:20 UTC by Jason Detring
Modified: 2011-04-18 06:47 UTC (History)
0 users

See Also:
Kernel Version: 2.6.39-rc3
Subsystem:
Regression: No
Bisected commit-id:


Attachments
DRM and Radeon dmesg block containing kernel panic. (4.68 KB, text/plain)
2011-04-18 00:20 UTC, Jason Detring
Details

Description Jason Detring 2011-04-18 00:20:40 UTC
Created attachment 54572 [details]
DRM and Radeon dmesg block containing kernel panic.

Hi!

Hurray!  Radeon KMS works again on SPARC64!  Almost.

Test platform is a Sun Ultra 45.  Test board is a Sun XVR-300 (RV380 0x1002:0x5B64) on a PCI-e bus.

There's a kernel panic when calling igp_read_bios_from_vram() from radeon_get_bios().  See attached dmesg capture.

Patching around it with

--- a/drivers/gpu/drm/radeon/radeon_bios.c      2011-04-17 19:31:04.000000000 -0500
+++ b/drivers/gpu/drm/radeon/radeon_bios.c      2010-09-28 20:01:22.000000000 -0500
@@ -432,8 +432,10 @@
        uint16_t tmp;
 
        r = radeon_atrm_get_bios(rdev);
+#if !defined(__sparc__)
        if (r == false)
                r = igp_read_bios_from_vram(rdev);
+#endif /* !__sparc__ */
        if (r == false)
                r = radeon_read_bios(rdev);
        if (r == false) {


gives me a framebuffer console again.  After which, the usual desktop stack works as well (X11, mesa, textured video).

I'm not sure this is the correct way to code the fix, stylistically speaking.  Although I don't know of any sparc64 machines sporting a Radeon IGP, I'm sure it could happen someday.  It also seems other architectures might run into this as well.
Comment 1 Jason Detring 2011-04-18 06:47:24 UTC
Wow, I really messed this report up.  I mistakenly copy-and-pasted the wrong kernel version from another Radeon bug I'm toying with.

This particular dmesg block and patch was from the drm-2.6 tree, on the master branch (2.6.36-rc6, aka drm-2.6-899611e), which is neither current for the main linux-2.6 tree nor the sundry drm-2.6 staging branches.  Oops.

The current drm-2.6-e001978 tree seems to bring up a framebuffer console with no patching necessary.  There's something wrong with the command processor, so all acceleration is disabled, but that's a topic for another ticket.

Closing this ticket, sorry for the noise.

Note You need to log in before you can comment on or make changes to this bug.