/* The response to a IPA_QMI_INDICATION_REGISTER request consists only of *astandardQMIresponse.
*/ struct ipa_indication_register_rsp { struct qmi_response_type_v01 rsp;
};
/* Request message for the IPA_QMI_DRIVER_INIT_COMPLETE request */ struct ipa_driver_init_complete_req {
u8 status;
};
/* The response to a IPA_QMI_DRIVER_INIT_COMPLETE request consists only *ofastandardQMIresponse.
*/ struct ipa_driver_init_complete_rsp { struct qmi_response_type_v01 rsp;
};
/* The message for the IPA_QMI_INIT_COMPLETE_IND indication consists *onlyofastandardQMIresponse.
*/ struct ipa_init_complete_ind { struct qmi_response_type_v01 status;
};
/* The AP tells the modem its platform type. We assume Android. */ enum ipa_platform_type {
IPA_QMI_PLATFORM_TYPE_INVALID = 0x0, /* Invalid */
IPA_QMI_PLATFORM_TYPE_TN = 0x1, /* Data card */
IPA_QMI_PLATFORM_TYPE_LE = 0x2, /* Data router */
IPA_QMI_PLATFORM_TYPE_MSM_ANDROID = 0x3, /* Android MSM */
IPA_QMI_PLATFORM_TYPE_MSM_WINDOWS = 0x4, /* Windows MSM */
IPA_QMI_PLATFORM_TYPE_MSM_QNX_V01 = 0x5, /* QNX MSM */
};
/* This defines the start and end offset of a range of memory. The start *valueisabyteoffsetrelativetothestartofIPAsharedmemory.The *endvalueisthelastaddressableunit*within*therange.Typically *theendvalueisinunitsofbytes,howeveritcanalsobeamaximum *arrayindexvalue.
*/ struct ipa_mem_bounds {
u32 start;
u32 end;
};
/* This defines the location and size of an array. The start value *isanoffsetrelativetothestartofIPAsharedmemory.The *sizeofthearrayisimpliedbythenumberofentries(theentry *sizeisassumedtobeknown).
*/ struct ipa_mem_array {
u32 start;
u32 count;
};
/* This defines the location and size of a range of memory. The *startisanoffsetrelativetothestartofIPAsharedmemory. *Thisdiffersfromtheipa_mem_boundsstructureinthatthesize *(inbytes)ofthememoryregionisspecifiedratherthanthe *offsetofitslastbyte.
*/ struct ipa_mem_range {
u32 start;
u32 size;
};
/* The message for the IPA_QMI_INIT_DRIVER request contains information *fromtheAPthataffectsmodeminitialization.
*/ struct ipa_init_modem_driver_req {
u8 platform_type_valid;
u32 platform_type; /* enum ipa_platform_type */
/* Modem header table information. This defines the IPA shared *memoryinwhichthemodemmayinsertheadertableentries.
*/
u8 hdr_tbl_info_valid; struct ipa_mem_bounds hdr_tbl_info;
/* Routing table information. These define the location and maximum **index*(notbyte)forthemodemportionofnon-hashableIPv4and *IPv6routingtables.Thestartvaluesarebyteoffsetsrelative *tothestartofIPAsharedmemory.
*/
u8 v4_route_tbl_info_valid; struct ipa_mem_bounds v4_route_tbl_info;
u8 v6_route_tbl_info_valid; struct ipa_mem_bounds v6_route_tbl_info;
/* Filter table information. These define the location of the *non-hashableIPv4andIPv6filtertables.Thestartvaluesare *byteoffsetsrelativetothestartofIPAsharedmemory.
*/
u8 v4_filter_tbl_start_valid;
u32 v4_filter_tbl_start;
u8 v6_filter_tbl_start_valid;
u32 v6_filter_tbl_start;
/* Modem memory information. This defines the location and *sizeofmemoryavailableforthemodemtouse.
*/
u8 modem_mem_info_valid; struct ipa_mem_range modem_mem_info;
/* This defines the destination endpoint on the AP to which *themodemdrivercansendcontrolcommands.Mustbeless *thanipa_endpoint_max().
*/
u8 ctrl_comm_dest_end_pt_valid;
u32 ctrl_comm_dest_end_pt;
/* This defines whether the modem should load the microcontroller *ornot.Itisunnecessarytoreloaditifthemodemisbeing *restarted. * *NOTE:thisfieldisnamed"is_ssr_bootup"elsewhere.
*/
u8 skip_uc_load_valid;
u8 skip_uc_load;
/* Processing context memory information. This defines the memory in *whichthemodemmayinsertheaderprocessingcontexttableentries.
*/
u8 hdr_proc_ctx_tbl_info_valid; struct ipa_mem_bounds hdr_proc_ctx_tbl_info;
/* Compression command memory information. This defines the memory *inwhichthemodemmayinsertcompression/decompressioncommands.
*/
u8 zip_tbl_info_valid; struct ipa_mem_bounds zip_tbl_info;
/* Routing table information. These define the location and maximum **index*(notbyte)forthemodemportionofhashableIPv4andIPv6 *routingtables(ifsupportedbyhardware).Thestartvaluesare *byteoffsetsrelativetothestartofIPAsharedmemory.
*/
u8 v4_hash_route_tbl_info_valid; struct ipa_mem_bounds v4_hash_route_tbl_info;
u8 v6_hash_route_tbl_info_valid; struct ipa_mem_bounds v6_hash_route_tbl_info;
/* Filter table information. These define the location and size *ofhashableIPv4andIPv6filtertables(ifsupportedbyhardware). *ThestartvaluesarebyteoffsetsrelativetothestartofIPA *sharedmemory.
*/
u8 v4_hash_filter_tbl_start_valid;
u32 v4_hash_filter_tbl_start;
u8 v6_hash_filter_tbl_start_valid;
u32 v6_hash_filter_tbl_start;
/* Statistics information. These define the locations of the *firstandlaststatisticssub-regions.(IPAv4.0andabove)
*/
u8 hw_stats_quota_base_addr_valid;
u32 hw_stats_quota_base_addr;
u8 hw_stats_quota_size_valid;
u32 hw_stats_quota_size;
u8 hw_stats_drop_base_addr_valid;
u32 hw_stats_drop_base_addr;
u8 hw_stats_drop_size_valid;
u32 hw_stats_drop_size;
};
/* The response to a IPA_QMI_INIT_DRIVER request begins with a standard *QMIresponse,butcontainsotherinformationaswell.Currentlywe *simplywaitfortheINIT_DRIVERtransactiontocompleteand *ignoreanyotherdatathatmightbereturned.
*/ struct ipa_init_modem_driver_rsp { struct qmi_response_type_v01 rsp;
/* This defines the destination endpoint on the modem to which *theAPdrivercansendcontrolcommands.Mustbelessthan *ipa_endpoint_max().
*/
u8 ctrl_comm_dest_end_pt_valid;
u32 ctrl_comm_dest_end_pt;
/* This defines the default endpoint. The AP driver is not *requiredtoconfigurethehardwarewiththisvalue.Must *belessthanipa_endpoint_max().
*/
u8 default_end_pt_valid;
u32 default_end_pt;
/* This defines whether a second handshake is required to complete *initialization.
*/
u8 modem_driver_init_pending_valid;
u8 modem_driver_init_pending;
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.