首先先看看spec所給的架構圖:
由圖中可以看到,port multiplier是一個擴充port數量的裝置。
那如何控制呢? 我跑去跟測試部門借了port multiplier (非常稀少,pchome/yahoo還買不到),準備開始改我的Dos 程式來測他,首先先看我畫的示意圖,我借的這是個1 to 4的port multiplier
基本上port multiplier最多可以接0~14個port, 第15個port是用來控制用的
當然,AHCI controller也要有能力才能支援port multiplier, 可以看AHCI 的 capability (CAP.SPM)
確定平台有支援後,接下來我要發個SRST給port 15,確認他回來的signature是port multiplier,代表有找到這個port multiplier裝置
再來我會發port multiplier的 command去問control,他的fan out能力
接著一個一個去看每個port 檢查她的PxSSTS.DET來判斷到底有那些port有接碟機
按照這些步驟做完,就可以知道哪些port被occupied, 接下來想發ATA command給他,僅需要在欄位裡指定他的PortNum就可以了。
原來是這樣 那不懂再請教你了^^
回覆刪除