blob: 2738035519290dc3487f38e5985768a29c83b1a6 (
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
/*
* Freescale i.MX28 OCOTP Register Definitions
*
* Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
* on behalf of DENX Software Engineering GmbH
*
* Based on code from LTIB:
* Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef __MX28_REGS_OCOTP_H__
#define __MX28_REGS_OCOTP_H__
#include <asm/arch/regs-common.h>
#ifndef __ASSEMBLY__
struct mx28_ocotp_regs {
mx28_reg_32(hw_ocotp_ctrl) /* 0x0 */
mx28_reg_32(hw_ocotp_data) /* 0x10 */
mx28_reg_32(hw_ocotp_cust0) /* 0x20 */
mx28_reg_32(hw_ocotp_cust1) /* 0x30 */
mx28_reg_32(hw_ocotp_cust2) /* 0x40 */
mx28_reg_32(hw_ocotp_cust3) /* 0x50 */
mx28_reg_32(hw_ocotp_crypto0) /* 0x60 */
mx28_reg_32(hw_ocotp_crypto1) /* 0x70 */
mx28_reg_32(hw_ocotp_crypto2) /* 0x80 */
mx28_reg_32(hw_ocotp_crypto3) /* 0x90 */
mx28_reg_32(hw_ocotp_hwcap0) /* 0xa0 */
mx28_reg_32(hw_ocotp_hwcap1) /* 0xb0 */
mx28_reg_32(hw_ocotp_hwcap2) /* 0xc0 */
mx28_reg_32(hw_ocotp_hwcap3) /* 0xd0 */
mx28_reg_32(hw_ocotp_hwcap4) /* 0xe0 */
mx28_reg_32(hw_ocotp_hwcap5) /* 0xf0 */
mx28_reg_32(hw_ocotp_swcap) /* 0x100 */
mx28_reg_32(hw_ocotp_custcap) /* 0x110 */
mx28_reg_32(hw_ocotp_lock) /* 0x120 */
mx28_reg_32(hw_ocotp_ops0) /* 0x130 */
mx28_reg_32(hw_ocotp_ops1) /* 0x140 */
mx28_reg_32(hw_ocotp_ops2) /* 0x150 */
mx28_reg_32(hw_ocotp_ops3) /* 0x160 */
mx28_reg_32(hw_ocotp_un0) /* 0x170 */
mx28_reg_32(hw_ocotp_un1) /* 0x180 */
mx28_reg_32(hw_ocotp_un2) /* 0x190 */
mx28_reg_32(hw_ocotp_rom0) /* 0x1a0 */
mx28_reg_32(hw_ocotp_rom1) /* 0x1b0 */
mx28_reg_32(hw_ocotp_rom2) /* 0x1c0 */
mx28_reg_32(hw_ocotp_rom3) /* 0x1d0 */
mx28_reg_32(hw_ocotp_rom4) /* 0x1e0 */
mx28_reg_32(hw_ocotp_rom5) /* 0x1f0 */
mx28_reg_32(hw_ocotp_rom6) /* 0x200 */
mx28_reg_32(hw_ocotp_rom7) /* 0x210 */
mx28_reg_32(hw_ocotp_srk0) /* 0x220 */
mx28_reg_32(hw_ocotp_srk1) /* 0x230 */
mx28_reg_32(hw_ocotp_srk2) /* 0x240 */
mx28_reg_32(hw_ocotp_srk3) /* 0x250 */
mx28_reg_32(hw_ocotp_srk4) /* 0x260 */
mx28_reg_32(hw_ocotp_srk5) /* 0x270 */
mx28_reg_32(hw_ocotp_srk6) /* 0x280 */
mx28_reg_32(hw_ocotp_srk7) /* 0x290 */
mx28_reg_32(hw_ocotp_version) /* 0x2a0 */
};
#endif
#define OCOTP_CTRL_WR_UNLOCK_MASK (0xffff << 16)
#define OCOTP_CTRL_WR_UNLOCK_OFFSET 16
#define OCOTP_CTRL_WR_UNLOCK_KEY (0x3e77 << 16)
#define OCOTP_CTRL_RELOAD_SHADOWS (1 << 13)
#define OCOTP_CTRL_RD_BANK_OPEN (1 << 12)
#define OCOTP_CTRL_ERROR (1 << 9)
#define OCOTP_CTRL_BUSY (1 << 8)
#define OCOTP_CTRL_ADDR_MASK 0x3f
#define OCOTP_CTRL_ADDR_OFFSET 0
#define OCOTP_DATA_DATA_MASK 0xffffffff
#define OCOTP_DATA_DATA_OFFSET 0
#define OCOTP_CUST_BITS_MASK 0xffffffff
#define OCOTP_CUST_BITS_OFFSET 0
#define OCOTP_CRYPTO_BITS_MASK 0xffffffff
#define OCOTP_CRYPTO_BITS_OFFSET 0
#define OCOTP_HWCAP_BITS_MASK 0xffffffff
#define OCOTP_HWCAP_BITS_OFFSET 0
#define OCOTP_SWCAP_BITS_MASK 0xffffffff
#define OCOTP_SWCAP_BITS_OFFSET 0
#define OCOTP_CUSTCAP_RTC_XTAL_32768_PRESENT (1 << 2)
#define OCOTP_CUSTCAP_RTC_XTAL_32000_PRESENT (1 << 1)
#define OCOTP_LOCK_ROM7 (1 << 31)
#define OCOTP_LOCK_ROM6 (1 << 30)
#define OCOTP_LOCK_ROM5 (1 << 29)
#define OCOTP_LOCK_ROM4 (1 << 28)
#define OCOTP_LOCK_ROM3 (1 << 27)
#define OCOTP_LOCK_ROM2 (1 << 26)
#define OCOTP_LOCK_ROM1 (1 << 25)
#define OCOTP_LOCK_ROM0 (1 << 24)
#define OCOTP_LOCK_HWSW_SHADOW_ALT (1 << 23)
#define OCOTP_LOCK_CRYPTODCP_ALT (1 << 22)
#define OCOTP_LOCK_CRYPTOKEY_ALT (1 << 21)
#define OCOTP_LOCK_PIN (1 << 20)
#define OCOTP_LOCK_OPS (1 << 19)
#define OCOTP_LOCK_UN2 (1 << 18)
#define OCOTP_LOCK_UN1 (1 << 17)
#define OCOTP_LOCK_UN0 (1 << 16)
#define OCOTP_LOCK_SRK (1 << 15)
#define OCOTP_LOCK_UNALLOCATED_MASK (0x7 << 12)
#define OCOTP_LOCK_UNALLOCATED_OFFSET 12
#define OCOTP_LOCK_SRK_SHADOW (1 << 11)
#define OCOTP_LOCK_ROM_SHADOW (1 << 10)
#define OCOTP_LOCK_CUSTCAP (1 << 9)
#define OCOTP_LOCK_HWSW (1 << 8)
#define OCOTP_LOCK_CUSTCAP_SHADOW (1 << 7)
#define OCOTP_LOCK_HWSW_SHADOW (1 << 6)
#define OCOTP_LOCK_CRYPTODCP (1 << 5)
#define OCOTP_LOCK_CRYPTOKEY (1 << 4)
#define OCOTP_LOCK_CUST3 (1 << 3)
#define OCOTP_LOCK_CUST2 (1 << 2)
#define OCOTP_LOCK_CUST1 (1 << 1)
#define OCOTP_LOCK_CUST0 (1 << 0)
#define OCOTP_OPS_BITS_MASK 0xffffffff
#define OCOTP_OPS_BITS_OFFSET 0
#define OCOTP_UN_BITS_MASK 0xffffffff
#define OCOTP_UN_BITS_OFFSET 0
#define OCOTP_ROM_BOOT_MODE_MASK (0xff << 24)
#define OCOTP_ROM_BOOT_MODE_OFFSET 24
#define OCOTP_ROM_SD_MMC_MODE_MASK (0x3 << 22)
#define OCOTP_ROM_SD_MMC_MODE_OFFSET 22
#define OCOTP_ROM_SD_POWER_GATE_GPIO_MASK (0x3 << 20)
#define OCOTP_ROM_SD_POWER_GATE_GPIO_OFFSET 20
#define OCOTP_ROM_SD_POWER_UP_DELAY_MASK (0x3f << 14)
#define OCOTP_ROM_SD_POWER_UP_DELAY_OFFSET 14
#define OCOTP_ROM_SD_BUS_WIDTH_MASK (0x3 << 12)
#define OCOTP_ROM_SD_BUS_WIDTH_OFFSET 12
#define OCOTP_ROM_SSP_SCK_INDEX_MASK (0xf << 8)
#define OCOTP_ROM_SSP_SCK_INDEX_OFFSET 8
#define OCOTP_ROM_EMMC_USE_DDR (1 << 7)
#define OCOTP_ROM_DISABLE_SPI_NOR_FAST_READ (1 << 6)
#define OCOTP_ROM_ENABLE_USB_BOOT_SERIAL_NUM (1 << 5)
#define OCOTP_ROM_ENABLE_UNENCRYPTED_BOOT (1 << 4)
#define OCOTP_ROM_SD_MBR_BOOT (1 << 3)
#define OCOTP_SRK_BITS_MASK 0xffffffff
#define OCOTP_SRK_BITS_OFFSET 0
#define OCOTP_VERSION_MAJOR_MASK (0xff << 24)
#define OCOTP_VERSION_MAJOR_OFFSET 24
#define OCOTP_VERSION_MINOR_MASK (0xff << 16)
#define OCOTP_VERSION_MINOR_OFFSET 16
#define OCOTP_VERSION_STEP_MASK 0xffff
#define OCOTP_VERSION_STEP_OFFSET 0
#endif /* __MX28_REGS_OCOTP_H__ */
|