blob: 7449fdb0c59c1ce2dad99fbef1219a215d1826aa [file] [log] [blame]
/*
* Copyright (C) 2018 Synaptics Incorporated. All rights reserved.
* (C) Copyright Marvell Semiconductors,Inc 2006 All rightes reserved
*
* This program 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.
*
* INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED "AS-IS," AND
* SYNAPTICS EXPRESSLY DISCLAIMS ALL EXPRESS AND IMPLIED WARRANTIES,
* INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE, AND ANY WARRANTIES OF NON-INFRINGEMENT OF ANY
* INTELLECTUAL PROPERTY RIGHTS. IN NO EVENT SHALL SYNAPTICS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, OR
* CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN CONNECTION WITH THE USE
* OF THE INFORMATION CONTAINED IN THIS DOCUMENT, HOWEVER CAUSED AND
* BASED ON ANY THEORY OF LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* NEGLIGENCE OR OTHER TORTIOUS ACTION, AND EVEN IF SYNAPTICS WAS
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. IF A TRIBUNAL OF
* COMPETENT JURISDICTION DOES NOT PERMIT THE DISCLAIMER OF DIRECT
* DAMAGES OR ANY OTHER DAMAGES, SYNAPTICS' TOTAL CUMULATIVE LIABILITY
* TO ANY PARTY SHALL NOT EXCEED ONE HUNDRED U.S. DOLLARS.
*/
#ifndef __BERLIN_BOOTINFO_H__
#define __BERLIN_BOOTINFO_H__
#include <stdint.h>
#define AS370_CHIP_VERSION_A0 0xA0
#define AS370_CHIP_VERSION_A1 0xA1
#define BERLIN_BOOTINFO_ADDR 0x01f10000
typedef struct __berlin_bootinfo_t {
uint32_t otp_rkek_id[2]; /* rkek id from OTP */
uint32_t otp_version; /* otp version */
uint32_t otp_market_id; /* otp market id */
uint32_t otp_ult[2]; /* otp ULT info */
uint32_t chip_version; /* bg2cdp chip version*/
uint32_t speed_tag; /* speed tag info */
uint32_t leakage_current;/* leakage current info */
uint32_t temp_id; /* Temp ID in deg C */
uint32_t erom_id; /* erom id*/
union
{
uint32_t feature_bits;
struct
{
uint32_t rsa_key_index:4;
uint32_t usb_boot_timeout:4;
uint32_t romkey_disable:1;
uint32_t disable_usb_boot:1;
uint32_t usb_disable_bootstrap:1;
uint32_t usb_disable_blank_media:1;
uint32_t usb_force_full_speed:1;
uint32_t usb_ignore_reset_tracker:1;
uint32_t otp_locked:1;
};
};
uint32_t aesk0_crc; /* crc for aesk0 */
uint32_t rkek_crc; /* crc for rkek */
uint32_t signk7_crc; /* hash of signk7 crc */
uint32_t mrvl_sign_right;/* mrvl sign rights */
uint32_t cust_sign_right;/* cust sign rights */
uint32_t nand_page_size;
uint32_t nand_ecc;
uint32_t nand_blk_size;
union
{
uint32_t nand_src_blk_num[2];
struct
{
uint8_t tsm_src_blk_num;
uint8_t sysinit_src_blk_num;
uint8_t erom_src_blk_num;
uint8_t tz_loader_src_blk_num;
uint8_t tz_kern_src_blk_num;
uint8_t btld_src_blk_num;
uint8_t padding[2];
};
};
uint32_t pvcomp_rev; /* PVComp Revision */
uint32_t unique_id[2];
uint32_t feature0[2];
uint32_t feature2[2];
uint32_t feature4[2];
uint32_t mem_size;
} BERLIN_BOOTINFO;
#endif /* __BERLIN_BOOTINFO_H__ */