2 * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * @file ss_sm_rom_access.h
19 * @brief This file provides API for get rom information from extension memory
22 /** @addtogroup BaseSystem
25 /** @addtogroup system_service
29 /** @addtogroup rom_access_library
30 * @ingroup system_service
34 #ifndef ROM_ACCESS_LIBRARY_LIBRARY_INCLUDE_SYSTEM_SERVICE_SS_SM_ROM_ACCESS_H_
35 #define ROM_ACCESS_LIBRARY_LIBRARY_INCLUDE_SYSTEM_SERVICE_SS_SM_ROM_ACCESS_H_
37 #include <native_service/frameworkunified_types.h>
38 #include <native_service/frameworkunified_framework_types.h>
40 #include "system_service/ss_sm_boot_access.h"
43 * \~english boot mode information
51 * \~english active flash load information
59 * \~english user mode information
67 * \~english control mode information
75 * \~english data reset mode information
84 * \~english last illegal reset mode information
87 LAST_ILGRESET_NORMAL = 0,
92 * \~english Program update state information
94 typedef uint32_t EPROGUPDATE_STATE;
97 * \~english next wakeup type
100 NEXT_WAKEUP_TYPE_NONE = 0,
101 NEXT_WAKEUP_TYPE_COLD,
102 NEXT_WAKEUP_TYPE_HOT,
106 * \~english DRAM backup state
109 DRAM_BACKUP_STATE_OK = 0,
114 * \~english max length of rom product private
116 #define ROM_PRODUCT_PRIVATE_MAX 128
119 * @class ROM_AccessIf
120 * \~english @brief ROM_AccessIf
121 * \~english @par Brief Introduction
122 * Class to provide the function of ROM AccessIf
127 BOOT_AccessIf* m_pBoot;
128 static void* g_m_plock;
129 static void* g_m_bakup_map;
130 static bool g_m_is_dram_valid;
134 EFrameworkunifiedStatus LBA_Read(UI_32 offset, UI_32* buffer, UI_32 word_count);
136 EFrameworkunifiedStatus LBA_Write(UI_32 offset, UI_32 value);
138 EFrameworkunifiedStatus LBA_Write(UI_32 offset, UI_32* value, UI_32 size);
140 EFrameworkunifiedStatus GetDataResetMode_sub(EDATARESET_MODE* p_data_reset_mode);
144 * \ingroup ROM_AccessIf
145 * \~english @par Summary:
146 * Obtain the access permission to SYS area (secondary storage area).
147 * \~english @param None
148 * \~english @retval None
149 * \~english @par Precondition:
151 * \~english @par Change in the internal status:
152 * - The change in the internal status does not occur by this API.
153 * \~english @par Conditions of processing failure
155 * \~english @par Classification:
157 * \~ english @par Type
159 * \~english @par Detail:
160 * Obtain the access permission to SYS area. \n
161 * When the access permission is locked, the API watis for Mutex until the access permission is released. \n
162 * This API is assumed to be called by the SystemManager.
163 * \~english @see ~ROM_AccessIf, CL_LockMap, CL_LockGet
168 * \ingroup ~ROM_AccessIf
169 * \~english @par Summary:
170 * Release the access permission to SYS area (secondary storage area).
171 * \~english @param None
172 * \~english @retval None
173 * \~english @par Precondition:
175 * \~english @par Change in the internal status:
176 * - The change in the internal status does not occur by this API.
177 * \~english @par Conditions of processing failure
179 * \~english @par Classification:
181 * \~ english @par Type
183 * \~english @par Detail:
184 * Release the access permission to SYS area.
185 * \~english @see ROM_AccessIf, CL_LockRelease
190 * \ingroup Initialize
191 * \~english @par Summary:
192 * Synchronize SYS area (secondary storage area) and the mirror data in DRAM
193 * \~english @param None
194 * \~english @retval eFrameworkunifiedStatusOK Synchronization success
195 * \~english @retval eFrameworkunifiedStatusFail Synchronization failed
196 * \~english @par Precondition:
198 * \~english @par Change in the internal status:
199 * - The change in the internal status does not occur by this API.
200 * \~english @par Conditions of processing failure
201 * - If system call mmap failed. [eFrameworkunifiedStatusFail]
202 * \~english @par Classification:
204 * \~ english @par Type
205 * Sync only(None communication)
206 * \~english @par Detail:
207 * Prepare the access to SYS area. \n
208 * \~english @see EL_mem_exram_mmap
210 EFrameworkunifiedStatus Initialize();
213 * \ingroup SetProductPrivate
214 * \~english @par Summary:
215 * Write data information depending on the product specification to the secondary storage area.
216 * \~english @param [in] buf[ROM_PRODUCT_PRIVATE_MAX]
217 * UI_8[] - Data information depending on the product specification
219 * Definition of ROM_PRODUCT_PRIVATE_MAX
221 * #define ROM_PRODUCT_PRIVATE_MAX 128
223 * \~english @retval eFrameworkunifiedStatusOK Success
224 * \~english @retval eFrameworkunifiedStatusFail Failed
225 * \~english @par Precondition:
227 * \~english @par Change in the internal status:
228 * - The change in the internal status does not occur by this API.
229 * \~english @par Conditions of processing failure
230 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
231 * \~english @par Classification:
233 * \~ english @par Type
234 * Sync only(None communication)
235 * \~english @par Detail:
236 * Write data information depending on the product specification to the secondary storage area. \n
237 * \~english @see GetProductPrivate
239 EFrameworkunifiedStatus SetProductPrivate(UI_8 buf[ROM_PRODUCT_PRIVATE_MAX]);
242 * \ingroup GetProductPrivate
243 * \~english @par Summary:
244 * Read the data information depending on the product specification from the secondary storage area.
245 * \~english @param [out] buf[ROM_PRODUCT_PRIVATE_MAX]
246 * UI_8[] - Storing destination of data information depending on the product specification
248 * Definition of ROM_PRODUCT_PRIVATE_MAX
250 * #define ROM_PRODUCT_PRIVATE_MAX 128
252 * \~english @retval eFrameworkunifiedStatusOK Success
253 * \~english @retval eFrameworkunifiedStatusFail Failed
254 * \~english @par Precondition:
256 * \~english @par Change in the internal status:
257 * - The change in the internal status does not occur by this API.
258 * \~english @par Conditions of processing failure
259 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
260 * \~english @par Classification:
262 * \~ english @par Type
263 * Sync only(None communication)
264 * \~english @par Detail:
265 * Read data information depending on the product specification from the secondary storage area. \n
266 * \~english @see SetProductPrivate
268 EFrameworkunifiedStatus GetProductPrivate(UI_8 buf[ROM_PRODUCT_PRIVATE_MAX]);
271 * \ingroup SystemInitialize
272 * \~english @par Summary:
273 * Initialize the handles used for ROM access.
274 * \~english @param [in] bkup_state
277 * - DRAM_BACKUP_STATE_OK
278 * - DRAM_BACKUP_STATE_NG
279 * \~english @retval eFrameworkunifiedStatusOK Initialize the handles used for ROM access success
280 * \~english @retval eFrameworkunifiedStatusFail Initialize the handles used for ROM access failed
281 * \~english @par Precondition:
283 * \~english @par Change in the internal status:
284 * - The change in the internal status does not occur by this API.
285 * \~english @par Conditions of processing failure
286 * - If system call mmap failed. [eFrameworkunifiedStatusFail]
287 * \~english @par Classification:
289 * \~ english @par Type
290 * Sync only(None communication)
291 * \~english @par Detail:
292 * Initialize the handles used for ROM access. \n
293 * \~english @see EL_mem_exram_mmap
295 EFrameworkunifiedStatus SystemInitialize(DRAM_BACKUP_STATE bkup_state);
298 * \ingroup GetBootMode
299 * \~english @par Summary:
300 * Get boot mode information.
301 * \~english @param [out] p_boot_mode
302 * EBOOT_MODE* - Destination buffer to store information of boot mode.
307 * \~english @retval eFrameworkunifiedStatusOK Success
308 * \~english @retval eFrameworkunifiedStatusFail Failed
309 * \~english @par Precondition:
311 * \~english @par Change in the internal status:
312 * - The change in the internal status does not occur by this API.
313 * \~english @par Conditions of processing failure
314 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
315 * \~english @par Classification:
317 * \~ english @par Type
318 * Sync only(None communication)
319 * \~english @par Detail:
320 * Get boot mode information from the secondary storage area. \n
321 * \~english @see SetBootMode
323 EFrameworkunifiedStatus GetBootMode(EBOOT_MODE* p_boot_mode);
326 * \ingroup SetBootMode
327 * \~english @par Summary:
328 * Set boot mode information.
329 * \~english @param [in] boot_mode
330 * EBOOT_MODE - Boot mode information which write to the secondary storage area.
335 * \~english @retval eFrameworkunifiedStatusOK Success
336 * \~english @retval eFrameworkunifiedStatusFail Failed
337 * \~english @par Precondition:
339 * \~english @par Change in the internal status:
340 * - The change in the internal status does not occur by this API.
341 * \~english @par Conditions of processing failure
342 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
343 * \~english @par Classification:
345 * \~ english @par Type
346 * Sync only(None communication)
347 * \~english @par Detail:
348 * Set boot mode information to the secondary storage area. \n
349 * \~english @see GetBootMode
351 EFrameworkunifiedStatus SetBootMode(EBOOT_MODE boot_mode);
354 * \ingroup GetSignature
355 * \~english @par Summary:
356 * Get signature information.
357 * \~english @param [out] p_sig_value
358 * UI_32 - Destination buffer to store signature information
359 * \~english @retval eFrameworkunifiedStatusOK Success
360 * \~english @retval eFrameworkunifiedStatusFail Failed
361 * \~english @par Precondition:
363 * \~english @par Change in the internal status:
364 * - The change in the internal status does not occur by this API.
365 * \~english @par Conditions of processing failure
366 * - If write signature information to secondary storage area failed [eFrameworkunifiedStatusFail]
367 * \~english @par Classification:
369 * \~ english @par Type
370 * Sync only(None communication)
371 * \~english @par Detail:
372 * Get signature information from the secondary storage area. \n
373 * \~english @see SetSignature
375 EFrameworkunifiedStatus GetSignature(UI_32* p_sig_value);
378 * \ingroup SetSignature
379 * \~english @par Summary:
380 * Set signature information.
381 * \~english @param [in] sig_value
382 * UI_32 - Signature information which write to the secondary storage area.
383 * \~english @retval eFrameworkunifiedStatusOK Success
384 * \~english @retval eFrameworkunifiedStatusFail Failed
385 * \~english @par Precondition:
387 * \~english @par Change in the internal status:
388 * - The change in the internal status does not occur by this API.
389 * \~english @par Conditions of processing failure
390 * - If write signature information to secondary storage area failed [eFrameworkunifiedStatusFail]
391 * \~english @par Classification:
393 * \~ english @par Type
394 * Sync only(None communication)
395 * \~english @par Detail:
396 * Set signature information to the secondary storage area. \n
397 * \~english @see GetSignature
399 EFrameworkunifiedStatus SetSignature(UI_32 sig_value);
402 * \ingroup SetActiveFlashloader
403 * \~english @par Summary:
404 * Set active flash loader information.
405 * \~english @param [in] active_flash_loader
406 * EACTIVE_FLASHLOADER - Active flash loader information which write to secondary storage area.
411 * \~english @retval eFrameworkunifiedStatusOK Success
412 * \~english @retval eFrameworkunifiedStatusFail Failed
413 * \~english @par Precondition:
415 * \~english @par Change in the internal status:
416 * - The change in the internal status does not occur by this API.
417 * \~english @par Conditions of processing failure
418 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
419 * \~english @par Classification:
421 * \~ english @par Type
422 * Sync only(None communication)
423 * \~english @par Detail:
424 * Set active flash loader information to the secondary storage area. \n
425 * \~english @see GetBootMode
427 EFrameworkunifiedStatus SetActiveFlashloader(EACTIVE_FLASHLOADER active_flash_loader);
430 * \ingroup GetLastUserMode
431 * \~english @par Summary:
432 * Get last user mode information.
433 * \~english @param [out] p_user_mode
434 * EUSER_MODE* - Destination buffer to store information of user mode.
439 * \~english @retval eFrameworkunifiedStatusOK Success
440 * \~english @retval eFrameworkunifiedStatusFail Failed
441 * \~english @par Precondition:
443 * \~english @par Change in the internal status:
444 * - The change in the internal status does not occur by this API.
445 * \~english @par Conditions of processing failure
446 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
447 * \~english @par Classification:
449 * \~ english @par Type
450 * Sync only(None communication)
451 * \~english @par Detail:
452 * Get last user mode information from the secondary storage area. \n
453 * \~english @see SetLastUserMode
455 EFrameworkunifiedStatus GetLastUserMode(EUSER_MODE* p_user_mode);
458 * \ingroup SetLastUserMode
459 * \~english @par Summary:
460 * Set last user mode information.
461 * \~english @param [in] user_mode
462 * EUSER_MODE - User mode information which write to the secondary storage area.
467 * \~english @retval eFrameworkunifiedStatusOK Success
468 * \~english @retval eFrameworkunifiedStatusFail Failed
469 * \~english @par Precondition:
471 * \~english @par Change in the internal status:
472 * - The change in the internal status does not occur by this API.
473 * \~english @par Conditions of processing failure
474 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
475 * \~english @par Classification:
477 * \~ english @par Type
478 * Sync only(None communication)
479 * \~english @par Detail:
480 * Set last user mode information to the secondary storage area. \n
481 * \~english @see GetLastUserMode
483 EFrameworkunifiedStatus SetLastUserMode(EUSER_MODE user_mode);
486 * \ingroup GetTransportMode
487 * \~english @par Summary:
488 * Get transport mode information.
489 * \~english @param [out] p_control_mode
490 * ECONTROL_MODE* - Destination buffer to store information of transport mode.
495 * \~english @retval eFrameworkunifiedStatusOK Success
496 * \~english @retval eFrameworkunifiedStatusFail Failed
497 * \~english @par Precondition:
499 * \~english @par Change in the internal status:
500 * - The change in the internal status does not occur by this API.
501 * \~english @par Conditions of processing failure
502 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
503 * \~english @par Classification:
505 * \~ english @par Type
506 * Sync only(None communication)
507 * \~english @par Detail:
508 * Get transport mode information from the secondary storage area. \n
509 * \~english @see SetTransportMode
511 EFrameworkunifiedStatus GetTransportMode(ECONTROL_MODE* p_control_mode);
514 * \ingroup SetTransportMode
515 * \~english @par Summary:
516 * Set transport mode information.
517 * \~english @param [in] control_mode
518 * ECONTROL_MODE - Transport mode information which write to the secondary storage area.
523 * \~english @retval eFrameworkunifiedStatusOK Success
524 * \~english @retval eFrameworkunifiedStatusFail Failed
525 * \~english @par Precondition:
527 * \~english @par Change in the internal status:
528 * - The change in the internal status does not occur by this API.
529 * \~english @par Conditions of processing failure
530 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
531 * \~english @par Classification:
533 * \~ english @par Type
534 * Sync only(None communication)
535 * \~english @par Detail:
536 * Set transport mode information to the secondary storage area. \n
537 * \~english @see GetTransportMode
539 EFrameworkunifiedStatus SetTransportMode(ECONTROL_MODE control_mode);
542 * \ingroup GetProductionMode
543 * \~english @par Summary:
544 * Get production mode information.
545 * \~english @param [out] p_control_mode
546 * ECONTROL_MODE* - Destination buffer to store information of production mode.
551 * \~english @retval eFrameworkunifiedStatusOK Success
552 * \~english @retval eFrameworkunifiedStatusFail Failed
553 * \~english @par Precondition:
555 * \~english @par Change in the internal status:
556 * - The change in the internal status does not occur by this API.
557 * \~english @par Conditions of processing failure
558 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
559 * \~english @par Classification:
561 * \~ english @par Type
562 * Sync only(None communication)
563 * \~english @par Detail:
564 * Get production mode information from the secondary storage area. \n
565 * \~english @see SetProductionMode
567 EFrameworkunifiedStatus GetProductionMode(ECONTROL_MODE* p_control_mode);
570 * \ingroup SetProductionMode
571 * \~english @par Summary:
572 * Set transport mode information.
573 * \~english @param [in] control_mode
574 * ECONTROL_MODE - Production mode information which write to the secondary storage area.
579 * \~english @retval eFrameworkunifiedStatusOK Success
580 * \~english @retval eFrameworkunifiedStatusFail Failed
581 * \~english @par Precondition:
583 * \~english @par Change in the internal status:
584 * - The change in the internal status does not occur by this API.
585 * \~english @par Conditions of processing failure
586 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
587 * \~english @par Classification:
589 * \~ english @par Type
590 * Sync only(None communication)
591 * \~english @par Detail:
592 * Set production mode information to the secondary storage area. \n
593 * \~english @see GetProductionMode
595 EFrameworkunifiedStatus SetProductionMode(ECONTROL_MODE control_mode);
598 * \ingroup GetLimpHomeCutOffReqMode
599 * \~english @par Summary:
600 * Get limp home cut off request mode information.
601 * \~english @param [out] p_control_mode
602 * ECONTROL_MODE* - Destination buffer to store information of limp home cut off request mode.
607 * \~english @retval eFrameworkunifiedStatusOK Success
608 * \~english @retval eFrameworkunifiedStatusFail Failed
609 * \~english @par Precondition:
611 * \~english @par Change in the internal status:
612 * - The change in the internal status does not occur by this API.
613 * \~english @par Conditions of processing failure
614 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
615 * \~english @par Classification:
617 * \~ english @par Type
618 * Sync only(None communication)
619 * \~english @par Detail:
620 * Get limp home cut off request mode information from the secondary storage area. \n
621 * \~english @see SetLimpHomeCutOffReqMode
623 EFrameworkunifiedStatus GetLimpHomeCutOffReqMode(ECONTROL_MODE* p_control_mode);
626 * \ingroup SetLimpHomeCutOffReqMode
627 * \~english @par Summary:
628 * Set limp home cut off request mode information.
629 * \~english @param [in] control_mode
630 * ECONTROL_MODE - Limp home cut off request mode information which write to the secondary storage area.
635 * \~english @retval eFrameworkunifiedStatusOK Success
636 * \~english @retval eFrameworkunifiedStatusFail Failed
637 * \~english @par Precondition:
639 * \~english @par Change in the internal status:
640 * - The change in the internal status does not occur by this API.
641 * \~english @par Conditions of processing failure
642 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
643 * \~english @par Classification:
645 * \~ english @par Type
646 * Sync only(None communication)
647 * \~english @par Detail:
648 * Set limp home cut off request mode information to the secondary storage area. \n
649 * \~english @see GetLimpHomeCutOffReqMode
651 EFrameworkunifiedStatus SetLimpHomeCutOffReqMode(ECONTROL_MODE control_mode);
654 * \ingroup GetDataResetMode
655 * \~english @par Summary:
656 * Get reserved data reset mode information.
657 * \~english @param [out] p_data_reset_mode
658 * EDATARESET_MODE* - Destination buffer to store information of reserved data reset mode.
663 * - DATARESET_FACTORY
664 * \~english @retval eFrameworkunifiedStatusOK Success
665 * \~english @retval eFrameworkunifiedStatusFail Failed
666 * \~english @par Precondition:
668 * \~english @par Change in the internal status:
669 * - The change in the internal status does not occur by this API.
670 * \~english @par Conditions of processing failure
671 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
672 * \~english @par Classification:
674 * \~ english @par Type
675 * Sync only(None communication)
676 * \~english @par Detail:
677 * Get reserved data reset mode information from the secondary storage area. \n
678 * \~english @see SetDataResetMode
680 EFrameworkunifiedStatus GetDataResetMode(EDATARESET_MODE* p_data_reset_mode);
683 * \ingroup GetDataResetModeFast
684 * \~english @par Summary:
685 * Get reserved data reset mode information faster.This api can get correct value before
686 * calling SetDataResetMode.So it shoud be used only immediately after boot.
687 * \~english @param [out] p_data_reset_mode
688 * EDATARESET_MODE* - Destination buffer to store information of reserved data reset mode faster.
693 * - DATARESET_FACTORY
694 * \~english @retval eFrameworkunifiedStatusOK Success
695 * \~english @retval eFrameworkunifiedStatusFail Failed
696 * \~english @par Precondition:
698 * \~english @par Change in the internal status:
699 * - The change in the internal status does not occur by this API.
700 * \~english @par Conditions of processing failure
701 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
702 * - If system call mmap failed. [eFrameworkunifiedStatusFail]
703 * \~english @par Classification:
705 * \~ english @par Type
706 * Sync only(None communication)
707 * \~english @par Detail:
708 * Get reserved data reset mode information faster from the secondary storage area.This api can get
709 * correct value before calling SetDataResetMode.So it shoud be used only immediately after boot.
710 * \~english @see SetDataResetMode
712 EFrameworkunifiedStatus GetDataResetModeFast(EDATARESET_MODE* p_data_reset_mode);
715 * \ingroup SetDataResetMode
716 * \~english @par Summary:
717 * Set reserve data reset mode information.
718 * \~english @param [in] data_reset_mode
719 * EDATARESET_MODE - Reserve data reset mode information which write to the secondary storage area.
724 * - DATARESET_FACTORY
725 * \~english @retval eFrameworkunifiedStatusOK Success
726 * \~english @retval eFrameworkunifiedStatusFail Failed
727 * \~english @par Precondition:
729 * \~english @par Change in the internal status:
730 * - The change in the internal status does not occur by this API.
731 * \~english @par Conditions of processing failure
732 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
733 * \~english @par Classification:
735 * \~ english @par Type
736 * Sync only(None communication)
737 * \~english @par Detail:
738 * Set reserve data reset mode information to the secondary storage area. \n
739 * \~english @see GetDataResetMode
741 EFrameworkunifiedStatus SetDataResetMode(EDATARESET_MODE data_reset_mode);
744 * \ingroup GetResetCount
745 * \~english @par Summary:
746 * Get reset count information.
747 * \~english @param [out] p_reset_count
748 * UI_32* - Destination buffer to store information of reset count.
749 * \~english @retval eFrameworkunifiedStatusOK Success
750 * \~english @retval eFrameworkunifiedStatusFail Failed
751 * \~english @par Precondition:
753 * \~english @par Change in the internal status:
754 * - The change in the internal status does not occur by this API.
755 * \~english @par Conditions of processing failure
756 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
757 * \~english @par Classification:
759 * \~ english @par Type
760 * Sync only(None communication)
761 * \~english @par Detail:
762 * Get reset count from the secondary storage area. \n
763 * \~english @see SetResetCount
765 EFrameworkunifiedStatus GetResetCount(UI_32* p_reset_count);
768 * \ingroup SetResetCount
769 * \~english @par Summary:
770 * Set reset count information.
771 * \~english @param [in] reset_count
772 * UI_32 - Reset count information which write to the secondary storage area.
773 * \~english @retval eFrameworkunifiedStatusOK Success
774 * \~english @retval eFrameworkunifiedStatusFail Failed
775 * \~english @par Precondition:
777 * \~english @par Change in the internal status:
778 * - The change in the internal status does not occur by this API.
779 * \~english @par Conditions of processing failure
780 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
781 * \~english @par Classification:
783 * \~ english @par Type
784 * Sync only(None communication)
785 * \~english @par Detail:
786 * Set reset count information to the secondary storage area. \n
787 * \~english @see GetResetCount
789 EFrameworkunifiedStatus SetResetCount(UI_32 reset_count);
792 * \ingroup GetLastIlgReset
793 * \~english @par Summary:
794 * Get last illegal reset information.
795 * \~english @param [out] p_last_ilg_reset
796 * ELASTILGRESET_MODE* - Destination buffer to store information of last illegal reset.
799 * - LAST_ILGRESET_NORMAL
801 * \~english @retval eFrameworkunifiedStatusOK Success
802 * \~english @retval eFrameworkunifiedStatusFail Failed
803 * \~english @par Precondition:
805 * \~english @par Change in the internal status:
806 * - The change in the internal status does not occur by this API.
807 * \~english @par Conditions of processing failure
808 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
809 * \~english @par Classification:
811 * \~ english @par Type
812 * Sync only(None communication)
813 * \~english @par Detail:
814 * Get last illegal reset information from the secondary storage area. \n
815 * \~english @see SetLastIlgReset
817 EFrameworkunifiedStatus GetLastIlgReset(ELASTILGRESET_MODE* p_last_ilg_reset);
820 * \ingroup SetLastIlgReset
821 * \~english @par Summary:
822 * Set last illegal reset information.
823 * \~english @param [in] last_ilg_reset
824 * ELASTILGRESET_MODE - Last illegal reset information which write to the secondary storage area.
827 * - LAST_ILGRESET_NORMAL
829 * \~english @retval eFrameworkunifiedStatusOK Success
830 * \~english @retval eFrameworkunifiedStatusFail Failed
831 * \~english @par Precondition:
833 * \~english @par Change in the internal status:
834 * - The change in the internal status does not occur by this API.
835 * \~english @par Conditions of processing failure
836 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
837 * \~english @par Classification:
839 * \~ english @par Type
840 * Sync only(None communication)
841 * \~english @par Detail:
842 * Set last illegal reset information to the secondary storage area. \n
843 * \~english @see GetLastIlgReset
845 EFrameworkunifiedStatus SetLastIlgReset(ELASTILGRESET_MODE last_ilg_reset);
848 * \ingroup GetProgUpdateState
849 * \~english @par Summary:
850 * Get program update status information.
851 * \~english @param [out] p_prog_update_state
852 * EPROGUPDATE_STATE* - Destination buffer to store information of program update status.
854 * typedef uint32_t EPROGUPDATE_STATE
855 * \~english @retval eFrameworkunifiedStatusOK Success
856 * \~english @retval eFrameworkunifiedStatusFail Failed
857 * \~english @par Precondition:
859 * \~english @par Change in the internal status:
860 * - The change in the internal status does not occur by this API.
861 * \~english @par Conditions of processing failure
862 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
863 * \~english @par Classification:
865 * \~ english @par Type
866 * Sync only(None communication)
867 * \~english @par Detail:
868 * Get program update status information from the secondary storage area. \n
869 * \~english @see SetProgUpdateState
871 EFrameworkunifiedStatus GetProgUpdateState(EPROGUPDATE_STATE* p_prog_update_state);
874 * \ingroup SetProgUpdateState
875 * \~english @par Summary:
876 * Set program update status information.
877 * \~english @param [in] prog_update_state
878 * EPROGUPDATE_STATE - Program update status information which write to the secondary storage area.
880 * typedef uint32_t EPROGUPDATE_STATE
881 * \~english @retval eFrameworkunifiedStatusOK Success
882 * \~english @retval eFrameworkunifiedStatusFail Failed
883 * \~english @par Precondition:
885 * \~english @par Change in the internal status:
886 * - The change in the internal status does not occur by this API.
887 * \~english @par Conditions of processing failure
888 * - If write data to secondary storage area failed [eFrameworkunifiedStatusFail]
889 * \~english @par Classification:
891 * \~ english @par Type
892 * Sync only(None communication)
893 * \~english @par Detail:
894 * Set program update status information to the secondary storage area. \n
895 * \~english @see GetProgUpdateState
897 EFrameworkunifiedStatus SetProgUpdateState(EPROGUPDATE_STATE prog_update_state);
900 * \ingroup GetErrLogCount
901 * \~english @par Summary:
902 * Get error logging count information.
903 * \~english @param [out] p_err_log_count
904 * UI_32* - Destination buffer to store information of error logging count.
905 * \~english @retval eFrameworkunifiedStatusOK Success
906 * \~english @retval eFrameworkunifiedStatusFail Failed
907 * \~english @par Precondition:
909 * \~english @par Change in the internal status:
910 * - The change in the internal status does not occur by this API.
911 * \~english @par Conditions of processing failure
912 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
913 * \~english @par Classification:
915 * \~ english @par Type
916 * Sync only(None communication)
917 * \~english @par Detail:
918 * Get error logging count information from the secondary storage area. \n
919 * \~english @see SetErrLogCount
921 EFrameworkunifiedStatus GetErrLogCount(UI_32* p_err_log_count);
924 * \ingroup SetErrLogCount
925 * \~english @par Summary:
926 * Get error logging count information.
927 * \~english @param [out] err_log_count
928 * UI_32* - Destination buffer to store information of error logging count.
929 * \~english @retval eFrameworkunifiedStatusOK Success
930 * \~english @retval eFrameworkunifiedStatusFail Failed
931 * \~english @par Precondition:
933 * \~english @par Change in the internal status:
934 * - The change in the internal status does not occur by this API.
935 * \~english @par Conditions of processing failure
936 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
937 * \~english @par Classification:
939 * \~ english @par Type
940 * Sync only(None communication)
941 * \~english @par Detail:
942 * Get error logging count information from the secondary storage area. \n
943 * \~english @see GetErrLogCount
945 EFrameworkunifiedStatus SetErrLogCount(UI_32 err_log_count);
948 * \ingroup GetNextWakeupType
949 * \~english @par Summary:
950 * Get next wakeup type information.
951 * \~english @param [out] p_next_wakeup_type
952 * ENEXT_WAKEUP_TYPE* - Destination buffer to store information of next wakeup type.
955 * - NEXT_WAKEUP_TYPE_NONE
956 * - NEXT_WAKEUP_TYPE_COLD
957 * - NEXT_WAKEUP_TYPE_HOT
958 * \~english @retval eFrameworkunifiedStatusOK Success
959 * \~english @retval eFrameworkunifiedStatusFail Failed
960 * \~english @par Precondition:
962 * \~english @par Change in the internal status:
963 * - The change in the internal status does not occur by this API.
964 * \~english @par Conditions of processing failure
965 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
966 * \~english @par Classification:
968 * \~ english @par Type
969 * Sync only(None communication)
970 * \~english @par Detail:
971 * Get next wakeup type information from the secondary storage area. \n
972 * \~english @see SetNextWakeupType
974 EFrameworkunifiedStatus GetNextWakeupType(ENEXT_WAKEUP_TYPE *p_next_wakeup_type);
977 * \ingroup SetNextWakeupType
978 * \~english @par Summary:
979 * Get next wakeup type information.
980 * \~english @param [out] next_wakeup_type
981 * ENEXT_WAKEUP_TYPE* - Destination buffer to store information of next wakeup type.
984 * - NEXT_WAKEUP_TYPE_NONE
985 * - NEXT_WAKEUP_TYPE_COLD
986 * - NEXT_WAKEUP_TYPE_HOT
987 * \~english @retval eFrameworkunifiedStatusOK Success
988 * \~english @retval eFrameworkunifiedStatusFail Failed
989 * \~english @par Precondition:
991 * \~english @par Change in the internal status:
992 * - The change in the internal status does not occur by this API.
993 * \~english @par Conditions of processing failure
994 * - If read data from secondary storage area failed [eFrameworkunifiedStatusFail]
995 * \~english @par Classification:
997 * \~ english @par Type
998 * Sync only(None communication)
999 * \~english @par Detail:
1000 * Get next wakeup type information from the secondary storage area. \n
1001 * \~english @see GetNextWakeupType
1003 EFrameworkunifiedStatus SetNextWakeupType(ENEXT_WAKEUP_TYPE next_wakeup_type);
1006 #endif // ROM_ACCESS_LIBRARY_LIBRARY_INCLUDE_SYSTEM_SERVICE_SS_SM_ROM_ACCESS_H_
1008 /** @}*/ // end of rom_access_library
1009 /** @}*/ // end of system_service
1010 /** @}*/ // end of BaseSystem