MIPS32 기반 Embedded Board

전화선 연결용 무선 라우터(공유기)를 하나 구했다.
뚜껑을 딴다.
칩셋을 본다.

메인 프로세서는 ADM5120P이고 MIPS32코어 기반에 175MHz이다.
8MB NOR Flash와 32MB SDRAM이 달려있고 전화선 연동용 VoIP칩이 달려있다.
무선 라우터이니 당연히 무선 모듈이 붙어 있고...

소비전류를 줄이기 위해 VoIP칩을 걷어낸다.
몸에 안좋은 무선 모듈도 떼어 버린다.
Embedded Linux 운용에 필요한 최소한의 구성이 완료 되었다.
(32bit CPU, NOR Flash, SDRAM, Ethernet)
최소 전력으로 리눅스 운용이 가능해진다. 움하하...

MIPS32 코어를 주무르기 위해서는 코어 내부에 구성된 EJTAG이라는걸 사용해야 한다.
디버그용으로 EJTAG 배선은 되어 있으나 헤더핀이 없었다.
헤더핀을 납땜해주고 JTAG연결은 기존에 만들었던 USB-JTAG을 사용한다.
다행히 UART쪽 헤더핀은 나와있어서 부팅메시지 확인이 가능했다.
u-boot와 커널 2.4대의 리눅스가 포팅되어 있었다.

아래 사진 왼쪽 위가 무선 라우터 보드이고, 아래는 RS-232변환기, 오른쪽에 있는게 USB-JTAG이다.

간단하게 EJTAG을 구성하고(아주 쉽다.. 된장..) 메모리를 읽어봤다.

0번지에 통상적인 점프테이블이 보이고 그 뒤로 u-boot 부팅메시지가 보인다.
NOR Flash 읽기, 쓰기, 삭제 된다...
기본으로 부착된 LED의 on/off 테스트도 잘 된다.
기존 부트로더는 백업용으로 저장, NOR Flash는 깨끗하게 지우고 시작한다.
(너부 복잡하고 무거운 u-boot는 별로 좋아하지 않는다)

PXA270에 포팅했던 Embedded Linux/Xenomai 자료들을 다시 꺼내 봐야겠다..
시간이 되면 Xenomai패치도 해보면 좋을텐데 말이다...

댓글 2개:

  1. 와.. 대단하시네요.
    jtag 이용해서 어떻게 펌웨어를 가져오신건가요?
    만드신 usb jtag 장비에 펌웨어가져오는 프로그램만들어 업로드하고 그걸이용해서 가져오신건가요?

    답글삭제
    답글
    1. 네, 자작한 USB-JTAG하드웨어에 EJTAG관련 기능을 구현하고 프로세서에 접근 해서 외부에 부착된 NOR-flash를 읽은 겁니다. MIPS프로세서의 EJTAG관련 내용은 인터넷 상에 모두 공개되어 있습니다.

      삭제