POD 역시 하나의 메모리라고 기존의 문서들에서 언급했었다. POD 는 호스트(STB) 와 서로 통신을 주고 받기 때문에, 하나의 호스트로 봐도 무방할 정도다. POD 는 초기화 상태에서 부터 특정 주소에 값을 R/W 한다.

POD 초기화 (PHYSICAL)

가장 먼저, 호스트에서 POD 로 WRITE 하는 것은 COR 이다. CIS 튜플을 읽은 값(0x41) 을 0x70000000 에 쓴다. 이 후에 POD 는 진정한(?) POD 로 거듭난다. 아마도 COR WRITE 엑세스가 뭔가 POD 프로그램의 발동을 거는 역할을 하는가보다.
POD 는 알다시피, EMI BANK3, BANK4 을 사용한다. 각각 Command 채널과 Extended 채널이라고 불린다. COR WRITE 이전까지는 Command 채널만 사용한다.

POD 초기화 이후

일단 COR WRITE 를 거치고 나면, Command 채널과 Extended 채널을 둘 다 사용한다. 이 후부터는 각각의 채널의 레지스터를 R/W 함으로써 통신한다.
혼동될 수 있으니, 확실히 기억하고 있도록 한다.

CE1(Command Channel)CE2(Extended Channel)
Data 레지스터 0x70000000 0x7f000000
Control/Status 레지스터 0x70000001 0x7f000001
Size 레지스터(LS) 0x70000002 0x7f000002
Size 레지스터(MS) 0x70000003 0x7f000003

위의 표를 보면 알겠지만, 각각의 채널마다 레지스터들이 포진되어 있다. 이 각각의 레지스터는 성격에 따라서 POD 와 HOST 간의 통신시에 사용된다.
이제부터는 각각의 레지스터에 대해서 알아보도록 한다.

실질적인 데이터를 읽고, 쓰는 레지스터이다. 주로 buffernego 와 link layer 에서 사용된다.

buffernego 시에 사용된다. 주로 reset 이나, buffer size 세팅시 사용된다.

DAIE pod 가 da 에 대한 interrup 가 가능하도록 허용하는 bit
FRIE pod 가 fa 에 대한 interrup 가 가능하도록 허용하는 bit
R 관련없음
R 관련없음
RS interface reset
SR module 의 최대허용 buffer size 를 request
SW host 와 module 사이에 사용하기로 약속한 buffer size 전송시
HC data write sequence 를 시작할 때 set

POD 의 상태를 체크하는 레지스터로서, buffernego 시에 사용된다.

DA module 이 보낼 data 를 가지고 있을 때 set
FR reset 후 또는 module 이 data 를 받을 준비가 되었을 때 set
R 관련없음
IIR data channel 과 extended channel 의 재 초기화를 요구할때
R 관련없음
R 관련없음
WE 정상적으로 data 를 read / write 하고 있을 때 set
RE 관련없음

데이터 사이즈를 세팅할 때, 건드리는 레지스터로서, buffernego 와 link layer 에서 사용된다.

  • computer/digitalarena/pod_레지스터_설명.txt
  • Last modified: 3 years ago
  • by likewind