1 #ifndef HW_XTENSA_BOOTPARAM_H
2 #define HW_XTENSA_BOOTPARAM_H
4 #include "exec/cpu-common.h"
6 #define BP_TAG_COMMAND_LINE 0x1001 /* command line (0-terminated string)*/
7 #define BP_TAG_INITRD 0x1002 /* ramdisk addr and size (bp_meminfo) */
8 #define BP_TAG_MEMORY 0x1003 /* memory addr and size (bp_meminfo) */
9 #define BP_TAG_SERIAL_BAUDRATE 0x1004 /* baud rate of current console. */
10 #define BP_TAG_SERIAL_PORT 0x1005 /* serial device of current console */
11 #define BP_TAG_FDT 0x1006 /* flat device tree addr */
13 #define BP_TAG_FIRST 0x7B0B /* first tag with a version number */
14 #define BP_TAG_LAST 0x7E0B /* last tag */
16 typedef struct BpTag
{
21 typedef struct BpMemInfo
{
27 #define MEMORY_TYPE_CONVENTIONAL 0x1000
28 #define MEMORY_TYPE_NONE 0x2000
30 static inline size_t get_tag_size(size_t data_size
)
32 return data_size
+ sizeof(BpTag
) + 4;
35 static inline ram_addr_t
put_tag(ram_addr_t addr
, uint16_t tag
,
36 size_t size
, const void *data
)
40 .size
= tswap16((size
+ 3) & ~3),
43 cpu_physical_memory_write(addr
, &bp_tag
, sizeof(bp_tag
));
44 addr
+= sizeof(bp_tag
);
45 cpu_physical_memory_write(addr
, data
, size
);
46 addr
+= (size
+ 3) & ~3;