summaryrefslogtreecommitdiffstats
path: root/video_in_hal/systemservice/rom_access_library/library/rom/src/ss_sm_ram_access.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'video_in_hal/systemservice/rom_access_library/library/rom/src/ss_sm_ram_access.cpp')
-rwxr-xr-xvideo_in_hal/systemservice/rom_access_library/library/rom/src/ss_sm_ram_access.cpp215
1 files changed, 0 insertions, 215 deletions
diff --git a/video_in_hal/systemservice/rom_access_library/library/rom/src/ss_sm_ram_access.cpp b/video_in_hal/systemservice/rom_access_library/library/rom/src/ss_sm_ram_access.cpp
deleted file mode 100755
index b5cf244..0000000
--- a/video_in_hal/systemservice/rom_access_library/library/rom/src/ss_sm_ram_access.cpp
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "system_service/ss_sm_ram_access.h"
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <native_service/cl_lock.h>
-#include <native_service/cl_lockid.h>
-#include <stub/el_mem.h>
-#include "system_service/ss_sm_boot_access.h"
-#include "ss_rom_access_if_romaccesslibrarylog.h"
-#include "ss_sm_checksum.h"
-#include "ss_rom_access_define.h"
-
-
-
-#define RAM_PATH "/nv/BS/ss/rom_access_library/rwdata/ramdata.dat"
-#define RAM_OLD_PATH RAM_PATH".old"
-static const uint8_t kSigNature[] = { 0xDE, 0xAD, 0xBE, 0xEF };
-static const uint8_t kMagic[] = { 0xDE, 0xAD, 0xBE, 0xEF };
-
-void* RAM_AccessIf::g_m_plock = NULL;
-void* RAM_AccessIf::g_m_bakup_map = MAP_FAILED;
-bool RAM_AccessIf::g_m_is_first_access = false;
-
-typedef struct {
- char magic_in[4];
- RAM_SM_INFO_t data0;
- uint32_t checksum0;
- RAM_SM_INFO_t data1;
- uint32_t checksum1;
- char magic_out[4];
-} RAM_SM_DRAM_INFO_t;
-
-void RAM_AccessIf::initRamBackupEnable(RAM_WAKEUP_STATE wupState) {
- RAM_SM_DRAM_INFO_t* p_buf;
- CSMChecksum l_checksum;
-
- ROM_ACCESS_STATIC_ASERT(sizeof(RAM_SM_DRAM_INFO_t) <= SS_SYS_AREA_RAM_MAX_SIZE);
- // Checking sizes because checksum calculations expect 4 bytes alignments
- ROM_ACCESS_STATIC_ASERT((sizeof(RAM_SM_DRAM_INFO_t) % sizeof(UI_32)) == 0);
-
- if (g_m_bakup_map == MAP_FAILED) {
- g_m_bakup_map = EL_mem_exram_mmap( // LCOV_EXCL_BR_LINE 11:unexpected branch
- EL_MEM_TYPE_REGION_SYS,
- EL_mem_getOffset(EL_MEM_ID_SYS_BOOT) + SS_SYS_AREA_RAM_OFFSET, // LCOV_EXCL_BR_LINE 11:unexpected branch
- SS_SYS_AREA_RAM_MAX_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED,
- EL_MEM_CACHE_INVALID);
- // LCOV_EXCL_BR_START 6:impossible to confirm because g_m_bakup_map can not be changed
- if (g_m_bakup_map == MAP_FAILED) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- ROM_ACCESS_ERRNO(0); // LCOV_EXCL_LINE 6:impossible to confirm because g_m_bakup_map can not be changed
- return; // LCOV_EXCL_LINE 6:impossible to confirm because g_m_bakup_map can not be changed
- }
- }
- p_buf = static_cast<RAM_SM_DRAM_INFO_t*>(g_m_bakup_map);
-
- // LCOV_EXCL_BR_START 6:impossible to confirm because wupState can not be changed
- if ((RAM_WAKEUP_STATE_BACKUP_NG == wupState) ||
- (RAM_WAKEUP_STATE_BATTERY_DOWN == wupState) ||
- (memcmp(p_buf->magic_out, kMagic, sizeof(kMagic)) != 0) ||
- (memcmp(p_buf->magic_in, p_buf->magic_out, sizeof(p_buf->magic_in)) != 0)) {
- // LCOV_EXCL_BR_STOP
- // BACKUP NG
- g_m_is_first_access = false;
- bzero(p_buf, sizeof(RAM_SM_DRAM_INFO_t));
- }
-
- if (!g_m_is_first_access) {
- // LCOV_EXCL_BR_START 11:unexpected branch
- if ((memcmp(p_buf->data0.signature_in, kSigNature, sizeof(kSigNature)) == 0)
- && (memcmp(p_buf->data0.signature_out, kSigNature,
- sizeof(kSigNature)) == 0)
- && (l_checksum.cal_checksum(&(p_buf->data0), sizeof(p_buf->data0)) == p_buf->checksum0)) {
- // LCOV_EXCL_BR_STOP
- // Use data0 content
- memcpy(&(p_buf->data1), &(p_buf->data0), sizeof(p_buf->data1));
- p_buf->checksum1 = p_buf->checksum0;
- // LCOV_EXCL_BR_START 11:unexpected branch
- } else if ((memcmp(p_buf->data1.signature_in, kSigNature, sizeof(kSigNature)) == 0)
- && (memcmp(p_buf->data1.signature_out, kSigNature,
- sizeof(kSigNature)) == 0)
- && (l_checksum.cal_checksum(&(p_buf->data1), sizeof(p_buf->data1)) == p_buf->checksum1)) {
- // LCOV_EXCL_BR_STOP
- // Use data1 content
- memcpy(&(p_buf->data0), &(p_buf->data1), sizeof(p_buf->data0));
- p_buf->checksum0 = p_buf->checksum1;
- } else {
- // BACKUP NG or SIGNATURE CHECK or CHECK SUM NG
- bzero(p_buf, sizeof(RAM_SM_DRAM_INFO_t));
- memcpy(p_buf->magic_in, kMagic, sizeof(kMagic));
- // data0
- memcpy(p_buf->data0.signature_in, kSigNature, sizeof(kSigNature));
- memcpy(p_buf->data0.signature_out, kSigNature, sizeof(kSigNature));
- p_buf->checksum0 =
- l_checksum.cal_checksum(&(p_buf->data0), sizeof(p_buf->data0)); // LCOV_EXCL_BR_LINE 11:unexpected branch
- // data1
- memcpy(p_buf->data1.signature_in, kSigNature, sizeof(kSigNature));
- memcpy(p_buf->data1.signature_out, kSigNature, sizeof(kSigNature));
- p_buf->checksum1 =
- l_checksum.cal_checksum(&(p_buf->data1), sizeof(p_buf->data1)); // LCOV_EXCL_BR_LINE 11:unexpected branch
- memcpy(p_buf->magic_out, kMagic, sizeof(kMagic));
- }
- }
- memcpy(&m_buf, &(p_buf->data0), sizeof(p_buf->data0));
-}
-
-void RAM_AccessIf::finalRamBackupEnable(void) {
- RAM_SM_DRAM_INFO_t* p_buf;
- CSMChecksum l_checksum;
- // LCOV_EXCL_BR_START 6:impossible to confirm because g_m_bakup_map can not be changed
- if (g_m_bakup_map == MAP_FAILED) {
- // LCOV_EXCL_BR_STOP
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- ROM_ACCESS_ASERT(0); // LCOV_EXCL_LINE 6:impossible to confirm because g_m_bakup_map can not be changed
- return; // LCOV_EXCL_LINE 6:impossible to confirm because g_m_bakup_map can not be changed
- }
-
- p_buf = static_cast<RAM_SM_DRAM_INFO_t*>(g_m_bakup_map);
-
- // kSigNature is cleared during writing
- bzero(m_buf.signature_in, sizeof(kSigNature));
-
- // data0
- memcpy(&(p_buf->data0), &m_buf, sizeof(p_buf->data0));
- memcpy(p_buf->data0.signature_in, kSigNature, sizeof(kSigNature));
- p_buf->checksum0 = l_checksum.cal_checksum(&(p_buf->data0), // LCOV_EXCL_BR_LINE 11:unexpected branch
- sizeof(p_buf->data0));
-
- // data1
- memcpy(&(p_buf->data1), &m_buf, sizeof(p_buf->data1));
- memcpy(p_buf->data1.signature_in, kSigNature, sizeof(kSigNature));
- p_buf->checksum1 = l_checksum.cal_checksum(&(p_buf->data1), // LCOV_EXCL_BR_LINE 11:unexpected branch
- sizeof(p_buf->data1));
-
- // Set kSigNature
- memcpy(m_buf.signature_in, kSigNature,
- sizeof(kSigNature));
-}
-
-RAM_AccessIf::RAM_AccessIf(
- RAM_WAKEUP_STATE wupState /* = RAM_WAKEUP_STATE_DONT_CARE */)
- : m_buf(),
- m_dirty(false) {
-
- if (g_m_plock == NULL) { // LCOV_EXCL_BR_LINE 6:impossible to confirm because g_m_plock can not be changed
- g_m_plock = CL_LockMap(LOCK_RAM_ACCESS_IF);
- if (g_m_plock == MAP_FAILED) {
- ROM_ACCESS_ASERT(0); // LCOV_EXCL_BR_LINE 6:impossible to confirm because g_m_plock can not be changed
- // LCOV_EXCL_BR_START 6:impossible to confirm because g_m_plock can not be changed
- FRAMEWORKUNIFIEDLOG(
- ZONE_ERR, __FUNCTION__,
- "CL_LockMap Error, please check whether you call CL_LockProcessInit");
- // LCOV_EXCL_BR_STOP
- g_m_plock = NULL;
- }
- }
- if (g_m_plock) {
- if (0 != CL_LockGet(g_m_plock)) {
- ROM_ACCESS_ASERT(0);
- }
- }
-
- if (RAM_WAKEUP_STATE_BATTERY_DOWN == wupState) { // LCOV_EXCL_BR_LINE 13:
- // Models without DRAM backups are initialized when +B is down.
- // Deletes files because models with DRAM backups are also backwards compatible
- AGL_ASSERT_NOT_TESTED(); // LCOV_EXCL_LINE 200: test assert
- unlink(RAM_PATH); // LCOV_EXCL_LINE 13:
- unlink(RAM_OLD_PATH); // LCOV_EXCL_LINE 13:
- }
-
- initRamBackupEnable(wupState);
- g_m_is_first_access = true;
-}
-
-RAM_AccessIf::~RAM_AccessIf() {
- if (m_dirty) {
- finalRamBackupEnable();
- }
- if (g_m_plock) {
- ROM_ACCESS_ASERT(0 == CL_LockRelease(g_m_plock));
- }
-
- return;
-}
-
-EFrameworkunifiedStatus RAM_AccessIf::getRamInfo(RAM_SM_INFO_t* p_bootInfo) {
- *p_bootInfo = m_buf;
- return eFrameworkunifiedStatusOK;
-}
-
-EFrameworkunifiedStatus RAM_AccessIf::setRamInfo(RAM_SM_INFO_t* p_bootInfo) {
- if (0 != memcmp(&m_buf, p_bootInfo, sizeof(m_buf))) { // LCOV_EXCL_BR_LINE 11:unexpected branch
- m_buf = *p_bootInfo;
- m_dirty = true;
- }
-
- return eFrameworkunifiedStatusOK;
-}