1 /*---------------------------------------------------------------------------*
2 Project: TwlSDK - CARD - include
3 File: fram.h
4
5 Copyright 2007-2008 Nintendo. All rights reserved.
6
7 These coded instructions, statements, and computer programs contain
8 proprietary information of Nintendo of America Inc. and/or Nintendo
9 Company Ltd., and are protected by Federal copyright law. They may
10 not be disclosed to third parties or copied or duplicated in any form,
11 in whole or in part, without the prior written consent of Nintendo.
12
13 $Date:: 2008-09-18#$
14 $Rev: 8573 $
15 $Author: okubata_ryoma $
16
17 *---------------------------------------------------------------------------*/
18 #ifndef NITRO_CARD_FRAM_H_
19 #define NITRO_CARD_FRAM_H_
20
21
22 #include <nitro/card/backup.h>
23
24
25 #ifdef __cplusplus
26 extern "C"
27 {
28 #endif
29
30
31 /*---------------------------------------------------------------------------*/
32 /* Functions */
33
34 /*---------------------------------------------------------------------------*
35 Name: CARD_IsBackupFram
36
37 Description: Determines whether the backup device type is currently configured to be FRAM.
38
39 Arguments: None.
40
41 Returns: TRUE if the backup device type is currently configured to be FRAM.
42 *---------------------------------------------------------------------------*/
CARD_IsBackupFram(void)43 SDK_INLINE BOOL CARD_IsBackupFram(void)
44 {
45 const CARDBackupType t = CARD_GetCurrentBackupType();
46 return (((t >> CARD_BACKUP_TYPE_DEVICE_SHIFT) &
47 CARD_BACKUP_TYPE_DEVICE_MASK) == CARD_BACKUP_TYPE_DEVICE_FRAM);
48 }
49
50 /*---------------------------------------------------------------------------*
51 Name: CARD_ReadFram
52
53 Description: Synchronous read.
54
55 Arguments: src Transfer source offset
56 dst Transfer destination memory address
57 len Transfer size
58
59 Returns: TRUE on completion with CARD_RESULT_SUCCESS and FALSE otherwise.
60 *---------------------------------------------------------------------------*/
CARD_ReadFram(u32 src,void * dst,u32 len)61 SDK_INLINE BOOL CARD_ReadFram(u32 src, void *dst, u32 len)
62 {
63 return CARD_ReadBackup(src, dst, len);
64 }
65
66 /*---------------------------------------------------------------------------*
67 Name: CARD_ReadFramAsync
68
69 Description: Asynchronous read.
70
71 Arguments: src Transfer source offset
72 dst Transfer destination memory address
73 len Transfer size
74 callback Completion callback (NULL if not used)
75 arg Argument of completion callback (ignored if not used)
76
77 Returns: None.
78 *---------------------------------------------------------------------------*/
CARD_ReadFramAsync(u32 src,void * dst,u32 len,MIDmaCallback callback,void * arg)79 SDK_INLINE void CARD_ReadFramAsync(u32 src, void *dst, u32 len,
80 MIDmaCallback callback, void *arg)
81 {
82 CARD_ReadBackupAsync(src, dst, len, callback, arg);
83 }
84
85 /*---------------------------------------------------------------------------*
86 Name: CARD_WriteFram
87
88 Description: Synchronous write (equivalent to the chip command "program")
89
90 Arguments: dst Transfer destination offset
91 src Transfer source memory address
92 len Transfer size
93
94 Returns: TRUE on completion with CARD_RESULT_SUCCESS and FALSE otherwise.
95 *---------------------------------------------------------------------------*/
CARD_WriteFram(u32 dst,const void * src,u32 len)96 SDK_INLINE BOOL CARD_WriteFram(u32 dst, const void *src, u32 len)
97 {
98 return CARD_ProgramBackup(dst, src, len);
99 }
100
101 /*---------------------------------------------------------------------------*
102 Name: CARD_WriteFramAsync
103
104 Description: Asynchronous write (equivalent to the chip command "program")
105
106 Arguments: dst Transfer destination offset
107 src Transfer source memory address
108 len Transfer size
109 callback Completion callback (NULL if not used)
110 arg Argument of completion callback (ignored if not used)
111
112 Returns: None.
113 *---------------------------------------------------------------------------*/
CARD_WriteFramAsync(u32 dst,const void * src,u32 len,MIDmaCallback callback,void * arg)114 SDK_INLINE void CARD_WriteFramAsync(u32 dst, const void *src, u32 len,
115 MIDmaCallback callback, void *arg)
116 {
117 CARD_ProgramBackupAsync(dst, src, len, callback, arg);
118 }
119
120 /*---------------------------------------------------------------------------*
121 Name: CARD_VerifyFram
122
123 Description: Synchronous verify (equivalent to the chip command "read")
124
125 Arguments: src Comparison source offset
126 dst Comparison destination memory address
127 len Comparison size
128
129 Returns: TRUE on completion with CARD_RESULT_SUCCESS and FALSE otherwise.
130 *---------------------------------------------------------------------------*/
CARD_VerifyFram(u32 dst,const void * src,u32 len)131 SDK_INLINE BOOL CARD_VerifyFram(u32 dst, const void *src, u32 len)
132 {
133 return CARD_VerifyBackup(dst, src, len);
134 }
135
136 /*---------------------------------------------------------------------------*
137 Name: CARD_VerifyFramAsync
138
139 Description: Asynchronous verify (equivalent to the chip command "read")
140
141 Arguments: src Comparison source offset
142 dst Comparison destination memory address
143 len Comparison size
144 callback Completion callback (NULL if not used)
145 arg Argument of completion callback (ignored if not used)
146
147 Returns: None.
148 *---------------------------------------------------------------------------*/
CARD_VerifyFramAsync(u32 dst,const void * src,u32 len,MIDmaCallback callback,void * arg)149 SDK_INLINE void CARD_VerifyFramAsync(u32 dst, const void *src, u32 len,
150 MIDmaCallback callback, void *arg)
151 {
152 CARD_VerifyBackupAsync(dst, src, len, callback, arg);
153 }
154
155 /*---------------------------------------------------------------------------*
156 Name: CARD_WriteAndVerifyFram
157
158 Description: Synchronous write + verify
159
160 Arguments: dst Transfer destination offset
161 src Transfer source memory address
162 len Transfer size
163
164 Returns: TRUE on completion with CARD_RESULT_SUCCESS and FALSE otherwise.
165 *---------------------------------------------------------------------------*/
CARD_WriteAndVerifyFram(u32 dst,const void * src,u32 len)166 SDK_INLINE BOOL CARD_WriteAndVerifyFram(u32 dst, const void *src, u32 len)
167 {
168 return CARD_ProgramAndVerifyBackup(dst, src, len);
169 }
170
171 /*---------------------------------------------------------------------------*
172 Name: CARD_WriteAndVerifyFramAsync
173
174 Description: Asynchronous write + verify
175
176 Arguments: dst Transfer destination offset
177 src Transfer source memory address
178 len Transfer size
179 callback Completion callback (NULL if not used)
180 arg Argument of completion callback (ignored if not used)
181
182 Returns: None.
183 *---------------------------------------------------------------------------*/
CARD_WriteAndVerifyFramAsync(u32 dst,const void * src,u32 len,MIDmaCallback callback,void * arg)184 SDK_INLINE void CARD_WriteAndVerifyFramAsync(u32 dst, const void *src, u32 len,
185 MIDmaCallback callback, void *arg)
186 {
187 CARD_ProgramAndVerifyBackupAsync(dst, src, len, callback, arg);
188 }
189
190
191 #ifdef __cplusplus
192 } // extern "C"
193 #endif
194
195
196 #endif // NITRO_CARD_FRAM_H_
197