| #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 */ |