Re: [edk2-devel] Proposing a new area of the edk2-test repository
Adding ResumeOK.efi tool under /edk2-test/test-tools/TestToolsPkg would be great. Should I propose this in the RFC and DEVEL mailing lists as a next step? Thanks, __e From: Samer El-Haj-Mahmoud Sent: Friday, July 9, 2021 1:12 PM To: Bret Barkelew ; devel@edk2.groups.io; Nelson, Eric ; G Edhaya Chandran ; gao...@byosoft.com.cn; Kinney, Michael D Subject: RE: Proposing a new area of the edk2-test repository Interesting, thanks for sharing Bret. Some of those tests seem to be x64 specific (SMM tests), and some can be more generic like MorLockTestApp Like I said earlier, I am not against adding test tools to edk2-test. That in fact is welcomed, especially if their usefulness in validating the solutions extend beyond specific implementations. What would a good tree structure look like to accommodate misc tools? Today we have /edk2-test/uefi-sct/SctPkg How about something like this? /edk2-test/test-tools/TestToolsPkg or /edk2-test/ TestToolsPkg The "ResumeOK" can be placed there Any other ideas? From: Bret Barkelew mailto:bret.barke...@microsoft.com>> Sent: Thursday, June 24, 2021 12:25 AM To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>; eric.nel...@intel.com<mailto:eric.nel...@intel.com>; Samer El-Haj-Mahmoud mailto:samer.el-haj-mahm...@arm.com>>; G Edhaya Chandran mailto:edhaya.chand...@arm.com>>; gao...@byosoft.com.cn<mailto:gao...@byosoft.com.cn>; Kinney, Michael D mailto:michael.d.kin...@intel.com>> Subject: RE: Proposing a new area of the edk2-test repository Fun fact! Mu also has a number of apps and things that we could work on moving to EDK2 if there were a suitable location. Right now, many of them are here: mu_plus/UefiTestingPkg at release/202102 * microsoft/mu_plus (github.com)<https://github.com/microsoft/mu_plus/tree/release/202102/UefiTestingPkg> - Bret From: Nelson, Eric via groups.io<mailto:eric.nelson=intel@groups.io> Sent: Wednesday, June 23, 2021 3:38 PM To: Samer El-Haj-Mahmoud<mailto:samer.el-haj-mahm...@arm.com>; G Edhaya Chandran<mailto:edhaya.chand...@arm.com>; gao...@byosoft.com.cn<mailto:gao...@byosoft.com.cn>; devel@edk2.groups.io<mailto:devel@edk2.groups.io>; Kinney, Michael D<mailto:michael.d.kin...@intel.com> Subject: [EXTERNAL] Re: [edk2-devel] Proposing a new area of the edk2-test repository I have created a few other internal apps that build under WinTestPkg, although ResumeOK.efi is the only one I have received permissions to release sources for at this time. And yes, they are primarily intended for validating Windows requirements. I had some issues with my apps, needing to use different libraries than MdeModulePkg, and found it easier to create my own package, and use the libs I want. __e From: Samer El-Haj-Mahmoud mailto:samer.el-haj-mahm...@arm.com>> Sent: Wednesday, June 23, 2021 1:56 PM To: Nelson, Eric mailto:eric.nel...@intel.com>>; G Edhaya Chandran mailto:edhaya.chand...@arm.com>>; gao...@byosoft.com.cn<mailto:gao...@byosoft.com.cn>; devel@edk2.groups.io<mailto:devel@edk2.groups.io> Cc: Samer El-Haj-Mahmoud mailto:samer.el-haj-mahm...@arm.com>> Subject: RE: Proposing a new area of the edk2-test repository +edk2 list I am not against adding additional test tools to edk2-test. Just feel like there is a need to organize and have a strategy, rather than just use edk2-test as a dumping group of miscellaneous tools. There is already a place for apps under https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Application<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Ftree%2Fmaster%2FMdeModulePkg%2FApplication=04%7C01%7Cbret.barkelew%40microsoft.com%7C5516a3b7e8534f55f6a408d936977266%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637600846834570307%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000=699Ij2Qa2eOSFkqafXn87lEEAnWuyeZnDqotOMRdOvY%3D=0> We also have a number of EDK2 misc applications that use edk2-libc in https://github.com/tianocore/edk2-libc/tree/master/AppPkg/Applications<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2-libc%2Ftree%2Fmaster%2FAppPkg%2FApplications=04%7C01%7Cbret.barkelew%40microsoft.com%7C5516a3b7e8534f55f6a408d936977266%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637600846834580263%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000=VhLVlbh3TrVy%2FxserD%2BF1VYnj3pROD91CyLQD1Rmjko%3D=0> A couple of questions: * Do you expect more apps from WinTestPkg to be contributed to TianoCore? And are they all around testing specific Windows requirements? If so, then having an edk2-test/WinTestPkg makes sense to me, as you will have a collection of useful testing app targeting specific area. * But what about other OSes? * If
Re: [edk2-devel] Proposing a new area of the edk2-test repository
I have created a few other internal apps that build under WinTestPkg, although ResumeOK.efi is the only one I have received permissions to release sources for at this time. And yes, they are primarily intended for validating Windows requirements. I had some issues with my apps, needing to use different libraries than MdeModulePkg, and found it easier to create my own package, and use the libs I want. __e From: Samer El-Haj-Mahmoud Sent: Wednesday, June 23, 2021 1:56 PM To: Nelson, Eric ; G Edhaya Chandran ; gao...@byosoft.com.cn; devel@edk2.groups.io Cc: Samer El-Haj-Mahmoud Subject: RE: Proposing a new area of the edk2-test repository +edk2 list I am not against adding additional test tools to edk2-test. Just feel like there is a need to organize and have a strategy, rather than just use edk2-test as a dumping group of miscellaneous tools. There is already a place for apps under https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Application We also have a number of EDK2 misc applications that use edk2-libc in https://github.com/tianocore/edk2-libc/tree/master/AppPkg/Applications A couple of questions: * Do you expect more apps from WinTestPkg to be contributed to TianoCore? And are they all around testing specific Windows requirements? If so, then having an edk2-test/WinTestPkg makes sense to me, as you will have a collection of useful testing app targeting specific area. * But what about other OSes? * If this is a one-off test app and other WinTestPkg apps are not going to be contributed, then does it make sense to put this under MdeModulePkg/Application ? From: Nelson, Eric mailto:eric.nel...@intel.com>> Sent: Wednesday, June 23, 2021 3:10 PM To: G Edhaya Chandran mailto:edhaya.chand...@arm.com>>; gao...@byosoft.com.cn<mailto:gao...@byosoft.com.cn> Cc: Samer El-Haj-Mahmoud mailto:samer.el-haj-mahm...@arm.com>> Subject: RE: Proposing a new area of the edk2-test repository Hi Edhay, Do you have any more questions? What do you think of creating another directory in edk2-test, for other test apps, in addition to uefi-sct, such as ResumeOK.efi? Thanks, __e From: Nelson, Eric Sent: Tuesday, June 15, 2021 12:00 PM To: G Edhaya Chandran mailto:edhaya.chand...@arm.com>>; gao...@byosoft.com.cn<mailto:gao...@byosoft.com.cn> Cc: Samer El-Haj-Mahmoud mailto:samer.el-haj-mahm...@arm.com>> Subject: RE: Proposing a new area of the edk2-test repository Hi Edhay, ResumeOK.efi is a tool I wrote from the HelloWorld example, that validates Windows resume from S4 requirements, specifically that the memory-map run-time memory regions don't change, and secondly that PCI devices don't disappear from the system, both conditions would cause Windows to fail to resume from S4. You install the tool to the root of the ESP, and set it as the default/top entry in the boot manager, and launch it. (Disable Secure Boot.) It runs warm, cold, and 60s ACPI RTC wake cycles, infinitely looking for errors. ResumeOK.efi writes a file to the root of the ESP, ResumeOK.map, which contains the ACPI Facs->HardwareSignature, a list of the PCI devices in the system, and a copy of its memory map, from the first time it runs. During each test pass, it runs a barrage of tests: 1. Free memory test - does the available memory match the memory map saved in ResumeOK.map 2. HW signature check - does the system still have the same HW signature as saved in the ResumeOK.map 3. Allocation test - all the available memory is allocated, and then the memory map is checked if the run-time regions match ResumeOK.map. If any of the tests fail, then the new/missing PCI devices are listed (HW signature fail case), or the memory descriptor that changed, it's location, and current and previous type and size. I have received permission from Intel to *try* to release the source under Edk2-test. I've included a 64-bit binary, if you want to give it a test drive. Make sure Secure Boot is off. Also, it is required to manually delete any ResumeOK.map on the ESP, before beginning a new test pass. The tool also supports a host of EFI Shell commands: Resumeok.efi MEMMAP - displays Windows coalesced view of the current memory map ResumeOK.efi ROKMAP - displays Windows coalesced view of the memory saved in ResumeOK.map ResumeOK.efi RTDATA - displays an analysis of RT_Data pool usage ResumeOK.efi NORESET - run one test pass, but suppress automatic SX cycling These are the files that build it: Edk2\WinTestPkg\Application Edk2\WinTestPkg\WinTestPkg.dec Edk2\WinTestPkg\WinTestPkg.dsc Edk2\WinTestPkg\Application\ResumeOK Edk2\WinTestPkg\Application\ResumeOK\AcpiTbl.c Edk2\WinTestPkg\Application\ResumeOK\AcpiTbl.h Edk2\WinTestPkg\Application\ResumeOK\AppSupport.c Edk2\WinTestPkg\Application\ResumeOK\BitMap.c Edk2\WinTestPkg\Application\ResumeOK\BitMap.h Edk2\WinTestPkg\Application\ResumeOK\EfiFileLib.c Edk2\WinTestPkg\Application\Resu