I ran into some trouble when I first started building radeon KMS into the kernel and enabled it by default. The Trouble has to do with the Binary Firmware Blobs they are hurding us into using. I'm talking about the stuff that shows up in dmesg like this:
Code:
[drm] Initialized drm 1.1.0 20060810
[drm] radeon defaulting to kernel modesetting.
[drm] radeon kernel modesetting enabled.
radeon 0000:01:05.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
radeon 0000:01:05.0: setting latency timer to 64
[drm] radeon: Initializing kernel modesetting.
[drm] register mmio base: 0xFE8F0000
[drm] register mmio size: 65536
ATOM BIOS: B27721
[drm] Clocks initialized !
[drm] 3 Power State(s)
[drm] State 0 Default (default)
[drm] 1 Clock Mode(s)
[drm] 0 engine: 300000
[drm] State 1 Performance
[drm] 1 Clock Mode(s)
[drm] 0 engine: 500000
[drm] State 2 Default
[drm] 1 Clock Mode(s)
[drm] 0 engine: 500000
[drm] radeon: power management initialized
radeon 0000:01:05.0: VRAM: 256M 0xC0000000 - 0xCFFFFFFF (256M used)
radeon 0000:01:05.0: GTT: 512M 0xA0000000 - 0xBFFFFFFF
[drm] Detected VRAM RAM=256M, BAR=256M
[drm] RAM width 32bits DDR
[TTM] Zone kernel: Available graphics memory: 2928610 kiB.
[TTM] Zone dma32: Available graphics memory: 2097152 kiB.
[drm] radeon: 256M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
[drm] radeon: irq initialized.
[drm] GART: num cpu pages 131072, num gpu pages 131072
[drm] Loading RS780 Microcode
platform radeon_cp.0: firmware: using built-in firmware radeon/RS780_pfp.bin
platform radeon_cp.0: firmware: using built-in firmware radeon/RS780_me.bin
platform radeon_cp.0: firmware: using built-in firmware radeon/R600_rlc.bin
[drm] ring test succeeded in 0 usecs
[drm] radeon: ib pool ready.
[drm] ib test succeeded in 0 usecs
[drm] Enabling audio support
[drm] Radeon Display Connectors
[drm] Connector 0:
[drm] VGA
[drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
[drm] Encoders:
[drm] CRT1: INTERNAL_KLDSCP_DAC1
[drm] Connector 1:
[drm] HDMI-A
[drm] HPD3
[drm] DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
[drm] Encoders:
[drm] DFP1: INTERNAL_KLDSCP_LVTMA
[drm] fb mappable at 0xD0141000
[drm] vram apper at 0xD0000000
[drm] size 8294400
[drm] fb depth is 24
That was probably a little too much information. My point is that*platform radeon_cp.0: firmware: using built-in firmware radeon/R600_rlc.bin will fail unless you have the R600_rlc.bin available. It usually is NOT because you have no /lib/firmware when you boot and thus not access to the binary blob technology.
Look into your kernel configuration and build the firmware into the kernel. This works (for me).
You want..:
Code:
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE="radeon/R600_rlc.bin radeon/RS780_pfp.bin radeon/RS780_me.bin"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware/"
I ran into trouble with doing this myself because a) Your space-seperated list of firmware must have the path, i.e. radeon/R600_rlc.bin radeon/RS780_pfp.bin etc and if you just write R600_rlc.bin RS780_pfp.bin then you fail. You must also let the kernel know where the files are when you build the kernel with CONFIG_EXTRA_FIRMWARE_DIR or you fail.
I am sure that you can get this working, I did and I'm just this guy, you know, I'm not a scientist.
Good luck!!1