Monday, February 19, 2018

EfiPy_r0.1.12(24622) release

EfiPy_r0.1.12(24622) 2018/02/19:
  1. EfiPyLib: Move ACPI library to EfiPyLib/Acpi
     EfiPyLib/EfiPyAcpiBase.py ==> EfiPyLib/Acpi/EfiPyAcpiBase.py
     EfiPyLib/EfiPyAcpiMcfg.py ==> EfiPyLib/Acpi/AcpiMcfg.py
  2. EfiPyLib: Complete these ACPI tables
     EfiPyLib/Acpi/AcpiRsdt.py
     EfiPyLib/Acpi/AcpiXsdt.py
     EfiPyLib/Acpi/AcpiFacp.py
     EfiPyLib/Acpi/AcpiMcfg.py
     EfiPyLib/Acpi/AcpiFacs.py
     EfiPyLib/Acpi/AcpiApic.py
  3. EfiPyLib: New ACPI utility functions in EfiPyAcpiLib.py
               AcpiDump(Signature), AcpiCheckSum(Signature)

Sunday, February 11, 2018

Build Python .py file to standalone application in UEFI

It is included after EfiPy_r0.1.9(24622). And its sample is at:
1. Source code: Host\AppPkg\py2efi\Samples
2. Target folder: fsx:\EFI\Tools\Samples\py2efi
It is called Py2Efi and is built on UEFI shell.

Sample in this document:
   fsx:\EFI\Tools\Samples\py2efi\CpuId\
   included files: CpuIds.py and Setup.py

Build CpuIds.py to CpuIds.efi file
  fsx:\EFI\Tools\Samples\py2efi\CpuId\>python Setup.py py2efi

Result:
  CpuIds.efi is produced at fsx:\EFI\Tools\Samples\py2efi\CpuId\dist\CpuIds.efi

Note:
  Py2Efi is from Py2EXE
https://pypi.python.org/pypi/py2exe/
http://www.py2exe.org/

Saturday, February 10, 2018

EfiPy_r0.1.11(24622) release

EfiPy_r0.1.11(24622) 2018/02/10:
  1. Py2Efi: Add _LoLeOp Module into Py2EfiX64.efi
EfiPy_r0.1.10(24622) 2018/02/09:
  1. EfiPy: code refine
  2. LoLeOp: Add _LoLeOp modules in python.efi
  3. LoLeOp: Change Mem, Io, cpuid and msr to CPython level access.
  4. LoLeOp: Remove unused py files in LoLeOp library
  5. CorePy: Move old LoLeOp basic library to CorePy/Samples as CorePy sample code in EfiPy
  6. CorePy: Add PciScan.py as CorePy sample program in EfiPy
  7. EfiPy: PCI, Change C MACRO to Python lambda function
  8. EfiPyLib: Add EfiPyAcpiBase module (ACPI RSDP, XSDT, RSDT)
  9. EfiPyLib: Add EfiPyAcpiMcfg module (ACPI MCFG)
  10. EfiPy: Correct EFI_PCI_ADDRESS function in PciRootBridgeIo.py
  11. LoLeOp: Change index calculation in MemSet, MemGet in BitOp.py
  12. EfiPyLib: Add Pci library(PciEmulate.py, PciStructure.py, PciIo.py) and its Sample(PciSample.py)
  13. EfiPyLib::EfiPyHexDump.py: Fix address error of hex dump
  14. LoLeOp::BitOp.py: Using deepcopy in _MemArray::__init__
  15. LoLeOp::CmosSample.py: DictKey update
  16. LoLeOp::BitOp.py, rUnionOp.py: Add CellBase in rUnionOp class

Note:
  1. LoLeOP: Its low level interface is moved to CPython. Original CorePy level interface is moved to as CoprePy sample. This purpose is to speed up program initial performance.
  2. As note 1, Python.efi and Py2EfiX64.efi have to be re-built. Pre-built efi files are included in this release.

Saturday, February 3, 2018

EfiPy_r0.1.9(24622) release

EfiPy_r0.1.9(24622) 2018/02/04:
  1. LoLeOp: Add recursive bit operation sample code
  2. LoLeOp: Remove cache in rUnionOp
  3. LoLeOp: Add EfiCpuId library and CpuIds.py utilitie
  4. EfiPy: Add sample program for analyze run time Python.efi PE32 structure.
  5. PeFile: Add pefile library into EfiPy environment
  6. Py2Efi: New module Py2Efi and its samples
  7. EfiPy: Correct MdePkg/IndustryStandard/PeImage.py
  8. Rebuild pyc for runtime performance