Re: Virtual machines from .vdi images
The IRQ that my AHCI controller is using for SATA port 0 is 37 (I know, it's pretty high and is probably contributing to the issue). From what I understand, however, the drivers ported for Genode are derived from the original Linux version drivers which obviously work in Linux. Do you think it would help if I did some code comparison between the AHCI driver port for Genode and the original Linux AHCI driver that works? Perhaps if I delve in deep enough I can find some structuring that has a special handling for AMD SATA controllers and help to contribute to the project. On Wed, Nov 1, 2017 at 9:05 AM, Sebastian Sumpf < sebastian.su...@genode-labs.com> wrote: > Hi Chris, > > On 31.10.2017 15:56, Chris Rothrock wrote: > > Here's the output from the ahci_bench (I left out the ROM header info to > > shorten the list). It seems it's giving the same error trying to > > enumerate the AHCI controller on the PCI bus even though it sees the > > controller and the devices, the service isn't being advertised. This is > > an AMD platform and, for reasons too long to go into, I need to be able > > to make this work with an AMD processor. Where can I go from here to > > push forward on this effort to get the AHCI controller properly > enumerated? > > > > Genode 17.08-112-gee4ee6a > > 3745 MiB RAM and 63254 caps assigned to init > > [init -> ahci_drv] --- Starting AHCI driver --- > > [init] child "acpi_report_rom" announces service "Report" > > [init] child "timer" announces service "Timer" > > [init] child "acpi_report_rom" announces service "ROM" > > [init -> acpi_drv] Found MADT > > [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 > > [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 > > [init -> acpi_drv] Found MCFG > > [init -> acpi_drv] MCFG BASE 0xe000 seg 0x0 bus 0x0-0xff > > [init] child "platform_drv" announces service "Platform" > > [init -> ahci_drv] AHCI found (vendor: 4130 device: 30721 class: 67073) > > [ 0] sys_assign_pci: Invalid Hint (0x88) > > [init -> platform_drv] Error: ahci_drv -> : assignment of PCI device > > 0:11.0 failed phys=0xe0088000 virt=0x1000 > > [init -> platform_drv] 0:11.0 adjust IRQ as reported by ACPI: 10 -> 19 > > [init -> platform_drv] 0:11.0 uses MSI 64bit, vector 0x9f, address > > 0xfee1, non-maskable > > [init -> ahci_drv] version: major=0x1 minor=0x300 > > [init -> ahci_drv] command slots: 32 > > [init -> ahci_drv] native command queuing: yes > > [init -> ahci_drv] 64-bit support: yes > > [init -> ahci_drv] number of ports: 6 pi: 0x3f > > [init -> ahci_drv] #0: ATA > > [init -> ahci_drv] #1: off (unknown device signature) > > [init -> ahci_drv] #2: off (unknown device signature) > > [init -> ahci_drv] #3: off (unknown device signature) > > [init -> ahci_drv] #4: off (unknown device signature) > > [init -> ahci_drv] #5: off (unknown device signature) > > > > it looks like the AHCI port scan returned a connected ATA device on port > zero, but is unable to initialize the device properly - most likely > because no interrupts are received after command submission. We already > had a lengthly remote debugging session with Ben [1] without any > success. It seems like AMD's AHCI controllers are either not standard > conform or might require additional initialization we are not aware of. > As a starting point you could instrument the 'Ahci::handle_irq' function > [2] in order to determine if any interrupts are received by the driver > at all. > > Regards, > > Sebastian > > [1] https://github.com/genodelabs/genode/issues/1547 > [2] /repos/os/src/drivers/ahci/ahci.cc > > > -- > Sebastian Sumpf > Genode Labs > > http://www.genode-labs.com · http://genode.org > > Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden > Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth > > > > > > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > ___ > genode-main mailing list > genode-main@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/genode-main > -- Thank You, Chris Rothrock Senior System Administrator (315) 308-1637 -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Re: Virtual machines from .vdi images
Hi Chris, On 31.10.2017 15:56, Chris Rothrock wrote: > Here's the output from the ahci_bench (I left out the ROM header info to > shorten the list). It seems it's giving the same error trying to > enumerate the AHCI controller on the PCI bus even though it sees the > controller and the devices, the service isn't being advertised. This is > an AMD platform and, for reasons too long to go into, I need to be able > to make this work with an AMD processor. Where can I go from here to > push forward on this effort to get the AHCI controller properly enumerated? > > Genode 17.08-112-gee4ee6a > 3745 MiB RAM and 63254 caps assigned to init > [init -> ahci_drv] --- Starting AHCI driver --- > [init] child "acpi_report_rom" announces service "Report" > [init] child "timer" announces service "Timer" > [init] child "acpi_report_rom" announces service "ROM" > [init -> acpi_drv] Found MADT > [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 > [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 > [init -> acpi_drv] Found MCFG > [init -> acpi_drv] MCFG BASE 0xe000 seg 0x0 bus 0x0-0xff > [init] child "platform_drv" announces service "Platform" > [init -> ahci_drv] AHCI found (vendor: 4130 device: 30721 class: 67073) > [ 0] sys_assign_pci: Invalid Hint (0x88) > [init -> platform_drv] Error: ahci_drv -> : assignment of PCI device > 0:11.0 failed phys=0xe0088000 virt=0x1000 > [init -> platform_drv] 0:11.0 adjust IRQ as reported by ACPI: 10 -> 19 > [init -> platform_drv] 0:11.0 uses MSI 64bit, vector 0x9f, address > 0xfee1, non-maskable > [init -> ahci_drv] version: major=0x1 minor=0x300 > [init -> ahci_drv] command slots: 32 > [init -> ahci_drv] native command queuing: yes > [init -> ahci_drv] 64-bit support: yes > [init -> ahci_drv] number of ports: 6 pi: 0x3f > [init -> ahci_drv] #0: ATA > [init -> ahci_drv] #1: off (unknown device signature) > [init -> ahci_drv] #2: off (unknown device signature) > [init -> ahci_drv] #3: off (unknown device signature) > [init -> ahci_drv] #4: off (unknown device signature) > [init -> ahci_drv] #5: off (unknown device signature) > it looks like the AHCI port scan returned a connected ATA device on port zero, but is unable to initialize the device properly - most likely because no interrupts are received after command submission. We already had a lengthly remote debugging session with Ben [1] without any success. It seems like AMD's AHCI controllers are either not standard conform or might require additional initialization we are not aware of. As a starting point you could instrument the 'Ahci::handle_irq' function [2] in order to determine if any interrupts are received by the driver at all. Regards, Sebastian [1] https://github.com/genodelabs/genode/issues/1547 [2] /repos/os/src/drivers/ahci/ahci.cc -- Sebastian Sumpf Genode Labs http://www.genode-labs.com · http://genode.org Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Re: binary naming
Hi Norman, just a follow up question: instead of putting a prebuilt binary of init into the repo I want to build it from source. Yet I haven't found out how to tell the build system to build it with completely custom options preferably via the target.mk. I tried to set CFLAGS and LDFLAGS there but the build system still does it's own linking which makes the binary segfaulting if executed on the host. Is there a way to do this or do I need to build it externally? Regards, Johannes Am 26.10.2017 um 13:39 schrieb Johannes Kliemann: > Hi Norman, > > using a separate init to chdir also made the segfault disappear and I > can now successfully run the timer test on Linux [1]. > > Regards, > Johannes > > [1]: > https://github.com/jklmnn/genode/commit/5cee03703b78018ab42398a3245f8bb148ca9281 > > > On 10/25/17 11:39, Norman Feske wrote: >> Hi Johannes, >> >> for bootstrapping core, I'd create a custom (statically compiled) >> program that merely performs a 'chdir /genode' followed by 'execve >> '/genode/core'. This keeps core clean of the bootstrapping magic. This >> bootstrapping program can be called '/init' whereas everything >> Genode-related resides as '/genode/'. >> >> I have no good idea about the segfault though. It definitely happens in >> init, not core because the fault occurs in 'ld.lib.so', which is not >> used by core. You may inspect the debug version of the ld.lib.so binary >> (using 'objdump -lSd debug/ld-linux.lib.so') at the faulting ip. The >> offset from the start of 'ld-linux.lib.so' can be calculated by >> subtracting the load address of ld.lib.so (as reported by the kernel) >> from the ip of the fault. >> >> Cheers >> Norman >> > > -- > > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > ___ > genode-main mailing list > genode-main@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/genode-main -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main