1------------------------------------------------------------------------------- 2coreboot README 3------------------------------------------------------------------------------- 4 5Coreboot is a Free Software project aimed at replacing the proprietary 6BIOS you can find in most of today's computers. 7 8It performs just a little bit of hardware initialization and then executes 9one of many possible payloads. 10 11 12Payloads 13-------- 14 15After the basic initialization of the hardware has been performed, any 16desired "payload" can be started by coreboot. Examples include: 17 18 * A Linux kernel 19 * FILO (a simple bootloader with filesystem support) 20 * GRUB2 (a free bootloader; support is in development) 21 * OpenBIOS (a free IEEE1275-1994 Open Firmware implementation) 22 * Open Firmware (a free IEEE1275-1994 Open Firmware implementation) 23 * SmartFirmware (a free IEEE1275-1994 Open Firmware implementation) 24 * GNUFI (a free, UEFI-compatible firmware) 25 * Etherboot (for network booting and booting from raw IDE or FILO) 26 * ADLO (for booting Windows 2000 or OpenBSD) 27 * Plan 9 (a distributed operating system) 28 * memtest86 (for testing your RAM) 29 30 31Supported Hardware 32------------------ 33 34Coreboot supports a wide range of chipsets, devices, and mainboards. 35 36For details please consult: 37 38 * http://www.coreboot.org/Supported_Motherboards 39 * http://www.coreboot.org/Supported_Chipsets_and_Devices 40 41 42Build Requirements 43------------------ 44 45 * gcc / g++ 46 * make 47 * bison 48 * flex 49 * libncurses5-dev 50 51Optional (for generating/viewing documentation): 52 53 * lyx 54 * doxygen 55 56 57Building And Installing 58----------------------- 59 60Note: Currently only the x86 QEMU target is supported in coreboot-v3. 61 621) Build a payload: 63 64 THIS IS NOT IMPLEMENTED YET. PLEASE BUILD YOUR PAYLOAD MANUALLY. 65 66 $ make payload 67 68 This step is optional. The 'make payload' command will execute a 69 helper tool which allows you to easily build and configure a wide 70 variety of payloads. The result of this step is usually a file 71 called 'payload.elf' in the top-level directory. 72 732) Configure coreboot: 74 75 $ make menuconfig 76 77 Select at least the desired mainboard vendor, the mainboard device, and 78 the size of your ROM chip. Per default coreboot will look for a file 79 called 'payload.elf' in the current directory and use that as the payload. 80 81 If that's not what you want, you can change the path/filename of the 82 payload to use some other payload file. Or you can choose 'No payload' 83 in the configuration menu, in which case the resulting coreboot ROM image 84 will not contain any payload. You'll have to manually add a payload 85 later using the 'lar' utility for the coreboot ROM image to be useful. 86 873) Build the coreboot ROM image: 88 89 $ make 90 91 The generated ROM image is the file coreboot.rom in the build/ directory. 92 934) Flash the coreboot ROM image on a BIOS chip: 94 95 $ flashrom -wv coreboot.rom 96 97 NOTE: This step will OVERWRITE the current BIOS located on the ROM chip! 98 Make sure you have adequate backup facilities before performing this 99 step, otherwise you might not be able to recover in case of problems. 100 If you have any questions, please contact us on the mailing list! 101 102 The 'flashrom' tool is located in util/flashrom where you can build it 103 from source code by typing 'make'. Alternatively, your favorite Linux 104 distribution might ship a 'flashrom' package which provides the 'flashrom' 105 program in (e.g.) /usr/sbin. On Debian GNU/Linux systems you can get 106 the flashrom package via 'apt-get install flashrom'. 107 108 109Testing coreboot Without Modifying Your Hardware 110------------------------------------------------- 111 112If you want to test coreboot without any risks before you really decide 113to use it on your hardware, you can use the QEMU system emulator to run 114coreboot virtually in QEMU. 115 116The required steps are: 117 118 $ make menuconfig 119 120 Select 'Emulated systems' as mainboard vendor and 'QEMU x86' as 121 mainboard model. 122 123 $ make 124 125 $ qemu -L build -hda /dev/zero -serial stdio 126 127 This will run coreboot in QEMU and output all debugging messages (which 128 are usually emitted to a serial console) on stdout. It will not do 129 anything useful beyond that, as you provided no virtual harddrive to 130 QEMU (-hda /dev/zero). 131 132 If you have a full QEMU hard drive image (say /tmp/qemu.img) with a Linux 133 distribution installed, you can boot that Linux kernel by using a proper 134 FILO payload with coreboot and typing: 135 136 $ qemu -L build -hda /tmp/qemu.img -serial stdio 137 138 Installing a Linux distribution in QEMU and building the FILO payload is 139 beyond the scope of this document. 140 141 142Website and Mailing List 143------------------------ 144 145Further details on the project, a FAQ, many HOWTOs, news, development 146guidelines and more can be found on the coreboot website: 147 148 http://www.coreboot.org 149 150You can contact us directly on the coreboot mailing list: 151 152 http://www.coreboot.org/Mailinglist 153 154 155Copyright and License 156--------------------- 157 158The copyright on coreboot is owned by quite a large number of individual 159developers and companies. Please check the individual source files for details. 160 161Coreboot is licensed under the terms of the GNU General Public License (GPL). 162Some files are licensed under the "GPL (version 2, or any later version)", 163and some files are licensed under the "GPL, version 2". For some parts, 164which were derived from other Free Software projects, other (GPL-compatible) 165licenses may apply. Please check the individual source files for details. 166 167This makes the resulting coreboot images licensed under the GPL, version 2. 168 169

