Statistics
| Branch: | Revision:

root / hw / xtensa / xtensa_bootparam.h @ f487b677

History | View | Annotate | Download (528 Bytes)

1 292627bb Max Filippov
#ifndef HW_XTENSA_BOOTPARAM
2 292627bb Max Filippov
#define HW_XTENSA_BOOTPARAM
3 292627bb Max Filippov
4 292627bb Max Filippov
typedef struct BpTag {
5 292627bb Max Filippov
    uint16_t tag;
6 292627bb Max Filippov
    uint16_t size;
7 292627bb Max Filippov
} BpTag;
8 292627bb Max Filippov
9 292627bb Max Filippov
static inline ram_addr_t put_tag(ram_addr_t addr, uint16_t tag,
10 292627bb Max Filippov
        size_t size, const void *data)
11 292627bb Max Filippov
{
12 292627bb Max Filippov
    BpTag bp_tag = {
13 292627bb Max Filippov
        .tag = tswap16(tag),
14 292627bb Max Filippov
        .size = tswap16((size + 3) & ~3),
15 292627bb Max Filippov
    };
16 292627bb Max Filippov
17 292627bb Max Filippov
    cpu_physical_memory_write(addr, &bp_tag, sizeof(bp_tag));
18 292627bb Max Filippov
    addr += sizeof(bp_tag);
19 292627bb Max Filippov
    cpu_physical_memory_write(addr, data, size);
20 292627bb Max Filippov
    addr += (size + 3) & ~3;
21 292627bb Max Filippov
22 292627bb Max Filippov
    return addr;
23 292627bb Max Filippov
}
24 292627bb Max Filippov
25 292627bb Max Filippov
#endif