4.4. Getting Device Information from the Intel® Simics® Model
List the devices in an Intel® Simics® model with the devs Intel® Simics® CLI command. Only devices mapped in a memory space are listed with the command. The devs command also displays the memory space and memory map for each device. The following example shows the truncated output from running the devs Intel® Simics® CLI command:
# Intel Simics simulator CLI running> devs -------------------------------------------------------------------------------- Count Device Space Range Fn/Port -------------------------------------------------------------------------------- 0 system.board.fpga system.board.fpga 0x0000000000000000 - memory_bank .soc_inst.example .soc_inst.example 0x00000000000fffff design.design _design.design_mem _memory 0 system.board.fpga system.board.fpga 0x000000001c000000 - 0 .soc_inst.hps_ .soc_inst.hps_ 0x000000001c000fff subsys.agilex_hps subsys.agilex_hps .ccu.bank.caiu0 .phys_mem 0 system.board.fpga system.board.fpga 0x000000001c005000 - 0 .soc_inst.periph_ .soc_inst.hps_ 0x000000001c005fff subsys.example_ subsys.agilex_ design_lw.design hps.phys_mem _memory : : : 0 system.board.fpga. system.board.fpga 0x0000000010a30000 - 0 soc_inst.hps_ .soc_inst.hps_ 0x0000000010a304ff subsys.sdm.sdm subsys.agilex_hps _mailbox.bank.regs .phys_mem 0 system.board.fpga system.board.fpga 0x0000000000000000 - memory_bank .soc_inst.periph_ .soc_inst.periph_ 0x00000000000fffff subsys.example_ subsys.example_ design_lw.design design_lw.design _memory _mem ---------------------------------------------------------------------------------
The table shows the path of the devices. The device paths depend on the virtual model. The paths shown correspond to those you see using the Agilex™ 5 E-Series Universal Virtual Platform.
#Intel Simics simulator CLI simics> devs system.board.fpga.soc_inst.hps_subsys.agilex_hps.pwrmgr.bank.regs ------------------------------------------------------------------- Count Device Space Range Fn ------------------------------------------------------------------- 0 system.board.fpga system.board.fpga 0x10d14000 - 0 .soc_inst.hps_ .soc_inst.hps_ 0x10d1405b subsys.agilex_hps. subsys.agilex_hps pwrmgr.bank.regs .phys_mem -------------------------------------------------------------------
Examine the registers of a specific device and the current value of them with the print-device-regs Intel® Simics® CLI command. Provide the path of the device register banks (as found with the devs command) as a parameter. For example, the print-device-regs system.board.fpga.soc_inst.hps_subsys.agilex_hps.pwrmgr.bank.regs command returns the following information:
#Intel Simics simulator CLI simics> print-device-regs system.board.fpga.soc_inst.hps_subsys.agilex_hps.pwrmgr.bank.regs --------------------------------------+----------------------------------------- Offset Name Size Value| Offset Name Size Value --------------------------------------+----------------------------------------- 0x0 DSU_FWENCTL 4 0x0 | 0x30 FSM_CPUx_PWRCTLR[3] 4 0x0 0x4 DSU_PGENCTL 4 0x0 | 0x34 FSM_CPUx_PWRSTAT[3] 4 0x0 0x8 DSU_PGSTAT 4 0x0 | 0x38 APS_FWENCTL 4 0x0 0xc FSM_DSU_PWRCTLR 4 0x0 | 0x3c APS_PGENCTL 4 0x0 0x10 FSM_DSU_PWRSTAT 4 0x0 | 0x40 APS_PGSTAT 4 0x0 0x14 DSU_PWRSTAT 4 0x0 | 0x44 PSS_FWENCTL 4 0x0 0x18 FSM_CPUx_PWRCTLR[0] 4 0x0 | 0x48 PSS_PGENCTL 4 0x0 0x1c FSM_CPUx_PWRSTAT[0] 4 0x0 | 0x4c PSS_PGSTAT 4 0x0 0x20 FSM_CPUx_PWRCTLR[1] 4 0x0 | 0x50 MPU_PCHCTLR 4 0x1 0x24 FSM_CPUx_PWRSTAT[1] 4 0x0 | 0x54 MPU_PCHSTAT 4 0x0 0x28 FSM_CPUx_PWRCTLR[2] 4 0x0 | 0x58 MPU_BOOTCONFIG 4 0x303 0x2c FSM_CPUx_PWRSTAT[2] 4 0x0 | --------------------------------------------------------------------------------
You also can list the object below a specific hierarchy in a virtual platform using the list-objects Intel® Simics® CLI command. In addition to listing the objects, this command indicates the class to which each object belongs.
This information is beneficial when analyzing the components in a virtual platform. The following output is an example of the list-objects command output showing the objects in the board component:
# Intel Simics simulator CLI simics> list-objects namespace = system.board ----------------------------------------------------- Component Class Object ----------------------------------------------------- <AT24Cxx_comp> system.board.eeprom_16b_0 : : <AT24Cxx_comp> system.board.eeprom_8b_4 <sm_universal_fpga_comp> system.board.fpga <i2c_link_v2> system.board.i2c_bus_0 <i2c_link_v2> system.board.i2c_bus_1 <i2c_link_v2> system.board.i2c_bus_2 <i2c_link_v2> system.board.i2c_bus_3 <i2c_link_v2> system.board.i2c_bus_4 : : <sm_hps_nand_flash_comp> system.board.nand <spi_flash_comp> system.board.qspi <sd_comp> system.board.sd_card <spi_flash_comp> system.board.spi_flash ----------------------------------------------------- ----------------------------------------- Class Object ----------------------------------------- <connector> system.board.eth0 <connector> system.board.eth1 <connector> system.board.eth2 <marvell_phy> system.board.phy0 <connector> system.board.phy0_slot <marvell_phy> system.board.phy1 <connector> system.board.phy1_slot <marvell_phy> system.board.phy2 <connector> system.board.phy2_slot -----------------------------------------