Hello

I set up VMware according to this guide https://docs.sel4.systems/Hardware/VMware/ (using serial output to file) and compiled the picoserver CAmkES application (for x86_64) to run inside the VMware machine.

However, I do encounter a seL4_FailedLookup error. I understand the error message but cannot figure out why it occurs nor how to fix it (probably my pci configuration is wrong). Attached you find the serial_output file.

For the ethernet configuration I used linux in the same VM to figure out the details:

1) ip addr:
    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN     group default qlen 1000
    link/ether 00:0c:29:90:a7:4a brd ff:ff:ff:ff:ff:ff

2) lspci -vvv:
    02:00.0 Ethernet controller: Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE] (rev 10)
    Subsystem: Advanced Micro Devices, Inc. [AMD] PCnet - Fast 79C971
    Physical Slot: 32
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 64 (1500ns min, 63750ns max)
    Interrupt: pin A routed to IRQ 18
    Region 0: I/O ports at 2000 [size=128]
    [virtual] Expansion ROM at fd500000 [disabled] [size=64K]
    Kernel driver in use: pcnet32
    Kernel modules: pcnet32

3) dmesg | grep "02:00.0":
    ...
    [    0.378516] pci 0000:02:00.0: BAR 6: assigned [mem 0xfd500000-0xfd50ffff pref]
    ...

4) lspci -nn:
    02:00.0 Ethernet controller [0200]: Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE] [1022:2000] (rev 10)
       

And here the configuration part inside picoserver.camkes (anything else NOT pasted here is unmodified):

   picoserver.ethdriver_mac = [0x00, 0x0c, 0x29, 0x90, 0xa7, 0x4a];

   ....


    hwethdriver.mmio_paddr = 0xfd500000
    hwethdriver.mmio_size = 0x10000
    hwethdriver.irq_irq_type = "pci";
    hwethdriver.irq_irq_ioapic = 0;
    hwethdriver.irq_irq_ioapic_pin = 18;
    hwethdriver.irq_irq_vector = 18;

    ethdriver.iospaces = "0x0:0x02:0x00:0";
    ethdriver.iospace_id = 0x0200;
    ethdriver.pci_bdf = "0x02:0x00.0";


I am sorry to bother you with this; I am fairly new to low level stuff.
Any help would be very much appreciated.

Best regards,

Benjamin