概述
uefi shell 下显示或修改MEM/MMIO/IO/PCI/PCIE地址空间。
使用方法
mm address [value] [-w 1|2|4|8] [-MEM | -PMEM | -MMIO | -IO | -PCI | -PCIE] [-n]
命令选项
address
十六进制格式的起始地址。
Value 要以十六进制格式写入的值。如果没有指定,则显示当前值。
-MEM 内存地址类型。
-PMEM 持久内存地址类型。
-MMIO 内存映射的IO地址类型。
-IO 输入输出地址类型
-PCI PCI配置空间。地址格式为ssssbbddffrr,其中ssss =段,bb =总线,dd =设备,ff =函数,rr =寄存器。
-PCIE PCI Express配置空间。地址格式为ssssbbddffrrr,其中ssss =段,bb =总线,dd =设备,ff =函数,rrr =寄存器。
- w 访问宽度,以字节为单位。1 =1字节,2 = 2字节,4 = 4字节,8 = 8字节。如果没有指定,则假设1。
- n 非交互式模式。
描述
该命令允许用户显示或修改I/O寄存器、内存内容或PCI配置空间。用户可以使用address参数和-w选项指定开始地址和希望执行的访问大小。地址应该用十六进制格式输入。
-MEM访问系统内存
-PMEM通过持久内存访问(仅在修改持久内存时需要)
-MMIO访问设备内存,
-IO访问设备I/O端口,
-PCI访问PCI配置空间
-PCIE访问PCIE配置空间
如果没有指定-MEM、-PMEM、-MMIO、-IO、-PCI和-PCIE,则假设-MEM。使用-PMEM表示正在修改持久内存;因此固件可以执行正确的操作来刷新或存储新数据到硬件。
如果指定了值(应该以十六进制格式输入),该命令将把该值写入指定的地址。否则,当执行此命令时,将显示address的当前内容。如果指定值,则假设-n。
如果没有指定-n,命令将以交互模式运行,用户可以通过输入十六进制值来修改内容。当用户按下“ENTER”键时,将显示下一个地址。这将一直持续到用户输入“q”。
例子
显示或修改内存:
Address 0x1b07288, default width=1 byte:
fs0:\> mm 1b07288
MEM 0x0000000001B07288 : 0x6D >
MEM 0x0000000001B07289 : 0x6D >
MEM 0x0000000001B0728A : 0x61 > 80
MEM 0x0000000001B0728B : 0x70 > q
fs0:\> mm 1b07288
MEM 0x0000000001B07288 : 0x6D >
MEM 0x0000000001B07289 : 0x6D >
MEM 0x0000000001B0728A : 0x80 > *Modified
MEM 0x0000000001B0728B : 0x70 > q
修改内存:地址0x1b07288,宽度= 2字节:
Shell> mm 1b07288 -w 2
MEM 0x0000000001B07288 : 0x6D6D >
MEM 0x0000000001B0728A : 0x7061 > 55aa
MEM 0x0000000001B0728C : 0x358C > q
Shell> mm 1b07288 -w 2
MEM 0x0000000001B07288 : 0x6D6D >
MEM 0x0000000001B0728A : 0x55AA > *Modified
MEM 0x0000000001B0728C : 0x358C > q
要显示IO空间:地址80h,宽度= 4字节:
Shell> mm 80 -w 4 -IO
IO 0x0000000000000080 : 0x000000FE >
IO 0x0000000000000084 : 0x00FF5E6D > q
使用非交互模式修改IO空间:
Shell> mm 80 52 -w 1 -IO
Shell> mm 80 -w 1 -IO
IO 0x0000000000000080 : 0x52 > FE *Modified
IO 0x0000000000000081 : 0xFF >
IO 0x0000000000000082 : 0x00 >
IO 0x0000000000000083 : 0x00 >
IO 0x0000000000000084 : 0x6D >
IO 0x0000000000000085 : 0x5E >
IO 0x0000000000000086 : 0xFF >
IO 0x0000000000000087 : 0x00 > q
要显示PCI配置空间,ssss=0000, bb=00, dd=00, ff=00, rr=00:
Shell> mm 000000000000 -PCI
PCI 0x0000000000000000 : 0x86 >
PCI 0x0000000000000001 : 0x80 >
PCI 0x0000000000000002 : 0x30 >
PCI 0x0000000000000003 : 0x11 >
PCI 0x0000000000000004 : 0x06 >
PCI 0x0000000000000005 : 0x00 > q
这些内容也可以通过“PCI 00 00 00”显示。
要显示PCIE配置空间,ssss=0000, bb=06, dd=00, ff=00, rrr=000:
Shell> mm 0000060000000 -PCIE
PCIE 0x0000000060000000 : 0xAB >
PCIE 0x0000000060000001 : 0x11 >
PCIE 0x0000000060000002 : 0x61 >
PCIE 0x0000000060000003 : 0x43 >
PCIE 0x0000000060000004 : 0x00 > q
修改持久内存,并向固件提示需要刷新/存储新数据到HW:
Shell> mm 1b07288 80 -PMEM
发表评论