72 lines
1.9 KiB
Plaintext
72 lines
1.9 KiB
Plaintext
|
-------------------------------------------------------------------------------
|
||
|
libpayload README
|
||
|
-------------------------------------------------------------------------------
|
||
|
|
||
|
libpayload is a minimal library to support standalone payloads
|
||
|
that can be booted with firmware like coreboot. It handles the setup
|
||
|
code, and provides common C library symbols such as malloc() and printf().
|
||
|
|
||
|
Note: This is _not_ a standard library for use with an operating system,
|
||
|
rather it's only useful for coreboot payload development!
|
||
|
See https://www.coreboot.org for details on coreboot.
|
||
|
|
||
|
|
||
|
Installation
|
||
|
------------
|
||
|
|
||
|
$ git clone https://review.coreboot.org/coreboot.git
|
||
|
|
||
|
$ cd coreboot/payloads/libpayload
|
||
|
|
||
|
$ make menuconfig
|
||
|
|
||
|
$ make
|
||
|
|
||
|
$ make install (optional, will install into ./install per default)
|
||
|
|
||
|
On x86 systems, libpayload will always be 32-bit even if your host OS runs
|
||
|
in 64-bit, so you might have to install the 32-bit libgcc version.
|
||
|
On Debian systems you'd do 'apt-get install gcc-multilib' for example.
|
||
|
|
||
|
Run 'make distclean' before switching boards. This command will remove
|
||
|
your current .config file, so you need 'make menuconfig' again or
|
||
|
'make defconfig' in order to set up configuration. Default configuration
|
||
|
is based on 'configs/defconfig'. See the configs/ directory for examples
|
||
|
of configuration.
|
||
|
|
||
|
|
||
|
Usage
|
||
|
-----
|
||
|
|
||
|
Here's an example of a very simple payload (hello.c) and how to build it:
|
||
|
|
||
|
#include <libpayload.h>
|
||
|
|
||
|
int main(void)
|
||
|
{
|
||
|
printf("Hello, world!\n");
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
Building the payload using the 'lpgcc' compiler wrapper:
|
||
|
|
||
|
$ lpgcc -o hello.elf hello.c
|
||
|
|
||
|
Please see the sample/ directory for details.
|
||
|
|
||
|
|
||
|
Website and Mailing List
|
||
|
------------------------
|
||
|
|
||
|
The main website is https://www.coreboot.org/Libpayload.
|
||
|
|
||
|
For additional information, patches, and discussions, please join the
|
||
|
coreboot mailing list at https://www.coreboot.org/Mailinglist, where most
|
||
|
libpayload developers are subscribed.
|
||
|
|
||
|
|
||
|
Copyright and License
|
||
|
---------------------
|
||
|
|
||
|
See LICENSES.
|