Simics scripts for starting QSP x86 machines are located in the [project]/targets/qsp-x86/ directory, while the actual configuration scripts can be found in the targets/qsp-x86/ directory in the corresponding add-on package.
The following parameters can be set before the running of each script.
Example x86 machine referred to by different documents going with Simics. It is identical to qsp-clear-linux.simics but with some harmless warnings disabled.
-
CPU
- cpu_comp_class
– string
CPU model. It should be specified as CPU component class without the "processor_" prefix and with underscores replaced with hyphens, e.g. x86-intel64. Tip: to obtain the list of CPU component classes please use the "list-classes substr = processor_" Simics command.
Default value: "x86QSP1"
- num_cpus
– integer
Number of physical processors in the machine.
Default value: 1
- num_cores
– integer
Number of cores per physical processor in the machine. Allowed values are 1 - 128.
Default value: 1
- num_cores_small
– integer
Number of small cores per physical processor in the machine (only applicable if the processor class specified by the cpu_comp_class parameter supports heterogeneous setups).
Default value: 0
- num_threads
– one of {1, 2, 4}
Number of threads per processor core in the machine.
Default value: 1
- num_threads_small
– one of {0, 1, 2, 4}
Number of threads per small core in the machine (only applicable if the processor class specified by the cpu_comp_class parameter supports heterogeneous setups).
Default value: 0
- cpi
– integer
Clock cycles per executed instruction for the processors.
Default value: 1
- freq_mhz
– integer
Processor frequency in MHz.
Default value: 2000
- apic_freq_mhz
– integer
APIC frequency in MHz.
Default value: 133
-
Consoles
- show_con0
– boolean
Automatically display the text console on the first serial port.
Default value: TRUE
- show_con1
– boolean
Automatically display the text console on the second serial port.
Default value: FALSE
- show_gfx_con
– boolean
Automatically display the graphics console.
Default value: TRUE
- hide_consoles
– boolean
Do not display any console windows at startup.
Default value: FALSE
- serial_console_fg_color
– string
The foreground color of the serial console, or RGB in #12ab89 format.
Default value: "#80ff80"
- serial_console_bg_color
– string
The background color of the serial console, or RGB in #12ab89 format.
Default value: "black"
-
DVD/CD-ROM
- create_cdrom
– one of {"sata", "ide"} or NIL
Create and connect to the target machine a virtual CD-ROM drive of type SATA or IDE. Simics object machine_name.cdrom is created and connected to the target machine. The type should be the same as create_disk0.
Default value: "sata"
-
Deprecated
- cpu_class
– string or NIL
CPU component class. Deprecated: use the cpu_comp_class parameter instead.
Default value: NIL
-
Disks
- create_disk0
– one of {"sata", "ide"} or NIL
Create and connect to the target machine a virtual hard disk of type SATA or IDE. Simics object machine_name.disk0 is created and connected to the target machine.
Default value: "sata"
- disk0_image
– existing file or NIL
Disk image file for the machine_name.disk0 virtual disk. Files in craff (Simics own file format), VHDX, and raw formats are supported.
Default value: NIL
- disk0_size
– integer or NIL
Size of the machine_name.disk0 virtual disk in bytes. If NIL, the size of disk0_image is used.
Default value: NIL
- create_disk1
– one of {"sata", "ide"} or NIL
Create and connect to the target machine an additional virtual hard disk of type SATA or IDE. Simics object machine_name.disk1 is created and connected to the target machine. The type should be the same as create_disk0.
Default value: "sata"
- disk1_image
– existing file or NIL
Disk image file for the machine_name.disk1 virtual disk. Files in craff (Simics own file format), VHDX, and raw formats are supported.
Default value: NIL
- disk1_size
– integer or NIL
Size of the machine_name.disk1 virtual disk. If NIL, the size of disk1_image is used.
Default value: 8Gi
- writable_state_dir
– string or NIL
If not NIL, the parameter is interpreted as a directory name. It is passed as an argument to the enable-writable-persistent-state command in order to set up a writable persistent state for the configuration.
Default value: NIL
-
Networking
- create_network
– boolean
Creates an Ethernet link and connects the primary Ethernet adapter to it.
Default value: TRUE
- dhcp_pool_ip
– string or NIL
Start IP address for the DHCP server in the service node.
Default value: NIL
- dhcp_pool_size
– integer
Size of the IP address pool for the DHCP server in the service node.
Default value: 100
- dhcp_domain_name
– string
Domain name to use for the DHCP server in the service node.
Default value: "network.sim"
- service_node
– string or NIL
Name of the service node to use for services such as DHCP and DNS. If NIL, a new service-node will be created unless create_service_node is FALSE.
Default value: NIL
- create_service_node
– boolean
Creates a service-node and connects it to the Ethernet link eth_link.
Default value: TRUE
- service_node_ip_address
– string
IP address of the service node.
Default value: "10.10.0.1"
- service_node_name
– string or NIL
Name of the created service node, or NIL for the standard name.
Default value: NIL
- service_node_setup
– boolean
Setup service node services, such as DNS and DHCP. Set to FALSE if this has been done already.
Default value: TRUE
- eth_link
– string or NIL
Name of the Ethernet link to use for networking. If NIL, a new Ethernet switch will be created.
Default value: NIL
- network_goal_latency
– integer or NIL
Goal latency for communication on the Ethernet link.
Default value: NIL
- eth_link_gid
– string or NIL
Global ID for the Ethernet link in a distributed setup. It should only be set if the link is distributed over multiple Simics sessions. The link ID must be the same in all sessions.
Default value: NIL
- connect_real_network
– one of {"no", "napt"}
Connects the simulated Ethernet link to the host network using NAPT (Network Address Port Translation).
Default value: "napt"
- eth_vlan_enable
– boolean
When creating an Ethernet switch, create a VLAN-enabled one.
Default value: FALSE
- eth_connector_vlan_id
– integer
When connecting to a VLAN-enabled switch, use this VLAN ID for the virtual machine connection.
Default value: -1
- service_node_vlan_id
– integer
When connecting to a VLAN-enabled switch, use this VLAN ID for the service_node connection. If this parameter is not set, eth_connector_vlan_id will be used instead.
Default value: -1
- ip_address
– string
The board IP address.
Default value: "auto"
- mac_address
– string
MAC address of the primary Ethernet adapter. The format is "XX:XX:XX:XX:XX:XX".
Default value: "auto"
-
Simulation
- create_tracker
– boolean
Creates the Linux tracker object.
Default value: TRUE
- tracker_params
– existing file (*.params) or NIL
OS awareness parameter file for the Linux kernel running on the machine.
Default value: NIL
- auto_login
– boolean
Automatically log in as a "simics" user on the serial console.
Default value: TRUE
- auto_login_root
– boolean
Automatically log in as a "root" user on the serial console. When the parameter is set it overrides the "auto_login" parameter.
Default value: FALSE
- use_vmp
– boolean
Enables host virtualization (VMP) for better simulation performance. This option affects simulated time. See the performance chapter in the Simics User's Guide for more information about VMP.
Default value: TRUE
- enable_system_clock
– boolean
Enables a configuration with a separate clock to which devices are bound instead of to the first CPU.
Default value: FALSE
- system_clock_class
– string
The class used for the system clock if the enable_system_clock parameter is true.
Default value: "clock"
- create_osa
– boolean
Create OS awareness framework.
Default value: TRUE
-
System
- bios_image
– existing file or NIL
BIOS file.
Default value: "%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_1_0_r.fd"
- vga_bios_image
– existing file or NIL
VGABIOS file.
Default value: NIL
- lan_bios_image
– existing file or NIL
ROM BIOS file for the ICH10 LAN Ethernet adaptor
Default value: NIL
- spi_flash_image
– existing file or NIL
The ICH10 SPI flash file to use.
Default value: "%simics%/targets/qsp-x86/images/spi-flash.bin"
- machine_name
– string
Name of the machine. Used for the top level component.
Default value: "board"
- memory_megs
– integer
Amount of RAM in the machine, in MiB. The highest supported value is 65536 (64 GiB). More than 64 GiB is not supported since the x86QSP1 processor is limited to a 36-bit physical address space.
Default value: 8192
- rtc_time
– string
The date and time of the simulated real-time clock set when the configuration is created. The format is "YYYY-MM-DD HH:MM:SS". Can also be set to "auto" to use the current host time.
Default value: "auto"
- create_usb_tablet
– boolean
Connects a USB tablet device for input using absolute positioning that provides better user experience than a mouse.
Default value: TRUE
-
Results
Script that boots Clear Linux image with UEFI.
-
CPU
- cpu_comp_class
– string
CPU model. It should be specified as CPU component class without the "processor_" prefix and with underscores replaced with hyphens, e.g. x86-intel64. Tip: to obtain the list of CPU component classes please use the "list-classes substr = processor_" Simics command.
Default value: "x86QSP1"
- num_cpus
– integer
Number of physical processors in the machine.
Default value: 1
- num_cores
– integer
Number of cores per physical processor in the machine. Allowed values are 1 - 128.
Default value: 1
- num_cores_small
– integer
Number of small cores per physical processor in the machine (only applicable if the processor class specified by the cpu_comp_class parameter supports heterogeneous setups).
Default value: 0
- num_threads
– one of {1, 2, 4}
Number of threads per processor core in the machine.
Default value: 1
- num_threads_small
– one of {0, 1, 2, 4}
Number of threads per small core in the machine (only applicable if the processor class specified by the cpu_comp_class parameter supports heterogeneous setups).
Default value: 0
- cpi
– integer
Clock cycles per executed instruction for the processors.
Default value: 1
- freq_mhz
– integer
Processor frequency in MHz.
Default value: 2000
- apic_freq_mhz
– integer
APIC frequency in MHz.
Default value: 133
-
Consoles
- show_con0
– boolean
Automatically display the text console on the first serial port.
Default value: TRUE
- show_con1
– boolean
Automatically display the text console on the second serial port.
Default value: FALSE
- show_gfx_con
– boolean
Automatically display the graphics console.
Default value: TRUE
- hide_consoles
– boolean
Do not display any console windows at startup.
Default value: FALSE
- serial_console_fg_color
– string
The foreground color of the serial console, or RGB in #12ab89 format.
Default value: "#80ff80"
- serial_console_bg_color
– string
The background color of the serial console, or RGB in #12ab89 format.
Default value: "black"
-
DVD/CD-ROM
- create_cdrom
– one of {"sata", "ide"} or NIL
Create and connect to the target machine a virtual CD-ROM drive of type SATA or IDE. Simics object machine_name.cdrom is created and connected to the target machine. The type should be the same as create_disk0.
Default value: "sata"
-
Deprecated
- cpu_class
– string or NIL
CPU component class. Deprecated: use the cpu_comp_class parameter instead.
Default value: NIL
-
Disks
- create_disk0
– one of {"sata", "ide"} or NIL
Create and connect to the target machine a virtual hard disk of type SATA or IDE. Simics object machine_name.disk0 is created and connected to the target machine.
Default value: "sata"
- disk0_image
– existing file or NIL
Disk image file for the machine_name.disk0 virtual disk. Files in craff (Simics own file format), VHDX, and raw formats are supported.
Default value: NIL
- disk0_size
– integer or NIL
Size of the machine_name.disk0 virtual disk in bytes. If NIL, the size of disk0_image is used.
Default value: NIL
- create_disk1
– one of {"sata", "ide"} or NIL
Create and connect to the target machine an additional virtual hard disk of type SATA or IDE. Simics object machine_name.disk1 is created and connected to the target machine. The type should be the same as create_disk0.
Default value: "sata"
- disk1_image
– existing file or NIL
Disk image file for the machine_name.disk1 virtual disk. Files in craff (Simics own file format), VHDX, and raw formats are supported.
Default value: NIL
- disk1_size
– integer or NIL
Size of the machine_name.disk1 virtual disk. If NIL, the size of disk1_image is used.
Default value: 8Gi
- writable_state_dir
– string or NIL
If not NIL, the parameter is interpreted as a directory name. It is passed as an argument to the enable-writable-persistent-state command in order to set up a writable persistent state for the configuration.
Default value: NIL
-
Networking
- create_network
– boolean
Creates an Ethernet link and connects the primary Ethernet adapter to it.
Default value: TRUE
- dhcp_pool_ip
– string or NIL
Start IP address for the DHCP server in the service node.
Default value: NIL
- dhcp_pool_size
– integer
Size of the IP address pool for the DHCP server in the service node.
Default value: 100
- dhcp_domain_name
– string
Domain name to use for the DHCP server in the service node.
Default value: "network.sim"
- service_node
– string or NIL
Name of the service node to use for services such as DHCP and DNS. If NIL, a new service-node will be created unless create_service_node is FALSE.
Default value: NIL
- create_service_node
– boolean
Creates a service-node and connects it to the Ethernet link eth_link.
Default value: TRUE
- service_node_ip_address
– string
IP address of the service node.
Default value: "10.10.0.1"
- service_node_name
– string or NIL
Name of the created service node, or NIL for the standard name.
Default value: NIL
- service_node_setup
– boolean
Setup service node services, such as DNS and DHCP. Set to FALSE if this has been done already.
Default value: TRUE
- eth_link
– string or NIL
Name of the Ethernet link to use for networking. If NIL, a new Ethernet switch will be created.
Default value: NIL
- network_goal_latency
– integer or NIL
Goal latency for communication on the Ethernet link.
Default value: NIL
- eth_link_gid
– string or NIL
Global ID for the Ethernet link in a distributed setup. It should only be set if the link is distributed over multiple Simics sessions. The link ID must be the same in all sessions.
Default value: NIL
- connect_real_network
– one of {"no", "napt"}
Connects the simulated Ethernet link to the host network using NAPT (Network Address Port Translation).
Default value: "napt"
- eth_vlan_enable
– boolean
When creating an Ethernet switch, create a VLAN-enabled one.
Default value: FALSE
- eth_connector_vlan_id
– integer
When connecting to a VLAN-enabled switch, use this VLAN ID for the virtual machine connection.
Default value: -1
- service_node_vlan_id
– integer
When connecting to a VLAN-enabled switch, use this VLAN ID for the service_node connection. If this parameter is not set, eth_connector_vlan_id will be used instead.
Default value: -1
- ip_address
– string
The board IP address.
Default value: "auto"
- mac_address
– string
MAC address of the primary Ethernet adapter. The format is "XX:XX:XX:XX:XX:XX".
Default value: "auto"
-
Simulation
- create_tracker
– boolean
Creates the Linux tracker object.
Default value: TRUE
- tracker_params
– existing file (*.params) or NIL
OS awareness parameter file for the Linux kernel running on the machine.
Default value: NIL
- auto_login
– boolean
Automatically log in as a "simics" user on the serial console.
Default value: TRUE
- auto_login_root
– boolean
Automatically log in as a "root" user on the serial console. When the parameter is set it overrides the "auto_login" parameter.
Default value: FALSE
- use_vmp
– boolean
Enables host virtualization (VMP) for better simulation performance. This option affects simulated time. See the performance chapter in the Simics User's Guide for more information about VMP.
Default value: TRUE
- enable_system_clock
– boolean
Enables a configuration with a separate clock to which devices are bound instead of to the first CPU.
Default value: FALSE
- system_clock_class
– string
The class used for the system clock if the enable_system_clock parameter is true.
Default value: "clock"
- create_osa
– boolean
Create OS awareness framework.
Default value: TRUE
-
System
- bios_image
– existing file or NIL
BIOS file.
Default value: "%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_1_0_r.fd"
- vga_bios_image
– existing file or NIL
VGABIOS file.
Default value: NIL
- lan_bios_image
– existing file or NIL
ROM BIOS file for the ICH10 LAN Ethernet adaptor
Default value: NIL
- spi_flash_image
– existing file or NIL
The ICH10 SPI flash file to use.
Default value: "%simics%/targets/qsp-x86/images/spi-flash.bin"
- machine_name
– string
Name of the machine. Used for the top level component.
Default value: "board"
- memory_megs
– integer
Amount of RAM in the machine, in MiB. The highest supported value is 65536 (64 GiB). More than 64 GiB is not supported since the x86QSP1 processor is limited to a 36-bit physical address space.
Default value: 8192
- rtc_time
– string
The date and time of the simulated real-time clock set when the configuration is created. The format is "YYYY-MM-DD HH:MM:SS". Can also be set to "auto" to use the current host time.
Default value: "auto"
- create_usb_tablet
– boolean
Connects a USB tablet device for input using absolute positioning that provides better user experience than a mouse.
Default value: TRUE
-
Results
Starts a virtual machine that boots from a DVD or CD-ROM ISO file, using a UEFI BIOS. This script can be used to install an operating system on a QSP-x86 machine.
-
CPU
- cpu_comp_class
– string
CPU model. It should be specified as CPU component class without the "processor_" prefix and with underscores replaced with hyphens, e.g. x86-intel64. Tip: to obtain the list of CPU component classes please use the "list-classes substr = processor_" Simics command.
Default value: "x86QSP1"
- num_cpus
– integer
Number of physical processors in the machine.
Default value: 1
- num_cores
– integer
Number of cores per physical processor in the machine. Allowed values are 1 - 128.
Default value: 1
- num_cores_small
– integer
Number of small cores per physical processor in the machine (only applicable if the processor class specified by the cpu_comp_class parameter supports heterogeneous setups).
Default value: 0
- num_threads
– one of {1, 2, 4}
Number of threads per processor core in the machine.
Default value: 1
- num_threads_small
– one of {0, 1, 2, 4}
Number of threads per small core in the machine (only applicable if the processor class specified by the cpu_comp_class parameter supports heterogeneous setups).
Default value: 0
- cpi
– integer
Clock cycles per executed instruction for the processors.
Default value: 1
- freq_mhz
– integer
Processor frequency in MHz.
Default value: 2000
- apic_freq_mhz
– integer
APIC frequency in MHz.
Default value: 133
-
Consoles
- show_con0
– boolean
Automatically display the text console on the first serial port.
Default value: FALSE
- show_con1
– boolean
Automatically display the text console on the second serial port.
Default value: FALSE
- show_gfx_con
– boolean
Automatically display the graphics console.
Default value: TRUE
- hide_consoles
– boolean
Do not display any console windows at startup.
Default value: FALSE
- serial_console_fg_color
– string
The foreground color of the serial console, or RGB in #12ab89 format.
Default value: "white"
- serial_console_bg_color
– string
The background color of the serial console, or RGB in #12ab89 format.
Default value: "black"
-
DVD/CD-ROM
- iso_image
– existing file
ISO image of a DVD or CD-ROM to boot from.
Mandatory parameter.
- create_cdrom
– one of {"sata", "ide"} or NIL
Create and connect to the target machine a virtual CD-ROM drive of type SATA or IDE. Simics object machine_name.cdrom is created and connected to the target machine. The type should be the same as create_disk0.
Default value: "sata"
-
Deprecated
- cpu_class
– string or NIL
CPU component class. Deprecated: use the cpu_comp_class parameter instead.
Default value: NIL
-
Disks
- create_disk0
– one of {"sata", "ide"} or NIL
Create and connect to the target machine a virtual hard disk of type SATA or IDE. Simics object machine_name.disk0 is created and connected to the target machine.
Default value: "sata"
- disk0_image
– existing file or NIL
Disk image file for the machine_name.disk0 virtual disk. Files in craff (Simics own file format), VHDX, and raw formats are supported.
Default value: NIL
- disk0_size
– integer or NIL
Size of the machine_name.disk0 virtual disk in bytes. If NIL, the size of disk0_image is used.
Default value: 2000Gi
- create_disk1
– one of {"sata", "ide"} or NIL
Create and connect to the target machine an additional virtual hard disk of type SATA or IDE. Simics object machine_name.disk1 is created and connected to the target machine. The type should be the same as create_disk0.
Default value: "sata"
- disk1_image
– existing file or NIL
Disk image file for the machine_name.disk1 virtual disk. Files in craff (Simics own file format), VHDX, and raw formats are supported.
Default value: NIL
- disk1_size
– integer or NIL
Size of the machine_name.disk1 virtual disk. If NIL, the size of disk1_image is used.
Default value: NIL
- writable_state_dir
– string or NIL
If not NIL, the parameter is interpreted as a directory name. It is passed as an argument to the enable-writable-persistent-state command in order to set up a writable persistent state for the configuration.
Default value: NIL
-
Networking
- create_network
– boolean
Creates an Ethernet link and connects the primary Ethernet adapter to it.
Default value: TRUE
- dhcp_pool_ip
– string or NIL
Start IP address for the DHCP server in the service node.
Default value: NIL
- dhcp_pool_size
– integer
Size of the IP address pool for the DHCP server in the service node.
Default value: 100
- dhcp_domain_name
– string
Domain name to use for the DHCP server in the service node.
Default value: "network.sim"
- service_node
– string or NIL
Name of the service node to use for services such as DHCP and DNS. If NIL, a new service-node will be created unless create_service_node is FALSE.
Default value: NIL
- create_service_node
– boolean
Creates a service-node and connects it to the Ethernet link eth_link.
Default value: TRUE
- service_node_ip_address
– string
IP address of the service node.
Default value: "10.10.0.1"
- service_node_name
– string or NIL
Name of the created service node, or NIL for the standard name.
Default value: NIL
- service_node_setup
– boolean
Setup service node services, such as DNS and DHCP. Set to FALSE if this has been done already.
Default value: TRUE
- eth_link
– string or NIL
Name of the Ethernet link to use for networking. If NIL, a new Ethernet switch will be created.
Default value: NIL
- network_goal_latency
– integer or NIL
Goal latency for communication on the Ethernet link.
Default value: NIL
- eth_link_gid
– string or NIL
Global ID for the Ethernet link in a distributed setup. It should only be set if the link is distributed over multiple Simics sessions. The link ID must be the same in all sessions.
Default value: NIL
- connect_real_network
– one of {"no", "napt"}
Connects the simulated Ethernet link to the host network using NAPT (Network Address Port Translation).
Default value: "napt"
- eth_vlan_enable
– boolean
When creating an Ethernet switch, create a VLAN-enabled one.
Default value: FALSE
- eth_connector_vlan_id
– integer
When connecting to a VLAN-enabled switch, use this VLAN ID for the virtual machine connection.
Default value: -1
- service_node_vlan_id
– integer
When connecting to a VLAN-enabled switch, use this VLAN ID for the service_node connection. If this parameter is not set, eth_connector_vlan_id will be used instead.
Default value: -1
- ip_address
– string
The board IP address.
Default value: "auto"
- mac_address
– string
MAC address of the primary Ethernet adapter. The format is "XX:XX:XX:XX:XX:XX".
Default value: "auto"
-
Simulation
- real_time_mode
– boolean
Prevents the simulation from running faster than real time.
Default value: TRUE
- system_info
– string
A description of the target.
Default value: "QSP x86 - DVD/CD-ROM boot UEFI"
- enable_break_on_reboot
– boolean
Interrupts the simulation if the machine is rebooted.
Default value: FALSE
- enable_system_clock
– boolean
Enables a configuration with a separate clock to which devices are bound instead of to the first CPU.
Default value: FALSE
- system_clock_class
– string
The class used for the system clock if the enable_system_clock parameter is true.
Default value: "clock"
- create_osa
– boolean
Create OS awareness framework.
Default value: TRUE
-
System
- bios_image
– existing file or NIL
BIOS file.
Default value: "%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_1_0_r.fd"
- vga_bios_image
– existing file or NIL
VGABIOS file.
Default value: NIL
- lan_bios_image
– existing file or NIL
ROM BIOS file for the ICH10 LAN Ethernet adaptor
Default value: NIL
- spi_flash_image
– existing file or NIL
The ICH10 SPI flash file to use.
Default value: "%simics%/targets/qsp-x86/images/spi-flash.bin"
- enable_efi
– boolean
Sets EFI BIOS, else PC BIOS (legacy BIOS).
Default value: TRUE
- machine_name
– string
Name of the machine. Used for the top level component.
Default value: "board"
- memory_megs
– integer
Amount of RAM in the machine, in MiB. The highest supported value is 65536 (64 GiB). More than 64 GiB is not supported since the x86QSP1 processor is limited to a 36-bit physical address space.
Default value: 8192
- rtc_time
– string
The date and time of the simulated real-time clock set when the configuration is created. The format is "YYYY-MM-DD HH:MM:SS". Can also be set to "auto" to use the current host time.
Default value: "2021-06-10 10:41:54"
- create_usb_tablet
– boolean
Connects a USB tablet device for input using absolute positioning that provides better user experience than a mouse.
Default value: FALSE
-
Results
Starts a virtual machine that boots from the HDD set by a given craff file.
-
CPU
- cpu_comp_class
– string
CPU model. It should be specified as CPU component class without the "processor_" prefix and with underscores replaced with hyphens, e.g. x86-intel64. Tip: to obtain the list of CPU component classes please use the "list-classes substr = processor_" Simics command.
Default value: "x86QSP1"
- num_cpus
– integer
Number of physical processors in the machine.
Default value: 1
- num_cores
– integer
Number of cores per physical processor in the machine. Allowed values are 1 - 128.
Default value: 1
- num_cores_small
– integer
Number of small cores per physical processor in the machine (only applicable if the processor class specified by the cpu_comp_class parameter supports heterogeneous setups).
Default value: 0
- num_threads
– one of {1, 2, 4}
Number of threads per processor core in the machine.
Default value: 1
- num_threads_small
– one of {0, 1, 2, 4}
Number of threads per small core in the machine (only applicable if the processor class specified by the cpu_comp_class parameter supports heterogeneous setups).
Default value: 0
- cpi
– integer
Clock cycles per executed instruction for the processors.
Default value: 1
- freq_mhz
– integer
Processor frequency in MHz.
Default value: 2000
- apic_freq_mhz
– integer
APIC frequency in MHz.
Default value: 133
-
Consoles
- show_con0
– boolean
Automatically display the text console on the first serial port.
Default value: FALSE
- show_con1
– boolean
Automatically display the text console on the second serial port.
Default value: FALSE
- show_gfx_con
– boolean
Automatically display the graphics console.
Default value: TRUE
- hide_consoles
– boolean
Do not display any console windows at startup.
Default value: FALSE
- serial_console_fg_color
– string
The foreground color of the serial console, or RGB in #12ab89 format.
Default value: "white"
- serial_console_bg_color
– string
The background color of the serial console, or RGB in #12ab89 format.
Default value: "black"
-
DVD/CD-ROM
- create_cdrom
– one of {"sata", "ide"} or NIL
Create and connect to the target machine a virtual CD-ROM drive of type SATA or IDE. Simics object machine_name.cdrom is created and connected to the target machine. The type should be the same as create_disk0.
Default value: "sata"
-
Deprecated
- cpu_class
– string or NIL
CPU component class. Deprecated: use the cpu_comp_class parameter instead.
Default value: NIL
-
Disks
- create_disk0
– one of {"sata", "ide"} or NIL
Create and connect to the target machine a virtual hard disk of type SATA or IDE. Simics object machine_name.disk0 is created and connected to the target machine.
Default value: "sata"
- disk0_size
– integer or NIL
Size of the machine_name.disk0 virtual disk in bytes. If NIL, the size of disk0_image is used.
Default value: 200Gi
- create_disk1
– one of {"sata", "ide"} or NIL
Create and connect to the target machine an additional virtual hard disk of type SATA or IDE. Simics object machine_name.disk1 is created and connected to the target machine. The type should be the same as create_disk0.
Default value: "sata"
- disk1_image
– existing file or NIL
Disk image file for the machine_name.disk1 virtual disk. Files in craff (Simics own file format), VHDX, and raw formats are supported.
Default value: NIL
- disk1_size
– integer or NIL
Size of the machine_name.disk1 virtual disk. If NIL, the size of disk1_image is used.
Default value: NIL
- writable_state_dir
– string or NIL
If not NIL, the parameter is interpreted as a directory name. It is passed as an argument to the enable-writable-persistent-state command in order to set up a writable persistent state for the configuration.
Default value: NIL
-
Networking
- create_network
– boolean
Creates an Ethernet link and connects the primary Ethernet adapter to it.
Default value: TRUE
- dhcp_pool_ip
– string or NIL
Start IP address for the DHCP server in the service node.
Default value: NIL
- dhcp_pool_size
– integer
Size of the IP address pool for the DHCP server in the service node.
Default value: 100
- dhcp_domain_name
– string
Domain name to use for the DHCP server in the service node.
Default value: "network.sim"
- service_node
– string or NIL
Name of the service node to use for services such as DHCP and DNS. If NIL, a new service-node will be created unless create_service_node is FALSE.
Default value: NIL
- create_service_node
– boolean
Creates a service-node and connects it to the Ethernet link eth_link.
Default value: TRUE
- service_node_ip_address
– string
IP address of the service node.
Default value: "10.10.0.1"
- service_node_name
– string or NIL
Name of the created service node, or NIL for the standard name.
Default value: NIL
- service_node_setup
– boolean
Setup service node services, such as DNS and DHCP. Set to FALSE if this has been done already.
Default value: TRUE
- eth_link
– string or NIL
Name of the Ethernet link to use for networking. If NIL, a new Ethernet switch will be created.
Default value: NIL
- network_goal_latency
– integer or NIL
Goal latency for communication on the Ethernet link.
Default value: NIL
- eth_link_gid
– string or NIL
Global ID for the Ethernet link in a distributed setup. It should only be set if the link is distributed over multiple Simics sessions. The link ID must be the same in all sessions.
Default value: NIL
- connect_real_network
– one of {"no", "napt"}
Connects the simulated Ethernet link to the host network using NAPT (Network Address Port Translation).
Default value: "napt"
- eth_vlan_enable
– boolean
When creating an Ethernet switch, create a VLAN-enabled one.
Default value: FALSE
- eth_connector_vlan_id
– integer
When connecting to a VLAN-enabled switch, use this VLAN ID for the virtual machine connection.
Default value: -1
- service_node_vlan_id
– integer
When connecting to a VLAN-enabled switch, use this VLAN ID for the service_node connection. If this parameter is not set, eth_connector_vlan_id will be used instead.
Default value: -1
- ip_address
– string
The board IP address.
Default value: "auto"
- mac_address
– string
MAC address of the primary Ethernet adapter. The format is "XX:XX:XX:XX:XX:XX".
Default value: "auto"
-
Simulation
- real_time_mode
– boolean
Prevents the simulation from running faster than real time.
Default value: TRUE
- system_info
– string
A description of the target.
Default value: "QSP x86 - HDD boot UEFI"
- create_tracker
– boolean
Creates the tracker object. Only available for Linux target OS.
Default value: FALSE
- tracker_params
– existing file (*.params) or NIL
OS awareness parameter file for the kernel running on the machine. Only available for Linux target OS.
Default value: NIL
- enable_break_on_reboot
– boolean
Interrupts the simulation if the machine is rebooted.
Default value: FALSE
- enable_system_clock
– boolean
Enables a configuration with a separate clock to which devices are bound instead of to the first CPU.
Default value: FALSE
- system_clock_class
– string
The class used for the system clock if the enable_system_clock parameter is true.
Default value: "clock"
- create_osa
– boolean
Create OS awareness framework.
Default value: TRUE
-
System
- bios_image
– existing file or NIL
BIOS file.
Default value: "%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_1_0_r.fd"
- vga_bios_image
– existing file or NIL
VGABIOS file.
Default value: NIL
- lan_bios_image
– existing file or NIL
ROM BIOS file for the ICH10 LAN Ethernet adaptor
Default value: NIL
- spi_flash_image
– existing file or NIL
The ICH10 SPI flash file to use.
Default value: "%simics%/targets/qsp-x86/images/spi-flash.bin"
- enable_efi
– boolean
Sets EFI BIOS, else PC BIOS (legacy BIOS).
Default value: TRUE
- machine_name
– string
Name of the machine. Used for the top level component.
Default value: "board"
- memory_megs
– integer
Amount of RAM in the machine, in MiB. The highest supported value is 65536 (64 GiB). More than 64 GiB is not supported since the x86QSP1 processor is limited to a 36-bit physical address space.
Default value: 8192
- rtc_time
– string
The date and time of the simulated real-time clock set when the configuration is created. The format is "YYYY-MM-DD HH:MM:SS". Can also be set to "auto" to use the current host time.
Default value: "2021-06-10 10:41:54"
- create_usb_tablet
– boolean
Connects a USB tablet device for input using absolute positioning that provides better user experience than a mouse.
Default value: FALSE
-
Other
- disk0_image
– existing file
Image file representing the contents of the primary disk.
Mandatory parameter.
-
Results
Starts a virtual machine that boots from a USB ISO file. This script can be used to install an operating system on a QSP-x86 machine.
-
CPU
- cpu_comp_class
– string
CPU model. It should be specified as CPU component class without the "processor_" prefix and with underscores replaced with hyphens, e.g. x86-intel64. Tip: to obtain the list of CPU component classes please use the "list-classes substr = processor_" Simics command.
Default value: "x86QSP1"
- num_cpus
– integer
Number of physical processors in the machine.
Default value: 1
- num_cores
– integer
Number of cores per physical processor in the machine. Allowed values are 1 - 128.
Default value: 1
- num_cores_small
– integer
Number of small cores per physical processor in the machine (only applicable if the processor class specified by the cpu_comp_class parameter supports heterogeneous setups).
Default value: 0
- num_threads
– one of {1, 2, 4}
Number of threads per processor core in the machine.
Default value: 1
- num_threads_small
– one of {0, 1, 2, 4}
Number of threads per small core in the machine (only applicable if the processor class specified by the cpu_comp_class parameter supports heterogeneous setups).
Default value: 0
- cpi
– integer
Clock cycles per executed instruction for the processors.
Default value: 1
- freq_mhz
– integer
Processor frequency in MHz.
Default value: 2000
- apic_freq_mhz
– integer
APIC frequency in MHz.
Default value: 133
-
Consoles
- show_con0
– boolean
Automatically display the text console on the first serial port.
Default value: FALSE
- show_con1
– boolean
Automatically display the text console on the second serial port.
Default value: FALSE
- show_gfx_con
– boolean
Automatically display the graphics console.
Default value: TRUE
- hide_consoles
– boolean
Do not display any console windows at startup.
Default value: FALSE
- serial_console_fg_color
– string
The foreground color of the serial console, or RGB in #12ab89 format.
Default value: "white"
- serial_console_bg_color
– string
The background color of the serial console, or RGB in #12ab89 format.
Default value: "black"
-
DVD/CD-ROM
- create_cdrom
– one of {"sata", "ide"} or NIL
Create and connect to the target machine a virtual CD-ROM drive of type SATA or IDE. Simics object machine_name.cdrom is created and connected to the target machine. The type should be the same as create_disk0.
Default value: "sata"
-
Deprecated
- cpu_class
– string or NIL
CPU component class. Deprecated: use the cpu_comp_class parameter instead.
Default value: NIL
-
Disks
- create_disk0
– one of {"sata", "ide"} or NIL
Create and connect to the target machine a virtual hard disk of type SATA or IDE. Simics object machine_name.disk0 is created and connected to the target machine.
Default value: "sata"
- disk0_image
– existing file or NIL
Disk image file for the machine_name.disk0 virtual disk. Files in craff (Simics own file format), VHDX, and raw formats are supported.
Default value: NIL
- disk0_size
– integer or NIL
Size of the machine_name.disk0 virtual disk in bytes. If NIL, the size of disk0_image is used.
Default value: 2000Gi
- create_disk1
– one of {"sata", "ide"} or NIL
Create and connect to the target machine an additional virtual hard disk of type SATA or IDE. Simics object machine_name.disk1 is created and connected to the target machine. The type should be the same as create_disk0.
Default value: "sata"
- disk1_image
– existing file or NIL
Disk image file for the machine_name.disk1 virtual disk. Files in craff (Simics own file format), VHDX, and raw formats are supported.
Default value: NIL
- disk1_size
– integer or NIL
Size of the machine_name.disk1 virtual disk. If NIL, the size of disk1_image is used.
Default value: NIL
- writable_state_dir
– string or NIL
If not NIL, the parameter is interpreted as a directory name. It is passed as an argument to the enable-writable-persistent-state command in order to set up a writable persistent state for the configuration.
Default value: NIL
-
Networking
- create_network
– boolean
Creates an Ethernet link and connects the primary Ethernet adapter to it.
Default value: TRUE
- dhcp_pool_ip
– string or NIL
Start IP address for the DHCP server in the service node.
Default value: NIL
- dhcp_pool_size
– integer
Size of the IP address pool for the DHCP server in the service node.
Default value: 100
- dhcp_domain_name
– string
Domain name to use for the DHCP server in the service node.
Default value: "network.sim"
- service_node
– string or NIL
Name of the service node to use for services such as DHCP and DNS. If NIL, a new service-node will be created unless create_service_node is FALSE.
Default value: NIL
- create_service_node
– boolean
Creates a service-node and connects it to the Ethernet link eth_link.
Default value: TRUE
- service_node_ip_address
– string
IP address of the service node.
Default value: "10.10.0.1"
- service_node_name
– string or NIL
Name of the created service node, or NIL for the standard name.
Default value: NIL
- service_node_setup
– boolean
Setup service node services, such as DNS and DHCP. Set to FALSE if this has been done already.
Default value: TRUE
- eth_link
– string or NIL
Name of the Ethernet link to use for networking. If NIL, a new Ethernet switch will be created.
Default value: NIL
- network_goal_latency
– integer or NIL
Goal latency for communication on the Ethernet link.
Default value: NIL
- eth_link_gid
– string or NIL
Global ID for the Ethernet link in a distributed setup. It should only be set if the link is distributed over multiple Simics sessions. The link ID must be the same in all sessions.
Default value: NIL
- connect_real_network
– one of {"no", "napt"}
Connects the simulated Ethernet link to the host network using NAPT (Network Address Port Translation).
Default value: "napt"
- eth_vlan_enable
– boolean
When creating an Ethernet switch, create a VLAN-enabled one.
Default value: FALSE
- eth_connector_vlan_id
– integer
When connecting to a VLAN-enabled switch, use this VLAN ID for the virtual machine connection.
Default value: -1
- service_node_vlan_id
– integer
When connecting to a VLAN-enabled switch, use this VLAN ID for the service_node connection. If this parameter is not set, eth_connector_vlan_id will be used instead.
Default value: -1
- ip_address
– string
The board IP address.
Default value: "auto"
- mac_address
– string
MAC address of the primary Ethernet adapter. The format is "XX:XX:XX:XX:XX:XX".
Default value: "auto"
-
Simulation
- real_time_mode
– boolean
Prevents the simulation from running faster than real time.
Default value: TRUE
- system_info
– string
A description of the target.
Default value: "QSP x86 - USB boot UEFI"
- enable_break_on_reboot
– boolean
Interrupts the simulation if the machine is rebooted.
Default value: FALSE
- enable_system_clock
– boolean
Enables a configuration with a separate clock to which devices are bound instead of to the first CPU.
Default value: FALSE
- system_clock_class
– string
The class used for the system clock if the enable_system_clock parameter is true.
Default value: "clock"
- create_osa
– boolean
Create OS awareness framework.
Default value: TRUE
-
System
- bios_image
– existing file or NIL
BIOS file.
Default value: "%simics%/targets/qsp-x86/images/SIMICSX58IA32X64_1_1_0_r.fd"
- vga_bios_image
– existing file or NIL
VGABIOS file.
Default value: NIL
- lan_bios_image
– existing file or NIL
ROM BIOS file for the ICH10 LAN Ethernet adaptor
Default value: NIL
- spi_flash_image
– existing file or NIL
The ICH10 SPI flash file to use.
Default value: "%simics%/targets/qsp-x86/images/spi-flash.bin"
- enable_efi
– boolean
Sets EFI BIOS, else PC BIOS (legacy BIOS).
Default value: TRUE
- machine_name
– string
Name of the machine. Used for the top level component.
Default value: "board"
- memory_megs
– integer
Amount of RAM in the machine, in MiB. The highest supported value is 65536 (64 GiB). More than 64 GiB is not supported since the x86QSP1 processor is limited to a 36-bit physical address space.
Default value: 8192
- rtc_time
– string
The date and time of the simulated real-time clock set when the configuration is created. The format is "YYYY-MM-DD HH:MM:SS". Can also be set to "auto" to use the current host time.
Default value: "2021-06-10 10:41:54"
- create_usb_tablet
– boolean
Connects a USB tablet device for input using absolute positioning that provides better user experience than a mouse.
Default value: FALSE
-
USB
- iso_image
– existing file
ISO image of a USB disk to boot from.
Mandatory parameter.
- usb_name
– string
Name of USB disk component.
Default value: "usb_disk0"
-
Results
Download and install the following packages:
- Pkg 1000 — Simics Base
- Pkg 2096 — Quick-Start Platform for x86
- Pkg 4094 — Optional: Clear Linux support
- Pkg 8112 — Optional: Modern CPU model
After installing the packages, run project-setup to create or update your project.
Package 4094 adds the default Clear Linux image to the qsp-clear-linux- scripts, where Clear Linux is a Linux distribution optimized for Intel® x86 processors. Some other things to note about the distro setup:
- Using dynamic IP address assigned by DHCP
- Kernel address space layout randomization (KASLR) is turned off
- Automatic login as simics, a normal user with sudo powers
Package 8112 enables the user to pick a more modern CPU by setting:
$cpu_comp_class = "x86QSP2"
before loading the target script. Look for other options in the script files for atom, client, modern, server or what scripts are available in the package at the moment.
If you want to connect and transfer data with the real network, you will need to set up a TAP interface; see
***MANUAL-TODO: Replace cite with proper link
Ethernet Networking — User's Guide, section 4.3.1.
When building your own images, you will have to use the add-directory command which will add the directory where you store your images to Simics's search path.
You will need a DVD-image of Windows 7 before starting the installation. See also the
***MANUAL-TODO: Replace cite with proper link
Installing Microsoft Windows 7 on the x86-X58-ICH10 target application note.
If you are using a Windows host you will need a separate program to create the image. If you are using a Linux host you should be able to create an image of your Windows 7 DVD by running the following command as root at the command-prompt:
$ dd if=/dev/cdrom of=win7dvd.iso
The working directory for this guide will be [simics]/targets/qsp-x86/. Put the created win7dvd.iso image in the images directory.
Create a new script called win7inst.simics to set up a disk and the DVD-image. It will use a script called qsp-dvd-boot.simics to boot the DVD and should look something like the following:
$iso_image = "win7dvd.iso"
$disk_size = (80 * 1024 * 1024 * 1024)
run-command-file "%script%/qsp-dvd-boot.simics"
Set disk_size to match the size wanted for the disk (Windows 7 will require about 11 to 20 GB of space). Creating a larger disk will not consume more space on the host as the image is compressed with the craff utility. If not specified, the default size is 20 GB.
Make sure you have plenty of swap-space on your drive. You can set your swap directory through the command set-image-memory-limit in Simics.
Now run the created script and the Windows DVD should start booting. Follow the directives during the installation. After choosing a disk to install to, the installation will continue for quite a long time.
When the installation is completed, Windows is going to be rebooted. Simics does not handle reboots, so instead the CPU will end up in HLT state. Continue running the simulation until HLT state is displayed at Simics CLI when the simulation is stopped.
To save what has been installed to the disk-image, use the command save-persistent-state inst. The command saves the current states of all persistent media such as disks and flash memories. The disk contents will now be saved in the inst directory.
Once the current disk contents is saved, Simics can be exited and the file inst/board.disk.hd_image.craff will contain the current image of the Windows-installation disk.
If a checkpoint is saved at any time during the installation you will have to merge the persistent state saved at the end with the checkpointed disk using craff utility.
The new image can now be booted. To do this create a script named qsp-w7-pro.simics which contains the image just created. The scripts should look something like:
$disk_image = "inst/board.disk.hd_image.craff"
$disk_size = (80 * 1024 * 1024 * 1024) # same size as used earlier
$machine_name = "board"
run-command-file "%simics%/targets/qsp-x86/qsp-system.include"
instantiate-components
# set a time quantum that provides a reasonable boot time
$system.cell->time_quantum = 0.0001
$system->system_info = "QSP-x86 - Windows 7 Professional"
enable-real-time-mode
Run this script and the installation will continue from the disk. Windows will then complete the installation and again a reboot is needed. When the CPU once again reaches HLT state, stop the simulation and save the current state by running the command save-persistent-state inst2. Notice however, Simics will only save the difference compared to the last used image and not the whole image. You must merge the disk-image used to boot with the new state of the image using the craff utility located in the [simics]/bin directory. Run the following command to join the two craff files from the saved persistent states:
$ craff -o images/inst.craff inst/board.disk.hd_image.craff inst2/board.disk.hd_image.craff
The created images/inst.craff image will be used to once again boot Windows for the last step of the installation. Modify the script qsp-w7-pro.simics that was used for the most recent boot to instead use the new image:
$disk_image = "inst.craff"
Boot again and there will be more options for setting up Windows. Follow the instructions but when asked to configure time-settings just press Next (system time can be set in the startup-script). Windows 7 should now be up and running, at this point the final image should be saved, so Windows needs to be shut down.
Once at HLT state, after stopping the simulation, repeat the same procedure as before to save a disk-image, using save-persistent-state win-final. The craff utility is used to make the final disk-image:
$ craff -o images/win7.craff images/inst.craff win-final/board.disk.hd_image.craff
The created win7.craff image can now be used to boot Windows, all that is needed is to modify the qsp-w7-pro.simics script to use this image. The intermediate persistent states can now be deleted.
Instead of saving an image using save-persistent-state you can use a read/writable image instead of the DVD image, which lets changes to be written directly to the disk. Read more about read/writable images and saving changes to images in
***MANUAL-TODO: Replace cite with proper link
Simics User's Guide.
Yet another option is the checkpoints-merge utility; that is because a saved persistent state is a checkpoint with only the persistent data saved. See the
***MANUAL-TODO: Replace cite with proper link
Simics User's Guide for more information.
You will need a DVD-image before starting the installation. Download ubuntu-22.04-desktop-amd64.iso from https://ubuntu.com/download/desktop.
A script called qsp-dvd-boot.simics will be used to boot the DVD.
Create a new script called dvd_install.simics to set up a disk and the DVD-image. It should look something like:
$iso_image = "ubuntu-22.04-desktop-amd64.iso"
$disk_size = 80 * 1024 * 1024 * 1024
run-command-file "targets/qsp-x86/qsp-dvd-boot.simics"
Set disk_size to match the size wanted for the disk. Creating a larger disk will not consume more space on the host as the image is compressed with the craff utility.
Make sure you have plenty of swap-space on your drive. You can set your swap directory through the command set-image-memory-limit in Simics.
The created script can now be run and the DVD should start booting. Follow the directives during the installation. The installation process takes considerable time, which might include reboots.
Having finished the installation, the OS will be up and running, and to save a clean install disk image the systems must be halted. Now Shutdown the system. The simulation will automatically stop when the system is shut down. This can typically be identified as a message from a device that sleep state is not implemented or as an I/O operation outside of the defined address space. At this point save the disk image using save-persistent-state os-install-final.
Now you can create a script for running the installed workload. It should look something like this:
$disk_image = "os-install-final/board.disk.hd_image.craff"
$disk_size = 80 * 1024 * 1024 * 1024
$machine_name = "board"
run-command-file "targets/qsp-x86/qsp-system.include"
instantiate-components
# set a time quantum that provides a reasonable boot time
set-time-quantum cell = $system.cell seconds = 0.0001
$system->system_info = "QSP-x86 - My Own OS Install"
enable-real-time-mode
Saving of the final disk content will be quite slow if the host system ran out of memory and was forced to use disk as backing storage during the installation.
To run a machine from an existing disk image, create a small script that looks something like this:
$disk_image = "my_disk_image.img"
$machine_name = "board"
run-command-file "targets/qsp-x86/qsp-system.include"
instantiate-components
# set a time quantum that provides a reasonable boot time
set-time-quantum cell = $system.cell seconds = 0.0001
$system->system_info = "QSP-x86 - My Own Disk Image"
enable-real-time-mode