2

I'm porting an hobby OS I wrote under QEMU to Simics free version (simics-qsp-x86-6.0.43). I'm experiencing problems with the network adapter.

My OS supports 8254x cards whereas Simics-qsp-x86 comes with 82567lf-2 Intel PCI-E card. I didn't find any documentation on this card.

My question: is it possible to configure Simics-qsp-x86 to use 8254x cards instead of 82567lf-2?

1 Answers1

2

You cannot really remove the standard one as it is part of the chipset.

But you can add a second adapter on PCIe. Simics based in Simics 6 comes with a few i8254x cards available.

To find all classes available that contain a certain string (often an easy to way if the hardware has a common or obvious name):

simics> list-classes substr = i8254 -m
The following classes are available:
┌─────────────────┬──────────────┬──────────────────────────────┐
│      Class      │    Module    │      Short description       │
├─────────────────┼──────────────┼──────────────────────────────┤
│i8254            │8254          │N/A (module is not loaded yet)│
│i82543           │i82543        │N/A (module is not loaded yet)│
│i82546           │i82546        │N/A (module is not loaded yet)│
│pci-i82543gc     │pci-components│N/A (module is not loaded yet)│
│pci-i82546bg     │pci-components│N/A (module is not loaded yet)│
│pci_i82543gc_comp│pci-comp      │N/A (module is not loaded yet)│
│pci_i82546bg_comp│pci-comp      │N/A (module is not loaded yet)│
└─────────────────┴──────────────┴──────────────────────────────┘

The pci-comp is the more modern version of the PCI standard components library.

To use a PCI-attached network adapter:

In a new session with a QSP setup loaded, but before you start to run the simulation:

simics> load-module pci-comp
pci-comp module loaded
simics> create-pci-i82546bg-comp board.eth2 mac_address = (get-auto-mac-address)
Created non-instantiated 'pci_i82546bg_comp' component 'board.eth2'
simics> board.eth2.connect-to board
Connecting board.eth2.pci_bus to board.mb.nb.pcie_slot[0]
simics> board.eth2.connect-to ethernet_switch0
Connecting board.eth2.eth[0] to ethernet_switch0.device2
simics> instantiate-components

This will create a PCI-based i82546 card and connect it to the motherboard on the first available slot. PCIe probing should find it. It also connects it to the Ethernet network that was created by the default script.

When running this in the default QSP Clear Linux setup it identifies as:

01:00.0 Ethernet controller: Intel Corporation 82546GB Gigabit Ethernet Controller
01:00.1 Ethernet controller: Intel Corporation 82546GB Gigabit Ethernet Controller
jakobengblom2
  • 5,531
  • 2
  • 25
  • 33