본문으로 바로가기

플래시 문제점 검토

category 개발일기/작업일지 2018.01.23 20:10

양산모델에서 VSC data가 깨지는 현상이 발생하였다.


내 담담 모델도 아니고, 우리 부서 모델은 아니지만 담당 부서에서 검토하지 않고 있으니, 넘어넘어 왔다. 도대체 담당 부서는 뭘하는지 모르겠다. 검토 요청해도 무응답이니, HW에서 우리 부서에게 검토를 요청해서 내가 지금 보고 있다. 내가 개발한 파트이니 내가 검토를 할 수도 있지만, 담당 부서는 검토 요청을 무시하는 것을 보면 좀 그렇긴 하다.


어쨌든, 플래시 문제를 파악하기 위해 디버그를 살려야 하는데, 양산 모델은 CAS 규격으로 모든 디버그를 제거하였고, UART를 퓨징하여 디버그 출력시, 셋트가 행업이 발생한다. 따라서 세트를 행업되지 않는 상태로 디버그부터 살려야 한다. 디버그를 살리려면 USB2Serial을 사용하여 기본 IO 버퍼가 아닌 USB2Serial로 출력되게 하여야 한다.


다행이, 울 대장께서 기본 작업을 하였기에...

나는 내가 만든 모듈에서 USB2Serial로 디버그가 출력되게 수정하여 내가 디버깅할 모듈의 디버그를 출력하도록 하였다. 이 작업만 반나절 작업이 될줄이야... 할 일도 많은데... ;;


왜 내 할 일을 중단하며, 이것을 디버깅하고 있는지... 담당부서에서 못한다고는 애기 듣고 나한테 넘어오면 업무 조율이라도 가능하지... 이건 제대로 코낀 느낌이다. 바쁘다는 부서는 바쁘다면서 모두 퇴근을 했을 뿐이고... 정말 할말이 없다.


일단 디버그를 확인해보니, Write 과정에게 정전으로 인해 세트가 리부팅된 것으로 보였다. redundancy 처리를 하고 있어, 한 영역의 데이터가 잘못되더라도 자동으로 복구를 하는데, 두 영역 모두 데이터가 깨진 상태이다. 이해할 수 없는 상황이었다.


1번 영역은 정상적으로 Write를 완료하였으나, Integrity Check에서 문제가 발생하고, 2번 영역은 Write 과정 중에 정전이나 STB가 비정상적으로 리부팅이나 행업이 발생하여 Write가 정상적으로 완료되지 못하였다. 이런 경우라면 당연히 1번 영역에서 2번 영역으로 데이터를 복사해야 되는데, 1번 영역이 Integrity Check 문제로 데이터를 복사하지 못한다.


다른 세트를 살펴보니, 1-2번 영역 모두 동일한 데이터가 기록되어 있지만, 두 영역 모두 Integrity Check가 잘못되어 있다. 그래서 데이터가 깨진 것으로 판단하여 VSC 모듈을 정상적으로 init하지 못한다. 하루종일 소스 코드를 살펴보아도 특이사항은 없었다.


아무리 생각하여도, 이해가 되지 않는 부분이다.

두 영역 모두 동일한 데이터가 기록되어 있으니, Integrity Check를 무시하고 데이터를 VSC 모듈에서 사용하도록 하였지만, VSC 모듈에서 데이터가 유효하지 않아 정상적으로 Init되지 않는다. 결론적으로 VSC data가 깨진 것이 확실한데, 왜 깨졌는지 원인이 파악되지 않는다.


Integrity Check 함수인 Sha1_hmac 함수가 문제가 있을 수 있으나, openssl을 사용하기 있기에 이것의 알고리즘은 의심할 여지가 없고, 만약 Sha1_hmac 함수가 문제라면 개발 과정에서 발견되었을 것이다. Chipset 플래시 드라이버나, 커널 플래시 드라이버 문제가 가능성으로 보이긴 하는데, 어떻게 이런 현상이 발생하는지 이해가 되지 않는 상황이다


dd 명령어를 사용하여 플래시 데이터를 덤프하면서 보고 있는데, 좀 이상한 증상이 발결되었다.

cat 명령어를 사용하여 플래시에서 파일로 저장하는 것은 문제가 없는 것 같은데, dd 명령어를 사용하여 파일에서 플래시로 저장하면 제대로 데이터가 안써지는 것 같다.


내일은 이 부분을 오전동안만 살펴보고 기본 결론을 내야 할 것 같다. 내가 맡은 업무도 시간이 촉박한 상황이라 1차 검토 결과만 보고 우선 마무리하고 담당부서에서 검토하던지 해야할 듯 싶다.

'개발일기 > 작업일지' 카테고리의 다른 글

VSCode 대용량 C/C++ 개발환경 설정  (0) 2019.08.16
플래시 문제점 검토  (0) 2018.01.23
아오... 이 황당함은 뭐지...  (0) 2018.01.18
부트로더, 공유 라이브러 정리  (0) 2018.01.17
VMX 포팅중... -8-  (0) 2018.01.02
VMX 포팅중... -7-  (0) 2017.12.21

댓글을 달아 주세요