diff options
Diffstat (limited to 'qemu/roms/seabios/docs/Build_overview.md')
-rw-r--r-- | qemu/roms/seabios/docs/Build_overview.md | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/qemu/roms/seabios/docs/Build_overview.md b/qemu/roms/seabios/docs/Build_overview.md deleted file mode 100644 index 8c6b2f458..000000000 --- a/qemu/roms/seabios/docs/Build_overview.md +++ /dev/null @@ -1,104 +0,0 @@ -The SeaBIOS code can be built using standard GNU tools. A recent Linux -distribution should be able to build SeaBIOS using the standard -compiler tools. - -Building SeaBIOS -================ - -First, [obtain the code](Download). SeaBIOS can be compiled for -several different build targets. It is also possible to configure -additional compile time options - run **make menuconfig** to do this. - -Build for QEMU (along with KVM, Xen, and Bochs) ------------------------------------------------ - -To build for QEMU (and similar), one should be able to run "make" in -the main directory. The resulting file "out/bios.bin" contains the -processed bios image. - -One can use the resulting binary with QEMU by using QEMU's "-bios" -option. For example: - -`qemu -bios out/bios.bin -fda myfdimage.img` - -One can also use the resulting binary with Bochs. For example: - -`bochs -q 'floppya: 1_44=myfdimage.img' 'romimage: file=out/bios.bin'` - -Build for coreboot ------------------- - -To build for coreboot please see the coreboot build instructions at: -<http://www.coreboot.org/SeaBIOS> - -Build as a UEFI Compatibility Support Module (CSM) --------------------------------------------------- - -To build as a CSM, first run kconfig (make menuconfig) and enable -CONFIG_CSM. Then build SeaBIOS (make) - the resulting binary will be -in "out/Csm16.bin". - -This binary may be used with the OMVF/EDK-II UEFI firmware. It will -provide "legacy" BIOS services for booting non-EFI operating systems -and will also allow OVMF to display on otherwise unsupported video -hardware by using the traditional VGA BIOS. (Windows 2008r2 is known -to use INT 10h BIOS calls even when booted via EFI, and the presence -of a CSM makes this work as expected too.) - -Having built SeaBIOS with CONFIG_CSM, one should be able to drop the -result (out/Csm16.bin) into an OVMF build tree at -OvmfPkg/Csm/Csm16/Csm16.bin and then build OVMF with 'build -D -CSM_ENABLE'. The SeaBIOS binary will be included as a discrete file -within the 'Flash Volume' which is created, and there are tools which -will extract it and allow it to be replaced. - -Distribution builds -=================== - -If one is building a binary version of SeaBIOS as part of a package -(such as an rpm) or for wide distribution, please provide the -EXTRAVERSION field during the build. For example: - -`make EXTRAVERSION="-${RPM_PACKAGE_RELEASE}"` - -The EXTRAVERSION field should provide the package version (if -applicable) and the name of the distribution (if that's not already -obvious from the package version). This string will be appended to the -main SeaBIOS version. The above information helps SeaBIOS developers -correlate defect reports to the source code and build environment. - -If one is building a binary in a build environment that does not have -access to the git tool or does not have the full SeaBIOS git repo -available, then please use an official SeaBIOS release tar file as -source. If building from a snapshot (where there is no official -SeaBIOS tar) then one should generate a snapshot tar file on a machine -that does support git using the scripts/tarball.sh tool. For example: - -`scripts/tarball.sh` - -The tarball.sh script encodes version information in the resulting tar -file which the build can extract and include in the final binary. The -above EXTRAVERSION field should still be set when building from a tar. - -Overview of files in the repository -=================================== - -The **src/** directory contains the main bios source code. The -**src/hw/** directory contains source code specific to hardware -drivers. The **src/fw/** directory contains source code for platform -firmware initialization. The **src/std/** directory contains header -files describing standard bios, firmware, and hardware interfaces. - -The **vgasrc/** directory contains code for [SeaVGABIOS](SeaVGABIOS). - -The **scripts/** directory contains helper utilities for manipulating -and building the final roms. - -The **out/** directory is created by the build process - it contains -all intermediate and final files. - -When reading the C code be aware that code that runs in 16bit mode can -not arbitrarily access non-stack memory - see [Memory Model](Memory -Model) for more details. For information on the major C code functions -and where code execution starts see [Execution and code -flow](Execution and code flow). |