hi Uwe,

Yes, tc7020 code is really a set of copy of 5bcm with IRQ setup code.
So I guess I should apply your patch, and have tc7020 specific
stuff on top of it before submitting tc7020 patch.  Attached is irq_table.c
per request.

I would like to create a wiki page directly. Do I need a wiki account?
IDE, NIC, USB, VGA, UART, and Power switch work fine.
By the way I got VGA console with unmodified Linux kernel (2.6.18).

Here is the output of lspci and superiotool.  Where'd getpir be gone?
I thought getpir was under util directory.

tv:~# lspci -tvnn
-[0000:00]-+-00.0  Cyrix Corporation PCI Master [1078:0001]
           +-12.0  Cyrix Corporation 5530 Legacy [Kahlua] [1078:0100]
           +-12.1  Cyrix Corporation 5530 SMI [Kahlua] [1078:0101]
           +-12.2  Cyrix Corporation 5530 IDE [Kahlua] [1078:0102]
           +-12.3  Cyrix Corporation 5530 Audio [Kahlua] [1078:0103]
           +-12.4  Cyrix Corporation 5530 Video [Kahlua] [1078:0104]
           +-13.0  Compaq Computer Corporation ZFMicro Chipset USB [0e11:a0f8]
           \-15.0  National Semiconductor Corporation DP83815
(MacPhyter) Ethernet Controller [100b:0020]

tv:~# ./superiotool -dV
superiotool r2872
Probing for ALi Super I/O at 0x3f0...
  Failed. Returned data: id=0xffff, rev=0xff
Probing for ALi Super I/O at 0x370...
  Failed. Returned data: id=0xffff, rev=0xff
Probing for Fintek Super I/O at 0x2e...
  Failed. Returned data: vid=0x0000, id=0x06df
Probing for Fintek Super I/O at 0x4e...
  Failed. Returned data: vid=0xffff, id=0xffff
Probing for ITE Super I/O (init=0x87,0x01,0x55,0x55/0xaa) at 0x2e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x87) at 0x2e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x01,0x55,0x55/0xaa) at 0x4e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x87) at 0x4e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for NSC Super I/O at 0x2e...
  Failed. Returned data: port=0xff, port+1=0xff
Probing for NSC Super I/O at 0x4e...
  Failed. Returned data: port=0xff, port+1=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x2e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x2e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x4e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x4e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x162e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x162e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x164e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x164e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x3f0...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x3f0...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x370...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x370...
  Failed. Returned data: id=0xff, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x2e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x2e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x2e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x2e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x4e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x4e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x4e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x4e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x3f0...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x3f0...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x3f0...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x3f0...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x370...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x370...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x370...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x370...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x250...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x250...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x250...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x250...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
No Super I/O found


Regards,
Kenji Noguchi
#include <arch/pirq_routing.h>

#define ID_SLOT_PCI_1  1    // MiniPCI slot
#define ID_EMBED_PCI   0xf  // onboard PCI device

// CS5530 PCI INT[A-D] Interrupt Routing lines.
#define NO_CONNECT      0   // not used
#define CS_PCI_INTA     1   // PCI INTA
#define CS_PCI_INTB     2   // PCI INTB
#define CS_PCI_INTC     3   // PCI INTC
#define CS_PCI_INTD     4   // PCI INTD

// IRQ bitmap reference line    FEDCBA9876543210
//                              0000111000000000
#define PCI_IRQ                 0xe00   // PCI allowed IRQs here


const struct irq_routing_table intel_irq_routing_table = {
  PIRQ_SIGNATURE,  /* u32 signature */
  PIRQ_VERSION,    /* u16 version   */
  32+16*2,         /* there can be total 2 devices on the bus */
  0x00,            /* Where the interrupt router lies (bus) */
  (0x12<<3)|0x0,   /* Where the interrupt router lies (dev) */
  0xe00,           /* IRQs devoted exclusively to PCI usage */
  0x1078,          /* Vendor Cyrix */
  0x1,             /* Device Cyrix PCI Master */
  0,               /* Crap (miniport) */
  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8 rfu[11] */
  0xb8,         /*  u8 checksum , this hase to set to some value that would 
give 0 after the sum of all bytes for this structure (including checksum) */
  {
    /* bus,     dev|fn,   {link, bitmap}, {link, bitmap}, {link, bitmap}, 
{link, bitmap},  slot, rfu */
    // 00:13.0 Geode CS5530 IO Companion: USB controller (Compaq ZFMicro USB)
    {0, 0x13<<3, {{CS_PCI_INTA, PCI_IRQ}, {NO_CONNECT, PCI_IRQ}, {NO_CONNECT, 
PCI_IRQ}, {NO_CONNECT, PCI_IRQ}}, ID_EMBED_PCI, 0x0},
    // 00:15.0 NatSemi DP8315
    {0, 0x15<<3, {{CS_PCI_INTB, PCI_IRQ}, {NO_CONNECT, PCI_IRQ}, {NO_CONNECT, 
PCI_IRQ}, {NO_CONNECT, PCI_IRQ}}, ID_EMBED_PCI, 0x0},
  }
};

unsigned long write_pirq_routing_table(unsigned long addr)
{
  return copy_pirq_routing_table(addr);
}

-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios

Reply via email to