LinuxQuestions.org
Help answer threads with 0 replies.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 10-10-2014, 04:49 PM   #1
andy713
Member
 
Registered: Sep 2009
Location: Florida
Distribution: Slackware64
Posts: 46

Rep: Reputation: 0
Radeon module won't load


I'm trying to use the radeon module instead of fglrx, but it doesn't work with my Kaveri (A10-7850K 4C+8G) chip for some reason:

[ 556.589982] [drm] Initialized drm 1.1.0 20060810
[ 556.634187] [drm] radeon kernel modesetting enabled.
[ 556.634589] [drm] initializing kernel modesetting (KAVERI 0x1002:0x130F 0x1462:0x7721).
[ 556.634608] [drm] register mmio base: 0xFEB00000
[ 556.634609] [drm] register mmio size: 262144
[ 556.634614] [drm] doorbell mmio base: 0xD0000000
[ 556.634616] [drm] doorbell mmio size: 8388608
[ 556.634668] radeon 0000:00:01.0: Invalid ROM contents
[ 556.634690] [drm:radeon_get_bios] *ERROR* Unable to locate a BIOS ROM
[ 556.634692] radeon 0000:00:01.0: Fatal error during GPU init
[ 556.634695] [drm] radeon: finishing device.
[ 556.634696] [TTM] Memory type 2 has not been initialized
[ 556.642163] radeon: probe of 0000:00:01.0 failed with error -22

I have these in /lib/firmware/radeon:

# v /lib/firmware/radeon/kaveri_*
-rw-r--r-- 1 root root 8832 Sep 9 00:05 /lib/firmware/radeon/kaveri_ce.bin
-rw-r--r-- 1 root root 8832 Sep 9 00:05 /lib/firmware/radeon/kaveri_me.bin
-rw-r--r-- 1 root root 17024 Sep 9 00:05 /lib/firmware/radeon/kaveri_mec.bin
-rw-r--r-- 1 root root 17024 Sep 9 00:05 /lib/firmware/radeon/kaveri_mec2.bin
-rw-r--r-- 1 root root 8832 Sep 9 00:05 /lib/firmware/radeon/kaveri_pfp.bin
-rw-r--r-- 1 root root 10496 Sep 9 00:05 /lib/firmware/radeon/kaveri_rlc.bin
-rw-r--r-- 1 root root 4456 Sep 9 00:05 /lib/firmware/radeon/kaveri_sdma.bin

lspci gives this for the video:

00:01.0 VGA compatible controller [0300]: AMD/ATI [Advanced Micro Devices, Inc.] Device [1002:130f] (prog-if 00 [VGA controller])
Subsystem: Micro-Star International Co., Ltd. Device [1462:7721]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 26
Region 0: Memory at c0000000 (64-bit, prefetchable) [size=256M]
Region 2: Memory at d0000000 (64-bit, prefetchable) [size=8M]
Region 4: I/O ports at f000 [size=256]
Region 5: Memory at feb00000 (32-bit, non-prefetchable) [size=256K]
Expansion ROM at feb40000 [disabled] [size=128K]
Capabilities: [48] Vendor Specific Information: Len=08 <?>
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1+,D2+,D3hot+,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [58] Express (v2) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 <1us
ExtTag+ RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 00000000fee0f00c Data: 4193
Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Capabilities: [270 v1] #19
Capabilities: [2b0 v1] Address Translation Service (ATS)
ATSCap: Invalidate Queue Depth: 00
ATSCtl: Enable+, Smallest Translation Unit: 00
Capabilities: [2c0 v1] #13
Capabilities: [2d0 v1] #1b
Kernel modules: radeon, fglrx

Maybe it doesn't like the expansion ROM being flagged as disabled? Anyone have this sort of setup working?

Andy
 
Old 10-10-2014, 10:55 PM   #2
ReaperX7
LQ Guru
 
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,558
Blog Entries: 15

Rep: Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098
Do you have the kaveri firmware installed in /lib/firmware/radeon?

The firmware can be acquired here: http://people.freedesktop.org/~agd5f/radeon_ucode/

Make sure you get all the latest dated kaveri firmware modules. If it still won't load, check this database on what else firmware-wise might be needed: http://wiki.x.org/wiki/RadeonFeature...arketing_names

Last edited by ReaperX7; 10-10-2014 at 10:57 PM.
 
Old 10-11-2014, 10:17 AM   #3
andy713
Member
 
Registered: Sep 2009
Location: Florida
Distribution: Slackware64
Posts: 46

Original Poster
Rep: Reputation: 0
I did this:

wget -r -np -nd "http://people.freedesktop.org/~agd5f/radeon_ucode/" -A 'kaveri_*'
wget -r -np -nd "http://people.freedesktop.org/~agd5f/radeon_ucode/" -A 'KAVERI_*'
for a in * ; do diff -s $a /lib/firmware/radeon/$a; done

and got this:

Files KAVERI_ce.bin and /lib/firmware/radeon/KAVERI_ce.bin are identical
Files KAVERI_me.bin and /lib/firmware/radeon/KAVERI_me.bin are identical
Files KAVERI_mec.bin and /lib/firmware/radeon/KAVERI_mec.bin are identical
Files KAVERI_pfp.bin and /lib/firmware/radeon/KAVERI_pfp.bin are identical
Files KAVERI_rlc.bin and /lib/firmware/radeon/KAVERI_rlc.bin are identical
Files KAVERI_sdma.bin and /lib/firmware/radeon/KAVERI_sdma.bin are identical
Files kaveri_ce.bin and /lib/firmware/radeon/kaveri_ce.bin are identical
Files kaveri_me.bin and /lib/firmware/radeon/kaveri_me.bin are identical
Files kaveri_mec.bin and /lib/firmware/radeon/kaveri_mec.bin are identical
Files kaveri_mec2.bin and /lib/firmware/radeon/kaveri_mec2.bin are identical
Files kaveri_pfp.bin and /lib/firmware/radeon/kaveri_pfp.bin are identical
Files kaveri_rlc.bin and /lib/firmware/radeon/kaveri_rlc.bin are identical
Files kaveri_sdma.bin and /lib/firmware/radeon/kaveri_sdma.bin are identical

So it looks like I have the latest firmware, and it's in the right place.

Next I downloaded / made / booted kernel 3.17:

Linux 3.17.0 #1 SMP PREEMPT Sat Oct 11 09:24:36 CDT 2014 x86_64 AMD A10-7850K Radeon R7, 12 Compute Cores 4C+8G AuthenticAMD GNU/Linux

Still, no luck:

[ 201.697668] [drm] Initialized drm 1.1.0 20060810
[ 201.735458] [drm] radeon kernel modesetting enabled.
[ 201.736640] [drm] initializing kernel modesetting (KAVERI 0x1002:0x130F 0x1462:0x7721).
[ 201.736658] [drm] register mmio base: 0xFEB00000
[ 201.736659] [drm] register mmio size: 262144
[ 201.736666] [drm] doorbell mmio base: 0xD0000000
[ 201.736667] [drm] doorbell mmio size: 8388608
[ 201.736717] radeon 0000:00:01.0: Invalid ROM contents
[ 201.736728] [drm:radeon_get_bios] *ERROR* Unable to locate a BIOS ROM
[ 201.736729] radeon 0000:00:01.0: Fatal error during GPU init
[ 201.736732] [drm] radeon: finishing device.
[ 201.736733] [TTM] Memory type 2 has not been initialized
[ 201.744418] radeon: probe of 0000:00:01.0 failed with error -22

So maybe one of these?

# modinfo -p radeon
no_wbisable AGP writeback for scratch registers (int)
modesetisable/Enable modesetting (int)
dynclksisable/Enable dynamic clocks (int)
r4xx_atom:Enable ATOMBIOS modesetting for R4xx (int)
vramlimit:Restrict VRAM for testing (int)
agpmode:AGP Mode (-1 == PCI) (int)
gartsize:Size of PCIE/IGP gart to setup in megabytes (32, 64, etc., -1 = auto) (int)
benchmark:Run benchmark (int)
test:Run tests (int)
connector_table:Force connector table (int)
tv:TV enable (0 = disable) (int)
audio:Audio enable (-1 = auto, 0 = disable, 1 = enable) (int)
disp_priorityisplay Priority (0 = auto, 1 = normal, 2 = high) (int)
hw_i2c:hw i2c engine enable (0 = disable) (int)
pcie_gen2:PCIE Gen2 mode (-1 = auto, 0 = disable, 1 = enable) (int)
msi:MSI support (1 = enable, 0 = disable, -1 = auto) (int)
lockup_timeout:GPU lockup timeout in ms (defaul 10000 = 10 seconds, 0 = disable) (int)
fastfbirect FB access for IGP chips (0 = disable, 1 = enable) (int)
dpmPM support (1 = enable, 0 = disable, -1 = auto) (int)
aspm:ASPM support (1 = enable, 0 = disable, -1 = auto) (int)
runpm:PX runtime pm (1 = force enable, 0 = disable, -1 = PX only default) (int)
hard_reset:PCI config reset (1 = force enable, 0 = disable (default)) (int)

But none of them look obviously related to this problem.

Andy
 
Old 10-12-2014, 04:01 AM   #4
ReaperX7
LQ Guru
 
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,558
Blog Entries: 15

Rep: Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098
Okay it still says unable to locate a bios rom so obviously the kaveri firmware is a spinoff of a more mainstream firmware. You may need the BTC firmware.

If this doesn't work you may need to manually add the firmware into the kernel and rebuild the kernel with the added firmware.

Add this to your kernel configuration:

Code:
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/KAVERI_ce.bin radeon/KAVERI_me.bin radeon/KAVERI_mec.bin radeon/KAVERI_pfp.bin radeon/KAVERI_rlc.bin radeon/KAVERI_sdma.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
And rebuild using:

Code:
make
make modules_install
make firmware_install
This should add the proper support.
 
Old 10-12-2014, 09:49 AM   #5
andy713
Member
 
Registered: Sep 2009
Location: Florida
Distribution: Slackware64
Posts: 46

Original Poster
Rep: Reputation: 0
First, thanks to all for your help. I tried building the firmware into the kernel trick, but still no luck. I found where the "Invalid BIOS" message was coming from which led me to try to dump the video BIOS to see what it was that it couldn't match up to. Trying the "dump the ROM" tricks I found yielded:

# find /sys -name rom
/sys/devices/pci0000:00/0000:00:01.0/rom
# echo 1 > /sys/devices/pci0000:00/0000:00:01.0/rom
# cat /sys/devices/pci0000:00/0000:00:01.0/rom > kaveri.bios
cat: /sys/devices/pci0000:00/0000:00:01.0/rom: Input/output error

The kaveri.bios file is empty. So, this seems to be why the BIOS init fails. There's a ROM, but there isn't? When using the Catalyst module I don't get any errors, but it doesn't provide anything useful either:

[ 29.062138] fglrx_pci 0000:00:01.0: irq 89 for MSI/MSI-X
[ 29.063666] <6>[fglrx] Firegl kernel thread PID: 796
[ 29.063780] <6>[fglrx] Firegl kernel thread PID: 797
[ 29.063893] <6>[fglrx] Firegl kernel thread PID: 798
[ 29.063987] <6>[fglrx] IRQ 89 Enabled
[ 29.072873] <6>[fglrx] Reserved FB block: Shared offset:0, size:1000000
[ 29.072876] <6>[fglrx] Reserved FB block: Unshared offset:fa38000, size:4000
[ 29.072877] <6>[fglrx] Reserved FB block: Unshared offset:fa3c000, size:4c4000
[ 29.072879] <6>[fglrx] Reserved FB block: Unshared offset:ff00000, size:100000
[ 29.072880] <6>[fglrx] Reserved FB block: Unshared offset:3ffd7000, size:29000
[ 29.191037] <6>[fglrx] ATIF platform detected with notification ID: 0x81

The Catalyst module worked with -stable, but it segfaults with -current. At this rate I'll have to fall back to stock 14.1 so that I'll have something that works.

Andy
 
Old 10-12-2014, 08:13 PM   #6
ReaperX7
LQ Guru
 
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,558
Blog Entries: 15

Rep: Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098
What version of xf86-video-ati do you have installed?

Invalid BIOS could be the video driver doesn't support the card for basic VESA controls. The Radeon 7850 should be supported by the latest xf86-video-ati release from Xorg. It could be even another variation in firmware, or yet another missing firmware module.

There's also a firmware RS780_uvd.bin that might be related, as well as other firmware. Try grabbing the entire firmware set and see if maybe a comprehensive package of firmware helps any.

Last edited by ReaperX7; 10-12-2014 at 08:35 PM.
 
Old 10-12-2014, 10:35 PM   #7
andy713
Member
 
Registered: Sep 2009
Location: Florida
Distribution: Slackware64
Posts: 46

Original Poster
Rep: Reputation: 0
/var/log/packages/xf86-video-ati-7.4.0-x86_64-1

Even when the default run level is 3 and I modprobe radeon I see these messages, so I don't think that the X version is the problem. Also keep in mind that with kaveri the GPU's are on the die with the CPU. There is no separate video card or even a IGP on the motherboard. It's all in the FM2+ socket, so if there is a video BIOS it seems to me that it would need to come with the processor. The VESA X driver works, and the fglrx X driver works as long as the fglrx module isn't loaded (I just don't have acceleration), which is how I am seeing and typing this now. The fglrx X driver and fglrx kernel module work together until I load chrome or something similar, then libxcb-glx.so segfaults and X crashes.

Andy
 
Old 10-12-2014, 10:55 PM   #8
ReaperX7
LQ Guru
 
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,558
Blog Entries: 15

Rep: Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098
You shouldn't have fglrx and radeon on the same system. You should remove the fglrx driver totally and reinstall LibMesa.

Fglrx works but you can't use the Radeon module with it. You have to use fglrx exclusively. You probably can use fglrx's drm kernel module, but you may need to rebuild it against the lastest kernel you installed.

Those chips are somewhat new so support is going to vary. You should also look into a dedicated video card as well. Those on-chip solutions work but they aren't the best. Give it about a year and the support will be better.

Last edited by ReaperX7; 10-13-2014 at 12:21 AM.
 
Old 10-13-2014, 08:22 AM   #9
andy713
Member
 
Registered: Sep 2009
Location: Florida
Distribution: Slackware64
Posts: 46

Original Poster
Rep: Reputation: 0
Yes, I know I can't have both, thank you. I'm using the package build feature of the Catalyst driver to install/uninstall it for testing, as I have two FGLRX versions (14.2 and 14.3) and three kernel versions (3.13.5, 3.14.18, and 3.17.0) to test. However, as I said, at runlevel 3 the only thing that could be loaded is the kernel module. The fglrx module loads fine (see previous post), and until I upgraded X with the latest from -current, X ran fine too. At no point has the radeon module ever loaded with any kernel version up through 3.17, so X never enters into the picture. This is the most trouble I remember having with X since I began stuffing Slackware floppies into my system 20 years ago. So it would seem that the radeon module isn't ready yet. I was hoping some Slacker would have it working, but apparently nobody reading this board does.

Andy
 
Old 10-13-2014, 04:41 PM   #10
ReaperX7
LQ Guru
 
Registered: Jul 2011
Location: California
Distribution: Slackware64-15.0 Multilib
Posts: 6,558
Blog Entries: 15

Rep: Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098Reputation: 2098
You probably should use fglrx with the default x-server and packages from 14.1 then. Read the documentation at www.amd.com very carefully about which versions they support. Often it's limited to a specific kernel and x-server, so be careful.

Using -current can be tricky as not all packages available in -current have been fully tested by Slackware packagers, OEMs, and other users as well, so results can be iffy. You shouldn't try to use OEM drivers with -current stuff as it is.
 
Old 10-13-2014, 04:59 PM   #11
andy713
Member
 
Registered: Sep 2009
Location: Florida
Distribution: Slackware64
Posts: 46

Original Poster
Rep: Reputation: 0
I've already reverted back to 14.1 with all the stable updates and fglrx 14.2 and it is working fine. With Slackware we can burn an ISO, boot, install, and be back up in a half hour. With Windows we would time it with a calendar.

Andy
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Radeon kernel module in slackware -current will not load AceofSpades19 Slackware 17 04-26-2013 06:12 PM
How do I manually load the radeon module? Stevithen Linux - General 3 02-07-2012 01:08 AM
ATI Radeon 7000 AGP 64 MB - Xorg 7.4 won't load with 'radeon' driver highowl Linux - Hardware 2 02-23-2009 09:31 AM
radeon module fails to load when starting X manlydan Linux - General 9 02-11-2007 02:18 PM
X won't load i810 module for 915GM video card "module requirement mismatch" yougene Slackware 10 03-18-2006 10:02 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 06:09 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration