You are not logged in.

#1 2012-04-12 19:07:48

wunki
Member
Registered: 2009-02-17
Posts: 10

Load custom Radeon firmware for Macbook Pro

Hi,

I'm working on an ArchLinux setup for my Macbook Pro 8.3. So far, I'm able to boot the intel card thanks to a lvds_channels patch. I'm doing this by building a custom kernel. All the work can be found on my Github repository. Next step is enabling my Radeon card and for this I have updated the patch found in this news post. You can view the patch on on Github.

The main thing to note are the following lines:

+static bool radeon_read_bios_from_firmware(struct radeon_device *rdev)
+{
+	const uint8_t __iomem *bios;
+	resource_size_t size;
+	const struct firmware *fw = NULL;
+
+	request_firmware(&fw, "radeon/vbios.bin", rdev->dev);
+	if (!fw) {
+		DRM_ERROR("No firmware file\n");
+		return false;
+	}
+	size = fw->size;
+	bios = fw->data;
+
+	if (!bios) {
+		DRM_ERROR("No bios\n");
+		return false;
+	}

I have placed my vbios.bin in /lib/firmware/radeon/vbios.bin but I'm getting "No firmware file" in my error log. Meaning that request_firmware can't find it. Is there something I can do so that udev (?) can find my firmware file?

I have looked at everything I can think of, udev, code of request_firmware but I can't make my kernel find the vbios.bin file. I'm in desperate need for a real Sherlock Holmes. Does anyone know what I can do so that my Kernel finds the vbios.bin file?

Thanks in advance!

Offline

#2 2012-04-12 21:52:24

tomegun
Developer
From: France
Registered: 2010-05-28
Posts: 661

Re: Load custom Radeon firmware for Macbook Pro

Looks like you put it in the right place (though /usr/lib/firmware/radeon/vbios.bin would be more future proof, as we are moving all firmware here). The only thing I can think of is that your firmware might be corrupted.

Offline

#3 2012-04-16 09:02:09

wunki
Member
Registered: 2009-02-17
Posts: 10

Re: Load custom Radeon firmware for Macbook Pro

Is there a way for me to know if the firmware is corrupted? I got the firmware by booting the Ubuntu LiveCD and running:

dd if=/dev/mem of=vbios.bin bs=65536 skip=12 count=1

Maybe the firmware is different when getting it from a different kernel version?

Offline

#4 2012-09-27 14:39:59

Tasqa
Member
Registered: 2012-04-27
Posts: 14

Re: Load custom Radeon firmware for Macbook Pro

Any updates on this? I recently installed Arch on my macbook pro 8,2 and I'm having issues with the radeon kernel module which hangs the screen. If you made a patch I would be happy to try it :-)

Offline

#5 2018-09-30 14:27:16

andreas_baumann
Member
Registered: 2011-05-04
Posts: 23

Re: Load custom Radeon firmware for Macbook Pro

I might me a little bit late on this one, but I got an AMD X1600 running with the method
(an old Macboox 2.1 or A1221).

a) Get yourself a running live CD of some Linux and boot, grab the video firmware
    as described above (I did it with an Ubuntu 10 live CD).
b) You can verify the correctness with:
   hexdump -C vbios.bin | head -n 1
   00000000  55 aa 7d e9 7f 02 00 00  00 00 00 00 00 00 00 00  |U.}.............|
   the first two bytes must be 55 aa, also later in the dump you see some copyright
   notices. :-)
c) Put this firmware to /lib/firmware/radeon/vbios.bin
d) Apply the patch from https://bugs.freedesktop.org/show_bug.cgi?id=26891
    (https://bugs.freedesktop.org/attachment.cgi?id=33766, I did apply it manually,
    as some code shifted place)
e) make sure to load the radeon driver in the ramdisk:
    /etc/mkinitcpio.conf:
   MODULES=(radeon)
   FILES=(/usr/lib/firmware/radeon/*)
   mkinitcpio -P
   (the FILES option might not be necessare as mkinitcpio might copy all firmware files already, didn't check)

I'm using rEFIt and a 32-bit grub to boot from the 32-bit EFI my Mac has, this seems
to work fine. Most likely also a EFISTUBed kernel would boot directly without boot manager,
but I like to have grub around. :-)

Last edited by andreas_baumann (2018-09-30 14:42:14)

Offline

Board footer

Powered by FluxBB