Importing mkelfimage from
ftp://ftp.lnxi.com/pub/mkelfImage/mkelfImage-2.7.tar.gz Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3103 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
committed by
Stefan Reinauer
parent
46fc14dcc8
commit
b34eea348c
67
util/mkelfImage/linux-i386/uniform_boot.h
Normal file
67
util/mkelfImage/linux-i386/uniform_boot.h
Normal file
@ -0,0 +1,67 @@
|
||||
#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 */
|
Reference in New Issue
Block a user