diff options
Diffstat (limited to 'hw/xtensa')
-rw-r--r-- | hw/xtensa/xtensa_bootparam.h | 25 | ||||
-rw-r--r-- | hw/xtensa/xtensa_lx60.c | 2 |
2 files changed, 26 insertions, 1 deletions
diff --git a/hw/xtensa/xtensa_bootparam.h b/hw/xtensa/xtensa_bootparam.h new file mode 100644 index 0000000000..38ef32bdb6 --- /dev/null +++ b/hw/xtensa/xtensa_bootparam.h @@ -0,0 +1,25 @@ +#ifndef HW_XTENSA_BOOTPARAM +#define HW_XTENSA_BOOTPARAM + +typedef struct BpTag { + uint16_t tag; + uint16_t size; +} BpTag; + +static inline ram_addr_t put_tag(ram_addr_t addr, uint16_t tag, + size_t size, const void *data) +{ + BpTag bp_tag = { + .tag = tswap16(tag), + .size = tswap16((size + 3) & ~3), + }; + + cpu_physical_memory_write(addr, &bp_tag, sizeof(bp_tag)); + addr += sizeof(bp_tag); + cpu_physical_memory_write(addr, data, size); + addr += (size + 3) & ~3; + + return addr; +} + +#endif diff --git a/hw/xtensa/xtensa_lx60.c b/hw/xtensa/xtensa_lx60.c index 5695897b23..2682eda2ad 100644 --- a/hw/xtensa/xtensa_lx60.c +++ b/hw/xtensa/xtensa_lx60.c @@ -37,7 +37,7 @@ #include "hw/block/flash.h" #include "sysemu/blockdev.h" #include "char/char.h" -#include "hw/xtensa_bootparam.h" +#include "xtensa_bootparam.h" typedef struct LxBoardDesc { size_t flash_size; |