This document identifies important information for the Quick-Start Platform x86 package for Simics 6. All users of this specific package should review this document carefully.
The following is a list of changes since the initial 6.0.0 release.
required flags on
target parameters to work with the new default value introduced in
Simics-Base 6.0.173.qsp-x86/uefi-shell target. The new BIOS version is
SIMICSX58IA32X64_1_3_0_r.fd and it replaces all uses of
SIMICSX58IA32X64_1_2_0_r.fd which hence has been removed from the package.
third-party-programs.txt with a list of third party
software included in the package.clear-linux target
parameters to allow turning off the network.SIMICSX58IA32X64_1_2_0_r.fd that
enables both serial and graphical console for UEFI BIOS menu and UEFI Shell. It also shortens
the boot timeout from 50s to 3s and moves some ACPI NVS allocations to higher memory regions
to increase the size of contiguous useable RAM below 1 GiB. The BIOS is used by the QSP by default
when started via the new style target system.user-provided-linux target that allows to
conveniently boot a custom Linux by setting the path to a kernel image and (optionally) an
initrd, a rootfs, and a kernel command line.1_0_0_bp_r) and the new (1_1_0_r)
version can both be found in targets/qsp-x86/images. By default, the QSP uses the new version.
If your target SW requires the use of the old version, you need to explicitly set $bios_image
to point to it.$system.mb.conf of class
pc-config at address 0x402 in the IO space has been removed, because its mapping
conflicted with power management registers in the LPC, which led to error messages during some OS
boots. The removed mapping was used as a shortcut to generate Simics log messages from within target
SW and had no relationship to any real HW device. If target SW used this shortcut it should rather
use the mapping of the same function at 0xfff0 instead of 0x402.
map_target template from
utility.dml.smm_instrumentation_subscribe interface)
does not block VMP execution anymore, (bug #SIMICS-19625).
x86_instrumentation_subscribe_v2,
vmx_instrumentation_subscribe, and
smm_instrumentation_subscribe.
This is needed for (bug #SIMICS-14965).
transaction interface, instead of sending memory
transactions through the memory_space
interface..pyc files, and now requires Simics-Base version
6.0.114 or later.cpu_instrumentation_subscribe interface did not
get enough bytes to decode an instruction if the instruction was
crossing page boundary. This is now fixed. x86_instrumentation_subscribe interface did not
get enough bytes to decode an instruction if the instruction was
executed from a non-cacheable memory. This is now fixed
(bug #HSD-22012278089). frequency interface.targets/qsp-x86/qsp-dvd-boot.simics script is
similar to the earlier distributed DVD boot script, but now uses
UEFI, and there is
also targets/qsp-x86/qsp-usb-boot.simics for
booting from a USB disk image, and
targets/qsp-x86/qsp-hdd-boot.simics for booting
from the hard disk using a bootable OS image file. $bios_image variable from the qsp-system.include
script. The script will terminate if $bios_image has not been set.
The $bios_image is now set by setup.include or
.simics scripts, as expected
(bug #SIMICS-16236).
x86_access_t enum values was changed a bit, but
binary compatibility has been maintained as far as possible.
This enum is distributed in the base-package's arch/x86.h. It
is recommended to upgrade the base package and any modules
depending on this file.
Added a new x86_access_type interface to get hold
of the textual representation (long and short) of the enum values
(bug #SIMICS-16124). EEC.AutoRD bit is now set by
default to indicate that the
auto EEPROM read has finished
(bug #HSD-14012262984). targets/qsp-x86/qsp-clear-linux-pcie-demo.simics
target script runs on Windows host as well. Source code of the driver
and test program is included. targets/qsp-x86/qsp-clear-linux-pcie-demo.simics
target script as well as binaries used by the scripts. It boots Clear
Linux and operates a SystemC PCIe device for
demo purpose. old_lan
parameter in favor of ich10_lan_v2
(bug #SIMICS-14097). targets/qsp-x86/qsp-dvdboot.simics and
targets/qsp-x86/qsp-pxe-boot.simics target scripts
as well as SeaBIOS and SeaVGABIOS images used by the scripts
are not distributed anymore. Please use
older versions of the package if previously shipped target scripts and
image files are needed or try Simics target scripts shipped
in the package 2075 (Model Library: Intel® Core™ i7 with X58 and ICH10)
(bug #SIMICS-14090). targets/qsp-x86/qsp-clear-linux.simics target script was
updated to get use the newer Clear Linux image file (if available).
The updated Clear Linux image file is shipped in the 6.0.3 version of
the QSP Clear Linux (4094) package. targets/qsp-x86/qsp-linux-common.simics and
targets/qsp-x86/qsp-linux-multi.simics scripts creating
configurations with a Yocto Linux image are not distributed anymore. Also,
the Yocto Linux image is not distributed anymore. Please use older
versions of the package if previously shipped target scripts and
the image file are needed. cpu_instrumentation_subscribe interface.
This could happen if the user has not yet installed any callback
for a connection. Typically the implementation of enable/disable
in the connection_interface would call this methods. Now it it
is unnecessary to check whether any callbacks has been installed
before calling this method. This only affects instrumentation
usage available in package 1022
(bug #HSD-1808121154). auto_login and
auto_login_root parameters were added
to the targets/qsp-x86/qsp-clear-linux.simics target script
(bug #SIMICS-12561). targets/qsp-x86/qsp-clear-linux.simics target script
was updated to a newer version. Among other things, the update includes
a fix to the issue when boot sequence priority could change unexpectedly.
The source code for the UEFI firmware used by Simics is now
available
at https://github.com/tianocore/edk2-platforms. X86_Vmcs_Read and
X86_Vmcs_Write haps
corresponding to VMREAD and VMWRITE instructions.
Add global and namespace variants of break-vmread,
trace-vmread, break-vmwrite,
trace-vmwrite commands to track Intel® Virtual Machine
Control Structure (Intel ® VMCS) changes through
VMREAD and VMWRITE instructions
(bug #HSD-1409542905). targets/qsp-x86/qsp-clear-linux.simics target script was
updated to get use the newer Clear Linux image file (if available).
The updated Clear Linux image file is shipped in the 5.0.1 version of
the QSP Clear Linux (4094) package. rtc_time parameter to
avoid triggering the deprecation warning when restoring from checkpoint
(bug #SIMICS-12639). targets/qsp-x86/qsp-clear-linux.simics target script
was updated to a newer version. The updated version includes fixes to
system tables, improved virtualization support and a new logo on the boot
screen (bug #HSD-1807875714). disk0_image parameter of
the targets/qsp-x86/qsp-clear-linux.simics script was ignored
because of the error in the script logic. This error
was fixed. targets/qsp-x86/qsp-clear-linux.simics
was added. It allows to boot Clear Linux OS on top of UEFI firmware.
Clear Linux OS image is distributed separately in the Simics
package 4094.
show_con0,
show_con1,
show_gfx_con and hide_consoles have been
added. These control the initial visibility of the text and
graphics consoles. create_con0 and
create_con1 parameters
have been removed. The text consoles are now
always created. new_consoles and
con_type parameters have
no meaning with the new target consoles, and have therefore been
removed.
This section briefly describes the known limitations of the Quick-Start Platform x86 package. Please refer to section 5 for a more technical description.
For model oriented packages, additional limitations may be found in
the model target guides.
ich10_lpc - model of Intel® ICH10 LPC bridge:
ich10_sata_f2 - model of Intel® ICH10 SATA controller: FIS-based Switching is not implemented. Port Multipliers are not implemented. Multiple MSI based messages are not implemented. Enclosure Management is not implemented. Command Completion Coalescing is not implemented. Device Sleep is not implemented.
ich10_smbus - model of Intel® ICH10 SMBus unit:
ich10_usb_uhci - model of Intel® ICH10 USB UHCI:
ich10_usb_ehci - model of Intel® ICH10 USB EHCI:
USB_Transfer_Completed)x58-core-f1-legacy - model of scratchpads and GPIO unit:
x58-core-f2-legacy - model of IOH control/status and RAS unit:
x58-core-f3-legacy - model of X58 throttling unit:
x58-qpi-port0-f0-legacy - model of QuickPath Interconnect port 0/0:
x58-qpi-port0-f1-legacy - model of QuickPath Interconnect port 0/1:
x58-qpi-port1-f0-legacy - model of QuickPath Interconnect port 1/0:
x58-qpi-port1-f1-legacy - model of QuickPath Interconnect port 1/1:
x58-pcie-port-legacy - model of X58 PCIe root port:
x58-remap-unit0-legacy - model of DMA/Interrupt remapping unit 0:
x58-remap-unit1-legacy - model of DMA/Interrupt remapping unit 1:
x58-qpi-ncr-f0-legacy - model of QuickPath Interconnect Non-Core Registers:
x58-qpi-sad-f1-legacy - model of QPI System Address Decoder Regs:
ich10_lan_v2 - model of Intel® ICH10 Gb Ethernet controller:
X58:
This section describes in detail the known limitations of the Quick-Start Platform x86 package. Please refer to section 4 for a more general description.
A register or field marked as Not implemented is present with read-write semantics but has no side effects on simulation. A register marked as Not implemented (design limitation) has the same semantics as a "Not implemented" register and there is no plan to extend the model with this functionality. A register with Lack of documentation has not been implemented because there is no available documentation describing its semantics.
ich10_lpc - model of Intel® ICH10 LPC bridge:
The following banks have limitations:
The following registers have limitations:
acpi_io_regs::c3_res: Not implemented.acpi_io_regs::gpe_cntl: Not implemented.acpi_io_regs::lv2: Not implemented.acpi_io_regs::lv3: Not implemented.acpi_io_regs::lv4: Not implemented.acpi_io_regs::pm1_en: Field PCEXPWAK_DIS - Not implemented. Field PWRBTN_EN - Not implemented. Field RTC_EN - Not implemented.acpi_io_regs::pm2_cnt: Not implemented.acpi_io_regs::proc_cnt: Field FORCE_THTL - Not implemented. Field THTL_EN - Not implemented.acpi_io_regs::smi_en: Field EOS - Not implemented. Field MCSMI_EN - Not implemented. Field SWISMI_TMR_EN - Not implemented.acpi_io_regs::sw_irq_gen: Not implemented.acpi_io_regs::tco1_cnt: Field SEND_NOW - Not implemented.acpi_io_regs::tco2_cnt: Field GPIO11_ALERT_DISABLE - Not implemented.acpi_io_regs::tco_message1: Not implemented.acpi_io_regs::tco_message2: Not implemented.acpi_io_regs::tco_rld: Not implemented.acpi_io_regs::tco_wdcnt: Not implemented.acpi_io_regs::uprwc: Not implemented.cs_conf::buc: Field cbe - Not implemented. Field lan_dis - Not implemented. Field sdo - Not implemented. Field ts - Not implemented.cs_conf::cg: Field audiod - Not implemented. Field audios - Not implemented. Field dmirx - Not implemented. Field dmitx - Not implemented. Field ehcid - Not implemented. Field ehcis - Not implemented. Field lan - Not implemented. Field lpc - Not implemented. Field pci - Not implemented. Field pciers - Not implemented. Field pcitx - Not implemented. Field prxgen - Not implemented. Field sata1 - Not implemented. Field sata2 - Not implemented. Field sata3 - Not implemented. Field sata4 - Not implemented. Field sata5 - Not implemented. Field smbcgen - Not implemented. Field uhci - Not implemented.cs_conf::cir7: Not implemented.cs_conf::dmc: Not implemented.cs_conf::dmic: Not implemented.cs_conf::esd: Not implemented.cs_conf::fd: Field lpc - Not implemented. Field smbus - Not implemented. Field throt - Not implemented.cs_conf::fpss: Not implemented.cs_conf::hdba: Not implemented.cs_conf::hdd: Not implemented.cs_conf::ilcl: Not implemented.cs_conf::iotr0: Not implemented.cs_conf::iotr1: Not implemented.cs_conf::iotr2: Not implemented.cs_conf::iotr3: Not implemented.cs_conf::lcap: Field apms - Not implemented. Field el0 - Not implemented.cs_conf::lctl: Not implemented.cs_conf::lsts: Not implemented.cs_conf::map: Field uhci6 - Not implemented.cs_conf::oic: Field aen - Not implemented. Field asel - Not implemented. Field cen - Not implemented.cs_conf::pat[0..63]: Not implemented.cs_conf::pdsw: Not implemented.cs_conf::ppo: Not implemented.cs_conf::pvc: Not implemented.cs_conf::pvs: Not implemented.cs_conf::rc: Field ll - Not implemented. Field ue - Not implemented. Field ul - Not implemented.cs_conf::rctcl: Not implemented.cs_conf::rec: Not implemented.cs_conf::rp1ba: Not implemented.cs_conf::rp1d: Not implemented.cs_conf::rp2ba: Not implemented.cs_conf::rp2d: Not implemented.cs_conf::rp3ba: Not implemented.cs_conf::rp3d: Not implemented.cs_conf::rp4ba: Not implemented.cs_conf::rp4d: Not implemented.cs_conf::rp5ba: Not implemented.cs_conf::rp5d: Not implemented.cs_conf::rp6ba: Not implemented.cs_conf::rp6d: Not implemented.cs_conf::rpc: Not implemented.cs_conf::rpfn: Not implemented.cs_conf::tctl: Not implemented.cs_conf::trcr: Not implemented.cs_conf::trsr: Not implemented.cs_conf::twdr: Not implemented.cs_conf::ulba: Not implemented.cs_conf::uld: Not implemented.cs_conf::v0cap: Not implemented.cs_conf::v0ctl: Field tvm - Not implemented.cs_conf::v0sts: Not implemented.cs_conf::v1cap: Field mts - Not implemented.cs_conf::v1ctl: Not implemented.cs_conf::v1sts: Not implemented.cs_conf::vcap1: Not implemented.cs_conf::vcap2: Not implemented.cs_conf::vch: Not implemented.fixed_io::coproc_err: Not implemented.fixed_io::nmi_sc: Field iochk_nmi_en - Not implemented. Field pci_serr_en - Not implemented.fixed_io::port92: Not implemented.fixed_io::rst_cnt: Field full_rst - Not implemented. Field sys_rst - Not implemented.pci_config::bios_cntl: Field bioswe - Not implemented. Field ble - Not implemented.pci_config::bm_break_en: Not implemented.pci_config::c4_timing_cnt: Not implemented.pci_config::c5_exit_timing_cnt: Not implemented.pci_config::cx_state_cnf: Not implemented.pci_config::feature_vector: Not implemented.pci_config::gen_pmcon1: Field bios_pcie_en - Not implemented. Field c4_disable - Not implemented. Field c4onc3_en - Not implemented. Field c5_enable - Not implemented. Field clk_run_en - Not implemented. Field cpuslp_en - Not implemented. Field i64en - Not implemented. Field per_smi_sel - Not implemented. Field pwr_btn_lvl - Not implemented. Field ss_en - Not implemented.pci_config::gen_pmcon2: Not implemented.pci_config::gen_pmcon3: Field afterg3_en - Not implemented. Field rst_sts - Not implemented. Field s4_state_dis - Not implemented. Field slps4_width - Not implemented. Field slps4_width_en - Not implemented. Field sw_smi_rate - Not implemented.pci_config::gen_pmcon_lock: Field c_state_cfg_lk - Not implemented. Field slp_s4_lock - Not implemented. Field unlock_c_trans - Not implemented.pci_config::gpi_rout: Not implemented.pci_config::io_dec: Field FDD - Not implemented. Field LPT - Not implemented.pci_config::lpc_en: Field cnf1_en - Not implemented. Field cnf2_en - Not implemented. Field fdd_en - Not implemented. Field gameh_en - Not implemented. Field gamel_en - Not implemented. Field kbc_en - Not implemented. Field lpt_en - Not implemented. Field mc_en - Not implemented.pci_config::lpc_ibdf: Not implemented.pci_config::pic_b1h: Not implemented.pci_config::pmir: Field cf9_gr - Not implemented. Field cf9_lock - Not implemented.ich10_sata_f2 - model of Intel® ICH10 SATA controller:
The following registers have limitations:
ahci::bohc: Field oos - Not implemented. Field sooe - Not implemented.ahci::ccc_ports: Not implemented.pci_config::atc: Not implemented.pci_config::ats: Not implemented.pci_config::bfcs: Not implemented.pci_config::bftd1: Not implemented.pci_config::bftd2: Not implemented.pci_config::flr_control: Field iflr - Not implemented.pci_config::pmcs: Field ps - Not implemented.pci_config::scgc: Not implemented.ich10_sata_f5 - model of Intel® ICH10 SATA:
The following registers have limitations:
pci_config::flr_control: Field iflr - Not implemented.pci_config::pcs: Not implemented.pci_config::pmcs: Field ps - Not implemented.ich10_smbus - model of Intel® ICH10 SMBus unit:
The following registers have limitations:
smbus_func::aux_sts: Not implemented.smbus_func::hst_cnt: Field INTREN - Not implemented. Field KILL - Not implemented. Field LAST_BYTE - Not implemented. Field PEC_EN - Not implemented.ich10_usb_ehci - model of Intel® ICH10 USB EHCI:
The following registers have limitations:
usb_regs::frindex: The controller may process frames in advance, i.e., before they have been referenced by frindexusb_regs::prtsc[0..5]: Field force_port_resume - Write-access not implemented. Field over_current - Read-access not implemented. Field port_test_ctrl - Write-access not implemented. Field suspend - Write-access not implemented. Field wake_on_connect_en - Not implemented. Field wake_on_disconnect_en - Not implemented. Field wake_on_over_current_en - Not implemented.usb_regs::usbcmd: Field async_pm_count - Not implemented (design limitation). This field is a dummy field with no side effects. Field async_pm_en - Not implemented (design limitation). This field is a dummy field with no side effects. Field int_thres_ctrl - Not implemented (design limitation). This field is a dummy field with no side effects. Field light_hcreset - Write-access not implemented.usb_regs::usbsts: Field async_sched_status - Read-access not implemented. Field reclamation - Read-access not implemented.ich10_bridge - model of Intel® ICH10 DMI to PCI unit:
The following registers have limitations:
pci_config::bpc: Field PDE - Not implemented. Field PSE - Not implemented. Field RTAE - Not implemented. Field SDP - Not implemented. Field SDTT - Not implemented. Field URLT - Not implemented.pci_config::dtc: Field AFADE - Not implemented. Field BDT - Not implemented. Field DDT - Not implemented. Field MDT - Not implemented. Field MRLPD - Not implemented. Field MRMPD - Not implemented. Field MRPD - Not implemented. Field NP - Not implemented.pci_config::spdh: Field HD0 - Not implemented. Field HD1 - Not implemented. Field HD2 - Not implemented. Field HD3 - Not implemented.x58-ioxapic-legacy - model of X58 IOxAPIC unit:
The following registers have limitations:
pci_config::abar: Not implemented.pci_config::ioapictetpc: Not implemented.pci_config::rdindex: Not implemented.pci_config::rdwindow: Not implemented.x58-qpi-sad-f1-legacy - model of QPI System Address Decoder Regs:
The following registers have limitations:
pci_config::sad_dram_rule[0..7]: Not implemented.pci_config::sad_hen: Not implemented.pci_config::sad_interleave_list[0..7]: Not implemented.pci_config::sad_pam0123: Not implemented.pci_config::sad_pam456: Not implemented.pci_config::sad_smram: Not implemented.ich10_lan_v2 - model of Intel® ICH10 Gb Ethernet controller:
The following registers have limitations:
csr::ait: Not implemented.csr::ctrl: Field lanphypco - Not implemented. Field lanphypcv - Not implemented. Field lcd_rst - Not implemented. Field rfce - Not implemented. Field tfce - Not implemented.csr::eec: Not implemented.csr::eerd: Not implemented.csr::ert: Field rxt - Not implemented.csr::extcnf_ctrl: Not implemented.csr::extcnf_size: Not implemented.csr::fcrth: Field rt - Not implemented.csr::fcrtl: Field rt - Not implemented.csr::fcrtv: Not implemented.csr::fcttv: Not implemented.csr::fext: Not implemented.csr::fextnvm: Not implemented.csr::fflt[0..3]: Field len - Not implemented.csr::ffmt[0..127]: Field mask - Not implemented.csr::ffvt[0..127]: Not implemented.csr::fla: Not implemented.csr::fwsm_s: Not implemented.csr::h2me: Not implemented.csr::ip4at[0..3]: Not implemented.csr::ip6at[0..3]: Not implemented.csr::ipav: Field v41 - Not implemented. Field v60 - Not implemented.csr::ledctl: Not implemented.csr::pba: Field rxa - Not implemented. Field txa - Not implemented.csr::pbs: Field Size - Not implemented.csr::pcianacfg: Not implemented.csr::phy_ctrl: Not implemented.csr::rctl: Field pmcf - Not implemented.csr::rqdpc[0..1]: Not implemented.csr::rx_queue[0..1].rxdctl: Field gran - Not implemented. Field hthresh - Not implemented. Field pthresh - Not implemented. Field wthresh - Not implemented.csr::status: Field phytype - Not implemented.csr::strap: Not implemented.csr::tctl: Field rrthresh - Not implemented. Field rtlc - Not implemented. Field swxoff - Not implemented.csr::timadjh: Not implemented.csr::timadjl: Not implemented.csr::tipg: Not implemented.csr::tx_queue[0..1].txdctl: Field gran - Not implemented. Field hthresh - Not implemented. Field pthresh - Not implemented. Field wthresh - Not implemented.csr::wuc: Not implemented.csr::wufc: Not implemented.