Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: arch/arm/cpu/arm_cortexa9/tegra2/warmboot.h

Issue 4841001: Tegra2: implement Warmboot code and lp0_vec (Closed) Base URL: http://git.chromium.org/git/u-boot-next.git@chromeos-v2010.09
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 /*
2 * (C) Copyright 2010
3 * NVIDIA Corporation <www.nvidia.com>
4 *
5 * See file CREDITS for list of people who contributed to this
6 * project.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of
11 * the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21 * MA 02111-1307 USA
22 */
23
24 /**
25 * Defines the warm boot 0 information for the boot rom.
26 */
27
28 #ifndef INCLUDED_WARM_BOOT_H
29 #define INCLUDED_WARM_BOOT_H
30
31 #if defined(__cplusplus)
32 extern "C"
33 {
34 #endif
35
36 /**
37 * Defines the supported operating modes.
38 */
39 typedef enum
40 {
41 nvbl_mode_production = 3,
42
43 /* Undefined. */
44 nvbl_mode_undefined,
45
46 /* Ignore -- Forces compilers to make 32-bit enums. */
47 nvbl_mode_force32 = 0x7FFFFFFF
48 } nvbl_operating_mode;
49
50 /**
51 * Defines the CMAC-AES-128 hash length in 32 bit words. (128 bits = 4 words)
52 */
53 enum {HASH_LENGTH = 4};
54
55 /**
56 * Defines the storage for a hash value (128 bits).
57 */
58 typedef struct nvboot_hash_rec
59 {
60 NvU32 hash[HASH_LENGTH];
61 } nvboot_hash;
62
63 /**
64 * Defines the code header information for the boot rom.
65 *
66 * The code immediately follows the code header.
67 *
68 * Note that the code header needs to be 16 bytes aligned to preserve
69 * the alignment of relevant data for hash and decryption computations without
70 * requiring extra copies to temporary memory areas.
71 */
72 typedef struct nvboot_wb_header_rec
73 {
74 /* Specifies the length of the code header */
75 NvU32 length_in_secure;
76
77 /* Specifies the reserved words to maintain alignment */
78 NvU32 reserved[3];
79
80 /* Specifies the hash computed over the header and code,
81 * starting at random_aes_block.
82 */
83 nvboot_hash hash;
84
85 /* Specifies the random block of data which is not validated but
86 * aids security.
87 */
88 nvboot_hash random_aes_block;
89
90 /* Specifies the length of the code header */
91 NvU32 length_secure;
92
93 /* Specifies the starting address of the code in the
94 * destination area.
95 */
96 NvU32 destination;
97
98 /* Specifies the entry point of the code in the destination area. */
99 NvU32 entry_point;
100
101 /* Specifies the length of the code */
102 NvU32 code_length;
103 } nvboot_wb_header;
104
105 typedef struct nv_fuse_hal_rec
106 {
107 NvBool (*is_odm_production_mode)(void);
108 NvBool (*is_nv_production_mode)(void);
109 } nv_fuse_hal;
110
111
112 #if defined(__cplusplus)
113 }
114 #endif
115
116 #endif /* #ifndef INCLUDED_WARM_BOOT_H */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698