efi shell 命令和寄存器 R/W

efi shell command and register R/W

我得到了一个efi mm command的基本问题。 我需要控制一个 SOC 内部的控制器 (MAC),并让它生成到外部 PHY 芯片的 MDIO 流量,以读取其 ID。 指令告诉我在 efi shell

下执行以下操作

Shell> mm xxxxxxx yyyyyyy -w 4 -MEM -n

Shell> mm xxxxxxx -w 4 -MEM -n

我想知道 mm 命令的作用是什么? 看起来它写入 xxxxxx 寄存器 yyyyyy 数据,然后再 "mm" 这个寄存器? 不知道为什么。

谁能帮我解决这个问题?

mm命令在UEFI Shell Specification:

中解释

mm address [value] [-w 1|2|4|8] [-MEM | -PMEM | -MMIO | -IO | -PCI | -PCIE] [- n]

描述表明 "If value is specified, which should be typed in hex format, this command will write this value to specified address. Otherwise when this command is executed, the current contents of address are displayed."。

因此您的第一个命令将 32 位值 yyyyyyy 写入地址 xxxxxxx,第二个命令从地址 xxxxxxx 读取 32 位值 - 大概是为了验证写入生效。

样本startup.nsh



    #Sample startup.nsh
    
    @echo -off
    # Clear screen
    cls
    
    # Print date and time
    date
    time
    
    # Set special register of the CPU (Intel Denverton C3758R)
    # EFI Shell style is "mm fe000018 29C0202C -w 4 -MEM -n"
    # (more detail usage, Use "help mm")
    # but not implement in startup.nsh with error "Invalid data width"
    
    # No need option "-n" for Non-interactive write
    mm fe000018 4 :29C0002C
    
    # Non-interactive read
    mm fe000018 4 -n
    mm e00fa0a4 4 -n
    
    # System shutdown
    reset -s