Hi,ollie,

My kernel is "2.2.14",so I need to initialize USB controller in LinuxBios.

But,I don't know how to correctly initialize USB controller in LinuxBios 
on the sis630e chipset.

I have checked the USB pci config space on the sis630e chipset,
so I  assigned "I/0" addresses "0xd001<<12" and "0xd8001<<12".
And,the function number of the tow USB controller is 2 and 3.

So,I modified LinuxBios like following:

void pci_usb_enable(unsigned bus, unsigned slot,
        unsigned int irq)
{
        unsigned functNum;
        struct pci_dev *pdev;
        unsigned char line;
        unsigned char readback;
        u32 io[2]={0xd001<<12,0xd801<<12};

        for (functNum = 2; functNum < 4; functNum++) {
                pdev = pci_find_slot(bus, (slot << 3) + functNum);

                if (pdev) {
                        pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &line);
                        printk_debug("USB PIN: %d\n",line);
                        pci_write_config_dword(pdev, PCI_BASE_ADDRESS_0, \
                        io[functNum-2]);

                        pci_write_config_byte(pdev, PCI_COMMAND, \
                        PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
                        if ((line >= 1) && (line <= 4)) {
                                
                                printk_debug("Assigning usb IRQ %d to %d:%x.%d\n", \
                                        irq, bus, slot, functNum);

                                pci_write_config_byte(pdev, PCI_INTERRUPT_LINE,\
                                        irq);

                                pci_read_config_byte(pdev, PCI_INTERRUPT_LINE, \
                                                &readback);
                                printk_debug("  Readback = %d\n", readback);

                        }
                }
        }
}

...

pci_usb_enable(0,1,0xa);

...

After done this,I looked up /proc/pci:



PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: Silicon Integrated Systems Unknown device (rev 33).
      Vendor id=1039. Device id=630.
      Medium devsel.  Master Capable.  Latency=64.  
      Non-prefetchable 32 bit memory at 0xf8000000 [0xf8000000].
  Bus  0, device   0, function  1:
    IDE interface: Silicon Integrated Systems 85C5513 (rev 208).
      Fast devsel.  IRQ 14.  Master Capable.  Latency=16.  
      I/O at 0x2c00 [0x2c01].
  Bus  0, device   1, function  0:
    ISA bridge: Silicon Integrated Systems 85C503 (rev 0).
      Medium devsel.  Master Capable.  No bursts.  
  Bus  0, device   1, function  1:
    Ethernet controller: Silicon Integrated Systems Unknown device (rev 131).
      Vendor id=1039. Device id=900.
      Medium devsel.  Fast back-to-back capable.  IRQ 9.  Master Capable.  Latency=64. 
 Min Gnt=52.Max Lat=11.
      I/O at 0xb000 [0xb001].
      Non-prefetchable 32 bit memory at 0xfc108000 [0xfc108000].
  Bus  0, device   1, function  2:
    USB Controller: Silicon Integrated Systems 7001 USB (rev 7).
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.  
Latency=64.  Max Lat=80.
      Non-prefetchable 32 bit memory at 0xd001000 [0xd001000].
  Bus  0, device   1, function  3:
    USB Controller: Silicon Integrated Systems 7001 USB (rev 7).
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.  
Latency=64.  Max Lat=80.
      Non-prefetchable 32 bit memory at 0xd801000 [0xd801000].
  Bus  0, device   2, function  0:
    PCI bridge: Silicon Integrated Systems 5591/5592 AGP (rev 0).
      Fast devsel.  Master Capable.  No bursts.  Min Gnt=8.
  Bus  0, device   9, function  0:
    Bridge: Texas Instruments Unknown device (rev 0).
      Vendor id=104c. Device id=ac60.
      Medium devsel.  IRQ 5.  
      Non-prefetchable 32 bit memory at 0xfc10b000 [0xfc10b000].
      Non-prefetchable 32 bit memory at 0xfc100000 [0xfc100000].
      Non-prefetchable 32 bit memory at 0xfc10c000 [0xfc10c000].
  Bus  0, device  11, function  0:
    Ethernet controller: Realtek 8139 (rev 16).
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.  
Latency=64.  Min Gnt=32.Max Lat=64.
      I/O at 0x2400 [0x2401].
      Non-prefetchable 32 bit memory at 0xfc10d000 [0xfc10d000].
  Bus  0, device  13, function  0:
    Ethernet controller: Realtek 8139 (rev 16).
      Medium devsel.  Fast back-to-back capable.  IRQ 9.  Master Capable.  Latency=64. 
 Min Gnt=32.Max Lat=64.
      I/O at 0x2800 [0x2801].
      Non-prefetchable 32 bit memory at 0xfc10e000 [0xfc10e000].
  Bus  1, device   0, function  0:
    VGA compatible controller: Silicon Integrated Systems Unknown device (rev 33).
      Vendor id=1039. Device id=6300.
      Medium devsel.  Fast back-to-back capable.  BIST capable.  
      Prefetchable 32 bit memory at 0xf0000000 [0xf0000008].
      Non-prefetchable 32 bit memory at 0xfc000000 [0xfc000000].
      I/O at 0x1000 [0x1001].


I didn't find The "I/O" addresses of USB controller.

So,is there other things need to be done to initialize USB controller correctly?

Could you help me?

Thanks,

riskin









==========================
263电子邮件-信赖邮自专业
_______________________________________________
Linuxbios mailing list
[EMAIL PROTECTED]
http://www.clustermatic.org/mailman/listinfo/linuxbios

Reply via email to