lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1157848272.6877.108.camel@localhost.localdomain>
Date:	Sun, 10 Sep 2006 01:31:12 +0100
From:	Alan Cox <alan@...rguk.ukuu.org.uk>
To:	Daniel Drake <dsd@...too.org>
Cc:	akpm@...l.org, torvalds@...l.org, sergio@...giomb.no-ip.org,
	jeff@...zik.org, greg@...ah.com, cw@...f.org, bjorn.helgaas@...com,
	linux-kernel@...r.kernel.org, harmon@....edu, len.brown@...el.com,
	vsu@...linux.ru, liste@...det.net
Subject: Re: [PATCH V3] VIA IRQ quirk behaviour change

Ar Sad, 2006-09-09 am 17:34 -0400, ysgrifennodd Daniel Drake:
> Devices on the PCI bus need to be quirked (in some circumstances), as 
> when they are on the PCI bus they use the IRQ line for routing, and the 
> IRQ line is what the quirk actually modifies.
> 
> V-bus devices do not need the quirk because IRQ routing there is handled 
> by IRQ number alone.
> 
> Is the above correct?

I've no idea. The data sheets imply not.

> I did some searching and couldn't find anything out about the V-bus, I 
> assume that is some VIA-specific thing.

Earlier VIA chipsets use PCI to link internal devices and the bridges as
is normal for older systems. Later systems use a private internal bus
for this (as intel does with GCH), but which looks like PCI

And then you have external PCI devices on plug in cards.

All the PCI cases should be the same, IRQ routing by IRQ line/pin
A/B/C/D. 

VIA have always told me that "ACPI handles this" and we don't need
quirks. Various chips have different IRQ routing logic and it's all a
bit weird if we don't use ACPI and/or BIOS routing.

Anyway its supposed to work like this if you want to try and unpick the
failing cases and work out how to fix them sanely:

MVP4 and 82C686*
	IDE IRQ is 0x4A bits 3/2 (sec ide) and (1/0) (pri ide)
	00 - 14 01 - 15 10 - 10 11 - 11

	0x51 bits 7-4 are parport irq
	0x51 bits 3-0 are floppy irq
	0x52 bits 7-4 are ser2 irq
	0x53 bits 3-0 are ser1 irq
	0x55 bits 7-4 route PIRQA
	0x56 bits 7-4 route PIRQC
	0x56 bits 0-3 route PIRQB
	0x57 bits 7-4 route PIRQD

	0-15 = irq num but 0 = off 2, 8 and 13 are not allowed

82C686 adds
	0x58 bit 0 - USB port 0 IRQ to APIC
	     bit 1 - USB port 1 IRQ to APIC
	     bit 2 - AC97 IRQ to APIC
	     bit 3 - MC97 IRQ to APIC (thats the modem)
	     bit 4 - ACPI IRQ to APIC


Each chip gets more complex so you can see why quirks and PCI IRQ
re-routing games will get quite horrible quite fast.

By the 8233  (just to cause pain btw some 8233's have a 3com built in
network...)

0x4D has become APIC control instead of 0x58 and adds
	bit 6  USB port 4/5
	bit 5 LAN
while 0x51-0x53 vanish but 55-57 are the same (ie it becomes a bit more
sane). Things like the USB IRQ pin are still hardwired (R/O).

The 8235 has some strange IRQ routing logic of its own. The APIC and
system now deals with 24 IRQs with an allegedly fixed routing of INTA ->
16 INTB -17 INTC -18 INTD -19 IDE -20 USB1 21, USB 2 21 or 23
[selectable], AC97/MC97 - 22

55-57 remain the same but the 0x4D register vanishes although it appears
to be a docs error and bit 7 is added for IDE. virtual PCI devices end
up at IRQ 16-23 using the low 3 bits of the IRQ line value if the line
is switched to APIC. The docs self conflict here on whether you can only
use IRQ 20 for IDE etc

One way you can often identify the onboard devices btw is that writes to
interrupt pin have no effect (ie PIN is fixed) and on older chips writes
to irq number are masked by 0x0F. Also IRQ 2 and 15 (or 0x?F if you dont
notice the masking) are not permitted generally but can be written.




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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ