9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: cinap_lenrek@gmx.de
To: 9fans@9fans.net
Subject: Re: [9fans] 'no fat' - boot failure
Date: Tue, 15 May 2012 19:11:51 +0200	[thread overview]
Message-ID: <135284c5677219a610f1972a69583e20@rei2.9hal> (raw)
In-Reply-To: <bed3edb8a5a382d4de466341702fcb03@ladd.quanstro.net>

no. the i/o apics are programmed like before as specified in the iointr
entry from the mp table. i have no way differentiating if this is a
real isa bus or some compatibilty hack or just plain wrong mp table.

i looked in openbsd code and just figured they allow sharing edge
interrupts so i just removed the level check.

Each I/O APIC is assigned a base GSI by the BIOS. Each input pin on the
I/O APIC is mapped to a GSI number by adding the pin number (zero-based)
to the base GSI. Thus, if an I/O APIC has a base GSI of N, pin 0 on that
I/O APIC has a GSI of N, pin 1 has a GSI of N + 1, etc. The I/O APIC with
a base GSI of 0 maps the ISA IRQs onto its first 16 input pins. Thus, the
ISA IRQs are effectively always mapped 1:1 onto GSIs. More details about
GSIs can be found in Section 5.2.11 of the ACPI 2.0c spec [2].

looking at a random linux dmesg of a T61 from the web, i see that our
ioapic indeed has GSI base of 0. so ioapic pins 0-15 are the (fake)
isa irq's like they are specified in the mptable.

term% grep -in GSI /tmp/dmesg
108: [    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
109: [    0.000000] IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23
118: [    0.000000] nr_irqs_gsi: 40
611: [    0.575784] pci 0000:00:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
613: [    0.575796] pci 0000:00:1c.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
615: [    0.575810] pci 0000:00:1c.1: PCI INT B -> GSI 21 (level, low) -> IRQ 21
617: [    0.575824] pci 0000:00:1c.2: PCI INT C -> GSI 22 (level, low) -> IRQ 22
619: [    0.575838] pci 0000:00:1c.3: PCI INT D -> GSI 23 (level, low) -> IRQ 23
621: [    0.575850] pci 0000:00:1c.4: PCI INT A -> GSI 20 (level, low) -> IRQ 20
625: [    0.575875] pci 0000:15:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
730: [    1.010177] serial 0000:00:03.3: PCI INT B -> GSI 17 (level, low) -> IRQ 17
738: [    1.032435] ata_piix 0000:00:1f.1: PCI INT C -> GSI 16 (level, low) -> IRQ 16
745: [    1.033155] pata_acpi 0000:00:03.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
749: [    1.033236] ata_generic 0000:00:03.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
762: [    1.034141] ehci_hcd 0000:00:1a.7: PCI INT C -> GSI 22 (level, low) -> IRQ 22
773: [    1.090199] ehci_hcd 0000:00:1d.7: PCI INT D -> GSI 19 (level, low) -> IRQ 19
785: [    1.160231] uhci_hcd 0000:00:1a.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
794: [    1.160507] uhci_hcd 0000:00:1a.1: PCI INT B -> GSI 21 (level, low) -> IRQ 21
803: [    1.160783] uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
810: [    1.161055] uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17
819: [    1.161324] uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
866: [    1.507624] sdhci-pci 0000:15:00.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
873: [    1.515999] e1000e 0000:00:19.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
877: [    1.544416] firewire_ohci 0000:15:00.1: PCI INT B -> GSI 17 (level, low) -> IRQ 17
884: [    2.052404] ahci 0000:00:1f.2: PCI INT B -> GSI 16 (level, low) -> IRQ 16
938: [   11.919940] nouveau 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
973: [   12.007486] HDA Intel 0000:00:1b.0: PCI INT B -> GSI 17 (level, low) -> IRQ 17
984: [   12.011732] r852 0000:15:00.5: PCI INT C -> GSI 18 (level, low) -> IRQ 18
1024: [   12.354855] iwl3945 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17

so this would give the following mapping for pci devices to the
ioapic intrin pins:

bus	dev	INTP	dev*4+(INTP-1)	intrin
0	1	1	4		16
0	3	2	13		17
0	3	3	14		18
0	25	1	100		20
0	26	1	104		20
0	26	2	105		21
0	26	3	106		22
0	28	1	112		20
0	28	2	113		21
0	28	3	114		22
0	28	4	115		23
0	29	1	116		16
0	29	2	117		17
0	29	3	118		18
0	29	4	119		19
0	31	2	125		16
0	31	3	126		16
1	0	1	0		16
3	0	1	0		17
21	0	1	0		16
21	0	2	1		17
21	0	3	2		18

could generate a new mp table from this mapping. 9front kernel
lets you override the mp table. will try this...

--
cinap



  reply	other threads:[~2012-05-15 17:11 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-13 21:07 Burton Samograd
2012-05-13 21:48 ` cinap_lenrek
2012-05-14  0:22   ` Burton Samograd
2012-05-14  1:19     ` Burton Samograd
     [not found]     ` <CAM8pOuMYGKSuSMUheyWqMXaf6pKwwkb+2bb5OkfGZSK2XcEVmQ@mail.gmail.c>
2012-05-14  2:56       ` erik quanstrom
2012-05-14  3:01         ` Burton Samograd
     [not found]         ` <CAM8pOuPUrCogvgDOzi_B0XxrT8RZDQZ7fOB0HhCwtXhFLaSA1g@mail.gmail.c>
2012-05-14  3:10           ` erik quanstrom
2012-05-14 22:12             ` cinap_lenrek
2012-05-15  0:57               ` Burton Samograd
2012-05-15  2:05               ` sl
2012-05-15  2:28                 ` erik quanstrom
2012-05-15  2:48                   ` sl
2012-05-15  9:19                     ` erik quanstrom
2012-05-15  2:36                 ` Burton Samograd
2012-05-15  2:39                   ` Burton Samograd
2012-05-15  2:57                   ` sl
2012-05-15  9:11                     ` erik quanstrom
2012-05-15 15:04                       ` cinap_lenrek
2012-05-15 15:26                         ` erik quanstrom
2012-05-15 17:11                           ` cinap_lenrek [this message]
2012-05-15 19:51                             ` cinap_lenrek
2012-05-15 20:29                               ` Burton Samograd
2012-05-15 20:33                                 ` cinap_lenrek
2012-05-15 23:49                               ` cinap_lenrek
2012-05-16  0:05                                 ` sl
     [not found]                   ` <CAM8pOuOtwTFjJDPYo_K3L580Zv-W24_XU-ZiBjP-6p9SFkHNkA@mail.gmail.c>
2012-05-15  9:20                     ` erik quanstrom
     [not found]                 ` <CAM8pOuMnp3xPw58g-7a7O_3HhOqf9=Z=DP-XfaGXQJdWyzrVFw@mail.gmail.c>
2012-05-15  9:31                   ` erik quanstrom
2012-05-15 12:19                     ` Burton Samograd
2012-05-15 12:40                       ` Burton Samograd
     [not found]                       ` <CAM8pOuOdLnTgqj1BOKhZe550Cc=QvfncgqgixcCAifKQSytFJA@mail.gmail.c>
2012-05-15 13:39                         ` erik quanstrom
     [not found]                     ` <CAM8pOuMbwVj0_s+SFMdT7qHe5oAg6Yux4shm189-Pd3-Gp2+mQ@mail.gmail.c>
2012-05-15 13:28                       ` erik quanstrom
2012-05-15 14:12                         ` Burton Samograd
     [not found]                         ` <D2A5C7470D67A54FACE86B838946D49D14E466F74E@NJ4MSGSCR02.markit.pa>
2012-05-15 15:02                           ` erik quanstrom
2012-05-15  2:26               ` erik quanstrom
2012-05-14  3:56     ` Ethan Grammatikidis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=135284c5677219a610f1972a69583e20@rei2.9hal \
    --to=cinap_lenrek@gmx.de \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).