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