기초 IA32 인터럽트 질문 (리눅스 및 부팅코드관련)
글쓴이: breadncup / 작성시간: 일, 2010/05/09 - 2:03오전
기초적인 인터럽트 질문입니다.
현재 시스템이 IA32 CPU를 쓰고 있구요, 전통적인 8259A PIC 가 INT 로 연결되어 있습니다.
PCIe 디바이스 하나하고, 전통적인 PCI 디바이스 브릿지가 연결되어 있구요, PCI브릿지에는 세개 PCI 디바이스가 연결되어 있습니다.
처음에 시스템을 부팅할때 인터럽트를 설정하는 부분이 있는데요, PCI를 초기화 하는 부분에서 다음과 같은 Data Structure를 볼 수 있습니다.
typedef struct { uint8_t link; uint16_t irqs; } pciirq; typedef struct { uint8_t bus; uint8_t dev; pciirq pins[4]; uint8_t slot; uint8_t reserved; } route; route proute[] = { { 2, 0, { { 1, 0xDEF8 }, /* A */ { 2, 0xDEF8 }, /* B */ { 3, 0xDEF8 }, /* C */ { 4, 0xDEF8 }, /* D */ }, 2, 0 }, { 3, 0, { { 1, 0xDEF8 }, /* A */ { 2, 0xDEF8 }, /* B */ { 3, 0xDEF8 }, /* C */ { 4, 0xDEF8 }, /* D */ }, 1, 0 }, .... };
등과 같이 되어 있습니다.
이런 경우,
1. bus 하고 dev 의 의미가 어떤 의미 일까요?
2. 위에서 link, irq의 { 1, 0xDEF8 } 는 또 어떤 의미일까요?
좀 뜬금없는 질문이지만, 그리고 위의 정보만으로 알 수 있을지 모르겠지만, 아무튼 여쭈어 봅니다. 대충 감이라도 잡아보려고 합니다. 혹시 힌트나 더 봐야 할 것들이 있으면 알려주시면 감사하겠습니다.
감사합니다.
Forums:
댓글 달기