1 /********************************************************************** 2 * Author: Cavium, Inc. 3 * 4 * Contact: support@cavium.com 5 * Please include "LiquidIO" in the subject. 6 * 7 * Copyright (c) 2003-2016 Cavium, Inc. 8 * 9 * This file is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License, Version 2, as 11 * published by the Free Software Foundation. 12 * 13 * This file is distributed in the hope that it will be useful, but 14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty 15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or 16 * NONINFRINGEMENT. See the GNU General Public License for more details. 17 ***********************************************************************/ 18 #ifndef _LIQUIDIO_IMAGE_H_ 19 #define _LIQUIDIO_IMAGE_H_ 20 21 #define LIO_MAX_FW_TYPE_LEN (8) 22 #define LIO_MAX_FW_FILENAME_LEN (256) 23 #define LIO_FW_DIR "liquidio/" 24 #define LIO_FW_BASE_NAME "lio_" 25 #define LIO_FW_NAME_SUFFIX ".bin" 26 #define LIO_FW_NAME_TYPE_NIC "nic" 27 #define LIO_FW_NAME_TYPE_NONE "none" 28 #define LIO_MAX_FIRMWARE_VERSION_LEN 16 29 30 #define LIO_MAX_BOOTCMD_LEN 1024 31 #define LIO_MAX_IMAGES 16 32 #define LIO_NIC_MAGIC 0x434E4943 /* "CNIC" */ 33 struct octeon_firmware_desc { 34 __be64 addr; 35 __be32 len; 36 __be32 crc32; /* crc32 of image */ 37 }; 38 39 /* Following the header is a list of 64-bit aligned binary images, 40 * as described by the desc field. 41 * Numeric fields are in network byte order. 42 */ 43 struct octeon_firmware_file_header { 44 __be32 magic; 45 char version[LIO_MAX_FIRMWARE_VERSION_LEN]; 46 char bootcmd[LIO_MAX_BOOTCMD_LEN]; 47 __be32 num_images; 48 struct octeon_firmware_desc desc[LIO_MAX_IMAGES]; 49 __be32 pad; 50 __be32 crc32; /* header checksum */ 51 }; 52 53 #endif /* _LIQUIDIO_IMAGE_H_ */ 54