aboutsummaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2024-01-24parisc: Add parisc-qemu-install Makefile targetHelge Deller1-0/+5
copies the 32- and 64-bit firmware into the qemu pc-bios directory. Signed-off-by: Helge Deller <deller@gmx.de>
2024-01-18parisc: Enable build of 64-bit firmware code to out-64/hppa-firmware64.imgHelge Deller1-1/+1
Signed-off-by: Helge Deller <deller@gmx.de>
2024-01-04parisc: Prepare for builing a 64-bit firmwareHelge Deller1-1/+2
Signed-off-by: Helge Deller <deller@gmx.de>
2022-01-12parisc: Warn if CONFIG_PARISC is not enabledHelge Deller1-0/+3
Signed-off-by: Helge Deller <deller@gmx.de>
2021-09-24parisc: Add PA-RISC related codeHelge Deller1-1/+8
This patch adds the various drivers for PA-RISC. To build the parisc firmware enable CONFIG_PARISC and run "make parisc". Signed-off-by: Helge Deller <deller@gmx.de>
2021-06-30Add implementations for sha256, sha384, and sha512Stefan Berger1-1/+1
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
2020-07-24ldnoexec: Add script to remove ET_EXEC flag from intermediate build objectsKevin O'Connor1-4/+5
Add a script to remove the ET_EXEC flag from the 16bit and "32bit segmented" intermediate objects. This avoids build failures with some linkers that will not allow linking these objects again. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2020-05-18rewrap Makefile lines.Gerd Hoffmann1-15/+17
Rewrap SRCBOTH and SRC32FLAT variables in Makefile to keep line length below 80 chars. No functional change. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2020-05-15acpi: add dsdt parserGerd Hoffmann1-1/+1
Create a list of devices found in the DSDT table. Add helper functions to find devices, walk the list and figure device informations like mmio ranges and irqs. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2020-05-15virtio-mmio: device probing and initialization.Gerd Hoffmann1-1/+1
Add virtio_mmio_setup_one() to setup virtio mmio devices. Add vp_init_mmio() to initialize device struct. Because virtio-pci and virtio-mmio are quite simliar we reuse the infrastructure we already have for virtio-pci and just setup struct vp_cap for virtio-mmio. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2020-05-14build: use -fcf-protection=none when availableChristian Ehrhardt1-0/+1
Some hardened gcc v9 compilers (such as the one in Ubuntu) default this option which for seabios leads to emulation errors when running in KVM (does not trigger in TCG) on older intel chips of the Penryn generation (~2006-2008). The symptom appears as endbr32/endbr64 interpretation failures and in KVM it looks like: KVM internal error. Suberror: 1 emulation failure EAX=00000000 EBX=00000000 ECX=000086d4 EDX=00000000 ESI=00000000 EDI=00000000 EBP=000086d4 ESP=00006d7c EIP=00007acf EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0 ES =0000 00000000 ffffffff 00809300 CS =f000 000f0000 ffffffff 00809b00 SS =0000 00000000 ffffffff 00809300 DS =0000 00000000 ffffffff 00809300 FS =0000 00000000 ffffffff 00809300 GS =0000 00000000 ffffffff 00809300 LDT=0000 00000000 0000ffff 00008200 TR =0000 00000000 0000ffff 00008b00 GDT= 000f6200 00000037 IDT= 00000000 000003ff CR0=00000010 CR2=00000000 CR3=00000000 CR4=00000000 DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000 DR6=00000000ffff0ff0 DR7=0000000000000400 EFER=0000000000000000 Code=b8 90 d9 00 00 66 e8 6b f7 ff ff 66 b8 0a 00 00 00 e9 61 f2 <f3> 0f 1e fb 66 57 66 56 66 53 66 53 66 89 c7 67 66 89 14 24 66 89 ce 66 e8 15 f8 ff ff 88 URL: https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1866870 Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
2019-08-23Makefile: Build with -Wno-address-of-packed-memberKevin O'Connor1-0/+1
Building with gcc v9 causes lots of warnings about pointers to packed variables. However, SeaBIOS is limited to x86 where unaligned reads/writes are supported by the cpu. So, disable that warning. Signed-off-by: Kevin O'Connor <kevin@koconnor.net> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-03-15vga: add atiext driverGerd Hoffmann1-1/+1
Supports qemu emulated ati cards. They have been added in qemu 4.0. Acceleration support (in qemu) is pretty rough still. A simple framebuffer works fine though. Available models: * ati rage 128 pro * ati rv100 Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2019-03-14vga: move modelist from bochsvga.c to new svgamodes.cGerd Hoffmann1-1/+1
So other drivers can simply use the same list too. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2018-06-22qemu: add qemu ramfb supportGerd Hoffmann1-1/+1
Add support for qemu ramfb. This is a simple boot framebuffer device, with normal ram being used to back the framebuffer and fw_cfg being used to configure the device. Use case (on x86): boot display for vgpu devices (which neither emulate vga nor have a vgabios). Sharing fw_cfg code with seabios turned out to be difficuilt due to various dependencies the code has on infrastructure which only seabios has. So include a copy of the code here, with those dependencies removed and also stripped down because we don't need a non-dma fallback here. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2018-06-22qemu: add bochs-display supportGerd Hoffmann1-1/+1
Use coreboot text mode emulation to also support the qemu bochs-display device. This is a new display device supporting simple linear framebuffers, using the bochs register interface. No support for legacy vga (text modes, planar modes, cga modes, 8bpp palette modes all dropped). The bochs interface is compatible with the qemu stdvga. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2017-09-22add serial console supportGerd Hoffmann1-2/+2
Redirect int10 calls to serial console output. Parse serial input and queue key events. The serial console can work both as primary display and in parallel to another vga display (splitmode). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2017-09-22std: add cp437 to unicode mapGerd Hoffmann1-0/+1
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2017-02-20block: add NVMe boot supportJulian Stecklina1-1/+1
This patch enables SeaBIOS to boot from NVMe. Finding namespaces and basic I/O works. Testing has been done in qemu and so far it works with Grub, syslinux, and the FreeBSD loader. You need a recent Qemu (>= 2.7.0), because older versions have buggy NVMe support. The NVMe code is currently only enabled on Qemu due to lack of testing on real hardware. Signed-off-by: Julian Stecklina <jsteckli@amazon.de>
2016-10-26build: Add -fno-pie to the gcc flags when availableKevin O'Connor1-0/+1
Reported-by: Paul Menzel <paulepanter@users.sourceforge.net> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-10-21build: Be sure to also include out/*.d in MakefileKevin O'Connor1-1/+1
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-08-04swcursor: Move swcursor code from vgafb.c to new file swcursor.cKevin O'Connor1-1/+1
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-03-29Support for booting from LSI Logic LSI53C1030, SAS1068, SAS1068eDon Slutz1-1/+1
Also known as Fusion MPT disk; this controller model is supported by VirtualBox and VMware, and QEMU support patches have been posted. Signed-off-by: Don Slutz <Don.Slutz@Gmail.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2016-02-03pci: Split low-level pci code from higher-level 'struct pci_device' codeKevin O'Connor1-1/+1
Split pci.c into pci.c and pcidevice.c. The low-level code that interacts directly with the PCI devices remains in pci.c, while functions dealing with the higher level pci_device cache move to pcidevice.c. Only pci.c is needed in 16bit mode. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2015-11-19acpi: Don't build SSDT files on every build; store them in gitKevin O'Connor1-2/+2
The SSDT files are rarely modified - recent QEMU versions don't use them at all and adding features to them in SeaBIOS has been deprecated. It no longer makes sense to generate them on every build. The content will remain (for use on old machine types in QEMU) in static files committed to the SeaBIOS git repo. If the contents do need to be generated a new build target (make iasl) is available. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2015-11-19acpi_extract: Don't generate unused (and empty) q35-acpi-dsdt.hex fileKevin O'Connor1-1/+1
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2015-10-15build: Report gcc and binutils versions in debug logKevin O'Connor1-2/+2
Attempt to extract the gcc and binutils versions. Report that information in the debug log. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2015-10-15build: Rework version generation; don't allow make version overrideKevin O'Connor1-6/+8
Convert the script to generate the build version from a shell script to a python script. Remove the ability to override the version at build time via "make VERSION=xyz". Replace it with ability to add extra version information at build time via "make EXTRAVERSION=xyz". Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2015-10-15e820: Rename memmap.c to e820map.c and use consistent "e820_" prefixKevin O'Connor1-1/+1
Rename memmap.c to e820map.c as the code in that file only deals with maintaining the e820 map. Move all the e820 definitions to new file e820map.h and use a consistent "e820_" prefix on all exported functions. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2015-09-13build: use -fstack-check=no when availableMagnus Granberg1-0/+1
Some compilers (such as the one in hardened/Gentoo) default this option to on which leads to build failures: src/stacks.c: In function 'call16_back': src/stacks.c:139:5: error: 'asm' operand has impossible constraints asm volatile( ^ URL: https://bugs.gentoo.org/559980 Reported-by: Alon Bar-Lev <alonbl@gentoo.org> Signed-off-by: Magnus Granberg <zorry@gentoo.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2015-07-01virtio: run drivers in 32bit modeGerd Hoffmann1-1/+1
virtio version 1.0 registers can (and actually do in the qemu implementation) live in mmio space. So we must run the blk and scsi virtio drivers in 32bit mode, otherwise we can't access them. This also allows to drop a bunch of GET_LOWFLAT calls from the virtio code in the following patches. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2015-06-03build: Support "make VERSION=xyz" to override the default build versionKevin O'Connor1-2/+2
Add a build option to explicitly set the version information compiled into the seabios and seavgabios binaries. This may assist in reproducible builds or to better link builds to distribution packages. If the new "VERSION=" parameter is not provided then the default build version remains unchanged. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2015-06-01Add multiboot support.Vladimir Serbinenko1-1/+1
I've been successfully using SeaBIOS as secondary bootloader. In more details I have GRUB2-as-payload in flash together with coreboot. SeaBIOS binary is on the HDD and loaded by GRUB when needed. This has an unfortunate consequence that I have to keep vga oprom in flash even if usually I boot without it. This patches makes bios.bin.elf multiboot executable with files passed as modules. Example: menuentry "SeaBIOS (mb)" --unrestricted { root=ahci0,2 multiboot /bios.bin.elf module /vgabios_x230.rom name=pci8086,0166.rom } the parameter name= specifies under which name SeaBIOS will see it. Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2015-05-21Support for BIOS interrupt handlerStefan Berger1-1/+1
This patch implements the TCG BIOS interrupt handler 1ah. It is for example used by trusted grub. This patch adds an implementation of SHA1 (following NIST specs., IETF RFC 3147 and Wikipedia) for speeding up measurements of code. Trusted Grub for example makes use of this interface and measures (calculates SHA1) of the Linux kernel and initrd. Those files can be rather large and hunting their bytes through the TIS interface as part of the int handler commands invoked by trusted grub does take quite some time due to the many vmexits the interface is creating (one per byte). There is also a threshold for the size of data to hash (100k) below which the TPM is used and above the internal faster SHA1 algorithm is used. This patch for example enables trusted grub to interact with the TPM and take additional measurements. Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2015-05-21Implementation of the TCG BIOS extensionsStefan Berger1-2/+3
This patch implements the main part of the TCG BIOS extensions. It provides the following functionality: - initialization of the TCPA ACPI table used for logging of measurements - initialization of the TPM by sending a sequence of commands to it - proper setup of the TPM before the BIOS hands over control to the bootloader - support for S3 resume; BIOS sends TPM_Startup(ST_STATE) to TPM - enable configuration of SeaBIOS to be built with TCGBIOS extensions All TCG BIOS extensions are activated with CONFIG_TCGBIOS. Structures that are needed in subsequent patches are also included in tcgbios.h at this point. The effect of this patch is that it initialized the TPM upon VM start and S3 resume. Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
2015-05-21Link rom.o with -N option.Vladimir Serbinenko1-1/+1
This option tells linker not to align sections in a way optimied for OS. ls -lh out/bios.bin.elf -rwxr-xr-x 1 phcoder phcoder 90K Mai 19 20:38 out/bios.bin.elf Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
2015-04-10vgabios: Add config option for assembler fixupsKevin O'Connor1-10/+11
Add a kconfig build option (CONFIG_VGA_FIXUP_ASM) to allow users to build the vgabios without the complex assembler fixups that work around emulator bugs. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2014-12-29sdcard: Initial support for SD cards on PCI SDHCI controllers on QEMUKevin O'Connor1-1/+1
This adds basic read/write support for SD cards emulated by QEMU. This code is not expected to work on real hardware, because the current controller and card initialization is not robust. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2014-12-03build: set LC_ALL=CGerd Hoffmann1-0/+1
Avoids tools such as layoutrom stumble over localized messages. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Tested-By: Patrick Georgi <pgeorgi@google.com>
2014-06-11build: Get fixed address variables from 32bit compile pass (not 16bit)Kevin O'Connor1-5/+5
Update the layoutrom.py build script so that fixed address sections can come from the 32bit compiled C code. Update the C code so that all VAR16FIXED variables instead use the new VARFSEGFIXED which is defined in 32bit mode. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2014-06-11build: Keep segmented sections separate until final link step.Kevin O'Connor1-1/+1
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2014-06-05build: use -m16 where available instead of asm(".code16gcc")David Woodhouse1-1/+3
GCC 4.9 and clang 3.5 support the -m16 option on the command line which supersedes the hackish ".code16gcc" assembler directive. Use it where possible. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2014-06-05build: Avoid absolute paths during "whole-program" compiling.Kevin O'Connor1-2/+2
The build currently does a textual include of all files in order to use the -fwhole-compile optimization. Update it to use relative file paths instead of absolute file paths. This makes the section names in the resulting binary more readable. It also makes the build easier on some Windows hosts. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2014-06-04smp: Replace QEMU SMP init assembler code with C; run only in 32bit mode.Kevin O'Connor1-2/+1
Change the multi-processor init code to trampoline into 32bit mode on each of the additional processors. Implement an atomic lock so that each processor performs its initialization serially. Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2014-05-08build: Make sure romlayout.o is recompiled on Kconfig change.Kevin O'Connor1-1/+1
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2014-05-08ld: don't hardcode "-melf_i386"Roger Pau Monne1-2/+3
On FreeBSD, the name of the emulation is "-melf_i386_fbsd", so allow SeaBIOS to fetch the emulation to use from the environment variables. This allows SeaBIOS to compile on FreeBSD with gcc. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Cc: Ian Campbell <ian.campbell@citrix.com>
2014-04-11vgabios: Initial support for coreboot native vga vgabios.Kevin O'Connor1-1/+2
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2014-01-29xhci: Run the XHCI driver entirely in 32bit mode.Kevin O'Connor1-2/+2
Since the XHCI driver needs to jump into 32bit mode anyway, it is simpler to just run all of the code in 32bit mode. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2014-01-10Prevent build failure by not splitting line in the middle of arguments to ↵Sander Eikelenboom1-2/+1
checkrom.py script File "./scripts/checkrom.py", line 24, in main objinfo, finalsize, rawfile, outfile = sys.argv[1:] ValueError: need more than 3 values to unpack Signed-off-by: Sander Eikelenboom <linux@eikelenboom.it>
2013-12-27pvscsi: Always run entirely in 32bit mode.Kevin O'Connor1-2/+2
Instead of jumping into 32bit mode to access the PCI config space, run the entire driver in 32bit mode. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>