좋은 답변에 늘 감사드립니다.



푸지 wrote..
: : [Q1]
: : 하드 디스크가 PIO모드 3 이상을 지원하는지의 여부를 어떻게 확인할
: : 수 있는지 특히 하드 구매시에 어떻게 확인해야 하는가요? ==> 1GB 이상 의 하드디스크면 PIO3 를 지원합니다.
:
: : [Q2]
: : IDE회로도 부분에서 A8, A23, A24, A25, nCS_N 이 각각 74HC138로 들어가 는
: : 데.. 여기서 특히 A8 이 이용되는 이유와 Offset이라고 표시를 해서
: : HDD_CS0은 0x000이고 HDD_CS1은 0x100이 되는데..
: : 이 부분은 어떻게 만들어진것인지... 변경할수 있는 방법은 없는지
: : 알고 싶습니다. ==> ide 에는 두개의 CS가 필요합니다. 엄밀히 말하면 두 개의 레지스터군을
: 엑세스하는 것이지요., 각각의 레지스터군은 8개의 레지스터로 구성되어
: 있습니다. 8개의 레지스터이므로 최소 0x08 만큼은 떨어져 있어야 겠지요
: 그래서 보기쉽게 0x100 차이가 나게 한것입니다.
:
: : [Q3]
: : IDE 커널포팅부분의 소스설명에서
: :
: : ide_init_hwif_ports(&hw, EZBOARD_IDE_IO_BASE + 0x0000,
: : EZBOARD_IDE_IO_BASE + +0x100+(0x6<<1), NULL);
: :
: : 요부분중에서
: : EZBOARD_IDE_IO_BASE + +0x100+(0x6<<1)
: : offset이 0x100으로 어떻게 지정된 것인지와
: : 그리고 이 offset 0x100에 다시 (0x6<<1)을 한 이유를 알고싶습니다. ==> offset이 0x100 인 이유는 위에서 설명드렸구요..
: ide_init_hwif_ports 이 함수는 ide에서 사용하는 레지스터의 주소를
: 등록하는 함수입니다. ide 디바이스드라이버에서느 총 9개의 레지스터가
: 필요한데 ide CS0 의 8개 레지스터와 CS1 의 6번째 레지스터가 필요하죠
: CS1 으로 선택하는 레지스터군에서는 하나의 레지스터만이 필요하기
: 때문에 직접 이레지스터의 주소를 적는 것입니다.
:
: 왼쪽으로 쉬프트 1 하는 이유는 ide 가 16비트 버스를 사용하기 때문인데
: 회로도를 보시면 쉽게 이해가 되실겁니다. SA1110 과 IDE 의 주소 매칭을
: 유심히 보세요..
:
: A1 A0
: A2 A1
: A3 A2