#ifndef BOARDINFO_H
#define BOARDINFO_H

#include "compiler.h"

#define BOARDINFO_SIZE		4096

#define BOARDINFO_MAGIC_1	0x6682df97
#define BOARDINFO_MAGIC_2	0xe2a0d506

#define IBLK_MAX_MAC_ADDR	8

struct board_info {
    uint32_t magic[2];
    uint32_t len;
    uint32_t crc;		/* 32-bit CRC calculated with crc = 0 */

    char version_str[256];

    uint8_t mac[IBLK_MAX_MAC_ADDR][6];
};

union board_info_block {
    struct board_info i;
    uint8_t b[BOARDINFO_SIZE];
};

extern_c struct board_info board_info;

#endif
