aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2014-11-05luv: Disable early boot graphicsMatt Fleming
Things don't work across the board right now, anyhow. People have even experienced hangs, and there's no way we can diagnose those hangs without displaying the test log on the screen. It's not ideal, and going forward we definitely need to satisfy both requirements (easy debugging and pretty graphics), but if need to pick one or the other, easy debugging wins every time. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-11-05fwts: Fix uefirttime failure due to using get_user() on kernel pointerMatt Fleming
We've no need to turn a data structure on the stack into a pointer and use get_user() on a kernel address, and in fact, doing so is likely to return -EFAULT, because the argument isn't a valid user address. This bug was introduced in commit c2268a9b23a9 ("fwts: Copied the structure from userland locally in kernel space"), and causes a uefirttime failure. Cc: Pradeep Gaddam <pradeep.r.gaddam@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-11-05fwts: Backport securebootcert fix from upstreamMatt Fleming
A recent fix to change a securebootcert failure into an info message was merged into upstream fwts. We're hitting this false positive on a number of machines. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-11-05fwts: Backport upstream microcode test fixMatt Fleming
This patch was merged in V14.07.00 of fwts but we're currently on V14.03.01. We're seeing microcode test failures on a number of Haswell machines, which shouldn't really be failures. This patch from upstream fixes that. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-11-05bits: update to 1090Ricardo Neri
1090 is the lastest release of the BIOS Implementation Test Suite (BITS). These are the changes as per BITS relase notes: *Update to ACPICA version 20140325 *Backport GRUB2 commit 4e42521d8c9232b6ee9eac7d8b4945a7479de781 to preserve 16-byte alignment of the stack on EFI calls * python: Support the csv module Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-11-05bits: use PV variable in configure pathRicardo Neri
Rather than hardcoding the package version, utilize the PV variable to define the configure path. This will prevent build issues when moving to a newer version. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-09-30luv-test-manager: Be more verbose on what do when tests are completeRicardo Neri
LuvOS is intended to be an automated testing tool. Thus, it does really require much interaction from the user other than inserting the bootable media, and removing it when tests are complete. Thus, we inform better to the user what to do when the tests are complete. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-09-30sbsigntool: Add missing patch to disable man pages generationRicardo Neri
The tool cannot be built without this patch. We don't really need the man pages in this project. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-09-30recipes-devtools: Add sbsigntool recipeMatt Fleming
sbsigntool is a useful utility for cryptographically signing binaries for use in UEFI systems. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-09-30luv-efi.bbclass: A new class for installing boot filesMatt Fleming
For luvOS we need to install more than one boot loader, plus a variety of files to do boot time tests. Roll our own class which gives us much more control over the installation process and creation of the grub config. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-09-30luv-live-image: Include boot loader splash screenMatt Fleming
Provide a luv splash screen for grub's use, which informs the user that we're currently running boot tests. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-09-30luv-live-image: Add bits as a dependencyMatt Fleming
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-09-30bits: Do not direct output to the screenMatt Fleming
Doing so will garble any image displayed by the main boot loader. We're directly patching the python code as shipped in the bits release zip file. This means that we need to regenerate the .pyc files, which are required for bits to execute properly. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-09-30bits: Update checksums for bits-1084Matt Fleming
Curiously, the checksums have become invalid for bits-1084.zip. Update them. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-09-30bits: Return control to bootloader on completionMatt Fleming
When we've finished running the bits tests we need to return control to the luvOS bootloader, so that we can run further tests, like booting a Linux kernel. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-09-30bits: Add header to config fileMatt Fleming
Without the header the bits runtime complains like so, Traceback (most recent call last): File "<string>", line 1, in <module> File "/boot/python/init.py", line 69, in init bitsconfig.init() File "/boot/python/bitsconfig.py", line 42, in init config.read("/boot/bits-cfg.txt") File "/boot/python/lib/ConfigParser.py", line 305, in read self._read(fp, filename) File "/boot/python/lib/ConfigParser.py", line 512, in _read raise MissingSectionHeaderError(fpname, lineno, line) ConfigParser.MissingSectionHeaderError: File contains no section headers. file: /boot/bits-cfg.txt, line: 3 'batch = test acpi smbios\n' Include a [bits] header and make sure we actually install the config file. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-09-30bits: Install tests and parserMatt Fleming
bits comes with its own version of the grub bootloader, with custom modules installed as part of the grub image, for example a python module to interpret the python tests. We must install this boot loader alongside our default one, along with the necessary parsers and test runners to extract the results of the bits tests from userland. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-09-30grub-efi-native: Enable graphics and chainloader modulesMatt Fleming
In order to display images from the boot menu we're going to need to load gfxmenu, gfxterm and other grub modules. Turn them on in our luvOS-specific bbappend. Also include the chainloader module which is how we're going to execute the bits tests. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-08-22core-image-efi-initramfs: Select kernel-efi-warningsRicardo Neri
Make sure kernel-efi-warnings is included in the ramfs filesystem. kerne-efi-warnings is a simple script that analyzes the kernel messages to search for warnings that the kernel might issue if/when it finds potential bugs in the UEFI firmware. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-08-22kernel-efi-warnings: Add a bitbake recipeRicardo Neri
Add a recipe to install kernel-efi-warnings. As it inherits from luv-test, it also takes care of installing the luv-parser. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-08-22kernel-efi-warnings: Add a luv-parserRicardo Neri
In order for the LuvOS test manager to take the rest results of kernel-efi-warnings, we need a parser that presents the results in a format that it can understand. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>sdfsdf
2014-08-22kernel-efi-warnings: Introduce a tool to analyze EFI kernel logsRicardo Neri
The Linux kernel provides lots of information about its errands with the UEFI firmware at boot time. However, such information is buried inside the dmesg buffer. Automated test resources, such as LuvOS, need automated tools to find, parse and format such information. kernel-efi-warnings rely on the dmesg buffer to find specific expressions. The absence or presence of such expressions are treated as a test pass/fail. For now, the scripts only looks for the warnings that the kernel issues if it detects illegal accesses to the EFI_BOOT_SERVICES_* memory regions. The script is intended to grow as mroe kernel tests become available. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-08-22linux-yocto-efi-test: Enable CONFIG_EFI_BOOT_SERVICES_WARNMatt Fleming
It's very useful to know if the firmware makes illegal accesses to the EFI boot services regions. Enable CONFIG_EFI_BOOT_SERVICES_WARN which prints a warning if such an access occurs. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-08-22linux-yocto-efi-test: Update defconfig for v3.15Matt Fleming
Using the default values. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-08-22fwts: Copied the structure from userland locally in kernel spacePradeep Gaddam
When we have structures that contain pointers, we cannot just do double dereference on it as in struct->pointer->value. This will end up as a Page Fault. To fix this problem, I changed efi_runtime kernel module to first fetch the entire structure into a local copy on stack and use that to reference the other data members of the struct. Signed-off-by: Pradeep Gaddam <Pradeep.r.Gaddam@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-08-06meta-luv: ovmf: bump SVN revision for OVMF to 15699Max Eliaser
This SVN revision has a fix for build failures under GCC 4.9 for x86_64 targets. This will ease eventual upstreaming of the OVMF recipe to Yocto master, which uses GCC 4.9. The bug is described on the EDK2 mailing list here: http://www.mail-archive.com/edk2-devel@lists.sourceforge.net/msg07451.html GCC 4.9 changed an alignment from 32 bytes to 64 bytes when building for a 64- bit target, whereas OVMF was built with the expectation that the alignment would be 32 bytes. This mismatch caused a build failure that looked like this: GenFw: ERROR 3000: Invalid Unsupported section alignment. SVN revision 15699 of EDK2 includes a fix for this issue by the upstream EDK2 developers. When compiling with GCC 4.9 for a 64-bit target, the build OVMF build configuration now anticipates a 64-byte alignment. Signed-off-by: Max Eliaser <max.eliaser@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-08-06meta-luv: ovmf: generate 32-bit firmware images when appropriateMax Eliaser
This fixes an issue where the OVMF recipe always built an x86_64 firmware regardless of the target architecture or target machine. This issue manifested itself when qemu-system-i386 was used on an OVMF firmware image-- QEMU would exit immediately rather than proceeding with the boot process. The x86_64 firmware was unaffected by this issue. Signed-off-by: Max Eliaser <max.eliaser@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-08-06meta-luv: ovmf: only permit x86 and x86_64 target architectures for OVMFMax Eliaser
While EDK2 has many components that support ARM, OVMF is not one of them. This should be reflected in the BitBake recipe for OVMF. This is accomplished by adding a COMPATIBLE_HOST annotation to ovmf_git.bb. Signed-off-by: Max Eliaser <max.eliaser@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-07-17grub: Enable efinet and tftp module for PXE bootPradeep Gaddam
In order to enable netbooting and transfer of required files using tftp, efinet and tftp modules are required. Signed-off-by: Pradeep Gaddam <Pradeep.r.gaddam@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-07-17qemu: Use non-native package of ovmfMatt Fleming
Technically the bios used by qemu isn't a native package, so we shouldn't depend on it. Instead require the regular version of ovmf. Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-07-17ovmf: Pass gcc version to build.shMatt Fleming
The build.sh build script in OvmfPkg allows us to optionally specify a toolchain identifer, which we're currently not doing. By not passing a toolchain ID directly build.sh invokes the build machine's compiler to figure it out. The important point in all of this is that the version identifier is used in the ovmf build path, which means that if build machine's compiler is upgraded/downgraded we can end up with multiple ovmf build directories. Pass the target's gcc version to build.sh instead. Reported-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-07-17ovmf: Explicitly enforce toolchain variablesMatt Fleming
edk2 does not lend itself to cross-compiling in any form. Instead of trying to play nice and override ${CC}, etc via the usual methods, just write our toolchain variables directly in the necessary Makefiles. The upside is that we get to drop a couple of patches we were carrying. The downside is that this is a terrible hack and will likely break when we move forward to newer edk2 versions. Until such time that BaseTools supports proper configuration of a build toolchain, this is the best we can do. Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-07-17luv-crash-handler: Save dmesg buffer to non-volatile mediaRicardo Neri
The dmesg buffer can provide valuable information to determine the causes of a kernel crash. When the systems boots to runlevel 3, the luv-crash-handler uses vmcore-dmesg to recover the dmesg buffer from the vmcore dump and saves it to the LuvOS test results partition. This information can then be sent to the developers to investigate further on the causes of the crash. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-07-17luv-test-manager: Remove waiting time for removable mediaRicardo Neri
The waiting is done already by the luv-crash-handler. Thus, there is not need to repeat the waiting here. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-07-17core-image-efi-initramfs: Explicitly install kexec and vmcore-dmesgRicardo Neri
Change commit 0c91196fcbb953393b3e2f5623b1edc5b40aa445 Author: Andrea Adami <andrea.adami@gmail.com> Date: Mon Jan 9 23:46:13 2012 +0100 explicitly splits the packages for kexec and kdump. Thus, rather than generically install kexec-tools. State explicitly which tools need to be installed. kexec is needed to reboot a Linux kernel from Linux. vmcore-dmesg is needed to extract the dmesg buffer from the /proc/vmcore dump file. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-07-17kexec-tools: Remove unneeded patchesRicardo Neri
All these patches have been merged into the most recent version of kexec-tools. Thus, we do not need them anymore. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-07-09recipes-bsp: Add biosbits recipeRakesh Seethamsetty
This recipe will help to run the bios tests suites, supported by biosbits in auto mode, the recipe also contains a configuration file which allows the tests to run in automated mode. Signed-off-by: Rakesh Seethamsetty <rakeshsv@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-06-26Revert "core-image-efi-initramfs: Add chipsec test"Matt Fleming
This reverts commit fcdb6a8c43159704ba16fe1c56a045fa53053180. The chipsec tests cause one of my test machines to lockup. It's highly likely that other people will experience similar issues. The fact that the tests cause lockup isn't the biggest problem, it's that there's absolutely zero diagnostic information provided to the user, so they've no data to report other than "my machine freezes". Disable the tests for now until we can provide useful ways of diagnosing lockups. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-06-26initscritpts: Add a crash handlerRicardo Neri
LuvOS is used to validate UEFI firmware implementations. Such implemen- tations may be at different levels of maturity. Thus, they could pose stability threats to the Linx kernel. It could also be possibly that the kernel itself may have an undiscovered bug. The crash handler aims to handle such situations in a gracefully manner. During a regular boot, at runlevel 5, the handler uses kexec to prepare the system for an eventual crash so that the system can be rebooted to a usable state. In such recovery boot, memory dumps can be made to perform analyses on what caused the crash. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-06-26linux-yocto-efi-test: Enable kernel debug infoRicardo Neri
In order to provide more useful information in case of a kernel crash, compile the kernel with debug info. Even though the kernel proper will increase it size significantly (~7-fold), the debug information will be valuable for analysis. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-06-26luv-live-image: Append kernel parameter for handling crashesRicardo Neri
Add the crashkernel parameter to indicate the kernel to reserve memory for the kernel and initrd images that will be used in the event of a crash. Currently our vmlinux binary created from piggy.o is ~80MB and the initrd image is ~30MB. This could be accomodated on 128MB. Space is doubled to allow for future growth. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-06-26luv-live-image: Set the volume-id for the boot vfat partitionRicardo Neri
In order to uniquely identify the partition at runtime, specify a known volume-id. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
2014-06-26core-image-efi-initramfs: Add chipsec testMatt Fleming
Include the chipsec test suite in this image. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-06-26luv-test: Add auto-generated test files to FILES_${PN}Matt Fleming
Instead of managing our own luv package just add the auto-generated files to FILES_${PN} to avoid QA warnings. In the future we could do our own luv package, but let's keep thing simple for now. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-06-26chipsec: Enable luv test automatic executionMatt Fleming
Integrate chipsec into the test manager infrastructure and add a parser to capture test results and write them to stdout in the luv-test-manager compatible format. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-06-26chipsec: Add recipe for CHIPSEC v1.1.0Matt Fleming
CHIPSEC is a platform security assessment framework for analyzing the security of PC platforms. It includes a number of tests and also provides forensic capabilities for firmware. Of particular use are the UEFI secure boot variable tests and BIOS flash write-protect tests. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-06-26ovmf: Add iasl as a native dependencyMatt Fleming
Now that we've got a recipe for iasl add it as an explicit dependency for ovmf. Previously the host system was required to have the iasl package installed, which isn't very clean as our build should be completely self-contained and not using the host's packages. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-06-26iasl: New recipe for ACPICA toolchainMatt Fleming
Import iasl recipe from the meta-virtualization layer. This recipe is required for ovmf, which is currently relying on the host's installed iasl package. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-06-26recipes-bsp: Add efilinux recipeMatt Fleming
efilinux is a minimal reference UEFI bootloader. It doesn't include graphics or a complex configuration syntax, just the bear minimum necessary to boot a Linux kernel. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2014-06-26luv-test-manager: Save results to non-volatile mediaRicardo Neri
Add functionality to save the test results to non-volatile media. The non-volatile media is expected to be a disk identified by its UUID. The disk is mounted using the UUID to avoid writing inadvertently writing to any other disk present in the system. Clearly, this implementation requires the presence of a disk with the UUID specified by the script. Thus, it is required to utilize such UUID when creating the filesystem. Also, disks in some systems take a while to be ready for mount and may not be ready when the LUV test manager runs. Thus, a delay of 5 seconds is introduced in order to increase the likelihood of finding the intended disk. Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>