問題
在啟動基于K26設計的擴展板時,遇到下列錯誤。
[5.858755]ata1:SATAmaxUDMA/133mmio[mem0xfd0c0000-0xfd0c1fff]port0x100irq46 [5.866665]ata2:SATAmaxUDMA/133mmio[mem0xfd0c0000-0xfd0c1fff]port0x180irq46 [6.187547]ata1:SATAlinkdown(SStatus0SControl330) [8.085543]ata2:SATAlinkdown(SStatus1SControl330)
Devicetree 設置
檢查硬件設計,SATA使用Lane 3,ref_clk2。時鐘是固定時鐘。
首先定義參考時鐘。其中的psgtr_ref_clk_2 ,是SATA使用的125MHz的參考時鐘。
/{ psgtr_ref_clk_0_dp:psgtr_ref_clk_0{ u-boot,dm-pre-reloc; compatible="fixed-clock"; #clock-cells=<0>; clock-frequency=<27000000>; }; psgtr_ref_clk_1_usb3:psgtr_ref_clk_1{ u-boot,dm-pre-reloc; compatible="fixed-clock"; #clock-cells=<0>; clock-frequency=<100000000>; }; psgtr_ref_clk_2_sata:psgtr_ref_clk_2{ u-boot,dm-pre-reloc; compatible="fixed-clock"; #clock-cells=<0>; clock-frequency=<125000000>; }; psgtr_ref_clk_3_unused:psgtr_ref_clk_3{ u-boot,dm-pre-reloc; compatible="fixed-clock"; #clock-cells=<0>; clock-frequency=<19200000>; }; };
其次通過psgtr的屬性clocks定義每個GTR Lan使用的參考時鐘。
/* k26_Expref_clk2gt-lane3,ref_clk2 */ &psgtr{ /*nc,sata,usb3,dp*/ clocks=<&psgtr_ref_clk_0_dp>,<&psgtr_ref_clk_1_usb3>,<&psgtr_ref_clk_2_sata>,<&psgtr_ref_clk_3_unused>; clock-names="ref0","ref1","ref2","ref3"; };
其次通過psgtr的屬性clocks定義每個GTR Lan使用的參考時鐘。
/* k26_Expref_clk2gt-lane3,ref_clk2 */ &psgtr{ /*nc,sata,usb3,dp*/ clocks=<&psgtr_ref_clk_0_dp>,<&psgtr_ref_clk_1_usb3>,<&psgtr_ref_clk_2_sata>,<&psgtr_ref_clk_3_unused>; clock-names="ref0","ref1","ref2","ref3"; };
最后定義SATA使用的Phy的屬性phys。根據參考文檔,phys有四個屬性。第1個是GTR lane,因此設置為3。第2個是PHY type,設置為PHY_TYPE_SATA。第3個是PHY instance,設置為1 (for DP, SATA or USB)。第4個是reference clock number,設置為2。
&sata{ /*SATAOOBtimingsettings*/ ceva,p0-cominit-params=/bits/8<0x18?0x40?0x18?0x28>; ceva,p0-comwake-params=/bits/8<0x06?0x14?0x08?0x0E>; ceva,p0-burst-params=/bits/8<0x13?0x08?0x4A?0x06>; ceva,p0-retry-params=/bits/16<0x96A4?0x3FFC>; ceva,p1-cominit-params=/bits/8<0x18?0x40?0x18?0x28>; ceva,p1-comwake-params=/bits/8<0x06?0x14?0x08?0x0E>; ceva,p1-burst-params=/bits/8<0x13?0x08?0x4A?0x06>; ceva,p1-retry-params=/bits/16<0x96A4?0x3FFC>; phy-names="sata-phy"; phys=<&psgtr?3?PHY_TYPE_SATA?1?2>; };
正常日志
使用上述設置后,SATA啟動正常。Linux的啟動信息如下。
U-Boot的啟動信息如下。
SATAlink0timeout. Targetspinuptook0ms. AHCI0001.030132slots2ports6Gbps0x3implSATAmode flags:64bitncqpmcloonlypmpfbsspioslumpartcccapst Device0:(1:0)Vendor:ATAProd.:ThinkplusST600Rev:V092 Type:HardDisk Capacity:953869.7MB=931.5GB(1953525168x512) Hitanykeytostopautoboot:0
Linux的啟動信息如下。
[2.278328]zynqmp-displayfd4a0000.display:ZynqMPDisplayPortSubsystemdriverprobed [2.286627]ahci-cevafd0c0000.ahci:supplyahcinotfound,usingdummyregulator [2.294183]ahci-cevafd0c0000.ahci:supplyphynotfound,usingdummyregulator [2.301650]ahci-cevafd0c0000.ahci:supplytargetnotfound,usingdummyregulator [2.309511]ahci-cevafd0c0000.ahci:AHCI0001.030132slots2ports6Gbps0x3implplatformmode [2.318469]ahci-cevafd0c0000.ahci:flags:64bitncqsntfpmcloonlypmpfbspioslumpartcccsdsapst [2.328892]scsihost0:ahci-ceva [2.332498]scsihost1:ahci-ceva [2.335920]ata1:SATAmaxUDMA/133mmio[mem0xfd0c0000-0xfd0c1fff]port0x100irq47 [2.343838]ata2:SATAmaxUDMA/133mmio[mem0xfd0c0000-0xfd0c1fff]port0x180irq47p2 [2.664566]ata1:SATAlinkdown(SStatus0SControl330) [2.834331]ata2:SATAlinkup6.0Gbps(SStatus133SControl330) [2.841882]ata2.00:ATA-10:ThinkplusST600M.21TB,V0923A0,maxUDMA/133 [2.848840]ata2.00:1953525168sectors,multi1:LBA48NCQ(depth32) [2.857553]ata2.00:configuredforUDMA/133 [2.862020]scsi1:0:0:0:Direct-AccessATAThinkplusST6003A0PQ:0ANSI:5
Linux下的塊設備信息如下:
/dev/sda1455G4.0G451G1%/run/media/sda1 /dev/sda2469G7.6G437G2%/run/media/sda2
參考文檔
Zynq Ultrascale MPSOC Linux SIOU driver
Documentation/devicetree/bindings/phy/xlnx,zynqmp-psgtr.yaml
測試單板
K26
2022.1
審核編輯:湯梓紅
-
amd
+關注
關注
25文章
5449瀏覽量
133958 -
SATA
+關注
關注
0文章
264瀏覽量
83288 -
Xilinx
+關注
關注
71文章
2164瀏覽量
121036 -
MPSoC
+關注
關注
0文章
198瀏覽量
24252
發布評論請先 登錄
相關推薦
評論