/********************************************************************************
 * Marvell GPL License Option
 *
 * If you received this File from Marvell, you may opt to use, redistribute and/or
 * modify this File in accordance with the terms and conditions of the General
 * Public License Version 2, June 1991 (the "GPL License"), a copy of which is
 * available along with the File in the license.txt file or by writing to the Free
 * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
 * on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
 *
 * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
 * DISCLAIMED.  The GPL License provides additional details about this warranty
 * disclaimer.
 ******************************************************************************/

#ifndef _SM_CONST_H_
#define _SM_CONST_H_
/*
 * Define address space for SM status register
 */

#define SM_APBC_BASE	0x10000000
#define SOC_APBC_BASE	0xF7FC0000

#define SM_SM_SYS_CTRL_REG_BASE		(SM_APBC_BASE + 0xD000)
#define SOC_SM_SYS_CTRL_REG_BASE	(SOC_APBC_BASE + 0xD000)

#define RA_smSysCtl_SM_RST_STATUS                      0x000C
#define RA_smSysCtl_SM_BOOT_STATUS                     0x002C
#define RA_smSysCtl_SM_CPU_CTRL							0x0004

#define	SM_ITCM_SPACE_SIZE			(0x00020000)				// 128KB
#define	SM_DTCM_REAL_SIZE			(0x00004000)				// 16 KB

#define	SM_BOOT_FLAG_REG			(SM_SM_SYS_CTRL_REG_BASE+RA_smSysCtl_SM_BOOT_STATUS- SM_APBC_BASE + SOC_APBC_BASE)
#define	SM_RST_STATUS				(SM_SM_SYS_CTRL_REG_BASE+RA_smSysCtl_SM_RST_STATUS-SM_APBC_BASE + SOC_APBC_BASE)
#define SM_CPU_CTRL					(SM_SM_SYS_CTRL_REG_BASE + RA_smSysCtl_SM_CPU_CTRL-SM_APBC_BASE + SOC_APBC_BASE)
#define	SM_WARM_BOOT_CMD_TABLE_BASE		(MEMMAP_SM_REG_BASE + SM_ITCM_SPACE_SIZE + SM_DTCM_REAL_SIZE - 512)

#define	SM_WARMDOWN_2_LINUX_ADDR		(MEMMAP_SM_REG_BASE+SM_ITCM_SPACE_SIZE+SM_DTCM_REAL_SIZE-4)
#define SM_MSG_EXTRA_BUF_ADDR		(MEMMAP_SM_REG_BASE+SM_ITCM_SPACE_SIZE+SM_DTCM_REAL_SIZE-512)
#define SM_MSG_EXTRA_BUF_SIZE		494

#define SM_MSG_PINMUX_TABLE_ADDR    0xF7FA3600
#define SM_MSG_PINMUX_TABLE_SIZE    128
#endif
