도와주세요!!
글 수 15,339
2002.05.31 08:53:04 (*.186.48.184)
6784
: [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
: 하드 디스크가 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