Announcement

Collapse
No announcement yet.

Confused by firmware

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    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:

    Comment


    • #3
      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.

      Comment


      • #4
        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?

        Comment


        • #5
          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.

          Comment


          • #6
            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.

            Comment


            • #7
              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.

              Comment


              • #8
                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.

                Comment

                Working...
                X