기초 IA32 인터럽트 질문 (리눅스 및 부팅코드관련)

breadncup의 이미지

기초적인 인터럽트 질문입니다.

현재 시스템이 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 } 는 또 어떤 의미일까요?

좀 뜬금없는 질문이지만, 그리고 위의 정보만으로 알 수 있을지 모르겠지만, 아무튼 여쭈어 봅니다. 대충 감이라도 잡아보려고 합니다. 혹시 힌트나 더 봐야 할 것들이 있으면 알려주시면 감사하겠습니다.

감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.