Re: Virtual machines from .vdi images

2017-11-01 Thread Chris Rothrock
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

2017-11-01 Thread Sebastian Sumpf
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

2017-11-01 Thread Johannes Kliemann
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