Notes below refer to quoted item just above. > Device mapping table > blk0 :Floppy - Alias (null) > PciRoot(0x0)/Pci(0x1,0x0)/Floppy(0x0) > blk1 :Floppy - Alias (null) > PciRoot(0x0)/Pci(0x1,0x0)/Floppy(0x1) > blk2 :BlockDevice - Alias (null) > PciRoot(0x0)/Pci(0x1,0x1)/Ata(Secondary,Master,0x0) > > > Press ESC in 5 seconds to skip startup.nsh, any other key to continue. > Press ESC in 4 seconds to skip startup.nsh, any other key to continue. EFI shell started > Shell> mem fffe0 32 > Memory Address 00000000000FFFE0 20 Bytes > 000FFFE0: EB C3 90 90 90 90 90 90-00 00 00 00 56 54 46 00 *............VTF.* > 000FFFF0: 90 90 EB AC 90 90 90 90-90 90 90 90 90 90 90 90 *................* Dump firmware range in legacy F000 segment > Shell> mem ffffffe0 32 > Memory Address 00000000FFFFFFE0 20 Bytes > FFFFFFE0: EB C3 90 90 90 90 90 90-00 00 00 00 56 54 46 00 *............VTF.* > FFFFFFF0: 90 90 EB AC 90 90 90 90-90 90 90 90 90 90 90 90 *................* Dump firmware range at top of 4GB. > Shell> mem fff00000 32 > Memory Address 00000000FFF00000 20 Bytes > FFF00000: 01 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 *................* > FFF00010: 78 E5 8C 8C 3D 8A 1C 4F-99 35 89 61 85 C3 2D D3 *x...=..O.5.a..-.* Dump start of OVMF flash image. The first 16 bytes are reserved, and therefore we can program them without a negative side effect. Notice I have previously programmed the first byte from 00 to 01. > Shell> mm -mmio -w 1 -n fff00000 > MMIO 0x00000000FFF00000 : 0x01 Read the data in the first byte of the rom. > Shell> mm -mmio -w 1 -n fff00000 70 Request to read the pflash_cfi01 status register. (0x70 is the command written to address 0xfff00000.) > Shell> mm -mmio -w 1 -n fff00000 > MMIO 0x00000000FFF00000 : 0x00 Read the status register by reading address 0xfff00000. > Shell> mm -mmio -w 1 -n fff00000 ff Put the pflash_cfi01 back into read-data mode. (0xff is the command for putting the flash into read mode.) > Shell> mm -mmio -w 1 -n fff00000 > MMIO 0x00000000FFF00000 : 0x01 Notice we read the proper data again... 0x01. > Shell> mm -mmio -w 1 -n fff00001 > MMIO 0x00000000FFF00001 : 0x00 Now read the data at 0xfff00001. It is 0x00. > Shell> mm -mmio -w 1 -n fff00001 10 Put the pflash_cfi01 into programming mode. > Shell> mm -mmio -w 1 -n fff00001 ab Program the data at 0xfff00001. Data is 0xab. > Shell> mm -mmio -w 1 -n fff00001 ff Put the pflash_cfi01 back into read-data mode. > Shell> mm -mmio -w 1 -n fff00001 > MMIO 0x00000000FFF00001 : 0xAB 0xab was programmed into 0xfff00001. > Shell> mm -mmio -w 1 -n fff00001 70 Request to read the status register. > Shell> mm -mmio -w 1 -n fff00001 > MMIO 0x00000000FFF00001 : 0x80 bit7 (0x80) indicates device is ready. > Shell> mm -mmio -w 1 -n fff00001 ff Back to read-data mode again. > Shell> mm -mmio -w 1 -n fff00001 > MMIO 0x00000000FFF00001 : 0xAB The proper data is still returned. > Shell> reset -s Shutdown the system...