Monday, July 24, 2017

EfiPy_r0.1.4(24622) release

Release Note
This is personal project (author: https://www.facebook.com/wu.max.39).
EfiPy_r0.1.4(24622) is released today for sync for UDK 2017 rev 24622.

What is the next of EfiPy:

1. Easy memory operation in UEFI shell with Python. (Status: in progress)
Example:
1.1. MSR operation:
print "msr[0x1B][8]:    0x%016X" % msr[0x1B][8]
print "msr[0xFE]:       0x%016X" % msr[0xFE]
print "msr[0xFE][7:0]:  0x%016X" % msr[0xFE][7:0]
print "msr[0xFE][0x08]: 0x%016X" % msr[0xFE][0x08]
print "msr[0xFE][0x0A]: 0x%016X" % msr[0xFE][0x0A]

1.2 Memory operation:
print " Mem8[0x3FF39018]: 0x%02X"  % Mem8[0x3FF39018]
print "Mem16[0x3FF39018]: 0x%04X"  % Mem16[0x3FF39018]
print "Mem32[0x3FF39018]: 0x%08X"  % Mem32[0x3FF39018]
print "Mem64[0x3FF39018]: 0x%016X" % Mem64[0x3FF39018]

1.3 IO port
print "Io8[0x71][0:7] & 0x86:   0x%02X" % (Io8[0x71][0:7] & 0x86)
print "Io8[0x71] & 0x86:        0x%02X" % (Io8[0x71]      & 0x86)
print "Io8[0x71][0:7] | 0x86:   0x%02X" % (Io8[0x71][0:7] | 0x86)
print "Io8[0x71][7:0] | 0x86:   0x%02X" % (Io8[0x71][7:0] | 0x86)

1.4 CPUID
print "CPUID(0x01).Regs.EAX.Uint32: 0x%08X" % CPUID(0x01).Regs.EAX.Uint32
print "CPUID(0x01).EAX (Hex): 0x%08X" %       CPUID(0x01).EAX
print "CPUID(0x01).EAX (Bin): %s" %           bin(CPUID(0x01).EAX)
print "===> EAX.SteppingId: [Bits 3:0] Stepping ID"
print "CPUID(0x01).EAX[3:0]: 0x%08X" %        CPUID(0x01).EAX[3:0]
print "CPUID(0x01).EAX.SteppingId: 0x%03X" % CPUID(0x01).EAX.SteppingId

1.5 others...

2. Py2Efi (Status: in progress)
What is Py2Efi?
Capsule program running in EFI shell which packs python libraries into single .efi file.
This capsuled .efi file is a standalone EFI program which makes itself run in another platform without any other python programs.