텔레칩스 · 2015 ~ 2018

예외 상황을 재현과 근거로 좁히기

차량용 AP 드라이버와 부팅 장애 분석

차량용 AP 칩 플랫폼의 드라이버 개발과 양산 안정화. 1,000대 중 1대에서만 멈추던 부팅을 JTAG로 추적해 CPU 캐시 설정 결함을 찾아 해결.

담당 범위
주변장치 드라이버 · MCU 연동 · 부팅 분석 · 보드 브링업

문제와 제약

약 1,000대의 칩 가운데 1대에서만 부팅이 멈췄습니다. 같은 OS 이미지를 다른 칩에 올리면 정상이었고, 그 칩에 올릴 때만 문제가 생겼습니다. 처음에는 칩 자체의 문제로 판단했습니다.

기술적 접근과 판단

멈추는 지점부터 확인

JTAG 디버거를 연결해 부팅 과정을 한 단계씩 실행하며 멈추는 지점을 추적했습니다.

기본값도 원인 후보로

CPU 코어의 캐시 설정을 바꾸는 것에 따라 증상이 나타나고 사라지는 것을 찾았습니다. 그동안 기본값으로 써 와서 아무도 의심하지 않던 설정이었고, 수정해 재배포하는 것으로 해결했습니다.

드라이버와 부팅 경로

UART·SPI·I2C·Timer·Watchdog·CPU Core·Clock Controller 드라이버를 개발해 양산 수준으로 안정화하고, MCU–AP 통신 연동과 u-boot 부팅, 신규 보드 브링업 이슈 분석을 맡았습니다.

부팅 멈춤 추적
  1. 특정 칩에서만 부팅 멈춤
  2. JTAG 단계 실행으로 멈춤 지점 추적
  3. CPU 캐시 설정 수정 · 재배포

다른 환경에서 잘 돈다는 사실만으로 원인 후보를 지우지 않습니다.

구현과 검증

  • UART·SPI·I2C·Timer·Watchdog·CPU Core·Clock Controller 드라이버 개발과 양산 안정화
  • Automotive MCU–AP 통신 연동, u-boot 부팅과 신규 보드 브링업 이슈 분석
  • JTAG 단계 실행으로 특정 칩에서만 재현되던 부팅 멈춤의 원인(CPU 캐시 설정)을 찾아 수정·재배포

결과

  • 특정 칩에서만 재현되던 부팅 멈춤을 캐시 설정 수정으로 해결
  • 주변장치 드라이버 개발과 양산 안정화, 보드 브링업 지원

배운 점

다른 칩에서 정상 동작한다는 사실이 소프트웨어에 문제가 없다는 근거는 아니었습니다. 칩 간의 작은 편차가 기본 설정에 숨은 결함을 드러낼 수 있습니다.