Opened 11 years ago
Closed 3 years ago
#10505 closed enhancement (fixed)
radeon_hd needs ACPI support for finding the AtomBIOS
Reported by: | kallisti5 | Owned by: | korli |
---|---|---|---|
Priority: | normal | Milestone: | R1/beta4 |
Component: | Drivers/Graphics/radeon_hd | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
Radeon HD devices can stash their AtomBIOS in the ATRM ACPI node. We should try and obtain a copy there first before attempting other methods.
The location this needs done in is: http://cgit.haiku-os.org/haiku/tree/src/add-ons/kernel/drivers/graphics/radeon_hd/radeon_hd.cpp#n133
Defines of the AMD ACPI methods are here: http://lists.freedesktop.org/archives/dri-devel/2012-July/025517.html
ATRM contains the AtomBIOS (or points to it, not 100% how that works)
At the moment, a lot of cards that should be using the ATRM node are falling back to my Video shadow bios hack (0xC0000) which can be unreliable.
Change History (7)
comment:1 by , 11 years ago
comment:2 by , 10 years ago
Could someone with such ROM detection could post its /dev/acpi/namespace please ?
comment:4 by , 3 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Fixed by korli in hrev55760. I guess if everything works it should be closed.
comment:5 by , 3 years ago
I just tried it on my Radeon RX 480.
KERN: radeon_hd: radeon_hd_init: card(0): Radeon Polaris 10 1002:67DF KERN: radeon_hd: radeon_hd_init: shrinking frame buffer to PCI bar... KERN: radeon_hd: radeon_hd_init: mapping a frame buffer of 256MB out of 8192MB video ram KERN: radeon_hd: framebuffer paddr: 0xd0000000 KERN: radeon_hd: frambuffer vaddr: 0xffffffffe8000000 KERN: radeon_hd: frambuffer size: 0x10000000 KERN: radeon_hd: card(0): radeon_hd_getbios: called KERN: radeon_hd: mapAtomBIOSACPI: seeking AtomBIOS from ACPI KERN: radeon_hd: radeon_hd_getbios: AtomBIOS not found using active method 0 at 0x0 KERN: radeon_hd: mapAtomBIOS: seeking AtomBIOS @ 0xD0000000 [size: 0x40000] KERN: radeon_hd: mapAtomBIOS: BIOS signature incorrect @ 0xD0000000 (0) KERN: radeon_hd: radeon_hd_getbios: AtomBIOS not found using active method 1 at 0xD0000000 KERN: radeon_hd: radeon_hd_getbios: PCI ROM decode enabled KERN: radeon_hd: mapAtomBIOS: seeking AtomBIOS @ 0xFCE40000 [size: 0x20000] KERN: radeon_hd: mapAtomBIOS: AtomBIOS verified and locked
Didn't find it... however i'm pretty sure that's expected as the AHCI table entry is mostly reserved for laptops and integrated GPU's?
comment:7 by , 3 years ago
Milestone: | R1 → R1/beta4 |
---|---|
Resolution: | → fixed |
Status: | assigned → closed |
Seems to work as seen on #17582
KERN: radeon_hd: mapAtomBIOSACPI: ACPI VFCT contains a BIOS for: 0:1:0 1002:9994 KERN: radeon_hd: mapAtomBIOSACPI: AtomBIOS verified and locked (20480) KERN: radeon_hd: radeon_hd_getbios: AtomBIOS found using active method 0 at 0x0
This needs to be done:
If anyone fails fallthrough to next way of getting firmware.
Possibly we need to do like Linux that calls ATRM with offset into bios as first param and length to read as second. Reading the BIOS is done with several calls with chunks that are ATRM page size until 256 * 1024 bytes are read.