1. 30 Aug, 2009 1 commit
    • Ben Hutchings's avatar
      radeon: Use request_firmware() · e292590b
      Ben Hutchings authored
      
      
      Loosely based on a patch by
      Jaswinder Singh Rajput <jaswinderlinux@gmail.com>.
      
      KMS support by Dave Airlie <airlied@redhat.com>.
      
      For Radeon 100- to 500-series, firmware blobs look like:
          struct {
              __be32 datah;
              __be32 datal;
          } cp_ucode[256];
      
      For Radeon 600-series, there are two separate firmware blobs:
          __be32 me_ucode[PM4_UCODE_SIZE * 3];
          __be32 pfp_ucode[PFP_UCODE_SIZE];
      
      For Radeon 700-series, likewise:
          __be32 me_ucode[R700_PM4_UCODE_SIZE];
          __be32 pfp_ucode[R700_PFP_UCODE_SIZE];
      Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      e292590b
  2. 27 Aug, 2009 2 commits
  3. 04 Jun, 2009 1 commit
  4. 02 May, 2009 1 commit
  5. 27 Apr, 2009 1 commit
    • Vladislav Zolotarov's avatar
      bnx2x: Separated FW from the source. · 0eae2a4d
      Vladislav Zolotarov authored
      
      
      >From now on FW will be downloaded from the binary file using request_firmware.
      
      There will be different files for every supported chip. Currently 57710 (e1) and
      57711 (e1h).
      
      File names have the following format: bnx2x-<chip version>-<FW version>.fw.
      ihex versions of current FW files are submitted in the next patch.
      
      Each binary file has a header in the following format:
      
      
      struct bnx2x_fw_file_section {
      	__be32 len;
      	__be32 offset;
      }
      
      struct bnx2x_fw_file_hdr {
      	struct bnx2x_fw_file_section init_ops;
      	struct bnx2x_fw_file_section init_ops_offsets;
      	struct bnx2x_fw_file_section init_data;
      	struct bnx2x_fw_file_section tsem_int_table_data;
      	struct bnx2x_fw_file_section tsem_pram_data;
      	struct bnx2x_fw_file_section usem_int_table_data;
      	struct bnx2x_fw_file_section usem_pram_data;
      	struct bnx2x_fw_file_section csem_int_table_data;
      	struct bnx2x_fw_file_section csem_pram_data;
      	struct bnx2x_fw_file_section xsem_int_table_data;
      	struct bnx2x_fw_file_section xsem_pram_data;
      	struct bnx2x_fw_file_section fw_version;
      }
      
      Each bnx2x_fw_file_section contains the length and the offset of the appropriate
      section in the binary file. Values are stored in the big endian format.
      
      Data types of arrays:
      
      init_data            __be32
      init_ops_offsets     __be16
      XXsem_pram_data         u8
      XXsem_int_table_data    u8
      init_ops             struct raw_op {
                                u8   op;
      			__be24 offset;
                              __be32 data;
      		     }
      fw_version              u8
      
      >From now boundaries of a specific initialization stage are stored in
      init_ops_offsets array instead of being defined by separate macroes. The index 
      in init_ops_offsets is calculated by BLOCK_OPS_IDX macro:
      
      #define BLOCK_OPS_IDX(block, stage, end) \
             (2*(((block)*STAGE_IDX_MAX) + (stage)) + (end))
      
      Security:
      
      In addition to sanity check of array boundaries bnx2x will check a FW version.
      Additional checks might be added in the future.
      Signed-off-by: default avatarVladislav Zolotarov <vladz@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0eae2a4d
  6. 21 Apr, 2009 1 commit
  7. 07 Apr, 2009 2 commits
  8. 06 Apr, 2009 2 commits
  9. 04 Apr, 2009 2 commits
  10. 03 Apr, 2009 6 commits
  11. 30 Mar, 2009 3 commits
  12. 13 Mar, 2009 1 commit
  13. 27 Feb, 2009 2 commits
  14. 13 Jan, 2009 1 commit
  15. 07 Jan, 2009 1 commit
  16. 05 Jan, 2009 3 commits
  17. 26 Nov, 2008 1 commit
  18. 23 Sep, 2008 1 commit
  19. 14 Jul, 2008 7 commits
  20. 10 Jul, 2008 1 commit