1. 16 Dec, 2010 3 commits
  2. 26 Oct, 2010 1 commit
    • Mark Brown's avatar
      ihex: add support for CS:IP/EIP records · 2473238e
      Mark Brown authored
      ihex firmwares can include a jump address for starting execution.  Add a
      -j option which will cause this to be written into the generated file as a
      record with address zero and data consisting of the address to jump to,
      allowing drivers to make use of this information.
      
      This format is chosen because it most closely follows the original ihex
      format, though it may make more sense to write a record with length zero
      and the address stored as the address.  The records are not omitted by
      default since our ihex format does not include record type information and
      so including additional records may lead to confusion.
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2473238e
  3. 18 Oct, 2010 1 commit
  4. 11 Oct, 2010 1 commit
  5. 06 Oct, 2010 5 commits
  6. 17 Aug, 2010 1 commit
  7. 08 Jul, 2010 1 commit
  8. 26 Jun, 2010 1 commit
  9. 18 May, 2010 1 commit
  10. 03 Mar, 2010 1 commit
  11. 17 Feb, 2010 2 commits
  12. 16 Feb, 2010 1 commit
  13. 07 Jan, 2010 1 commit
  14. 30 Oct, 2009 1 commit
  15. 15 Oct, 2009 3 commits
  16. 05 Oct, 2009 1 commit
  17. 23 Sep, 2009 1 commit
  18. 15 Sep, 2009 1 commit
  19. 30 Aug, 2009 1 commit
    • Ben Hutchings's avatar
      radeon: Use request_firmware() · 70967ab9
      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>
      70967ab9
  20. 29 Aug, 2009 1 commit
  21. 27 Aug, 2009 2 commits
  22. 13 Aug, 2009 3 commits
  23. 08 Jul, 2009 1 commit
  24. 04 Jun, 2009 1 commit
  25. 30 May, 2009 1 commit
  26. 02 May, 2009 1 commit
  27. 27 Apr, 2009 2 commits
    • Vladislav Zolotarov's avatar
      bnx2x: Separated FW from the source. · 94a78b79
      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>
      94a78b79
    • Vladislav Zolotarov's avatar
      ec9323f4