xref: /freebsd/sys/contrib/dev/iwlwifi/fw/api/paging.h (revision bfcc09ddd422c95a1a2e4e794b63ee54c4902398)
1*bfcc09ddSBjoern A. Zeeb /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2*bfcc09ddSBjoern A. Zeeb /*
3*bfcc09ddSBjoern A. Zeeb  * Copyright (C) 2005-2014 Intel Corporation
4*bfcc09ddSBjoern A. Zeeb  * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
5*bfcc09ddSBjoern A. Zeeb  * Copyright (C) 2016-2017 Intel Deutschland GmbH
6*bfcc09ddSBjoern A. Zeeb  */
7*bfcc09ddSBjoern A. Zeeb #ifndef __iwl_fw_api_paging_h__
8*bfcc09ddSBjoern A. Zeeb #define __iwl_fw_api_paging_h__
9*bfcc09ddSBjoern A. Zeeb 
10*bfcc09ddSBjoern A. Zeeb #define NUM_OF_FW_PAGING_BLOCKS	33 /* 32 for data and 1 block for CSS */
11*bfcc09ddSBjoern A. Zeeb 
12*bfcc09ddSBjoern A. Zeeb /**
13*bfcc09ddSBjoern A. Zeeb  * struct iwl_fw_paging_cmd - paging layout
14*bfcc09ddSBjoern A. Zeeb  *
15*bfcc09ddSBjoern A. Zeeb  * Send to FW the paging layout in the driver.
16*bfcc09ddSBjoern A. Zeeb  *
17*bfcc09ddSBjoern A. Zeeb  * @flags: various flags for the command
18*bfcc09ddSBjoern A. Zeeb  * @block_size: the block size in powers of 2
19*bfcc09ddSBjoern A. Zeeb  * @block_num: number of blocks specified in the command.
20*bfcc09ddSBjoern A. Zeeb  * @device_phy_addr: virtual addresses from device side
21*bfcc09ddSBjoern A. Zeeb  */
22*bfcc09ddSBjoern A. Zeeb struct iwl_fw_paging_cmd {
23*bfcc09ddSBjoern A. Zeeb 	__le32 flags;
24*bfcc09ddSBjoern A. Zeeb 	__le32 block_size;
25*bfcc09ddSBjoern A. Zeeb 	__le32 block_num;
26*bfcc09ddSBjoern A. Zeeb 	__le32 device_phy_addr[NUM_OF_FW_PAGING_BLOCKS];
27*bfcc09ddSBjoern A. Zeeb } __packed; /* FW_PAGING_BLOCK_CMD_API_S_VER_1 */
28*bfcc09ddSBjoern A. Zeeb 
29*bfcc09ddSBjoern A. Zeeb #endif /* __iwl_fw_api_paging_h__ */
30