Shell: map & dblk
2024.05.07
重新排序:
UEFI v2.70 (EDK II, 0x00010000)
Mapping table
BLK0: Alias(s): PcieRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/NVMe(0x1,32-03-00-00-00-00-00-00)
FS0: Alias(s):HD0b:;BLK1: PcieRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/NVMe(0x1,32-03-00-00-00-00-00-00)/HD(1,GPT,9DD431F3-1E15-584E-987D-827DD40C2E49,0xF000,0x200000)
BLK2: Alias(s): PcieRoot(0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/NVMe(0x1,32-03-00-00-00-00-00-00)/HD(2,GPT,8DEE4DA3-BB01-D348-8C62-188B9C031AC1,0x20F000,0x389AB019)
BLK3: Alias(s): VenHw(100C2CFA-B586-4198-9B4C-1683D195B1DA)
FS1: Alias(s):HD1b:;BLK4: VenHw(100C2CFA-B586-4198-9B4C-1683D195B1DA)/HD(1,GPT,809A75D3-E97F-4F9F-9E15-C4EB053E8AB3,0x800,0x32000)
BLK5: Alias(s): VenHw(100C2CFA-B586-4198-9B4C-1683D195B1DA)/HD(2,GPT,836136C3-A854-4F12-8FCD-3F5BCE5C9F24,0x32800,0x8000)
BLK6: Alias(s): VenHw(100C2CFA-B586-4198-9B4C-1683D195B1DA)/HD(3,GPT,8B6032D1-3641-44F6-B489-C48D195AC17E,0x3A800,0xE543000)
BLK7: Alias(s): VenHw(100C2CFA-B586-4198-9B4C-1683D195B1DA)/HD(4,GPT,96CA6224-A52D-4641-A947-AA3CCBA8DC8C,0xE57D800,0xFA000)
排序之后就更清晰了,下面演示如何演示(可用别名):
2024.05.08
NDB中手动遍历Shell!gShellMapList
(dt -l 及!list命令还没有好,临时可以用$t0 及 poi笨办法替代一下,感觉也不错。)
r $t0 = Shell!gShellMapList
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; x poi($t0+10); dt -b EFI_DEVICE_PATH_PROTOCOL ($t0+10); x poi($t0+18); du poi($t0+18)
+0x000 Link : [ 00000000`eeb3b398 - e9d68d10 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb3be18 00000000`eeb3b398
00000000`eeb3be20 00000000`e9d68d10 Shell!gShellMapList
00000000`eeb3be28 00000000`eeb3b718
00000000`eeb3be30 00000000`eeb3bd98
00000000`eeb3be38 00000000`00000000
00000000`eeb3be40 00000000`00000000
+0x000 Type : 0x18 ''
+0x001 SubType : 0xb7 ''
+0x002 Length :
[00] 0xb3 ''
[01] 0xee ''
00000000`eeb3bd98 "FS0:"
x poi($t0+10);
dq poi($t0+10) l1;
00000000`eeb3b718 0a0841d0`000c0102
? poi($t0+10);
eval expression: 4004755224 = 00000000`eeb3b718
?? poi($t0+10);
critical symbol information is absent. a lot of features are affected.
Unknown variable error at 'poi($t0+10)'
? poi($t0+10);
eval expression: 4004755224 = 00000000`eeb3b718
dqs $t0+10 l1;
00000000`eeb3be28 00000000`eeb3b718
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; ? poi($t0+10); dt -b EFI_DEVICE_PATH_PROTOCOL ($t0+10); ? poi($t0+18); du poi($t0+18)
+0x000 Link : [ 00000000`eeb3b418 - eeb3be18 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb3b398 00000000`eeb3b418
00000000`eeb3b3a0 00000000`eeb3be18
00000000`eeb3b3a8 00000000`eeb3b618
00000000`eeb3b3b0 00000000`eeb3bc98
00000000`eeb3b3b8 00000000`00000000
00000000`eeb3b3c0 00000000`00000000
eval expression: 4004754968 = 00000000`eeb3b618
+0x000 Type : 0x18 ''
+0x001 SubType : 0xb6 ''
+0x002 Length :
[00] 0xb3 ''
[01] 0xee ''
eval expression: 4004756632 = 00000000`eeb3bc98
00000000`eeb3bc98 "HD0b:"
r $t0 = Shell!gShellMapList
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; ? poi($t0+10); dt -b EFI_DEVICE_PATH_PROTOCOL ($t0+10); ? poi($t0+18); du poi($t0+18)
+0x000 Link : [ 00000000`eeb3b398 - e9d68d10 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb3be18 00000000`eeb3b398
00000000`eeb3be20 00000000`e9d68d10 Shell!gShellMapList
00000000`eeb3be28 00000000`eeb3b718
00000000`eeb3be30 00000000`eeb3bd98
00000000`eeb3be38 00000000`00000000
00000000`eeb3be40 00000000`00000000
eval expression: 4004755224 = 00000000`eeb3b718
+0x000 Type : 0x18 ''
+0x001 SubType : 0xb7 ''
+0x002 Length :
[00] 0xb3 ''
[01] 0xee ''
eval expression: 4004756888 = 00000000`eeb3bd98
00000000`eeb3bd98 "FS0:"
[ndb]!echo poi($t0+10)
can't read "t0": no such variable
!echo poi($t0+10)
No command echo found
x poi($t0+10)
r $t0 = Shell!gShellMapList
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL ($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb3b398 - e9d68d10 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb3be18 00000000`eeb3b398
00000000`eeb3be20 00000000`e9d68d10 Shell!gShellMapList
00000000`eeb3be28 00000000`eeb3b718
00000000`eeb3be30 00000000`eeb3bd98
00000000`eeb3be38 00000000`00000000
00000000`eeb3be40 00000000`00000000
00000000`eeb3b718 02 01 0c 00 ....
+0x000 Type : 0x18 ''
+0x001 SubType : 0xb7 ''
+0x002 Length :
[00] 0xb3 ''
[01] 0xee ''
00000000`eeb3bd98 "FS0:"
r $t0 = Shell!gShellMapList
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb3b398 - e9d68d10 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb3be18 00000000`eeb3b398
00000000`eeb3be20 00000000`e9d68d10 Shell!gShellMapList
00000000`eeb3be28 00000000`eeb3b718
00000000`eeb3be30 00000000`eeb3bd98
00000000`eeb3be38 00000000`00000000
00000000`eeb3be40 00000000`00000000
00000000`eeb3b718 02 01 0c 00 ....
+0x000 Type : 0x2 ''
+0x001 SubType : 0x1 ''
+0x002 Length :
[00] 0xc ''
[01] 0 ''
00000000`eeb3bd98 "FS0:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb3b418 - eeb3be18 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb3b398 00000000`eeb3b418
00000000`eeb3b3a0 00000000`eeb3be18
00000000`eeb3b3a8 00000000`eeb3b618
00000000`eeb3b3b0 00000000`eeb3bc98
00000000`eeb3b3b8 00000000`00000000
00000000`eeb3b3c0 00000000`00000000
00000000`eeb3b618 02 01 0c 00 ....
+0x000 Type : 0x2 ''
+0x001 SubType : 0x1 ''
+0x002 Length :
[00] 0xc ''
[01] 0 ''
00000000`eeb3bc98 "HD0b:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb3b498 - eeb3b398 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb3b418 00000000`eeb3b498
00000000`eeb3b420 00000000`eeb3b398
00000000`eeb3b428 00000000`eeb3b518
00000000`eeb3b430 00000000`eeb3bd18
00000000`eeb3b438 00000000`00000000
00000000`eeb3b440 00000000`00000000
00000000`eeb3b518 01 04 14 00 ....
+0x000 Type : 0x1 ''
+0x001 SubType : 0x4 ''
+0x002 Length :
[00] 0x14 ''
[01] 0 ''
00000000`eeb3bd18 "FS1:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb3bc18 - eeb3b418 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb3b498 00000000`eeb3bc18
00000000`eeb3b4a0 00000000`eeb3b418
00000000`eeb3b4a8 00000000`eeb38718
00000000`eeb3b4b0 00000000`eeb38b18
00000000`eeb3b4b8 00000000`00000000
00000000`eeb3b4c0 00000000`00000000
00000000`eeb38718 01 04 14 00 ....
+0x000 Type : 0x1 ''
+0x001 SubType : 0x4 ''
+0x002 Length :
[00] 0x14 ''
[01] 0 ''
00000000`eeb38b18 "HD1b:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb38698 - eeb3b498 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb3bc18 00000000`eeb38698
00000000`eeb3bc20 00000000`eeb3b498
00000000`eeb3bc28 00000000`eeb3b218
00000000`eeb3bc30 00000000`eeb3b698
00000000`eeb3bc38 00000000`00000000
00000000`eeb3bc40 00000000`00000000
00000000`eeb3b218 02 01 0c 00 ....
+0x000 Type : 0x2 ''
+0x001 SubType : 0x1 ''
+0x002 Length :
[00] 0xc ''
[01] 0 ''
00000000`eeb3b698 "BLK0:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb3b118 - eeb3bc18 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb38698 00000000`eeb3b118
00000000`eeb386a0 00000000`eeb3bc18
00000000`eeb386a8 00000000`eeb38818
00000000`eeb386b0 00000000`eeb38798
00000000`eeb386b8 00000000`00000000
00000000`eeb386c0 00000000`00000000
00000000`eeb38818 02 01 0c 00 ....
+0x000 Type : 0x2 ''
+0x001 SubType : 0x1 ''
+0x002 Length :
[00] 0xc ''
[01] 0 ''
00000000`eeb38798 "BLK1:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb38a18 - eeb38698 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb3b118 00000000`eeb38a18
00000000`eeb3b120 00000000`eeb38698
00000000`eeb3b128 00000000`eeb38998
00000000`eeb3b130 00000000`eeb3b198
00000000`eeb3b138 00000000`00000000
00000000`eeb3b140 00000000`00000000
00000000`eeb38998 02 01 0c 00 ....
+0x000 Type : 0x2 ''
+0x001 SubType : 0x1 ''
+0x002 Length :
[00] 0xc ''
[01] 0 ''
00000000`eeb3b198 "BLK2:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb36f18 - eeb3b118 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb38a18 00000000`eeb36f18
00000000`eeb38a20 00000000`eeb3b118
00000000`eeb38a28 00000000`eeb36018
00000000`eeb38a30 00000000`eeb38a98
00000000`eeb38a38 00000000`00000000
00000000`eeb38a40 00000000`00000000
00000000`eeb36018 01 04 14 00 ....
+0x000 Type : 0x1 ''
+0x001 SubType : 0x4 ''
+0x002 Length :
[00] 0x14 ''
[01] 0 ''
00000000`eeb38a98 "BLK3:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb36e18 - eeb38a18 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb36f18 00000000`eeb36e18
00000000`eeb36f20 00000000`eeb38a18
00000000`eeb36f28 00000000`eeb36b18
00000000`eeb36f30 00000000`eeb36f98
00000000`eeb36f38 00000000`00000000
00000000`eeb36f40 00000000`00000000
00000000`eeb36b18 01 04 14 00 ....
+0x000 Type : 0x1 ''
+0x001 SubType : 0x4 ''
+0x002 Length :
[00] 0x14 ''
[01] 0 ''
00000000`eeb36f98 "BLK4:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb36d98 - eeb36f18 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb36e18 00000000`eeb36d98
00000000`eeb36e20 00000000`eeb36f18
00000000`eeb36e28 00000000`eeb36b98
00000000`eeb36e30 00000000`eeb36e98
00000000`eeb36e38 00000000`00000000
00000000`eeb36e40 00000000`00000000
00000000`eeb36b98 01 04 14 00 ....
+0x000 Type : 0x1 ''
+0x001 SubType : 0x4 ''
+0x002 Length :
[00] 0x14 ''
[01] 0 ''
00000000`eeb36e98 "BLK5:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb36d18 - eeb36e18 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb36d98 00000000`eeb36d18
00000000`eeb36da0 00000000`eeb36e18
00000000`eeb36da8 00000000`eeb36c98
00000000`eeb36db0 00000000`eeb36c18
00000000`eeb36db8 00000000`00000000
00000000`eeb36dc0 00000000`00000000
00000000`eeb36c98 01 04 14 00 ....
+0x000 Type : 0x1 ''
+0x001 SubType : 0x4 ''
+0x002 Length :
[00] 0x14 ''
[01] 0 ''
00000000`eeb36c18 "BLK6:"
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`e9d68d10 - eeb36d98 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`eeb36d18 00000000`e9d68d10 Shell!gShellMapList
00000000`eeb36d20 00000000`eeb36d98
00000000`eeb36d28 00000000`eeb36a18
00000000`eeb36d30 00000000`eeb36098
00000000`eeb36d38 00000000`00000000
00000000`eeb36d40 00000000`00000000
00000000`eeb36a18 01 04 14 00 ....
+0x000 Type : 0x1 ''
+0x001 SubType : 0x4 ''
+0x002 Length :
[00] 0x14 ''
[01] 0 ''
00000000`eeb36098 "BLK7:"
Opcode 0x38401401, DSCR.ERR=1, DSCR.EL=2
r $t0=poi($t0); dt -b SHELL_MAP_LIST $t0; dqs $t0 l30/8; db poi($t0+10) l4; dt -b EFI_DEVICE_PATH_PROTOCOL poi($t0+10); du poi($t0+18)
+0x000 Link : [ 00000000`eeb3be18 - eeb36d18 ]
+0x000 ForwardLink : (null)
+0x008 BackLink : (null)
+0x010 DevicePath : (null)
+0x018 MapName : (null)
+0x020 CurrentDirectoryPath : (null)
+0x028 Flags : 0
00000000`e9d68d10 00000000`eeb3be18
00000000`e9d68d18 00000000`eeb36d18
00000000`e9d68d20 00000000`00000000
00000000`e9d68d28 00000000`00000000
00000000`e9d68d30 00000000`00000000
00000000`e9d68d38 00000000`00000000
00000000`00000000 ?? ?? ?? ?? ????
+0x000 Type : UChar
+0x001 SubType : UChar
+0x002 Length : UChar
00000000`00000000 "????????????????????????????????"
00000000`00000040 "????????????????????????????????"
00000000`00000080 "????????????????????????????????"
00000000`000000c0 "????????????????????????????????"
00000000`00000100 "????????????????????????????????"
00000000`00000140 "????????????????????????????????"
00000000`00000180 "????????????????????????????????"
00000000`000001c0 "????????????????????????????????"
00000000`00000200 "????????????????????????????????"
00000000`00000240 "????????????????????????????????"
00000000`00000280 "????????????????????????????????"
00000000`000002c0 "????????????????????????????????"
BLK0: 为一块硬盘;
FS0:HD0b:BLK1: 第一个GPT分区,可识别的文件系统,开始扇区号为0xF000,扇区数为0x200000;
BLK2: 为第二个GPT分区,开始扇区号为0x20F000,扇区数为0x389AB019。
dblk 命令通过访问BLK0可以等效访问BLK1或BLK2,只是开始的扇区号相应调整,请看下面例子:
dblk命令是如何读取扇区的?读源代码,再上NDB观察(原过程没有这么顺利,因为发现有代码没有符号,现已经加载上):
参阅:lm及观察加载的Modules
可以观察到,这里有两块硬盘,访问硬盘时,直接用NvmExpressDxe和MmcDxe驱动,访问分区的扇区,则用PartitionDxe:
FS1:\> dblk blk0 f000
LBA 000000000000F000 Size 00000200 bytes BlkIo EEB97088
00000000: EB 58 90 6D 6B 66 73 2E-66 61 74 00 02 08 20 00 *.X.mkfs.fat... .*
00000010: 02 00 00 00 00 F8 00 00-3F 00 FF 00 00 F0 00 00 *........?.......*
00000020: F8 FF 1F 00 00 08 00 00-00 00 00 00 02 00 00 00 *................*
00000030: 01 00 06 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000040: 80 00 29 96 68 F3 91 6F-70 69 5F 62 6F 6F 74 20 *..).h..opi_boot *
00000050: 20 20 46 41 54 33 32 20-20 20 0E 1F BE 77 7C AC * FAT32 ...w|.*
00000060: 22 C0 74 0B 56 B4 0E BB-07 00 CD 10 5E EB F0 32 *".t.V.......^..2*
00000070: E4 CD 16 CD 19 EB FE 54-68 69 73 20 69 73 20 6E *.......This is n*
00000080: 6F 74 20 61 20 62 6F 6F-74 61 62 6C 65 20 64 69 *ot a bootable di*
00000090: 73 6B 2E 20 20 50 6C 65-61 73 65 20 69 6E 73 65 *sk. Please inse*
000000A0: 72 74 20 61 20 62 6F 6F-74 61 62 6C 65 20 66 6C *rt a bootable fl*
000000B0: 6F 70 70 79 20 61 6E 64-0D 0A 70 72 65 73 73 20 *oppy and..press *
000000C0: 61 6E 79 20 6B 65 79 20-74 6F 20 74 72 79 20 61 *any key to try a*
000000D0: 67 61 69 6E 20 2E 2E 2E-20 0D 0A 00 00 00 00 00 *gain ... .......*
000000E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000000F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000100: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000110: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000120: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000130: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000140: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000150: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000160: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000170: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000180: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000190: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001A0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001B0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA *..............U.*
FSOpen: Open '\' Success
[NDB]
db 0`EEB97088
00000000`eeb97088 01 00 02 00 00 00 00 00-58 70 b9 ee 00 00 00 00 ........Xp......
00000000`eeb97098 3c 92 71 ea 00 00 00 00-78 70 71 ea 00 00 00 00 <.q.....xpq.....
00000000`eeb970a8 2c 73 71 ea 00 00 00 00-68 59 71 ea 00 00 00 00 ,sq.....hYq.....
00000000`eeb970b8 58 70 b9 ee 00 00 00 00-f4 92 71 ea 00 00 00 00 Xp........q.....
00000000`eeb970c8 c8 aa 71 ea 00 00 00 00-38 ae 71 ea 00 00 00 00 ..q.....8.q.....
00000000`eeb970d8 90 53 71 ea 00 00 00 00-80 46 b1 3a 3f 5d 4d 4a .Sq......F.:?]MJ
00000000`eeb970e8 bc dc cc 38 00 18 c7 f7-a4 41 71 ea 00 00 00 00 ...8.....Aq.....
00000000`eeb970f8 9c 5e 71 ea 00 00 00 00-b0 41 71 ea 00 00 00 00 .^q......Aq.....
dt -b EFI_BLOCK_IO_PROTOCOL 0`EEB97088
+0x000 Revision : 0x20001
+0x008 Media : (null)
+0x010 Reset : (null)
+0x018 ReadBlocks : (null)
+0x020 WriteBlocks : (null)
+0x028 FlushBlocks : (null)
?? sizeof(EFI_BLOCK_IO_PROTOCOL)
unsigned int64 0x30
dqs 0`EEB97088 l30/8
00000000`eeb97088 00000000`00020001
00000000`eeb97090 00000000`eeb97058
00000000`eeb97098 00000000`ea71923c NvmExpressDxe!NvmeBlockIoReset
00000000`eeb970a0 00000000`ea717078 NvmExpressDxe!NvmeBlockIoReadBlocks
00000000`eeb970a8 00000000`ea71732c NvmExpressDxe!NvmeBlockIoWriteBlocks
00000000`eeb970b0 00000000`ea715968 NvmExpressDxe!NvmeBlockIoFlushBlocks
FS1:\> dblk blk1
LBA 0000000000000000 Size 00000200 bytes BlkIo EEB9A530
00000000: EB 58 90 6D 6B 66 73 2E-66 61 74 00 02 08 20 00 *.X.mkfs.fat... .*
00000010: 02 00 00 00 00 F8 00 00-3F 00 FF 00 00 F0 00 00 *........?.......*
00000020: F8 FF 1F 00 00 08 00 00-00 00 00 00 02 00 00 00 *................*
00000030: 01 00 06 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000040: 80 00 29 96 68 F3 91 6F-70 69 5F 62 6F 6F 74 20 *..).h..opi_boot *
00000050: 20 20 46 41 54 33 32 20-20 20 0E 1F BE 77 7C AC * FAT32 ...w|.*
00000060: 22 C0 74 0B 56 B4 0E BB-07 00 CD 10 5E EB F0 32 *".t.V.......^..2*
00000070: E4 CD 16 CD 19 EB FE 54-68 69 73 20 69 73 20 6E *.......This is n*
00000080: 6F 74 20 61 20 62 6F 6F-74 61 62 6C 65 20 64 69 *ot a bootable di*
00000090: 73 6B 2E 20 20 50 6C 65-61 73 65 20 69 6E 73 65 *sk. Please inse*
000000A0: 72 74 20 61 20 62 6F 6F-74 61 62 6C 65 20 66 6C *rt a bootable fl*
000000B0: 6F 70 70 79 20 61 6E 64-0D 0A 70 72 65 73 73 20 *oppy and..press *
000000C0: 61 6E 79 20 6B 65 79 20-74 6F 20 74 72 79 20 61 *any key to try a*
000000D0: 67 61 69 6E 20 2E 2E 2E-20 0D 0A 00 00 00 00 00 *gain ... .......*
000000E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000000F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000100: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000110: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000120: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000130: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000140: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000150: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000160: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000170: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000180: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000190: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001A0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001B0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA *..............U.*
FSOpen: Open '\' Success
[NDB] Remarks:符号暂时有问题
dqs 0`EEB9A530 l30/8
00000000`eeb9a530 00000000`00020001
00000000`eeb9a538 00000000`eeb9a588
00000000`eeb9a540 00000000`ea968088 PartitionDxe!PartitionReset [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 603]
00000000`eeb9a548 00000000`ea9680f8 PartitionDxe!PartitionReadBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 679]
00000000`eeb9a550 00000000`ea9681f0 PartitionDxe!PartitionWriteBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 699]
00000000`eeb9a558 00000000`ea9682e8 PartitionDxe!PartitionFlushBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 751]
FS1:\> dblk blk2
LBA 0000000000000000 Size 00000200 bytes BlkIo EEB99030
00000000: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000010: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000020: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000030: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000040: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000050: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000060: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000070: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000080: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000090: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000000A0: 00 00 00 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: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000000F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000100: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000110: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000120: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000130: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000140: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000150: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000160: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000170: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000180: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000190: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001A0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001B0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
FSOpen: Open '\' Success
[NDB] Remarks:符号暂时有问题
dqs 0`EEB99030 l30/8
00000000`eeb99030 00000000`00020001
00000000`eeb99038 00000000`eeb99088
00000000`eeb99040 00000000`ea968088 PartitionDxe!PartitionReset [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 603]
00000000`eeb99048 00000000`ea9680f8 PartitionDxe!PartitionReadBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 679]
00000000`eeb99050 00000000`ea9681f0 PartitionDxe!PartitionWriteBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 699]
00000000`eeb99058 00000000`ea9682e8 PartitionDxe!PartitionFlushBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 751]
dqs 0`EEB9A530 l30/8
FS1:\> dblk blk3
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCSendCommand will exit
SdhciSoftReset with mask 0x6000000
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCReadBlockData will exit
SdhciSoftReset with mask 0x6000000
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCSendCommand will exit
SdhciSoftReset with mask 0x6000000
LBA 0000000000000000 Size 00000200 bytes BlkIo EF19FC48
00000000: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000010: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000020: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000030: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000040: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000050: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000060: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000070: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000080: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000090: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000000A0: 00 00 00 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: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000000F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000100: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000110: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000120: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000130: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000140: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000150: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000160: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000170: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000180: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000190: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001A0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001B0: 00 00 00 00 00 00 00 00-08 8B E5 4C 00 00 00 00 *...........L....*
000001C0: 02 00 EE FE BF C1 01 00-00 00 FF FF FF FF 00 00 *................*
000001D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA *..............U.*
FSOpen: Open '\' Success
[NDB]
dqs 0`EF19FC48 l30/8
00000000`ef19fc48 00000000`00010000
00000000`ef19fc50 00000000`ef19b618
00000000`ef19fc58 00000000`ea709190 MmcDxe!MmcReset
00000000`ef19fc60 00000000`ea709b4c MmcDxe!MmcReadBlocks
00000000`ef19fc68 00000000`ea709b64 MmcDxe!MmcWriteBlocks
00000000`ef19fc70 00000000`ea708018 MmcDxe!ProcessModuleUnloadList
FS1:\> dblk blk4
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCSendCommand will exit
SdhciSoftReset with mask 0x6000000
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCReadBlockData will exit
SdhciSoftReset with mask 0x6000000
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCSendCommand will exit
SdhciSoftReset with mask 0x6000000
LBA 0000000000000000 Size 00000200 bytes BlkIo EF1A78B0
00000000: EB 58 90 4D 53 44 4F 53-35 2E 30 00 02 02 FE 19 *.X.MSDOS5.0.....*
00000010: 02 00 00 00 00 F8 00 00-3F 00 FF 00 00 08 00 00 *........?.......*
00000020: 00 20 03 00 01 03 00 00-00 00 00 00 02 00 00 00 *. ..............*
00000030: 01 00 06 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000040: 80 01 29 7B 6E 7B 78 4E-4F 20 4E 41 4D 45 20 20 *..){n{xNO NAME *
00000050: 20 20 46 41 54 33 32 20-20 20 33 C9 8E D1 BC F4 * FAT32 3.....*
00000060: 7B 8E C1 8E D9 BD 00 7C-88 56 40 88 4E 02 8A 56 *{......|.V@.N..V*
00000070: 40 B4 41 BB AA 55 CD 13-72 10 81 FB 55 AA 75 0A *@.A..U..r...U.u.*
00000080: F6 C1 01 74 05 FE 46 02-EB 2D 8A 56 40 B4 08 CD *...t..F..-.V@...*
00000090: 13 73 05 B9 FF FF 8A F1-66 0F B6 C6 40 66 0F B6 *.s......f...@f..*
000000A0: D1 80 E2 3F F7 E2 86 CD-C0 ED 06 41 66 0F B7 C9 *...?.......Af...*
000000B0: 66 F7 E1 66 89 46 F8 83-7E 16 00 75 39 83 7E 2A *f..f.F..~..u9.~**
000000C0: 00 77 33 66 8B 46 1C 66-83 C0 0C BB 00 80 B9 01 *.w3f.F.f........*
000000D0: 00 E8 2C 00 E9 A8 03 A1-F8 7D 80 C4 7C 8B F0 AC *..,......}..|...*
000000E0: 84 C0 74 17 3C FF 74 09-B4 0E BB 07 00 CD 10 EB *..t.<.t.........*
000000F0: EE A1 FA 7D EB E4 A1 7D-80 EB DF 98 CD 16 CD 19 *...}...}........*
00000100: 66 60 80 7E 02 00 0F 84-20 00 66 6A 00 66 50 06 *f`.~.... .fj.fP.*
00000110: 53 66 68 10 00 01 00 B4-42 8A 56 40 8B F4 CD 13 *Sfh.....B.V@....*
00000120: 66 58 66 58 66 58 66 58-EB 33 66 3B 46 F8 72 03 *fXfXfXfX.3f;F.r.*
00000130: F9 EB 2A 66 33 D2 66 0F-B7 4E 18 66 F7 F1 FE C2 *..*f3.f..N.f....*
00000140: 8A CA 66 8B D0 66 C1 EA-10 F7 76 1A 86 D6 8A 56 *..f..f....v....V*
00000150: 40 8A E8 C0 E4 06 0A CC-B8 01 02 CD 13 66 61 0F *@............fa.*
00000160: 82 74 FF 81 C3 00 02 66-40 49 75 94 C3 42 4F 4F *.t.....f@Iu..BOO*
00000170: 54 4D 47 52 20 20 20 20-00 00 00 00 00 00 00 00 *TMGR ........*
00000180: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000190: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001A0: 00 00 00 00 00 00 00 00-00 00 00 00 0D 0A 44 69 *..............Di*
000001B0: 73 6B 20 65 72 72 6F 72-FF 0D 0A 50 72 65 73 73 *sk error...Press*
000001C0: 20 61 6E 79 20 6B 65 79-20 74 6F 20 72 65 73 74 * any key to rest*
000001D0: 61 72 74 0D 0A 00 00 00-00 00 00 00 00 00 00 00 *art.............*
000001E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001F0: 00 00 00 00 00 00 00 00-AC 01 B9 01 00 00 55 AA *..............U.*
FSOpen: Open '\' Success
[NDB]
dqs 0`EF1A78B0 l30/8
00000000`ef1a78b0 00000000`00010000
00000000`ef1a78b8 00000000`ef1a7908
00000000`ef1a78c0 00000000`ea968088 PartitionDxe!PartitionReset [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 603]
00000000`ef1a78c8 00000000`ea9680f8 PartitionDxe!PartitionReadBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 679]
00000000`ef1a78d0 00000000`ea9681f0 PartitionDxe!PartitionWriteBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 699]
00000000`ef1a78d8 00000000`ea9682e8 PartitionDxe!PartitionFlushBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 751]
FS1:\> dblk blk5
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCSendCommand will exit
SdhciSoftReset with mask 0x6000000
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCReadBlockData will exit
SdhciSoftReset with mask 0x6000000
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCSendCommand will exit
SdhciSoftReset with mask 0x6000000
LBA 0000000000000000 Size 00000200 bytes BlkIo EF1A1BB0
00000000: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000010: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000020: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000030: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000040: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000050: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000060: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000070: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000080: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000090: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000000A0: 00 00 00 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: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000000F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000100: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000110: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000120: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000130: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000140: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000150: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000160: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000170: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000180: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
00000190: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001A0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001B0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001C0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001D0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001F0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
FSOpen: Open '\' Success
[NDB]
dqs 0`EF1A1BB0 l30/8
00000000`ef1a1bb0 00000000`00010000
00000000`ef1a1bb8 00000000`ef1a1c08
00000000`ef1a1bc0 00000000`ea968088 PartitionDxe!PartitionReset [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 603]
00000000`ef1a1bc8 00000000`ea9680f8 PartitionDxe!PartitionReadBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 679]
00000000`ef1a1bd0 00000000`ea9681f0 PartitionDxe!PartitionWriteBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 699]
00000000`ef1a1bd8 00000000`ea9682e8 PartitionDxe!PartitionFlushBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 751]
FS1:\> dblk blk6
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCSendCommand will exit
SdhciSoftReset with mask 0x6000000
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCReadBlockData will exit
SdhciSoftReset with mask 0x6000000
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCSendCommand will exit
SdhciSoftReset with mask 0x6000000
LBA 0000000000000000 Size 00000200 bytes BlkIo EF1A11B0
00000000: EB 52 90 4E 54 46 53 20-20 20 20 00 02 08 00 00 *.R.NTFS .....*
00000010: 00 00 00 00 00 F8 00 00-3F 00 FF 00 00 A8 03 00 *........?.......*
00000020: 00 00 00 00 80 00 80 00-FF 2F 54 0E 00 00 00 00 *........./T.....*
00000030: 00 00 0C 00 00 00 00 00-02 00 00 00 00 00 00 00 *................*
00000040: F6 00 00 00 01 00 00 00-2B 05 7D 42 13 7D 42 0A *........+.}B.}B.*
00000050: 00 00 00 00 FA 33 C0 8E-D0 BC 00 7C FB 68 C0 07 *.....3.....|.h..*
00000060: 1F 1E 68 66 00 CB 88 16-0E 00 66 81 3E 03 00 4E *..hf......f.>..N*
00000070: 54 46 53 75 15 B4 41 BB-AA 55 CD 13 72 0C 81 FB *TFSu..A..U..r...*
00000080: 55 AA 75 06 F7 C1 01 00-75 03 E9 DD 00 1E 83 EC *U.u.....u.......*
00000090: 18 68 1A 00 B4 48 8A 16-0E 00 8B F4 16 1F CD 13 *.h...H..........*
000000A0: 9F 83 C4 18 9E 58 1F 72-E1 3B 06 0B 00 75 DB A3 *.....X.r.;...u..*
000000B0: 0F 00 C1 2E 0F 00 04 1E-5A 33 DB B9 00 20 2B C8 *........Z3... +.*
000000C0: 66 FF 06 11 00 03 16 0F-00 8E C2 FF 06 16 00 E8 *f...............*
000000D0: 4B 00 2B C8 77 EF B8 00-BB CD 1A 66 23 C0 75 2D *K.+.w......f#.u-*
000000E0: 66 81 FB 54 43 50 41 75-24 81 F9 02 01 72 1E 16 *f..TCPAu$....r..*
000000F0: 68 07 BB 16 68 52 11 16-68 09 00 66 53 66 53 66 *h...hR..h..fSfSf*
00000100: 55 16 16 16 68 B8 01 66-61 0E 07 CD 1A 33 C0 BF *U...h..fa....3..*
00000110: 0A 13 B9 F6 0C FC F3 AA-E9 FE 01 90 90 66 60 1E *.............f`.*
00000120: 06 66 A1 11 00 66 03 06-1C 00 1E 66 68 00 00 00 *.f...f.....fh...*
00000130: 00 66 50 06 53 68 01 00-68 10 00 B4 42 8A 16 0E *.fP.Sh..h...B...*
00000140: 00 16 1F 8B F4 CD 13 66-59 5B 5A 66 59 66 59 1F *.......fY[ZfYfY.*
00000150: 0F 82 16 00 66 FF 06 11-00 03 16 0F 00 8E C2 FF *....f...........*
00000160: 0E 16 00 75 BC 07 1F 66-61 C3 A1 F6 01 E8 09 00 *...u...fa.......*
00000170: A1 FA 01 E8 03 00 F4 EB-FD 8B F0 AC 3C 00 74 09 *............<.t.*
00000180: B4 0E BB 07 00 CD 10 EB-F2 C3 0D 0A 41 20 64 69 *............A di*
00000190: 73 6B 20 72 65 61 64 20-65 72 72 6F 72 20 6F 63 *sk read error oc*
000001A0: 63 75 72 72 65 64 00 0D-0A 42 4F 4F 54 4D 47 52 *curred...BOOTMGR*
000001B0: 20 69 73 20 63 6F 6D 70-72 65 73 73 65 64 00 0D * is compressed..*
000001C0: 0A 50 72 65 73 73 20 43-74 72 6C 2B 41 6C 74 2B *.Press Ctrl+Alt+*
000001D0: 44 65 6C 20 74 6F 20 72-65 73 74 61 72 74 0D 0A *Del to restart..*
000001E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001F0: 00 00 00 00 00 00 8A 01-A7 01 BF 01 00 00 55 AA *..............U.*
FSOpen: Open '\' Success
[NDB]
dqs 0`EF1A11B0 l30/8
00000000`ef1a11b0 00000000`00010000
00000000`ef1a11b8 00000000`ef1a1208
00000000`ef1a11c0 00000000`ea968088 PartitionDxe!PartitionReset [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 603]
00000000`ef1a11c8 00000000`ea9680f8 PartitionDxe!PartitionReadBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 679]
00000000`ef1a11d0 00000000`ea9681f0 PartitionDxe!PartitionWriteBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 699]
00000000`ef1a11d8 00000000`ea9682e8 PartitionDxe!PartitionFlushBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 751]
FS1:\> dblk blk7
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCSendCommand will exit
SdhciSoftReset with mask 0x6000000
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCReadBlockData will exit
SdhciSoftReset with mask 0x6000000
GDDBG MMCSendCommand without IgnoreCommand
GDDBG MMCSendCommand will exit
SdhciSoftReset with mask 0x6000000
LBA 0000000000000000 Size 00000200 bytes BlkIo EF1A0030
00000000: EB 52 90 4E 54 46 53 20-20 20 20 00 02 08 00 00 *.R.NTFS .....*
00000010: 00 00 00 00 00 F8 00 00-3F 00 FF 00 00 D8 57 0E *........?.....W.*
00000020: 00 00 00 00 80 00 80 00-FF 9F 0F 00 00 00 00 00 *................*
00000030: AA A6 00 00 00 00 00 00-02 00 00 00 00 00 00 00 *................*
00000040: F6 00 00 00 01 00 00 00-FE C4 7D 08 00 7E 08 30 *..........}..~.0*
00000050: 00 00 00 00 FA 33 C0 8E-D0 BC 00 7C FB 68 C0 07 *.....3.....|.h..*
00000060: 1F 1E 68 66 00 CB 88 16-0E 00 66 81 3E 03 00 4E *..hf......f.>..N*
00000070: 54 46 53 75 15 B4 41 BB-AA 55 CD 13 72 0C 81 FB *TFSu..A..U..r...*
00000080: 55 AA 75 06 F7 C1 01 00-75 03 E9 DD 00 1E 83 EC *U.u.....u.......*
00000090: 18 68 1A 00 B4 48 8A 16-0E 00 8B F4 16 1F CD 13 *.h...H..........*
000000A0: 9F 83 C4 18 9E 58 1F 72-E1 3B 06 0B 00 75 DB A3 *.....X.r.;...u..*
000000B0: 0F 00 C1 2E 0F 00 04 1E-5A 33 DB B9 00 20 2B C8 *........Z3... +.*
000000C0: 66 FF 06 11 00 03 16 0F-00 8E C2 FF 06 16 00 E8 *f...............*
000000D0: 4B 00 2B C8 77 EF B8 00-BB CD 1A 66 23 C0 75 2D *K.+.w......f#.u-*
000000E0: 66 81 FB 54 43 50 41 75-24 81 F9 02 01 72 1E 16 *f..TCPAu$....r..*
000000F0: 68 07 BB 16 68 52 11 16-68 09 00 66 53 66 53 66 *h...hR..h..fSfSf*
00000100: 55 16 16 16 68 B8 01 66-61 0E 07 CD 1A 33 C0 BF *U...h..fa....3..*
00000110: 0A 13 B9 F6 0C FC F3 AA-E9 FE 01 90 90 66 60 1E *.............f`.*
00000120: 06 66 A1 11 00 66 03 06-1C 00 1E 66 68 00 00 00 *.f...f.....fh...*
00000130: 00 66 50 06 53 68 01 00-68 10 00 B4 42 8A 16 0E *.fP.Sh..h...B...*
00000140: 00 16 1F 8B F4 CD 13 66-59 5B 5A 66 59 66 59 1F *.......fY[ZfYfY.*
00000150: 0F 82 16 00 66 FF 06 11-00 03 16 0F 00 8E C2 FF *....f...........*
00000160: 0E 16 00 75 BC 07 1F 66-61 C3 A1 F6 01 E8 09 00 *...u...fa.......*
00000170: A1 FA 01 E8 03 00 F4 EB-FD 8B F0 AC 3C 00 74 09 *............<.t.*
00000180: B4 0E BB 07 00 CD 10 EB-F2 C3 0D 0A 41 20 64 69 *............A di*
00000190: 73 6B 20 72 65 61 64 20-65 72 72 6F 72 20 6F 63 *sk read error oc*
000001A0: 63 75 72 72 65 64 00 0D-0A 42 4F 4F 54 4D 47 52 *curred...BOOTMGR*
000001B0: 20 69 73 20 63 6F 6D 70-72 65 73 73 65 64 00 0D * is compressed..*
000001C0: 0A 50 72 65 73 73 20 43-74 72 6C 2B 41 6C 74 2B *.Press Ctrl+Alt+*
000001D0: 44 65 6C 20 74 6F 20 72-65 73 74 61 72 74 0D 0A *Del to restart..*
000001E0: 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................*
000001F0: 00 00 00 00 00 00 8A 01-A7 01 BF 01 00 00 55 AA *..............U.*
FSOpen: Open '\' Success
[NDB]
dqs 0`EF1A0030 l30/8
00000000`ef1a0030 00000000`00010000
00000000`ef1a0038 00000000`ef1a0088
00000000`ef1a0040 00000000`ea968088 PartitionDxe!PartitionReset [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 603]
00000000`ef1a0048 00000000`ea9680f8 PartitionDxe!PartitionReadBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 679]
00000000`ef1a0050 00000000`ea9681f0 PartitionDxe!PartitionWriteBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 699]
00000000`ef1a0058 00000000`ea9682e8 PartitionDxe!PartitionFlushBlocks [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 751]
dt -b EFI_BLOCK_IO_MEDIA 00000000`eeb97058
+0x000 MediaId : 0
+0x004 RemovableMedia : 0 ''
+0x005 MediaPresent : 0x1 ''
+0x006 LogicalPartition : 0 ''
+0x007 ReadOnly : 0 ''
+0x008 WriteCaching : 0 ''
+0x00c BlockSize : 0x200
+0x010 IoAlign : 8
+0x018 LastBlock : 0x3b9e12af
+0x020 LowestAlignedLba : 1
+0x028 LogicalBlocksPerPhysicalBlock : 1
+0x02c OptimalTransferLengthGranularity : 0
dt -b EFI_BLOCK_IO_MEDIA 00000000`eeb9a588
+0x000 MediaId : 0
+0x004 RemovableMedia : 0 ''
+0x005 MediaPresent : 0x1 ''
+0x006 LogicalPartition : 0x1 ''
+0x007 ReadOnly : 0 ''
+0x008 WriteCaching : 0 ''
+0x00c BlockSize : 0x200
+0x010 IoAlign : 1
+0x018 LastBlock : 0x1fffff
+0x020 LowestAlignedLba : 0
+0x028 LogicalBlocksPerPhysicalBlock : 0
+0x02c OptimalTransferLengthGranularity : 0
dt -b EFI_BLOCK_IO_MEDIA 00000000`eeb99088
+0x000 MediaId : 0
+0x004 RemovableMedia : 0 ''
+0x005 MediaPresent : 0x1 ''
+0x006 LogicalPartition : 0x1 ''
+0x007 ReadOnly : 0 ''
+0x008 WriteCaching : 0 ''
+0x00c BlockSize : 0x200
+0x010 IoAlign : 1
+0x018 LastBlock : 0x389ab018
+0x020 LowestAlignedLba : 0
+0x028 LogicalBlocksPerPhysicalBlock : 0
+0x02c OptimalTransferLengthGranularity : 0
dt -b EFI_BLOCK_IO_MEDIA 00000000`ef19b618
+0x000 MediaId : 0
+0x004 RemovableMedia : 0x1 ''
+0x005 MediaPresent : 0x1 ''
+0x006 LogicalPartition : 0 ''
+0x007 ReadOnly : 0 ''
+0x008 WriteCaching : 0 ''
+0x00c BlockSize : 0x200
+0x010 IoAlign : 4
+0x018 LastBlock : 0xe677fff
+0x020 LowestAlignedLba : 0
+0x028 LogicalBlocksPerPhysicalBlock : 1
+0x02c OptimalTransferLengthGranularity : 0
dt -b EFI_BLOCK_IO_MEDIA 00000000`ef1a7908
+0x000 MediaId : 0
+0x004 RemovableMedia : 0x1 ''
+0x005 MediaPresent : 0x1 ''
+0x006 LogicalPartition : 0x1 ''
+0x007 ReadOnly : 0 ''
+0x008 WriteCaching : 0 ''
+0x00c BlockSize : 0x200
+0x010 IoAlign : 1
+0x018 LastBlock : 0x31fff
+0x020 LowestAlignedLba : 0
+0x028 LogicalBlocksPerPhysicalBlock : 1
+0x02c OptimalTransferLengthGranularity : 0
dt -b EFI_BLOCK_IO_MEDIA 00000000`ef1a1c08
+0x000 MediaId : 0
+0x004 RemovableMedia : 0x1 ''
+0x005 MediaPresent : 0x1 ''
+0x006 LogicalPartition : 0x1 ''
+0x007 ReadOnly : 0 ''
+0x008 WriteCaching : 0 ''
+0x00c BlockSize : 0x200
+0x010 IoAlign : 1
+0x018 LastBlock : 0x7fff
+0x020 LowestAlignedLba : 0
+0x028 LogicalBlocksPerPhysicalBlock : 1
+0x02c OptimalTransferLengthGranularity : 0
dt -b EFI_BLOCK_IO_MEDIA 00000000`ef1a1208
+0x000 MediaId : 0
+0x004 RemovableMedia : 0x1 ''
+0x005 MediaPresent : 0x1 ''
+0x006 LogicalPartition : 0x1 ''
+0x007 ReadOnly : 0 ''
+0x008 WriteCaching : 0 ''
+0x00c BlockSize : 0x200
+0x010 IoAlign : 1
+0x018 LastBlock : 0xe542fff
+0x020 LowestAlignedLba : 0
+0x028 LogicalBlocksPerPhysicalBlock : 1
+0x02c OptimalTransferLengthGranularity : 0
dt -b EFI_BLOCK_IO_MEDIA 00000000`ef1a0088
+0x000 MediaId : 0
+0x004 RemovableMedia : 0x1 ''
+0x005 MediaPresent : 0x1 ''
+0x006 LogicalPartition : 0x1 ''
+0x007 ReadOnly : 0 ''
+0x008 WriteCaching : 0 ''
+0x00c BlockSize : 0x200
+0x010 IoAlign : 1
+0x018 LastBlock : 0xf9fff
+0x020 LowestAlignedLba : 0
+0x028 LogicalBlocksPerPhysicalBlock : 1
+0x02c OptimalTransferLengthGranularity : 0
kd>
美的代码:
UEFI架构设计得真漂亮,NDB断点跟踪执行发现驱动其中有如下调用关系:
Dblk blk4: -> PartitionDxe!PartitionReadBlocks -> DiskIoDxe!DiskIo2ReadWriteDisk -> MmcDxe!MmcReadBlocks
层层翻译得自然而然,下面NDB下断点后得到的调用栈有被简化,有些因为是函数编译时其实用了inline,也有部分可能是NDB对栈解释的问题。
dblk blk0的调用栈:
dblk blk3:
00000000`3fffed58 00000000`e9cadf74 MmcDxe!MmcIoBlocks
00000000`3fffee58 00000000`eeb38a18 Shell!ShellCommandRunDblk+0x4f4
dblk blk1:
00000000`3fffec00 00000000`ea717068 NvmExpressDxe!ReadSectors
00000000`3fffec60 00000000`ea717158 NvmExpressDxe!NvmeRead+0x170
00000000`3fffeca8 00000000`ea973e10 NvmExpressDxe!NvmeBlockIoReadBlocks+0xe0
00000000`3fffeda8 00000000`00000000 DiskIoDxe!DiskIo2ReadWriteDisk+0x340 [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 945]
dblk blk4:
00000000`3fffeca8 00000000`ea973e10 MmcDxe!MmcIoBlocks
00000000`3fffeda8 00000000`00000000 DiskIoDxe!DiskIo2ReadWriteDisk+0x340 [/home/geduer/UEFI/edk2-yourland2024/edk2/MdePkg/Library/BaseDebugLibSerialPort/DebugLib.c @ 945]
张老师曾在课上介绍他的学习方法之一:下个好的断点,断下来观察一下调用栈,看下入参或变量,阅读下源代码,心中就清楚了,这样读活的代码比阅读静态代码或加DebugPrint高效很多。
个人感受也是确实如此。
停下来观察用到的断点:
bl
0 e 00000000`ea7094f0 e 1 0001 (0001) MmcDxe!MmcIoBlocks
1 e 00000000`ea715734 e 1 0001 (0001) NvmExpressDxe!ReadSectors
2 e 00000000`ea974110 e 1 0001 (0001) DiskIoDxe!DiskIoReadDisk
3 e 00000000`ea9680f8 e 1 0001 (0001) PartitionDxe!PartitionReadBlocks
4 e 00000000`ea709b4c e 1 0001 (0001) MmcDxe!MmcReadBlocks
5 e 00000000`e9cada80 e 1 0001 (0001) Shell!ShellCommandRunDblk
从MmcDxe!MmcIoBlocks 再往下深一层,看MmcHost到底是哪个,依然是用NDB下断点:
从list文件搜索到文件偏移位置:
自建Excel查找,从文件偏移算出断点地址:
断点命中,停下来观察:
MmcDxe!MmcIoBlocks+350:
ea709840 f9401723 ldr x3, [x25, #0x28]
u .
Read system version block failed 1
Read system version block failed 1
Opcode 0x38401401, DSCR.ERR=1, DSCR.EL=2
Opcode 0x38401401, DSCR.ERR=1, DSCR.EL=2
MmcDxe!MmcIoBlocks+350:
ea709840 f9401723 ldr x3, [x25, #0x28]
ea709844 528001a1 mov w1, #0xd
ea709848 2a1303e2 mov w2, w19
ea70984c aa1903e0 mov x0, x25
ea709850 72a00021 movk w1, #1, lsl #16
ea709854 d63f0060 blr x3
ea709858 b7fff1e0 tbnz x0, #0x3f, #0xea709694
ea70985c f9401b23 ldr x3, [x25, #0x30]
r $t0=x25
dt -b EFI_MMC_HOST_PROTOCOL $t0
+0x000 Revision : 0x10002
+0x008 IsCardPresent : (null)
+0x010 IsReadOnly : (null)
+0x018 BuildDevicePath : (null)
+0x020 NotifyState : (null)
+0x028 SendCommand : (null)
+0x030 ReceiveResponse : (null)
+0x038 ReadBlockData : (null)
+0x040 WriteBlockData : (null)
+0x048 SetIos : (null)
+0x050 IsMultiBlock : (null)
dqs $t0 l58/8
00000000`ea705020 00000000`00010002
00000000`ea705028 00000000`ea700018 SdhciHostDxe!MMCIsCardPresent
00000000`ea705030 00000000`ea701054 SdhciHostDxe!MMCIsReadOnly
00000000`ea705038 00000000`ea70316c SdhciHostDxe!MMCBuildDevicePath
00000000`ea705040 00000000`ea70266c SdhciHostDxe!MMCNotifyState
00000000`ea705048 00000000`ea701798 SdhciHostDxe!MMCSendCommand
00000000`ea705050 00000000`ea7015e4 SdhciHostDxe!MMCReceiveResponse
00000000`ea705058 00000000`ea702c18 SdhciHostDxe!MMCReadBlockData
00000000`ea705060 00000000`ea702ee0 SdhciHostDxe!MMCWriteBlockData
00000000`ea705068 00000000`ea702534 SdhciHostDxe!MMCSetIos
00000000`ea705070 00000000`ea700020 SdhciHostDxe!MMCIsMultiBlock
bl
0 e 00000000`ea7094f0 e 1 0001 (0001) MmcDxe!MmcIoBlocks
1 e 00000000`ea709840 e 1 0001 (0001) MmcDxe!MmcIoBlocks+350
r
x0=0000000000000000 x1=00000000ef19b618 x2=000000000e678000 x3=0000000000000000
x4=0000000000000200 x5=00000000eeb29118 x6=000000003ec2c950 x7=ffffffffffffffff
x8=0000000000000000 x9=0000000000000062 x10=0064006300320069 x11=0000000000000020
x12=0000000000000000 x13=ffffffff00000000 x14=006b0072006f0077 x15=00630061003b0031
x16=00000000efec3414 x17=0000000000000024 x18=0000000000000000 x19=0000000000010000
x20=0000000000000013 x21=00000000ef19fc48 x22=0000000000000200 x23=0000000000000000
x24=0000000000000001 x25=00000000ea705020 x26=00000000e9d68000 x27=00000000eeb29118
x28=00000000ef19fc18 fp=000000003fffed00 lr=00000000ea709828 sp=000000003fffeca0
pc=00000000ea709840 pstate=0000000000000209 - - - - - - - - - D - - - EL1
MmcDxe!MmcIoBlocks+350:
ea709840 f9401723 ldr x3, [x25, #0x28]
MmcHost->SendCommand 具体实现在 SdhciHostDxe!MMCSendCommand
如果光读源代码,要弄清楚具体此问题,目前已知靠搜索和猜,比较困难。或有高手可告知方法。
最后编辑:朱博渊 更新时间:2024-11-15 17:44