and make a configuraton for QEMU/ARM. This CL allows building a sample libpayload for QEMU/ARM. Change-Id: Ia32872c43a99357aa966de3582f6fdb2e2652517 Signed-off-by: Asami Doi <doiasami1219@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/33287 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Raul Rangel <rrangel@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
		
			
				
	
	
		
			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.
 |