/ README.md
README.md
1 coreboot README 2 =============== 3 4 coreboot is a Free Software project aimed at replacing the proprietary 5 firmware (BIOS/UEFI) found in most computers. coreboot performs the 6 required hardware initialization to configure the system, then passes 7 control to a different executable, referred to in coreboot as the 8 payload. Most often, the primary function of the payload is to boot the 9 operating system (OS). 10 11 With the separation of hardware initialization and later boot logic, 12 coreboot is perfect for a wide variety of situations. It can be used 13 for specialized applications that run directly in the firmware, running 14 operating systems from flash, loading custom bootloaders, or 15 implementing firmware standards, like PC BIOS services or UEFI. This 16 flexibility allows coreboot systems to include only the features 17 necessary in the target application, reducing the amount of code and 18 flash space required. 19 20 21 Source code 22 ----------- 23 24 All source code for coreboot is stored in git. It is downloaded with 25 the command: 26 27 `git clone https://review.coreboot.org/coreboot.git`. 28 29 Code reviews are done in [the project's Gerrit 30 instance](https://review.coreboot.org/). 31 32 The code may be browsed via [coreboot's Gitiles 33 instance](https://review.coreboot.org/plugins/gitiles/coreboot/+/HEAD). 34 35 The coreboot project also maintains a 36 [mirror](https://github.com/coreboot/coreboot) of the project on github. 37 This is read-only, as coreboot does not accept github pull requests, 38 but allows browsing and downloading the coreboot source. 39 40 Payloads 41 -------- 42 43 After the basic initialization of the hardware has been performed, any 44 desired "payload" can be started by coreboot. 45 46 See <https://doc.coreboot.org/payloads.html> for a list of some of 47 coreboot's supported payloads. 48 49 50 Supported Hardware 51 ------------------ 52 53 The coreboot project supports a wide range of architectures, chipsets, 54 devices, and mainboards. While not all of these are documented, you can 55 find some information in the [Architecture-specific 56 documentation](https://doc.coreboot.org/arch/index.html) or the 57 [SOC-specific documentation](https://doc.coreboot.org/soc/index.html). 58 59 For details about the specific mainboard devices that coreboot supports, 60 please consult the [Mainboard-specific 61 documentation](https://doc.coreboot.org/mainboard/index.html) or the 62 [Board Status](https://coreboot.org/status/board-status.html) pages. 63 64 65 Releases 66 -------- 67 68 Releases are currently done by coreboot every quarter. The 69 release archives contain the entire coreboot codebase from the time of 70 the release, along with any external submodules. The submodules 71 containing binaries are separated from the general release archives. All 72 of the packages required to build the coreboot toolchains are also kept 73 at coreboot.org in case the websites change, or those specific packages 74 become unavailable in the future. 75 76 All releases are available on the [coreboot 77 download](https://coreboot.org/downloads.html) page. 78 79 Please note that the coreboot releases are best considered as snapshots 80 of the codebase, and do not currently guarantee any sort of extra 81 stability. 82 83 Build Requirements and building coreboot 84 ---------------------------------------- 85 86 The coreboot build, associated utilities and payloads require many 87 additional tools and packages to build. The actual coreboot binary is 88 typically built using a coreboot-controlled toolchain to provide 89 reproducibility across various platforms. It is also possible, though 90 not recommended, to make it directly with your system toolchain. 91 Operating systems and distributions come with an unknown variety of 92 system tools and utilities installed. Because of this, it isn't 93 reasonable to list all the required packages to do a build, but the 94 documentation lists the requirements for a few different Linux 95 distributions. 96 97 To see the list of tools and libraries, along with a list of 98 instructions to get started building coreboot, go to the [Starting from 99 scratch](https://doc.coreboot.org/tutorial/part1.html) tutorial page. 100 101 That same page goes through how to use QEMU to boot the build and see 102 the output. 103 104 105 Website and Mailing List 106 ------------------------ 107 108 Further details on the project, as well as links to documentation and 109 more can be found on the coreboot website: 110 111 <https://www.coreboot.org> 112 113 You can contact us directly on the coreboot mailing list: 114 115 <https://doc.coreboot.org/community/forums.html> 116 117 118 119 Copyrights and Licenses 120 --------------------- 121 122 123 ### Uncopyrightable files 124 125 There are many files in the coreboot tree that we feel are not 126 copyrightable due to a lack of creative content. 127 128 "In order to qualify for copyright protection in the United States, a 129 work must satisfy the originality requirement, which has two parts. The 130 work must have “at least a modicum” of creativity, and it must be the 131 independent creation of its author." 132 133 <https://guides.lib.umich.edu/copyrightbasics/copyrightability> 134 135 Similar terms apply to other locations. 136 137 These uncopyrightable files include: 138 139 - Empty files or files with only a comment explaining their existence. 140 These may be required to exist as part of the build process but are 141 not needed for the particular project. 142 - Configuration files either in binary or text form. Examples would be 143 files such as .vbt files describing graphics configuration, .apcb 144 files containing configuration parameters for AMD firmware binaries, 145 and spd files as binary .spd or text \*spd\*.hex representing memory 146 chip configuration. 147 - Machine-generated files containing version numbers, dates, hash 148 values or other "non-creative" content. 149 150 As non-creative content, these files are in the public domain by 151 default. As such, the coreboot project excludes them from the project's 152 general license even though they may be included in a final binary. 153 154 If there are questions or concerns about this policy, please get in 155 touch with the coreboot project via the mailing list. 156 157 158 ### Copyrights 159 160 The copyright on coreboot is owned by quite a large number of individual 161 developers and companies. A list of companies and individuals with known 162 copyright claims is present at the top level of the coreboot source tree 163 in the 'AUTHORS' file. Please check the git history of each of the 164 source files for details. 165 166 167 ### Licenses 168 169 Because of the way coreboot began, using a significant amount of source 170 code from the Linux kernel, it's licensed the same way as the Linux 171 Kernel, with GNU General Public License (GPL) Version 2. Individual 172 files are licensed under various licenses, though all are compatible 173 with GPLv2. The resulting coreboot image is licensed under the GPL, 174 version 2. All source files should have an SPDX license identifier at 175 the top for clarification. 176 177 Files under coreboot/Documentation/ are licensed under CC-BY 4.0 terms. 178 As an exception, files under Documentation/ with a history older than 179 2017-05-24 might be under different licenses. 180 181 Files in the coreboot/src/commonlib/bsd directory are all licensed with 182 the BSD-3-clause license. Many are also dual-licensed GPL-2.0-only or 183 GPL-2.0-or-later. These files are intended to be shared with libpayload 184 or other BSD licensed projects. 185 186 The libpayload project contained in coreboot/payloads/libpayload may be 187 licensed as BSD or GPL, depending on the code pulled in during the build 188 process. All GPL source code should be excluded unless the Kconfig 189 option to include it is set. 190 191 192 The Software Freedom Conservancy 193 -------------------------------- 194 195 Since 2017, coreboot has been a member of [The Software Freedom 196 Conservancy](https://sfconservancy.org/), a nonprofit organization 197 devoted to ethical technology and driving initiatives to make technology 198 more inclusive. The conservancy acts as coreboot's fiscal sponsor and 199 legal advisor.