while others dislike them being extra commits, let's clean them up once and for all for the existing code. If it's ugly, let it only be ugly once :-) Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5507 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _LINUX_UNIFORM_BOOT_H
 | |
| #define _LINUX_UNIFORM_BOOT_H
 | |
| 
 | |
| /* The uniform boot environment information is restricted to
 | |
|  * hardware information.  In particular for a simple enough machine
 | |
|  * all of the environment information should be able to reside in
 | |
|  * a rom and not need to be moved.  This information is the
 | |
|  * information a trivial boot room can pass to linux to let it
 | |
|  * run the hardware.
 | |
|  *
 | |
|  * Also all of the information should be Position Independent Data.
 | |
|  * That is it should be safe to relocated any of the information
 | |
|  * without it's meaning/correctnes changing. The exception is the
 | |
|  * uniform_boot_header with it's two pointers arg & env.
 | |
|  *
 | |
|  * The addresses in the arg & env pointers must be physical
 | |
|  * addresses. A physical address is an address you put in the page
 | |
|  * table.
 | |
|  *
 | |
|  * The Command line is for user policy.  Things like the default
 | |
|  * root device.
 | |
|  *
 | |
|  */
 | |
| 
 | |
| struct uniform_boot_header
 | |
| {
 | |
| 	unsigned long header_bytes;
 | |
| 	unsigned long header_checksum;
 | |
| 	unsigned long arg;
 | |
| 	unsigned long arg_bytes;
 | |
| 	unsigned long env;
 | |
| 	unsigned long env_bytes;
 | |
| };
 | |
| 
 | |
| /* Every entry in the boot enviroment list will correspond to a boot
 | |
|  * info record.  Encoding both type and size.  The type is obviously
 | |
|  * so you can tell what it is.  The size allows you to skip that
 | |
|  * boot enviroment record if you don't know what it easy.  This allows
 | |
|  * forward compatibility with records not yet defined.
 | |
|  */
 | |
| struct ube_record {
 | |
| 	unsigned long tag;		/* tag ID */
 | |
| 	unsigned long size;		/* size of record (in bytes) */
 | |
| 	unsigned long data[0];		/* data */
 | |
| };
 | |
| 
 | |
| 
 | |
| #define UBE_TAG_MEMORY	0x0001
 | |
| 
 | |
| struct ube_memory_range {
 | |
| 	unsigned long long start;
 | |
| 	unsigned long long size;
 | |
| 	unsigned long type;
 | |
| #define UBE_MEM_RAM      1
 | |
| #define UBE_MEM_RESERVED 2
 | |
| #define UBE_MEM_ACPI     3
 | |
| #define UBE_MEM_NVS      4
 | |
| 
 | |
| };
 | |
| 
 | |
| struct ube_memory {
 | |
| 	unsigned long tag;
 | |
| 	unsigned long size;
 | |
| 	struct ube_memory_range map[0];
 | |
| };
 | |
| 
 | |
| #endif /* _LINUX_UNIFORM_BOOT_H */
 |