FreeBSD kernel iwm device code
|
Go to the source code of this file.
Macros | |
#define | IWM_PAGE_2_EXP_SIZE 12 /* 4K == 2^12 */ |
#define | IWM_FW_PAGING_SIZE (1 << IWM_PAGE_2_EXP_SIZE) /* page size is 4KB */ |
#define | IWM_PAGE_PER_GROUP_2_EXP_SIZE 3 |
#define | IWM_NUM_OF_PAGE_PER_GROUP (1 << IWM_PAGE_PER_GROUP_2_EXP_SIZE) |
#define | IWM_PAGING_BLOCK_SIZE (IWM_NUM_OF_PAGE_PER_GROUP * IWM_FW_PAGING_SIZE) |
#define | IWM_BLOCK_2_EXP_SIZE (IWM_PAGE_2_EXP_SIZE + IWM_PAGE_PER_GROUP_2_EXP_SIZE) |
#define | IWM_BLOCK_PER_IMAGE_2_EXP_SIZE 5 |
#define | IWM_NUM_OF_BLOCK_PER_IMAGE (1 << IWM_BLOCK_PER_IMAGE_2_EXP_SIZE) |
#define | IWM_MAX_PAGING_IMAGE_SIZE (IWM_NUM_OF_BLOCK_PER_IMAGE * IWM_PAGING_BLOCK_SIZE) |
#define | IWM_PAGING_ADDR_SIG 0xAA000000 |
#define | IWM_PAGING_CMD_IS_SECURED (1 << 9) |
#define | IWM_PAGING_CMD_IS_ENABLED (1 << 8) |
#define | IWM_PAGING_CMD_NUM_OF_PAGES_IN_LAST_GRP_POS 0 |
#define | IWM_PAGING_TLV_SECURE_MASK 1 |
Functions | |
void | iwm_free_fw_paging (struct iwm_softc *) |
int | iwm_save_fw_paging (struct iwm_softc *, const struct iwm_fw_img *) |
int | iwm_send_paging_cmd (struct iwm_softc *, const struct iwm_fw_img *) |
#define IWM_BLOCK_2_EXP_SIZE (IWM_PAGE_2_EXP_SIZE + IWM_PAGE_PER_GROUP_2_EXP_SIZE) |
Definition at line 90 of file if_iwm_fw.h.
#define IWM_BLOCK_PER_IMAGE_2_EXP_SIZE 5 |
Definition at line 95 of file if_iwm_fw.h.
#define IWM_FW_PAGING_SIZE (1 << IWM_PAGE_2_EXP_SIZE) /* page size is 4KB */ |
Definition at line 83 of file if_iwm_fw.h.
#define IWM_MAX_PAGING_IMAGE_SIZE (IWM_NUM_OF_BLOCK_PER_IMAGE * IWM_PAGING_BLOCK_SIZE) |
Definition at line 99 of file if_iwm_fw.h.
#define IWM_NUM_OF_BLOCK_PER_IMAGE (1 << IWM_BLOCK_PER_IMAGE_2_EXP_SIZE) |
Definition at line 97 of file if_iwm_fw.h.
#define IWM_NUM_OF_PAGE_PER_GROUP (1 << IWM_PAGE_PER_GROUP_2_EXP_SIZE) |
Definition at line 86 of file if_iwm_fw.h.
#define IWM_PAGE_2_EXP_SIZE 12 /* 4K == 2^12 */ |
Definition at line 82 of file if_iwm_fw.h.
#define IWM_PAGE_PER_GROUP_2_EXP_SIZE 3 |
Definition at line 84 of file if_iwm_fw.h.
#define IWM_PAGING_ADDR_SIG 0xAA000000 |
Definition at line 102 of file if_iwm_fw.h.
#define IWM_PAGING_BLOCK_SIZE (IWM_NUM_OF_PAGE_PER_GROUP * IWM_FW_PAGING_SIZE) |
Definition at line 88 of file if_iwm_fw.h.
#define IWM_PAGING_CMD_IS_ENABLED (1 << 8) |
Definition at line 105 of file if_iwm_fw.h.
#define IWM_PAGING_CMD_IS_SECURED (1 << 9) |
Definition at line 104 of file if_iwm_fw.h.
#define IWM_PAGING_CMD_NUM_OF_PAGES_IN_LAST_GRP_POS 0 |
Definition at line 106 of file if_iwm_fw.h.
#define IWM_PAGING_TLV_SECURE_MASK 1 |
Definition at line 107 of file if_iwm_fw.h.
void iwm_free_fw_paging | ( | struct iwm_softc * | sc | ) |
Definition at line 129 of file if_iwm_fw.c.
References iwm_fw_paging::fw_paging_block, iwm_softc::fw_paging_db, iwm_dma_contig_free(), IWM_NUM_OF_FW_PAGING_BLOCKS, and iwm_dma_info::vaddr.
Referenced by iwm_alloc_fw_paging_mem(), iwm_detach_local(), iwm_fill_paging_mem(), and iwm_load_ucode_wait_alive().
int iwm_save_fw_paging | ( | struct iwm_softc * | sc, |
const struct iwm_fw_img * | fw | ||
) |
Definition at line 301 of file if_iwm_fw.c.
References iwm_alloc_fw_paging_mem(), and iwm_fill_paging_mem().
Referenced by iwm_load_ucode_wait_alive().
int iwm_send_paging_cmd | ( | struct iwm_softc * | sc, |
const struct iwm_fw_img * | fw | ||
) |
Definition at line 314 of file if_iwm_fw.c.
References iwm_fw_paging_cmd::device_phy_addr, iwm_fw_paging_cmd::flags, iwm_fw_paging::fw_paging_block, iwm_softc::fw_paging_db, IWM_ALWAYS_LONG_GROUP, IWM_BLOCK_2_EXP_SIZE, iwm_cmd_id(), IWM_FW_PAGING_BLOCK_CMD, IWM_PAGE_2_EXP_SIZE, IWM_PAGING_CMD_IS_ENABLED, IWM_PAGING_CMD_IS_SECURED, IWM_PAGING_CMD_NUM_OF_PAGES_IN_LAST_GRP_POS, iwm_send_cmd_pdu(), iwm_dma_info::map, iwm_softc::num_of_pages_in_last_blk, iwm_softc::num_of_paging_blk, iwm_dma_info::paddr, and iwm_softc::sc_dmat.
Referenced by iwm_load_ucode_wait_alive().