1 /********************************************************************** 2 * Author: Cavium, Inc. 3 * 4 * Contact: support@cavium.com 5 * Please include "LiquidIO" in the subject. 6 * 7 * Copyright (c) 2003-2015 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 17 * details. 18 * 19 * This file may also be available under a different license from Cavium. 20 * Contact Cavium, Inc. for more information 21 **********************************************************************/ 22 #ifndef _LIQUIDIO_IMAGE_H_ 23 #define _LIQUIDIO_IMAGE_H_ 24 25 #define LIO_MAX_FW_TYPE_LEN (8) 26 #define LIO_MAX_FW_FILENAME_LEN (256) 27 #define LIO_FW_DIR "liquidio/" 28 #define LIO_FW_BASE_NAME "lio_" 29 #define LIO_FW_NAME_SUFFIX ".bin" 30 #define LIO_FW_NAME_TYPE_NIC "nic" 31 #define LIO_FW_NAME_TYPE_NONE "none" 32 #define LIO_MAX_FIRMWARE_VERSION_LEN 16 33 34 #define LIO_MAX_BOOTCMD_LEN 1024 35 #define LIO_MAX_IMAGES 16 36 #define LIO_NIC_MAGIC 0x434E4943 /* "CNIC" */ 37 struct octeon_firmware_desc { 38 __be64 addr; 39 __be32 len; 40 __be32 crc32; /* crc32 of image */ 41 }; 42 43 /* Following the header is a list of 64-bit aligned binary images, 44 * as described by the desc field. 45 * Numeric fields are in network byte order. 46 */ 47 struct octeon_firmware_file_header { 48 __be32 magic; 49 char version[LIO_MAX_FIRMWARE_VERSION_LEN]; 50 char bootcmd[LIO_MAX_BOOTCMD_LEN]; 51 __be32 num_images; 52 struct octeon_firmware_desc desc[LIO_MAX_IMAGES]; 53 __be32 pad; 54 __be32 crc32; /* header checksum */ 55 }; 56 57 #endif /* _LIQUIDIO_IMAGE_H_ */ 58