SAS command process for expander

本文详细解析了PMC展开FW中SAS命令处理流程,从初始化和注册ISR开始,通过TX_APPLICATION_DEFINE到STE_MAIN,最终实现命令消息的发送和接收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Will give a description for sas command process in PMC expander fw. Just for study recoreding.

1.Initialization and register the ISR(sas_pack_isr) function:

tx_application_define()--->sxp_mod_post_create_init--->sas_init()--->sas_portctl_init()

--->pack_init()--->cicint_int_set(): register the pack device driver ISR: -->sas_pack_isr

2.ISR(sas_pack_isr) process:

Interrupt happened--->receive isr msg--->sas_msg_send()--->sas_thread_entry()

--->sas_portctl_process_pack_events()--->sas_ssp_link.frame_rx_fnptr()==sas_ssp_link_event_frame_rx_hndl

--->ssptransport_vtable_ptr->frame_rx_fnptr==sas_ssptarg_transport_frame_received()

--->ssptarg_nexus_init(STE_SCSI_MESSAGE_TYPE_CMD)--->send to ste_mbx_info(ssptarg_mbx_info = ste_parms_ptr->config.ste_mbx_info)

--->ste_main()--->process_message()--->ste_process_scsi_msg()--->process_cmd_msg()--->ste_cmd_process_cmd_msg()--->

process_send_diagnostic_cmd()--->STE_SCSI_MESSAGE_TYPE_DATA_OUT sender:ste_mbx_info,recipient:scsi_mbx_info--->sas_thread_entry()

--->sas_ssptarg_transport_rx_data_out()--->send to ste thread--->process_data_out_msg()--->ste_cmd_process_data_out_msg()

--->process_send_diagnostic_data_out()--->STE_SES_MSG_TYPE_SEND_DIAG:send to ses thread--->ses_msg_queue_process()

--->ses_send_diag_process()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值