IRC channel logs

2025-06-21.log

back to list of logs

<damo22>when we fix this rumpdisk issue, most hardware will just work
<damo22>it seems piixide does not work
<damo22>maybe that is why -M q35 is require
<damo22>d
<damo22>because ahci controller is not present
<damo22>when i attach ahci controller to -M pc it works
<damo22>youpi: ^
<damo22>should i add this to the docs? -drive id=sdd,file=/dev/sdd,if=none -device ich9-ahci,id=ahci -device ide-hd,bus=ahci.0,drive=sdd
<damo22>maybe PIIX3 ide interface is not wired in to APIC?
<damo22>because it was probably before APIC was invented?
<damo22>that could explain lost interrupts
<damo22>i got piixide to boot by disabling acpi translator
<damo22>and using --disable-apic
<damo22>something related: 00:01.3 Bridge [0680]: Intel Corporation 82371AB/EB/MB PIIX4 ACPI [8086:7113] (rev 03)
<damo22>what is this device?
<damo22>power management thing
<azert>damo22: http://bitsavers.informatik.uni-stuttgart.de/components/intel/pci/290550-001_82371FB_82371SB_PCI_ISA_IDE_Xcelerator_199605.pdf
<azert>page 103
<azert>Section 3.8
<azert>Also 3.9
<azert>damo22: could it be that something in gnumach partially initializes the piix3 incorrectly before rumpdisk takes on?
<damo22>page 35
<damo22>APIC chip select reg
<damo22>it is something that needs to be set in the ISA pci bridge
<damo22>8086:7000
<damo22>that is not being configured by rumpdisk
<damo22>i think i need to add something to rumpdisk that configures the chipset before loading rump_init()
<azert>damo22: maybe the chipset needs to be configured before rumpdisk is started
<azert>as such that if someone doesn’t use rumpdisk (i.e. uses netboot on rumpnet) it would also work
<damo22>yes i just said that
<azert>Ok I didn’t understand
<damo22>i need to check if the system has a 8086:7000 device, if it does, poke a reg 0x4e with bit8
<damo22>but only if we are using apic
<youpi>damo22: the bios is already supposed to have configured things properly
<youpi>at worse it would be a bug in the apic implementation of gnumach
<youpi>(gnumach without the linux group drivers does not touch piix3 at all)
<damo22>if apic is enabled, the piix3 pci to isa bus needs to be configured to use the apic
<damo22>otherwise it doesnt route interrupts correctly
<damo22>ok i can add that to gnumach
<youpi>ah, by piix3 I was thinking the ide controller
<youpi>if you mean the pci-isa bridge, yes that can be needed
<damo22>sorry yes the bridge
<youpi>since the bios probably configured everything for legacy behavior
<damo22>:)
<damo22>setpci -d 8086:7000 4f.b=1
<damo22>something like that would do it
<damo22>dang the latest change to vm_pages_phys seems to break rumpdisk
<damo22>in rumpkernel
<damo22>[ 2.4600050] cd0(ahcisata0:2:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode
<damo22>5 (Ultra/100) (using DMA), NCQ (31 tags)
<damo22>hang
<damo22>hmm no i recompiled gnumach and it works now
<damo22>the vmphys change to pci-userspace is all good
<damo22>i must have had some stale libs
<damo22>youpi: gnumach has no concept of pci, can we put the chipset fixups in pci-arbiter?
<youpi>yes, sure
<damo22>huh it cant find the device 0x8086, 0x7000
<damo22>i implemented a fixup after the pci_system_init() call in pci-arbiter but it cant find the device
<damo22>any idea why it never enters this loop? https://git.zammit.org/hurd-sv.git/tree/pci-arbiter/pcifixups.c?h=fix-piixide#n48
<damo22>libpciaccess must be broken for pci_id_match