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_AUTO "auto" 28 #define LIO_FW_NAME_TYPE_NONE "none" 29 #define LIO_MAX_FIRMWARE_VERSION_LEN 16 30 31 #define LIO_MAX_BOOTCMD_LEN 1024 32 #define LIO_MAX_IMAGES 16 33 #define LIO_NIC_MAGIC 0x434E4943 /* "CNIC" */ 34 struct octeon_firmware_desc { 35 __be64 addr; 36 __be32 len; 37 __be32 crc32; /* crc32 of image */ 38 }; 39 40 /* Following the header is a list of 64-bit aligned binary images, 41 * as described by the desc field. 42 * Numeric fields are in network byte order. 43 */ 44 struct octeon_firmware_file_header { 45 __be32 magic; 46 char version[LIO_MAX_FIRMWARE_VERSION_LEN]; 47 char bootcmd[LIO_MAX_BOOTCMD_LEN]; 48 __be32 num_images; 49 struct octeon_firmware_desc desc[LIO_MAX_IMAGES]; 50 __be32 pad; 51 __be32 crc32; /* header checksum */ 52 }; 53 54 #endif /* _LIQUIDIO_IMAGE_H_ */ 55