summaryrefslogtreecommitdiff
path: root/drivers/net/wwan/iosm/iosm_ipc_flash.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wwan/iosm/iosm_ipc_flash.h')
-rw-r--r--drivers/net/wwan/iosm/iosm_ipc_flash.h271
1 files changed, 0 insertions, 271 deletions
diff --git a/drivers/net/wwan/iosm/iosm_ipc_flash.h b/drivers/net/wwan/iosm/iosm_ipc_flash.h
deleted file mode 100644
index aee848927228..000000000000
--- a/drivers/net/wwan/iosm/iosm_ipc_flash.h
+++ /dev/null
@@ -1,271 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only
- *
- * Copyright (C) 2020-2021 Intel Corporation.
- */
-
-#ifndef _IOSM_IPC_FLASH_H
-#define _IOSM_IPC_FLASH_H
-
-/* Buffer size used to read the fls image */
-#define IOSM_FLS_BUF_SIZE 0x00100000
-/* Full erase start address */
-#define IOSM_ERASE_START_ADDR 0x00000000
-/* Erase length for NAND flash */
-#define IOSM_ERASE_LEN 0xFFFFFFFF
-/* EBL response Header size */
-#define IOSM_EBL_HEAD_SIZE 8
-/* EBL payload size */
-#define IOSM_EBL_W_PAYL_SIZE 2048
-/* Total EBL pack size */
-#define IOSM_EBL_W_PACK_SIZE (IOSM_EBL_HEAD_SIZE + IOSM_EBL_W_PAYL_SIZE)
-/* EBL payload size */
-#define IOSM_EBL_DW_PAYL_SIZE 16384
-/* Total EBL pack size */
-#define IOSM_EBL_DW_PACK_SIZE (IOSM_EBL_HEAD_SIZE + IOSM_EBL_DW_PAYL_SIZE)
-/* EBL name size */
-#define IOSM_EBL_NAME 32
-/* Maximum supported error types */
-#define IOSM_MAX_ERRORS 8
-/* Read size for RPSI/EBL response */
-#define IOSM_READ_SIZE 2
-/* Link establishment response ack size */
-#define IOSM_LER_ACK_SIZE 2
-/* PSI ACK len */
-#define IOSM_PSI_ACK 8
-/* SWID capability for packed swid type */
-#define IOSM_EXT_CAP_SWID_OOS_PACK 0x02
-/* EBL error response buffer */
-#define IOSM_EBL_RSP_BUFF 0x0041
-/* SWID string length */
-#define IOSM_SWID_STR 64
-/* Load EBL command size */
-#define IOSM_RPSI_LOAD_SIZE 0
-/* EBL payload checksum */
-#define IOSM_EBL_CKSM 0x0000FFFF
-/* SWID msg len and argument */
-#define IOSM_MSG_LEN_ARG 0
-/* Data to be sent to modem */
-#define IOSM_MDM_SEND_DATA 0x0000
-/* Data received from modem as part of erase check */
-#define IOSM_MDM_ERASE_RSP 0x0001
-/* Bit shift to calculate Checksum */
-#define IOSM_EBL_PAYL_SHIFT 16
-/* Flag To be set */
-#define IOSM_SET_FLAG 1
-/* Set flash erase check timeout to 100 msec */
-#define IOSM_FLASH_ERASE_CHECK_TIMEOUT 100
-/* Set flash erase check interval to 20 msec */
-#define IOSM_FLASH_ERASE_CHECK_INTERVAL 20
-/* Link establishment response ack size */
-#define IOSM_LER_RSP_SIZE 60
-
-/**
- * enum iosm_flash_package_type - Enum for the flashing operations
- * @FLASH_SET_PROT_CONF: Write EBL capabilities
- * @FLASH_SEC_START: Start writing the secpack
- * @FLASH_SEC_END: Validate secpack end
- * @FLASH_SET_ADDRESS: Set the address for flashing
- * @FLASH_ERASE_START: Start erase before flashing
- * @FLASH_ERASE_CHECK: Validate the erase functionality
- * @FLASH_OOS_CONTROL: Retrieve data based on oos actions
- * @FLASH_OOS_DATA_READ: Read data from EBL
- * @FLASH_WRITE_IMAGE_RAW: Write the raw image to flash
- */
-enum iosm_flash_package_type {
- FLASH_SET_PROT_CONF = 0x0086,
- FLASH_SEC_START = 0x0204,
- FLASH_SEC_END,
- FLASH_SET_ADDRESS = 0x0802,
- FLASH_ERASE_START = 0x0805,
- FLASH_ERASE_CHECK,
- FLASH_OOS_CONTROL = 0x080C,
- FLASH_OOS_DATA_READ = 0x080E,
- FLASH_WRITE_IMAGE_RAW,
-};
-
-/**
- * enum iosm_out_of_session_action - Actions possible over the
- * OutOfSession command interface
- * @FLASH_OOSC_ACTION_READ: Read data according to its type
- * @FLASH_OOSC_ACTION_ERASE: Erase data according to its type
- */
-enum iosm_out_of_session_action {
- FLASH_OOSC_ACTION_READ = 2,
- FLASH_OOSC_ACTION_ERASE = 3,
-};
-
-/**
- * enum iosm_out_of_session_type - Data types that can be handled over the
- * Out Of Session command Interface
- * @FLASH_OOSC_TYPE_ALL_FLASH: The whole flash area
- * @FLASH_OOSC_TYPE_SWID_TABLE: Read the swid table from the target
- */
-enum iosm_out_of_session_type {
- FLASH_OOSC_TYPE_ALL_FLASH = 8,
- FLASH_OOSC_TYPE_SWID_TABLE = 16,
-};
-
-/**
- * enum iosm_ebl_caps - EBL capability settings
- * @IOSM_CAP_NOT_ENHANCED: If capability not supported
- * @IOSM_CAP_USE_EXT_CAP: To be set if extended capability is set
- * @IOSM_EXT_CAP_ERASE_ALL: Set Erase all capability
- * @IOSM_EXT_CAP_COMMIT_ALL: Set the commit all capability
- */
-enum iosm_ebl_caps {
- IOSM_CAP_NOT_ENHANCED = 0x00,
- IOSM_CAP_USE_EXT_CAP = 0x01,
- IOSM_EXT_CAP_ERASE_ALL = 0x08,
- IOSM_EXT_CAP_COMMIT_ALL = 0x20,
-};
-
-/**
- * enum iosm_ebl_rsp - EBL response field
- * @EBL_CAPS_FLAG: EBL capability flag
- * @EBL_SKIP_ERASE: EBL skip erase flag
- * @EBL_SKIP_CRC: EBL skip wr_pack crc
- * @EBL_EXT_CAPS_HANDLED: EBL extended capability handled flag
- * @EBL_OOS_CONFIG: EBL oos configuration
- * @EBL_RSP_SW_INFO_VER: EBL SW info version
- */
-enum iosm_ebl_rsp {
- EBL_CAPS_FLAG = 50,
- EBL_SKIP_ERASE = 54,
- EBL_SKIP_CRC = 55,
- EBL_EXT_CAPS_HANDLED = 57,
- EBL_OOS_CONFIG = 64,
- EBL_RSP_SW_INFO_VER = 70,
-};
-
-/**
- * enum iosm_mdm_send_recv_data - Data to send to modem
- * @IOSM_MDM_SEND_2: Send 2 bytes of payload
- * @IOSM_MDM_SEND_4: Send 4 bytes of payload
- * @IOSM_MDM_SEND_8: Send 8 bytes of payload
- * @IOSM_MDM_SEND_16: Send 16 bytes of payload
- */
-enum iosm_mdm_send_recv_data {
- IOSM_MDM_SEND_2 = 2,
- IOSM_MDM_SEND_4 = 4,
- IOSM_MDM_SEND_8 = 8,
- IOSM_MDM_SEND_16 = 16,
-};
-
-/**
- * struct iosm_ebl_one_error - Structure containing error details
- * @error_class: Error type- standard, security and text error
- * @error_code: Specific error from error type
- */
-struct iosm_ebl_one_error {
- u16 error_class;
- u16 error_code;
-};
-
-/**
- * struct iosm_ebl_error- Structure with max error type supported
- * @error: Array of one_error structure with max errors
- */
-struct iosm_ebl_error {
- struct iosm_ebl_one_error error[IOSM_MAX_ERRORS];
-};
-
-/**
- * struct iosm_swid_table - SWID table data for modem
- * @number_of_data_sets: Number of swid types
- * @sw_id_type: SWID type - SWID
- * @sw_id_val: SWID value
- * @rf_engine_id_type: RF engine ID type - RF_ENGINE_ID
- * @rf_engine_id_val: RF engine ID value
- */
-struct iosm_swid_table {
- u32 number_of_data_sets;
- char sw_id_type[IOSM_EBL_NAME];
- u32 sw_id_val;
- char rf_engine_id_type[IOSM_EBL_NAME];
- u32 rf_engine_id_val;
-};
-
-/**
- * struct iosm_flash_msg_control - Data sent to modem
- * @action: Action to be performed
- * @type: Type of action
- * @length: Length of the action
- * @arguments: Argument value sent to modem
- */
-struct iosm_flash_msg_control {
- __le32 action;
- __le32 type;
- __le32 length;
- __le32 arguments;
-};
-
-/**
- * struct iosm_flash_data - Header Data to be sent to modem
- * @checksum: Checksum value calculated for the payload data
- * @pack_id: Flash Action type
- * @msg_length: Payload length
- */
-struct iosm_flash_data {
- __le16 checksum;
- __le16 pack_id;
- __le32 msg_length;
-};
-
-/**
- * ipc_flash_boot_psi - Inject PSI image
- * @ipc_devlink: Pointer to devlink structure
- * @fw: FW image
- *
- * Returns: 0 on success and failure value on error
- */
-int ipc_flash_boot_psi(struct iosm_devlink *ipc_devlink,
- const struct firmware *fw);
-
-/**
- * ipc_flash_boot_ebl - Inject EBL image
- * @ipc_devlink: Pointer to devlink structure
- * @fw: FW image
- *
- * Returns: 0 on success and failure value on error
- */
-int ipc_flash_boot_ebl(struct iosm_devlink *ipc_devlink,
- const struct firmware *fw);
-
-/**
- * ipc_flash_boot_set_capabilities - Set modem bool capabilities in flash
- * @ipc_devlink: Pointer to devlink structure
- * @mdm_rsp: Pointer to modem response buffer
- *
- * Returns: 0 on success and failure value on error
- */
-int ipc_flash_boot_set_capabilities(struct iosm_devlink *ipc_devlink,
- u8 *mdm_rsp);
-
-/**
- * ipc_flash_link_establish - Flash link establishment
- * @ipc_imem: Pointer to struct iosm_imem
- *
- * Returns: 0 on success and failure value on error
- */
-int ipc_flash_link_establish(struct iosm_imem *ipc_imem);
-
-/**
- * ipc_flash_read_swid - Get swid during flash phase
- * @ipc_devlink: Pointer to devlink structure
- * @mdm_rsp: Pointer to modem response buffer
- *
- * Returns: 0 on success and failure value on error
- */
-int ipc_flash_read_swid(struct iosm_devlink *ipc_devlink, u8 *mdm_rsp);
-
-/**
- * ipc_flash_send_fls - Inject Modem subsystem fls file to device
- * @ipc_devlink: Pointer to devlink structure
- * @fw: FW image
- * @mdm_rsp: Pointer to modem response buffer
- *
- * Returns: 0 on success and failure value on error
- */
-int ipc_flash_send_fls(struct iosm_devlink *ipc_devlink,
- const struct firmware *fw, u8 *mdm_rsp);
-#endif