| /********************************************************************** |
| * Author: Cavium, Inc. |
| * |
| * Contact: support@cavium.com |
| * Please include "LiquidIO" in the subject. |
| * |
| * Copyright (c) 2003-2016 Cavium, Inc. |
| * |
| * This file is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License, Version 2, as |
| * published by the Free Software Foundation. |
| * |
| * This file is distributed in the hope that it will be useful, but |
| * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty |
| * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or |
| * NONINFRINGEMENT. See the GNU General Public License for more details. |
| ***********************************************************************/ |
| #ifndef _LIQUIDIO_IMAGE_H_ |
| #define _LIQUIDIO_IMAGE_H_ |
| |
| #define LIO_MAX_FW_TYPE_LEN (8) |
| #define LIO_MAX_FW_FILENAME_LEN (256) |
| #define LIO_FW_DIR "liquidio/" |
| #define LIO_FW_BASE_NAME "lio_" |
| #define LIO_FW_NAME_SUFFIX ".bin" |
| #define LIO_FW_NAME_TYPE_NIC "nic" |
| #define LIO_FW_NAME_TYPE_AUTO "auto" |
| #define LIO_FW_NAME_TYPE_NONE "none" |
| #define LIO_MAX_FIRMWARE_VERSION_LEN 16 |
| |
| #define LIO_MAX_BOOTCMD_LEN 1024 |
| #define LIO_MAX_IMAGES 16 |
| #define LIO_NIC_MAGIC 0x434E4943 /* "CNIC" */ |
| struct octeon_firmware_desc { |
| __be64 addr; |
| __be32 len; |
| __be32 crc32; /* crc32 of image */ |
| }; |
| |
| /* Following the header is a list of 64-bit aligned binary images, |
| * as described by the desc field. |
| * Numeric fields are in network byte order. |
| */ |
| struct octeon_firmware_file_header { |
| __be32 magic; |
| char version[LIO_MAX_FIRMWARE_VERSION_LEN]; |
| char bootcmd[LIO_MAX_BOOTCMD_LEN]; |
| __be32 num_images; |
| struct octeon_firmware_desc desc[LIO_MAX_IMAGES]; |
| __be32 pad; |
| __be32 crc32; /* header checksum */ |
| }; |
| |
| #endif /* _LIQUIDIO_IMAGE_H_ */ |