搜尋此網誌

2014年12月1日 星期一

How to reset SATA Devices(with AHCI architecture) by UEFI shell mm command?

How to get Bar5 address first?

fs0:\test〉 pci
   Seg  Bus  Dev  Func
   ---  ---  ---  ----
    00   04   00    00 ==〉 Mass Storage Controller - UNDEFINED
             Vendor 1B4B Device 9230 Prog Interface 1

fs0:\test〉 pci 4 0 0
pci 4 0 0

  PCI Segment 00 Bus 04 Device 00 Func 00 [EFI 0004000000]
  00000000: 4B 1B 30 92 07 00 10 00-11 01 06 01 08 00 00 00  *K.0.............*
  00000010: 01 EC 00 00 81 E8 00 00-01 E8 00 00 81 E4 00 00  *................*
  00000020: 01 E4 00 00 00 F8 BF FE-00 00 00 00 4B 1B 30 92  *............K.0.*
  00000030: 00 00 BE FE 40 00 00 00-00 00 00 00 0B 01 00 00  *....@...........*
  00000040: 01 50 03 40 00 00 00 00-00 00 00 00 00 00 00 00  *.P.@............*
  00000050: 05 70 00 00 00 00 00 00-00 00 00 00 00 00 00 00  *.p..............*
  00000060: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  *................*
  00000070: 10 E0 12 00 02 87 28 00-10 20 09 00 22 3C 03 00  *......(.. .."<..*
  00000080: 40 00 21 10 00 00 00 00-00 00 00 00 00 00 00 00  *@.!.............*
  00000090: 00 00 00 00 10 00 00 00-00 00 00 00 00 00 00 00  *................*
  000000A0: 02 00 01 00 00 00 00 00-00 00 00 00 00 00 00 00  *................*
  000000B0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  *................*
  000000C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  *................*
  000000D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  *................*
  000000E0: 12 00 00 00 48 00 00 00-00 00 00 00 00 00 00 00  *....H...........*
  000000F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  *................*

Bar5=0xFEBFF800

[Reset SATA HDDs by shell mm commands]

edit file as below:

#####################################################################
mm febff800 4 ;MMIO -n
mm febff804 4 ;MMIO :0x80000000 -n # == Enable AHCI
mm febff804 4 ;MMIO -n
#pause
mm febff92c 4 ;MMIO :0x21 -n # == Reset Port0
stall 100000
mm febff92c 4 ;MMIO :0x20 -n
mm febff92c 4 ;MMIO -n
#pause
mm febff9ac 4 ;MMIO :0x21 -n # == Reset Port1
stall 100000
mm febff9ac 4 ;MMIO :0x20 -n
mm febff9ac 4 ;MMIO -n
#pause
mm febffa2c 4 ;MMIO :0x21 -n # == Reset Port2
stall 100000
mm febffa2c 4 ;MMIO :0x20 -n
mm febffa2c 4 ;MMIO -n
#pause
mm febffaac 4 ;MMIO :0x21 -n # == Reset Port3
stall 100000
mm febffaac 4 ;MMIO :0x20 -n
mm febffaac 4 ;MMIO -n
#pause


#####################################################################
fs0:\ test.nsh

沒有留言:

張貼留言