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

Side by Side Diff: arch/arm/include/asm/arch-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: Add GPL headers & fix some 80-column issues 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
« no previous file with comments | « arch/arm/include/asm/arch-tegra2/tegra2.h ('k') | arch/arm/lib/board.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include <asm/arch/nvcommon.h>
32 #include <asm/arch/nvboot_error.h>
33
34 #if defined(__cplusplus)
35 extern "C"
36 {
37 #endif
38
39 /**
40 * Defines the supported operating modes.
41 */
42 typedef enum
43 {
44 nvbl_mode_production = 3,
45
46 /* Undefined. */
47 nvbl_mode_undefined,
48
49 /* Ignore -- Forces compilers to make 32-bit enums. */
50 nvbl_mode_force32 = 0x7FFFFFFF
51 } nvbl_operating_mode;
52
53 /**
54 * Defines the CMAC-AES-128 hash length in 32 bit words. (128 bits = 4 words)
55 */
56 enum {HASH_LENGTH = 4};
57
58 /**
59 * Defines the storage for a hash value (128 bits).
60 */
61 typedef struct nvboot_hash_rec
62 {
63 NvU32 hash[HASH_LENGTH];
64 } nvboot_hash;
65
66 /**
67 * Defines the code header information for the boot rom.
68 *
69 * The code immediately follows the code header.
70 *
71 * Note that the code header needs to be 16 bytes aligned to preserve
72 * the alignment of relevant data for hash and decryption computations without
73 * requiring extra copies to temporary memory areas.
74 */
75 typedef struct nvboot_wb_header_rec
76 {
77 /* Specifies the length of the code header */
78 NvU32 length_in_secure;
79
80 /* Specifies the reserved words to maintain alignment */
81 NvU32 reserved[3];
82
83 /* Specifies the hash computed over the header and code,
84 * starting at random_aes_block.
85 */
86 nvboot_hash hash;
87
88 /* Specifies the random block of data which is not validated but
89 * aids security.
90 */
91 nvboot_hash random_aes_block;
92
93 /* Specifies the length of the code header */
94 NvU32 length_secure;
95
96 /* Specifies the starting address of the code in the
97 * destination area.
98 */
99 NvU32 destination;
100
101 /* Specifies the entry point of the code in the destination area. */
102 NvU32 entry_point;
103
104 /* Specifies the length of the code */
105 NvU32 code_length;
106 } nvboot_wb_header;
107
108 typedef struct nv_fuse_hal_rec
109 {
110 NvBool (*is_odm_production_mode)(void);
111 NvBool (*is_nv_production_mode)(void);
112 } nv_fuse_hal;
113
114 NvBootError prepare_wb_code(NvU32 seg_address, NvU32 seg_length);
115
116 #if defined(__cplusplus)
117 }
118 #endif
119
120 #endif /* #ifndef INCLUDED_WARM_BOOT_H */
OLDNEW
« no previous file with comments | « arch/arm/include/asm/arch-tegra2/tegra2.h ('k') | arch/arm/lib/board.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698