blob: 851db592699f896511c687ea62f1ba05ca070a08 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
/*
* omap4-sar-layout.h: OMAP4 SAR RAM layout header file
*
* Copyright (C) 2011 Texas Instruments, Inc.
* Santosh Shilimkar <santosh.shilimkar@ti.com>
*
* 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.
*/
#ifndef OMAP_ARCH_OMAP4_SAR_LAYOUT_H
#define OMAP_ARCH_OMAP4_SAR_LAYOUT_H
#include <mach/hardware.h>
#include <mach/omap4-common.h>
#include <mach/emif-44xx.h>
#include <mach/dmm-44xx.h>
#include <mach/ctrl_module_pad_core_44xx.h>
#include "cm1_44xx.h"
#include "cm2_44xx.h"
#include "prcm-common.h"
/*
* The SAR RAM is maintained during Device OFF mode.
* It is split into 4 banks with different privilege accesses
*
* ---------------------------------------------------------------------
* Access mode Bank Address Range
* ---------------------------------------------------------------------
* HS/GP : Public 1 0x4A32_6000 - 0x4A32_6FFF (4kB)
* HS/GP : Public, Secured
* if padconfaccdisable=1 2 0x4A32_7000 - 0x4A32_73FF (1kB)
* HS/EMU : Secured
* GP : Public 3 0x4A32_8000 - 0x4A32_87FF (2kB)
* HS/GP :
* Secure Priviledge,
* write once. 4 0x4A32_9000 - 0x4A32_93FF (1kB)
* ---------------------------------------------------------------------
* The SAR RAM save regiter layout is fixed since restore is done by hardware.
*/
#define MODULE_ADDR_IDX 0
#define MODULE_OFFSET_IDX 1
#define MODULE_NB_REGS_IDX 2
#define SAR_RAM_OFFSET_IDX 3
/*
* Module Index used to lookup VA using index
*/
#define MAX_SAR_MODULES 14
#define EMIF1_INDEX 0
#define EMIF2_INDEX 1
#define DMM_INDEX 2
#define CM1_INDEX 3
#define CM2_INDEX 4
#define C2C_INDEX 5
#define CTRL_MODULE_PAD_CORE_INDEX 6
#define L3_CLK1_INDEX 7
#define L3_CLK2_INDEX 8
#define L3_CLK3_INDEX 9
#define USBTLL_INDEX 10
#define UHH_INDEX 11
#define L4CORE_INDEX 12
#define L4PER_INDEX 13
/*
* SAR BANK offsets from base address OMAP44XX_SAR_RAM_BASE
*/
#define SAR_BANK1_OFFSET 0x0000
#define SAR_BANK2_OFFSET 0x1000
#define SAR_BANK3_OFFSET 0x2000
#define SAR_BANK4_OFFSET 0x3000
/* Scratch pad memory offsets from SAR_BANK1 */
#define CPU0_SAVE_OFFSET 0xb00
#define CPU1_SAVE_OFFSET 0xc00
#define MMU_OFFSET0 0xd00
#define MMU_OFFSET1 0xd10
#define SCU_OFFSET0 0xd20
#define SCU_OFFSET1 0xd24
#define L2X0_AUXCTRL_OFFSET 0xd28
#define OMAP_TYPE_OFFSET 0xd2c
#define L2X0_LOCKDOWN_OFFSET0 0xd30
#define L2X0_PREFETCHCTRL_OFFSET 0xd34
#define L2X0_SAVE_OFFSET0 0xd38
#define L2X0_SAVE_OFFSET1 0xd3c
/* CPUx Wakeup Non-Secure Physical Address offsets in SAR_BANK3 */
#define CPU0_WAKEUP_NS_PA_ADDR_OFFSET 0xa04
#define CPU1_WAKEUP_NS_PA_ADDR_OFFSET 0xa08
/* GIC save restore offset from SAR_BANK3 */
#define SAR_BACKUP_STATUS_OFFSET (SAR_BANK3_OFFSET + 0x500)
#define SAR_SECURE_RAM_SIZE_OFFSET (SAR_BANK3_OFFSET + 0x504)
#define SAR_SECRAM_SAVED_AT_OFFSET (SAR_BANK3_OFFSET + 0x508)
#define ICDISR_CPU0_OFFSET (SAR_BANK3_OFFSET + 0x50c)
#define ICDISR_CPU1_OFFSET (SAR_BANK3_OFFSET + 0x510)
#define ICDISR_SPI_OFFSET (SAR_BANK3_OFFSET + 0x514)
#define ICDISER_CPU0_OFFSET (SAR_BANK3_OFFSET + 0x524)
#define ICDISER_CPU1_OFFSET (SAR_BANK3_OFFSET + 0x528)
#define ICDISER_SPI_OFFSET (SAR_BANK3_OFFSET + 0x52c)
#define ICDIPR_SFI_CPU0_OFFSET (SAR_BANK3_OFFSET + 0x53c)
#define ICDIPR_PPI_CPU0_OFFSET (SAR_BANK3_OFFSET + 0x54c)
#define ICDIPR_SFI_CPU1_OFFSET (SAR_BANK3_OFFSET + 0x550)
#define ICDIPR_PPI_CPU1_OFFSET (SAR_BANK3_OFFSET + 0x560)
#define ICDIPR_SPI_OFFSET (SAR_BANK3_OFFSET + 0x564)
#define ICDIPTR_SPI_OFFSET (SAR_BANK3_OFFSET + 0x5e4)
#define ICDICFR_OFFSET (SAR_BANK3_OFFSET + 0x664)
#define SAR_BACKUP_STATUS_GIC_CPU0 0x1
#define SAR_BACKUP_STATUS_GIC_CPU1 0x2
/* WakeUpGen save restore offset from OMAP44XX_SAR_RAM_BASE */
#define WAKEUPGENENB_OFFSET_CPU0 (SAR_BANK3_OFFSET + 0x684)
#define WAKEUPGENENB_SECURE_OFFSET_CPU0 (SAR_BANK3_OFFSET + 0x694)
#define WAKEUPGENENB_OFFSET_CPU1 (SAR_BANK3_OFFSET + 0x6a4)
#define WAKEUPGENENB_SECURE_OFFSET_CPU1 (SAR_BANK3_OFFSET + 0x6b4)
#define AUXCOREBOOT0_OFFSET (SAR_BANK3_OFFSET + 0x6c4)
#define AUXCOREBOOT1_OFFSET (SAR_BANK3_OFFSET + 0x6c8)
#define PTMSYNCREQ_MASK_OFFSET (SAR_BANK3_OFFSET + 0x6cc)
#define PTMSYNCREQ_EN_OFFSET (SAR_BANK3_OFFSET + 0x6d0)
#define SAR_BACKUP_STATUS_WAKEUPGEN 0x10
#endif
|