xref: /haiku/headers/private/kernel/boot/platform/u-boot/uimage.h (revision fce4895d1884da5ae6fb299d23c735c598e690b1)
1 /*
2  * Copyright 2009 Haiku Inc. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		François Revol, revol@free.fr
7  */
8 #ifndef KERNEL_BOOT_PLATFORM_UBOOT_UIMAGE_H
9 #define KERNEL_BOOT_PLATFORM_UBOOT_UIMAGE_H
10 
11 #include <SupportDefs.h>
12 
13 /* same type and constant names as U-Boot */
14 
15 #define IH_TYPE_STANDALONE 1
16 #define IH_TYPE_KERNEL 2
17 #define IH_TYPE_RAMDISK 3
18 #define IH_TYPE_MULTI 4
19 
20 #define IH_COMP_NONE 0
21 
22 #define IH_MAGIC 0x27051956
23 #define IH_NMLEN 32
24 
25 typedef struct image_header {
26 	uint32 ih_magic;
27 	uint32 ih_hcrc;
28 	uint32 ih_time;
29 	uint32 ih_size;
30 	uint32 ih_load;
31 	uint32 ih_ep;
32 	uint32 ih_dcrc;
33 	uint8 ih_os;
34 	uint8 ih_arch;
35 	uint8 ih_type;
36 	uint8 ih_comp;
37 	char ih_name[IH_NMLEN];
38 } image_header_t;
39 
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 void dump_uimage(struct image_header *image);
46 bool image_multi_getimg(struct image_header *image, uint32 idx,
47 	uint32 *data, uint32 *size);
48 
49 #ifdef __cplusplus
50 }
51 #endif
52 
53 
54 #endif	/* KERNEL_BOOT_PLATFORM_UBOOT_UIMAGE_H */
55