1. 關閉pcie 控制器:
通過向系統控制寄存器periphctrl30[pcie0_app_ltssm_enabl]寫入0 關閉pcie0 控制
器。
通過向系統控制寄存器periphctrl77[pcie1_app_ltssm_enabl]寫入0 關閉pcie1 控制
2. 使能pcie 控制器相關的時鐘:
設定crg 寄存器peri_crg30[pcie0_cken]使能pcie0 控制器時鐘。
設定crg 寄存器peri_crg30[pcie1_cken]使能pcie1 控制器時鐘。
3. 設定pcie 控制器的工作模式(rc 模式/ep 模式):
通過系統控制寄存器中的periphctrl23[pcie0_slv_device_type]寄存器設定pcie0 控
制器的工作模式。通過系統控制寄存器中的periphctrl70[pcie1_slv_device_type]寄存器設定pcie1 控
制器的工作模式。
4. 設定pcie 控制器軟複位以複位pcie 控制器。
向crg 寄存器peri_crg30[pcie0_srst_req]寫1 以複位pcie0 控制器。
向crg 寄存器peri_crg30[pcie1_srst_req]寫1 以複位pcie1 控制器。
5. 撤銷pcie 控制器軟複位。
向crg 寄存器peri_crg30[pcie0_srst_req]寫0 以撤銷pcie0 控制器複位。
向crg 寄存器peri_crg30[pcie1_srst_req]寫0 以撤銷pcie1 控制器複位。
6. 設定pcie 控制器的類代碼:
當工作在rc 模式時,需要配置對應的控制器的類代碼寄存器(class code
register)為0x060400(對應為pci 到pci 橋裝置)。pcie0 控制器和pcie1 控制器的
類代碼寄存器位于各自的pcie 配置寄存器空間内。
ep 模式下無需設定(預設值)。
7. 使能pcie 控制器:
通過向系統控制寄存器periphctrl30[pcie0_app_ltssm_enable]寫入1 使能pcie0 控制
器。pcie0 控制器使能後,pcie0 控制器開始鍊路建立過程。
通過向系統控制寄存器periphctrl77[pcie1_app_ltssm_enable]寫入1 使能pcie1 控制
器。pcie1 控制器使能後,pcie1 控制器開始鍊路建立過程。
----結束
若pcie 控制器與對端裝置之間的連接配接未建立,不可向對端裝置發起任何pcie 事務。
軟體通過查詢系統控制寄存器perictrl39[pcie0_rdlh_link_up]可以确定pcie0 控制器
是否已與對端裝置建立連接配接。
軟體通過查詢系統控制寄存器perictrl40[pcie1_rdlh_link_up]可以确定pcie1 控制器
請參考系統控制器中關于perictrl39 和perictrl40 寄存器的定義