Crash with radeonkms

Anindya Mukherjee anindya49 at hotmail.com
Sat Jan 14 06:43:29 UTC 2017


Hi, some updates on testing radeon drivers:

I can kldload radeonkms, amdgpu, and i915 now without crashing.

amdgpu and i915 cannot find the device, but symbols are being resolved (it's a radeon 2400xt)

radeonkms from drm-next+patch does load and find the device, but the screen goes dark immediately. Not sure what's the problem.
On my system which has an r600 chip it needs three firmware modules which are loaded correctly (or at least the right ones seem to have been loaded):
radeonkmsfw_RV610_me.ko
radeonkmsfw_RV610_pfp.ko
radeonkmsfw_R600_rlc.ko
radeonkms.ko

Further messages from radeonkms below (in case they are useful). I have a copy of the install kernel from CURRENT on the test machine which is able to load the stock radeonkms and the video switches to a hi-res text mode, so the stock radeonkms is working fine. I have another identical machine running 10.3 where X works fine so this is expected I guess. In all cases the same three firmware modules are loaded (drm-next, CURRENT, 10.3).

Messages from the patched drm-next radeonkms (screen goes dark):

Jan 13 22:13:06 triskelion kernel: info: [drm] Initialized drm 1.1.0 20060810
Jan 13 22:13:06 triskelion kernel: drmn0: <Radeon HD 2400 XT> on vgapci0
Jan 13 22:13:06 triskelion kernel: info: [drm] RADEON_IS_PCIE
Jan 13 22:13:06 triskelion kernel: info: [drm] initializing kernel modesetting (RV610 0x1002:0x94C1 0x1028:0x0D02).
Jan 13 22:13:06 triskelion kernel: info: [drm] register mmio base: 0xFE9F0000
Jan 13 22:13:06 triskelion kernel: info: [drm] register mmio size: 65536
Jan 13 22:13:06 triskelion kernel: info: [drm] radeon_atrm_get_bios: ===> Try ATRM...
Jan 13 22:13:06 triskelion kernel: info: [drm] radeon_atrm_get_bios: pci_find_class() found: 0:1:0:0, vendor=1002, device=94c1
Jan 13 22:13:06 triskelion kernel: info: [drm] radeon_atrm_get_bios: Get ACPI device handle
Jan 13 22:13:06 triskelion kernel: info: [drm] radeon_acpi_vfct_bios: ===> Try VFCT...
Jan 13 22:13:06 triskelion kernel: info: [drm] radeon_acpi_vfct_bios: Get "VFCT" ACPI table
Jan 13 22:13:06 triskelion kernel: info: [drm] radeon_acpi_vfct_bios: Failed to get "VFCT" table: AE_NOT_FOUND
Jan 13 22:13:06 triskelion kernel: info: [drm] igp_read_bios_from_vram: ===> Try IGP's VRAM...
Jan 13 22:13:06 triskelion kernel: info: [drm] igp_read_bios_from_vram: VRAM base address: 0xd0000000
Jan 13 22:13:06 triskelion kernel: info: [drm] igp_read_bios_from_vram: Map address: 0xfffff800d0000000 (262144 bytes)
Jan 13 22:13:06 triskelion kernel: info: [drm] igp_read_bios_from_vram: Incorrect BIOS signature: 0x0000
Jan 13 22:13:06 triskelion kernel: info: [drm] radeon_read_bios: ===> Try PCI Expansion ROM...
Jan 13 22:13:06 triskelion kernel: info: [drm] radeon_read_bios: Map address: 0xfffff800000c0000 (131072 bytes)
Jan 13 22:13:07 triskelion kernel: info: [drm] ATOM BIOS: 113
Jan 13 22:13:07 triskelion kernel: drmn0: info: VRAM: 256M 0x0000000000000000 - 0x000000000FFFFFFF (256M used)
Jan 13 22:13:07 triskelion kernel: drmn0: info: GTT: 512M 0x0000000010000000 - 0x000000002FFFFFFF
Jan 13 22:13:07 triskelion kernel: info: [drm] Detected VRAM RAM=256M, BAR=256M
Jan 13 22:13:07 triskelion kernel: info: [drm] RAM width 64bits DDR
Jan 13 22:13:07 triskelion kernel: [TTM] Zone  kernel: Available graphics memory: 4110874 kiB
Jan 13 22:13:07 triskelion kernel: [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
Jan 13 22:13:07 triskelion kernel: [TTM] Initializing pool allocator
Jan 13 22:13:07 triskelion kernel: info: [drm] radeon: 256M of VRAM memory ready
Jan 13 22:13:07 triskelion kernel: info: [drm] radeon: 512M of GTT memory ready.
Jan 13 22:13:07 triskelion kernel: info: [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
Jan 13 22:13:07 triskelion kernel: info: [drm] Driver supports precise vblank timestamp query.
Jan 13 22:13:07 triskelion kernel: info: [drm] MSI enabled 1 message(s)
Jan 13 22:13:07 triskelion kernel: drmn0: info: radeon: using MSI.
Jan 13 22:13:07 triskelion kernel: info: [drm] radeon: irq initialized.
Jan 13 22:13:07 triskelion kernel: info: [drm] GART: num cpu pages 131072, num gpu pages 131072
Jan 13 22:13:07 triskelion kernel: info: [drm] probing gen 2 caps for device 8086:29b1 = 1/0
Jan 13 22:13:07 triskelion kernel: info: [drm] Loading RV610 Microcode
Jan 13 22:13:07 triskelion kernel: info: [drm] PCIE GART of 512M enabled (table at 0x0000000000040000).
Jan 13 22:13:07 triskelion kernel: drmn0: info: WB enabled
Jan 13 22:13:07 triskelion kernel: drmn0: info: fence driver on ring 0 use gpu addr 0x0000000010000c00 and cpu addr 0x0xfffff8002b714c00
Jan 13 22:13:07 triskelion kernel: drmn0: info: fence driver on ring 3 use gpu addr 0x0000000010000c0c and cpu addr 0x0xfffff8002b714c0c
Jan 13 22:13:07 triskelion kernel: info: [drm] ring test on 0 succeeded in 1 usecs
Jan 13 22:13:07 triskelion kernel: info: [drm] ring test on 3 succeeded in 1 usecs
Jan 13 22:13:07 triskelion kernel: info: [drm] ib test on ring 0 succeeded in 0 usecs
Jan 13 22:13:07 triskelion kernel: info: [drm] ib test on ring 3 succeeded in 0 usecs
Jan 13 22:13:07 triskelion kernel: info: [drm] radeon_device_init: Taking over the fictitious range 0xd0000000-0xe0000000
Jan 13 22:13:07 triskelion kernel: radeon_iicbb0 on drmn0
Jan 13 22:13:07 triskelion kernel: iicbus0: <Philips I2C bus> on iicbb0 addr 0xff
Jan 13 22:13:07 triskelion kernel: iic0: <I2C generic I/O> on iicbus0
Jan 13 22:13:07 triskelion kernel: radeon_iicbb1 on drmn0
Jan 13 22:13:07 triskelion kernel: iicbus1: <Philips I2C bus> on iicbb1 addr 0x0
Jan 13 22:13:07 triskelion kernel: iic1: <I2C generic I/O> on iicbus1
Jan 13 22:13:07 triskelion kernel: radeon_iicbb2 on drmn0
Jan 13 22:13:07 triskelion kernel: iicbus2: <Philips I2C bus>
Jan 13 22:13:07 triskelion kernel: on iicbb2 addr 0x0
Jan 13 22:13:07 triskelion kernel: iic2: <I2C generic I/O> on iicbus2
Jan 13 22:13:07 triskelion kernel: radeon_iicbb3 on drmn0
Jan 13 22:13:07 triskelion kernel: iicbus3: <Philips I2C bus> on iicbb3 addr 0x0
Jan 13 22:13:07 triskelion kernel: iic3: <I2C generic I/O> on iicbus3
Jan 13 22:13:07 triskelion kernel: radeon_iicbb4 on drmn0
Jan 13 22:13:07 triskelion kernel: iicbus4: <Philips I2C bus> on iicbb4 addr 0x0
Jan 13 22:13:07 triskelion kernel: iic4: <I2C generic I/O> on iicbus4
Jan 13 22:13:07 triskelion kernel: info: [drm] Radeon Display Connectors
Jan 13 22:13:07 triskelion kernel: info: [drm] Connector 0:
Jan 13 22:13:07 triskelion kernel: info: [drm]   DIN-1
Jan 13 22:13:07 triskelion kernel: info: [drm]   Encoders:
Jan 13 22:13:07 triskelion kernel: info: [drm]     TV1: INTERNAL_KLDSCP_DAC2
Jan 13 22:13:07 triskelion kernel: info: [drm] Connector 1:
Jan 13 22:13:07 triskelion kernel: info: [drm]   DVI-I-1
Jan 13 22:13:07 triskelion kernel: info: [drm]   HPD2
Jan 13 22:13:07 triskelion kernel: info: [drm]   DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
Jan 13 22:13:07 triskelion kernel: info: [drm]   Encoders:
Jan 13 22:13:07 triskelion kernel: info: [drm]     CRT2: INTERNAL_KLDSCP_DAC2
Jan 13 22:13:07 triskelion kernel: info: [drm]     DFP1: INTERNAL_KLDSCP_TMDS1
Jan 13 22:13:07 triskelion kernel: info: [drm] Connector 2:
Jan 13 22:13:07 triskelion kernel: info: [drm]   DVI-I-2
Jan 13 22:13:07 triskelion kernel: info: [drm]   HPD1
Jan 13 22:13:07 triskelion kernel: info: [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
Jan 13 22:13:07 triskelion kernel: info: [drm]   Encoders:
Jan 13 22:13:07 triskelion kernel: info: [drm]     CRT1: INTERNAL_KLDSCP_DAC1
Jan 13 22:13:07 triskelion kernel: info: [drm]     DFP2: INTERNAL_LVTM1
Jan 13 22:13:07 triskelion kernel: info: [drm] Internal thermal controller with fan control
Jan 13 22:13:07 triskelion kernel: info: [drm] radeon: power management initialized
Jan 13 22:13:07 triskelion kernel: info: [drm] Connector DIN-1: get mode from tunables:
Jan 13 22:13:07 triskelion kernel: info: [drm]   - kern.vt.fb.modes.DIN-1
Jan 13 22:13:07 triskelion kernel: info: [drm]   - kern.vt.fb.default_mode
Jan 13 22:13:07 triskelion kernel: info: [drm] Connector DVI-I-1: get mode from tunables:
Jan 13 22:13:07 triskelion kernel: info: [drm]   - kern.vt.fb.modes.DVI-I-1
Jan 13 22:13:07 triskelion kernel: info: [drm]   - kern.vt.fb.default_mode
Jan 13 22:13:07 triskelion kernel: info: [drm] Connector DVI-I-2: get mode from tunables:
Jan 13 22:13:07 triskelion kernel: info: [drm]   - kern.vt.fb.modes.DVI-I-2
Jan 13 22:13:07 triskelion kernel: info: [drm]   - kern.vt.fb.default_mode
Jan 13 22:13:07 triskelion kernel: info: [drm] fb mappable at 0xD0142000
Jan 13 22:13:07 triskelion kernel: info: [drm] vram apper at 0xD0000000
Jan 13 22:13:07 triskelion kernel: info: [drm] size 5242880
Jan 13 22:13:07 triskelion kernel: info: [drm] fb depth is 24
Jan 13 22:13:07 triskelion kernel: info: [drm]    pitch is 5120
Jan 13 22:13:07 triskelion kernel: fbd0 on drmn0
Jan 13 22:13:07 triskelion kernel: VT: Replacing driver "vga" with new "fb".
Jan 13 22:13:07 triskelion kernel: info: [drm] Initialized radeon 2.29.0 20080528 for drmn0 on minor 0

Thanks,
Anindya
________________________________________
From: Jung-uk Kim [jkim at FreeBSD.org]
Sent: January 13, 2017 8:09 AM
To: Anindya Mukherjee; Matthew Macy
Cc: freebsd-x11 at freebsd.org
Subject: Re: Crash with radeonkms

On 01/12/2017 23:08, Anindya Mukherjee wrote:
> Thanks for the tip! I loaded linuxkpi, drm first, and then tried to load radeonkms with the following results:
>
> [drm] Initialized
> link_elf_obj: symbol acpi_get_table undefined
> linker_load_file: Unsupported file type
>
> I see a protoype for this function (and others) in sys/compat/linuxkpi/common/include/acpi/acpifx.h:494. Perhaps all of them are missing? Can we add a linker script or something similar?

Please try this patch.

https://patch-diff.githubusercontent.com/raw/FreeBSDDesktop/freebsd-base-graphics/pull/110.diff

Jung-uk Kim

> Anindya
>
> ________________________________________
> From: Matthew Macy [mmacy at nextbsd.org]
> Sent: January 12, 2017 2:43 PM
> To: Anindya Mukherjee
> Cc: freebsd-x11 at freebsd.org
> Subject: RE: Crash with radeonkms
>
>  ---- On Thu, 12 Jan 2017 09:52:21 -0800 Anindya Mukherjee <anindya49 at hotmail.com> wrote ----
>  > There seems to be an error while trying to load the "radeonkms" module (#15). It then tries to unload it, and crashes.
>
> Correct. It's almost certainly missing symbols. To find out what they are without crashing your system, load linuxkpi, then load drm, and *then* load radeon. Note that if your hardware is SI or newer it's supported by amdgpu.
>
> -M


More information about the freebsd-x11 mailing list