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 |