On Sun, May 13, 2012 at 2:20 PM, Tarl Neustaedter tarl-b2@tarl.net wrote:
On 2012-May-13 03:08 , Artyom Tarasenko wrote:
Yes, this is how it's wired in qemu too. But I meant the OBP level. What worries me is that this construction seems to be never used in sun4u OBP:
$ grep interrupts linux/kernel/git/davem/prtconfs/* | grep -c 00000001 402 $ grep interrupts linux/kernel/git/davem/prtconfs/* | grep -c 00000000 2
And the both hits are sun4v:
$ grep interrupts ~/openbios/linux/kernel/git/davem/prtconfs/* | grep 00000000 linux/kernel/git/davem/prtconfs/t1000: interrupts: 00000000 linux/kernel/git/davem/prtconfs/t2000_1: interrupts: 00000000
Can it be, that 0 is (or used to be) some magic constant?
In case it's relevant, here are the complete properties:
0 > cd /pci ok 0 > .properties name "pci" reg 000001fe 00000000 00000000 02000000 vendor-id 108e device-id a000 revision-id 0 class-code 60000 min-grant 0 max-latency 0 devsel-speed 0 fast-back-to-back <empty> 66mhz-capable <empty> subsystem-vendor-id 1af4 subsystem-id 1100 cache-line-size 0 device_type "pci" model "SUNW,sabre" compatible {"pci108e,a000", "pciclass,0"} #address-cells 3 #size-cells 2 #interrupt-cells 1 ranges -- 54 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fe 01 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fe 02 00 00 00 00 00 00 00 00 01 00 00 02 00 00 00 00 00 00 00 00 10 00 00 00 00 01 ff 00 00 00 00 00 00 00 00 10 00 00 00 interrupt-map -- 14 : 00 00 01 fe 02 00 03 f8 00 00 00 01 ff e1 a2 b0 00 00 00 2b interrupt-map-mask -- c : 00 00 01 ff ff ff ff ff 00 00 00 03 virtual-dma -- 8 : c0 00 00 00 20 00 00 00 #virtual-dma-size-cells 1 #virtual-dma-addr-cells 1 interrupts -- 10 : 00 00 07 f0 00 00 07 ee 00 00 07 ef 00 00 07 e5 upa-portid 1f bus-range -- 8 : 00 00 00 00 00 00 00 02 ok 0 > cd pci-ata ok 0 > .properties name "pci-ata" vendor-id 1095 device-id 646 revision-id 7 class-code 10100 interrupts 0 min-grant 0 max-latency 0 devsel-speed 0 subsystem-vendor-id 1af4 subsystem-id 1100 cache-line-size 0 device_type "pci-ide" compatible {"pci1095,646", "pci1095,646", "pciclass,01018f"} assigned-addresses -- 64 : 01 00 28 10 00 00 00 00 00 00 04 80 00 00 00 00 00 00 00 08 01 00 28 14 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 04 01 00 28 18 00 00 00 00 00 00 05 80 00 00 00 00 00 00 00 08 01 00 28 1c 00 00 00 00 00 00 06 00 00 00 00 00 00 00 00 04 01 00 28 20 00 00 00 00 00 00 06 80 00 00 00 00 00 00 00 10 reg 00002800 00000000 00000000 00000000 00000000 01002810 00000000 00000000 00000000 00000008 01002814 00000000 00000000 00000000 00000004 01002818 00000000 00000000 00000000 00000008 0100281c 00000000 00000000 00000000 00000004 01002820 00000000 00000000 00000000 00000010 ok
What makes me wonder is how INTA can be mapped to INO 0 if the corresponding node has 1 in the "interrupts" property.