125 lines
4.6 KiB
C
125 lines
4.6 KiB
C
/******************************************************************************
|
|
**
|
|
** COPYRIGHT (C) 2002, 2003 Intel Corporation.
|
|
**
|
|
** This software as well as the software described in it is furnished under
|
|
** license and may only be used or copied in accordance with the terms of the
|
|
** license. The information in this file is furnished for informational use
|
|
** only, is subject to change without notice, and should not be construed as
|
|
** a commitment by Intel Corporation. Intel Corporation assumes no
|
|
** responsibility or liability for any errors or inaccuracies that may appear
|
|
** in this document or any software that may be provided in association with
|
|
** this document.
|
|
** Except as permitted by such license, no part of this document may be
|
|
** reproduced, stored in a retrieval system, or transmitted in any form or by
|
|
** any means without the express written consent of Intel Corporation.
|
|
**
|
|
** FILENAME: General.h
|
|
**
|
|
** PURPOSE: Contain boot ROM definitions used across all components
|
|
**
|
|
******************************************************************************/
|
|
#ifndef _general_h
|
|
#define _general_h
|
|
|
|
#include "Typedef.h"
|
|
#include "loadoffsets.h"
|
|
|
|
/*
|
|
* Fuse definition structure
|
|
*/
|
|
struct PLATFORM_FUSES
|
|
{
|
|
unsigned int DebugDisable : 1; // Bit 0 of SYS_BOOT_CNTRL and bit 79 dis_strap_override of AP config bits
|
|
unsigned int PlatformState : 4; // Bit 62-65 of AP config bits and bits 22-25 of SYS_BOOT_CNTRL
|
|
unsigned int NoNAND : 1; // Bit 17 of SYS_BOOT_CNTRL
|
|
unsigned int JTAG_Disable : 1; // Bit 6 of SYS_BOOT_CNTRL
|
|
unsigned int UseWTM : 1; // Bit 20 of SYS_BOOT_CNTRL (MMP2 and MRNA only)
|
|
unsigned int Reserved0 : 3; //
|
|
unsigned int EscapeSeqDisable : 1; // Bit 17 of SYS_BOOT_CNTRL (Tavor TD only)
|
|
unsigned int USBDisable : 1; // Bits 12 USBDisable of SYS_BOOT_CNTRL
|
|
unsigned int UARTDisable : 1; // Bits 13 UARTDisable of SYS_BOOT_CNTRL
|
|
unsigned int MMCDisable : 1; // Bit 14 MMC Enable of SYS_BOOT_CNTRL
|
|
unsigned int Resume : 1; //
|
|
unsigned int USBWakeup : 1; // Bit 16 of SYS_BOOT_CNTRL
|
|
unsigned int PortEnabled : 1; // Bit 17: 1 = Ports have been enabled by bootROM
|
|
unsigned int DDRInitialized : 1; // Bit 18: If the BootROM already initializes the DDR
|
|
unsigned int Download_Disable : 1; // Bit 19 of SYS_BOOT_CNTRL
|
|
unsigned int SBE : 1; // Bit 20 of SYS_BOOT_CNTRL (Not for MRNA or MMP2)
|
|
unsigned int OverrideDisable : 1; // Bit 78 of AP fuse config bits dis_aib_override
|
|
unsigned int BootPlatformState : 4; // Bits 22-25: There are the bits the BootROM booted from
|
|
unsigned int USBPort : 2; // Bits 26-27: 0 - DIFFUSB 1 - SEUSB
|
|
unsigned int UARTPort : 2; // Bits 28-29: 0 - FFUART, 1 - AltUART
|
|
unsigned int TBROpMode : 2; // Bits 30-31: Bits 10,11 od SYS_BOOT_CNTRL (MRNA and MMP2) only.
|
|
};
|
|
|
|
typedef enum
|
|
{
|
|
FFUART_PORT = 0,
|
|
ALTUART_PORT = 1
|
|
} UART_PORTS;
|
|
|
|
typedef enum
|
|
{
|
|
USB_DIFF_PORT = 0,
|
|
USB_SE_PORT = 1,
|
|
USB_U2D_PORT = 2,
|
|
USB_CI2_PORT = 3
|
|
} USB_PORTS;
|
|
|
|
|
|
typedef union
|
|
{
|
|
unsigned int value;
|
|
struct PLATFORM_FUSES bits;
|
|
} FUSE_SET, *pFUSE_SET;
|
|
|
|
//list of IDS for use in XFER structure
|
|
typedef enum
|
|
{
|
|
TIM_DATA = 0x54494D48, // "TIMH" - refers to tim image
|
|
PT_DATA = 0x4D505420, // "MPT " - refers to partition table
|
|
BBT_DATA = 0x4D424254, // "MBBT" - refers to bad block table
|
|
RD_DATA = 0x52444953 // "RDIS" - refers to read disturb list
|
|
} XFER_DATA;
|
|
|
|
typedef struct
|
|
{
|
|
XFER_DATA data_id;
|
|
UINT_T location;
|
|
} XFER_DATA_PAIR_T, *P_XFER_DATA_PAIR_T;
|
|
|
|
// This is the Transfer Structure.
|
|
// The first word is the id = 'TBRX'
|
|
// The next few words are fixed data
|
|
// lastly, there is a key/value array to indicate what the bootrom is passing to next image
|
|
typedef struct
|
|
{
|
|
UINT_T TransferID;
|
|
UINT_T SOD_ACCR0;
|
|
UINT_T FuseVal;
|
|
UINT_T ErrorCode;
|
|
UINT_T ResumeParam[4];
|
|
UINT_T num_data_pairs;
|
|
XFER_DATA_PAIR_T data_pairs[1];
|
|
} TRANSFER_STRUCT, *P_TRANSFER_STRUCT;
|
|
|
|
// **************** Flash Boot State Offsets *************
|
|
// Default TIM flash locations
|
|
#define TIMOffset_CS2 0x00000000
|
|
#define TIMOffset_NAND 0x00000000
|
|
#define TIMOffset_MDOC 0x00000000 // Could be in partition 2
|
|
#define TIMOffset_ONENAND 0x00000000
|
|
#define TIMOffset_SDMMC 0x00000000 // Could be in Partition 1
|
|
|
|
// For debug purposes only
|
|
#define HEX_LED_CONTROL (volatile unsigned long *)( 0x08000040 )
|
|
#define HEX_LED_WRITE (volatile unsigned long *)( 0x08000010 )
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|