lkml.org 
[lkml]   [2003]   [Jan]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subjectplease help me understand a line code about pci
    Date

    hi,all

    I am reading code about pci, and I can't understand some lines in
    pci_check_direct(), in arch/i386/kernel/pci-pc.c

    well, I wonder why need "outb (0x01, 0xCFB);" if check configuration type 1
    ? and why "outb (0x00, 0xCFB);" if check configuration type 2?
    please help me,thanks a lot.


    406 static struct pci_ops * __devinit pci_check_direct(void)
    407 {
    408 unsigned int tmp;
    409 unsigned long flags;
    410
    411 __save_flags(flags); __cli();
    412
    413 /*
    414 * Check if configuration type 1 works.
    415 */
    416 if (pci_probe & PCI_PROBE_CONF1) {
    417 outb (0x01, 0xCFB); <<<=========
    418 tmp = inl (0xCF8);
    419 outl (0x80000000, 0xCF8);
    420 if (inl (0xCF8) == 0x80000000 &&
    421 pci_sanity_check(&pci_direct_conf1)) {
    422 outl (tmp, 0xCF8);
    423 __restore_flags(flags);
    424 printk(KERN_INFO "PCI: Using configuration type
    1\n");
    425 request_region(0xCF8, 8, "PCI conf1");
    426 return &pci_direct_conf1;
    427 }
    428 outl (tmp, 0xCF8);
    429 }
    430
    431 /*
    432 * Check if configuration type 2 works.
    433 */
    434 if (pci_probe & PCI_PROBE_CONF2) {
    435 outb (0x00, 0xCFB); <<<=========
    436 outb (0x00, 0xCF8);
    437 outb (0x00, 0xCFA);
    438 if (inb (0xCF8) == 0x00 && inb (0xCFA) == 0x00 &&
    439 pci_sanity_check(&pci_direct_conf2)) {
    440 __restore_flags(flags);
    441 printk(KERN_INFO "PCI: Using configuration type
    2\n");
    442 request_region(0xCF8, 4, "PCI conf2");
    443 return &pci_direct_conf2;
    444 }
    445 }
    446
    447 __restore_flags(flags);
    448 return NULL;
    449 }
    450
    451 #endif





    _________________________________________________________________
    MSN 8 with e-mail virus protection service: 2 months FREE*
    http://join.msn.com/?page=features/virus

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:32    [W:0.022 / U:185.744 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site