Is this necessary? The coreboot table entries are 4 byte aligned, so only the uint64_t fields are a problem. In coreboot we solve this by not packing the structure and instead using something like this:
typedef __aligned(4) uint64_t cb_uint64_t; I think the same solution could work in the kernel? Packing the structure makes all alignment assumptions go away which can cause some architectures to generate really bad code, so I've learned to try to avoid it where possible.
