Results 1 to 8 of 8

Thread: Confused by firmware

  1. #1
    Join Date
    Mar 2011
    Posts
    415

    Default Confused by firmware

    Hi,
    I'm using the open source radeon driver for my HD 4670.
    In /lib/firmware/radeon I have: R600_rlc.bin R700_rlc.bin RV730_me.bin RV730_pfp.bin (and others, but I don't think others are used).
    I includet R600_rlc.bin R700_rlc.bin in the kernel (couse the radeon driver starts before the hard drives are ready).

    But now I have some questions:
    Is R600_rlc.bin needed in the kernel?
    Are R600_rlc.bin RV730_me.bin and RV730_pfp.bin needed at all?
    Why are there 3 or 4 firmwares for one card (what does rlc, me and pfp mean)?

    Thank you for clearing things up and sorry for my bad english,
    Thomas.

  2. #2
    Join Date
    Dec 2007
    Posts
    2,404

    Default

    Quote Originally Posted by TAXI View Post
    Hi,
    I'm using the open source radeon driver for my HD 4670.
    In /lib/firmware/radeon I have: R600_rlc.bin R700_rlc.bin RV730_me.bin RV730_pfp.bin (and others, but I don't think others are used).
    I includet R600_rlc.bin R700_rlc.bin in the kernel (couse the radeon driver starts before the hard drives are ready).

    But now I have some questions:
    Is R600_rlc.bin needed in the kernel?
    Are R600_rlc.bin RV730_me.bin and RV730_pfp.bin needed at all?
    Why are there 3 or 4 firmwares for one card (what does rlc, me and pfp mean)?

    Thank you for clearing things up and sorry for my bad english,
    Thomas.
    For r6xx/r7xx/evergreen, there are 3 firmware files you need: me, pfp, and rlc. The me and pfp firmware is for the command processor (which fetches and processes command buffers), and the rlc firmware is for the interrupt controller. If you are using an initrd, you need to include the firmware in the initrd image. If you are building the driver into the kernel, you need to build the firmware images into the kernel. See this page form more on configuring your kernel:
    http://wiki.x.org/wiki/radeonBuildHowTo

  3. #3
    Join Date
    Mar 2011
    Posts
    415

    Default

    Quote Originally Posted by agd5f View Post
    For r6xx/r7xx/evergreen, there are 3 firmware files you need: me, pfp, and rlc.
    So I don't need the R600_rlc.bin, right?
    But are all these files required during bootup or only when X starts? Couse as I sayed: The me and pfp firmwares aren't included in my currently running kernel (as firmware blobs, I don't use an initrd) but everything seems to work. If I don't include the R700_rlc.bin DRI won't work (if I remember correctly).
    The me and pfp firmware is for the command processor (which fetches and processes command buffers), and the rlc firmware is for the interrupt controller.
    Thank you for the explanation.

  4. #4
    Join Date
    Mar 2011
    Posts
    415

    Default

    The Link says:
    CONFIG_EXTRA_FIRMWARE="radeon/CEDAR_me.bin radeon/CEDAR_pfp.bin radeon/CEDAR_rlc.bin radeon/CYPRESS_me.bin radeon/CYPRESS_pfp.bin radeon/CYPRESS_rlc.bin radeon/JUNIPER_me.bin radeon/JUNIPER_pfp.bin radeon/JUNIPER_rlc.bin radeon/R600_rlc.bin radeon/R700_rlc.bin radeon/REDWOOD_me.bin radeon/REDWOOD_pfp.bin radeon/REDWOOD_rlc.bin"
    So no words about RV730_me.bin RV730_pfp.bin - Why is me and pfp needed for CEDAR, CYPRESS, JUNIPER and REDWOOD but not for R600/R700?

  5. #5
    Join Date
    Dec 2007
    Posts
    2,404

    Default

    For your card, you need R700_rlc.bin, RV730_me.bin, and RV730_pfp.bin at boot time when the driver loads. The r6xx/r7xx me and pfp firmware was added to the kernel before they stopped accepting new firmware in the kernel source tree. Firmware is now distributed from the Linux firmware tree.

  6. #6
    Join Date
    Mar 2011
    Posts
    415

    Default

    If I understand that correctly I don't have to add the blobs for RV730_me.bin and RV730_pfp.bin manualy couse they are in the kernel per default?
    Thank you, things are much more clear now.

  7. #7
    Join Date
    Dec 2007
    Posts
    2,404

    Default

    You still have to include it in your initrd or build it into your kernel if you build radeon into the kernel, but you only need CONFIG_EXTRA_FIRMWARE for firmware that was never shipped as part of the kernel.

  8. #8
    Join Date
    Mar 2011
    Posts
    415

    Default

    Yes, I need the blobs in my kernel, so I have to select:
    CONFIG_FIRMWARE_IN_KERNEL=y (for RV730_me.bin and RV730_pfp.bin)
    and
    CONFIG_EXTRA_FIRMWARE="radeon/R700_rlc.bin"
    CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
    for R700_rlc.bin

    This configuration is working fine and thanks to you, I understand now why.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •