: 질문1) 결국 리눅스와 같은 OS 포팅 없이 PXA255 레지스터 셋팅에 의해 EZ-X5
: 의 주변I/O를 제어할 수 있다 라는 말씀이시군요.

예 부트로더가 그런식으로 하고 있읍니다

:
: 질문2) 저희는 리눅스를 사용안 할 것이기 때문에 커널에 대해 알필요 없겠네
: 요? 즉 8051처럼 직접 레지스터 제어로 동작시킬 거거든요.

예 맞습니다. 하지만 8051보다는 조금 복잡하지요

: 질문3) JTAG 인터페이스 관련인데요..
:
: 실제로 제품을 개발 할 때는 부트코드를 직접 플레쉬에 넣어줘야
: 하는데, 이때는 롬라이터를 사용하지 않을려면 JTAG 다운로드를 해야 하잖아
: 요.. 부트코드 다운로드 절차는 다음과 같을거라 생각합니다.
:
: JTAG 다운로더 s/w --> JTAG 장비 --> PXA255 --> 외부 플레쉬메모리
:
: 이 때, PXA255에 어떠한 내용도 들어가 있지 않은 상태에서, 단순히 PXA255
: 의 어드레스핀과 데이터핀들을 플레쉬 메모리에 연결한 것만으로 부트코드가
: 전달이 되잖아요..
: 그렇담(여기서 부터 질문), PXA255 cpu는 반도체 공장에서 나올 때 로직적으
: 로 자신의 JTAG핀에 어떠한 명령(혹은 데이터)을 받으면, 바로 플레쉬메모리
: 에 다운로드를 할 수 있도록 설계되어져 나온다는 얘긴가요? (당연히 그렇겠
: 죠?)

아니요
두가지 방법이 있습니다.

하나는 jtag를 이용하여 주변 핀을 제어하는 바운더리 스캔을 하는 방식입니다.
이 방식은 프로세서 대신 jtag 응용 프로그램이 제어 핀들을 직접 제어하는
방식입니다. 동작은 확실한데 좀 느리죠...

현재 이 방식이 저희가 지원하는 방식입니다.

두번째는 jtag를 이용하여 프로세서의 디버그모드를 이용하는 방식입니다.
대부분의 에뮬레이터가 이 방식을 사용하는데

프로세서에 실제 부트로더와 같은 프로그램이 동작하게 됩니다.
아무래도 데이터 전달량이 적기 때문에 빠릅니다.
대신에 프로세스가 정확하게 동작하고 있어야 한다는 보장이 있어야 합니다.

:
: 질문4) 플레쉬메모리는 데이터 버스가 8비트 일 수도, 16 또는 32일 수도 있
: 으며, 플레쉬 종류가 저마다 다른데 (예를들면 플레쉬 라이트 명령 시퀀스가
: 저마다 약간씩 차이가 있잖아요), 어떻게 PXA255가 그것을 구별해서 외부 플레
: 쉬에 부트코드를 라이트 할 수 있다는 거죠? 신기하네요. 플렉서블하게 칩 밴
: 더나 데이터, 어드레스 버스 크기에 맞게 자동으르 감지하여 데이터들을 8비트
: 씩 혹은 16비트씩, 32비트씩 인터페이스가 이뤄진다는 건가요? 아..아리까리..

직접 플래쉬에 접근하기 때문에 가능합니다. 플래쉬에는 각각의 장치 코드가
있어서 이것을 읽어 판단합니다.
: