Release History

The latest Fast Models release version is reported at the top right of this page.

Details on What's New, and links to the Release Notes are provided below.

 

Fast Models

Version 11.2

Released: November 21, 2017

What's new in 11.2

New features and enhancements

  • Support for the ARMv8.4 (Beta) architecture.
  • New MMU-600 model.
  • New PipelineModel plug-ins:
    • CortexA53PipelineModel. This is an approximation of the CortexA53 pipeline.
    • InOrderPipelineModel. This is a simplified 4 stage single issue CPU pipeline model, with source code to help create new PipelineModel plug-ins.
  • New features in GGA:
    • Vulkan support.
    • AFBC encoding support.
    • New Mali-G51 (Beta) GPU model.
  • A PVBusLogger has been added to the downstream port of interconnect components except for CCI400.
  • New Virtio Ethernet device model, VirtioNetMMIO.
  • Support for PPU v1.1.
  • New source example platforms:
    • SGM-775.
    • SGI-575.

Deprecated and removed features

  • Model Shell and the related SimGen target TARGET_MAXVIEW, are deprecated.
  • TarmacTraceV8 has been removed. The TarmacTrace plug-in has been enhanced to replace it.

Release Note for Release History 11.2

Detailed documentation can be found in the 'doc' subfolder for Fast Models Tools and the 'Docs' subfolder for Fast Models Portfolio.

A significant number of the examples in Fast Models Portfolio 11.2 make use of images containing third party IP. These have been split out into a separate 'Third Party IP' package that can be downloaded from:

Not installing these images will mean that examples that require Dhrystone or the Linux images will not be functional, as well as examples using Accellera SystemC 2.3.1.

Enhancements and Changes in Fast Models Portfolio 11.2

  • Support for ARMv8.4 (Beta) architecture.

  • Support for Arm CoreLink MMU-600.

  • PipelineModel plugins. The CPU pipeline models are a set of Fast Models plugins and buildable source code. Refer to the Arm Developer documentation by searching for PipelineModel. Currently, the Windows version of the plugins are not fully supported. This will be addressed in a future release.

    The CortexA53PipelineModel plugin is an approximation of the CortexA53 pipeline. It has been tested to run on an FVP CortexA53x1 platform on Linux.

    The InOrderPipelineModel plugin is a simplified 4 stage single issue CPU pipeline model. It has been tested to run on an FVP CortexA53x1 platform on Linux.

    The InOrderPipelineModel comes with the source code for the plugin and CPU model. The intention is to provide guidelines on how a user might create their own PipelineModel plugins for FastModels. The nmake for windows is not yet provided. See the Readme: $PVLIB_HOME/plugins/source/PipelineModel/Cores/InOrder/README

  • GGA (Generic Graphics Accelerator) and GRM (Graphics Register Model) can work together to help graphics software stack verification in Fast Models 11.2. GRM implements ARM Mali graphics hardware without shader support and it can work with or without GGA. With GGA support, the end-user can view the rendering result in the Fast Models visulization window, and can use the error code checking feature to verify app correctness.

    Graphics APIs supported:

    • GLES
      • v2.0
      • v3.0
      • v3.1
    • Vulkan
      • 1.0.42

    New features in Fast Models 11.2:

    • Adds Vulkan GGA support.
    • Adds AFBC encoding support. Verified with bifrost-kernel r2p0-03rel0 and corresponding gralloc module.
    • Adds Mali-G51 (Beta). Verified with bifrost-kernel r7p0-01rel0 and corresponding gralloc module.

    Preferred host GPU hardware and driver:

    • If the target implements OpenGL ES APIs without Vulkan, the host can use any of the following graphics cards with drivers that support OpenGL 4.3 and above:
      • The preferred graphics card is NVIDIA GT 730 with driver versions:
        • 340.96 and above for Ubuntu
        • 340.66 and above for Windows
      • AMD graphics card R7 240 with driver versions:
        • 15.30 and above released by AMD officially, for Ubuntu.
        • 15.12 and above for Windows.
      • Intel HD graphics card HD Graphics 530 with driver versions:
        • Not available for Ubuntu.
        • 10.18.15.4279 for Windows.
    • To support Vulkan APIs, the preferred graphics card is NVIDIA GTX 1050 graphics card with driver versions:
      • 384.59 and above for Ubuntu.
      • 384.94 and above for Windows.

    Target GPU supported for GRM:

    • Mali-G71
    • Mali-G72. Verified with bifrost-kernel r2p0-03rel0 and corresponding gralloc module.
    • Mali-G51 (Beta). Verified with bifrost-kernel r7p0-01rel0 and corresponding gralloc module

    Integration guidance for GRM:

    • The source code for the SGM-775 System Guidance Mobile platform is provided as an example. This platform incorporates the Mali-G72 GRM, and illustrates how the model can be integrated into a platform. The sources can be found at FastModelsPortfolio_11.2/examples/LISA/CSS/Build_Kits3_SGM_775_Example

    • Firmware and scripts for booting this platform are not included in this distribution, but can be obtained directly from Arm by following the instructions at https://developer.arm.com/products/system-design/system-guidance/system-guidance-for-mobile. Note that the firmware distribution scripts support only Linux as a host platform.

    Target OSes supported:

    • Android 4.4.2
    • Android 6.0.1
    • Android 7.0.0

    Outstanding issues:

    • Some limitations for Vulkan support:
      • Only nVidia graphics driver is verified on host.
      • Only core specification is supported.
    • The following issues are for GLES only. They depend on the Mali OpenGL ES Emulator:
      • Doesn't support GLES v3.1 AEP and v3.2.
      • GLES extension API shadow2DEXT can't be correctly supported in GLES Shading Language.
      • GLES APIs glTexSubImage and glCopyTexSubImage2D have errors for some special formats like GL_ALPHA.
      • Android applications using GPU resources in multi-threaded manner are not well supported and might lead to unpredictable behavior.
    • Some corner cases may fail on AMD and Intel HD Graphics cards due to native graphics driver issues.
    • For Intel HD Graphics card, a driver version above 10.18.15.4279 may bring unexpected failures for some corner cases.

    Limitations:

    • For applications that only do single frame rendering, the rendering result is invisible in the Fast Models visualization window.
    • The MMU inside GPU can't be verified using GRM.

    Benchmark list verified:

    • Vulkan
      • Cube
      • Mali SDK Samples
      • Ice Cave for Vulkan
    • GLES
      • GLMark2
      • GFX Bench v2.7.5 and v3.0.11
      • AnTuTu 3D Rating
      • GPU Benchmark 3D v1.2.3
      • Unity Benchmark v1.1.1
      • Mali SDK Samples
  • PVBusLogger added to the downstream port of Interconnect components except for CCI400.

  • Support for Virtio Ethernet device model that conforms to the Virtio OASIS V1.0 specification. This device model provides much better network performance than the SMSC model, because it features host-assisted network acceleration. It is recommended to use this device on target simulated Linux or Linux-derived OS.

  • Support for PPU v1.1 has been added to the main package.

  • The SGM-775 source example platform implements the SGM-775 subsystem as specified by the Mobile System Guidance architecture specifications, with additional system peripherals to create a system model capable of booting Linux.

    For more information, refer to: https://developer.arm.com/products/system-design/system-guidance/system-guidance-for-mobile.

  • The SGI-575 source example platform is available upon request (via support-esl@arm.com). This model implements the SGI-575 subsystem as specified by the Infrastructure System Guidance architecture specifications, with additional system peripherals to create a system model capable of booting Linux.

    For more information, refer to: https://developer.arm.com/products/system-design/system-guidance/system-guidance-for-infrastructure.

Notice

  • The folder structure in FastModelsPortfolio will be refactored in a future release.

  • Model Shell and the related SimGen target (TARGET_MAXVIEW) are now deprecated. They will be removed from the Fast Models releases no earlier than May 2018.

  • TarmacTraceV8 has been removed. TarmacTrace plugin has been enhanced to replace TarmacTraceV8.

  • Excessive license checkouts may appear in client license diagnostics (FLEXLM_DIAGNOSTICS=3). However, the correct number of licenses are actually checked out.

  • VFS has been removed. Please use Virtio P9.

  • ARM926, ARM968, ARM1136 and ARM1176 models are now deprecated and should not be used. These will be removed in an upcoming release.

Fast Models limitations

  • Cortex-A55 and Cortex-A75:

    • BROADCASTCACHEMAINTPOU pin is not implemented.
    • COREINSTRRET,COREINSTRRUN,nCLUSTERPMUIRQ,nPMBIRQ signals are not implemented.
    • 256-bit wide output transactions are not supported.
    • Dual ACE masters are not supported.
    • Error correction/detection features are not supported.
    • Self-test features (MBIST) are not supported.
    • Latency configuration is not supported.
    • Snoop filtering is not supported.
    • Cache stashing capability is not supported.
  • DynamIQ(FCM). For flexible Cortex-A55+Cortex-A75 clusters, there is a known issue related to presentation of parameters and CADI targetNames to CADI clients when cpu instances in 1st subcluster are configured to be less than 4. CADI targetNames and parameters for cpu[0-3] are always shown from Cortex-A55 subcluster, when viewed by CADI clients.

  • DMC-620:

    • No support for address striping.
    • Works with linear addresses and not in rank,bank,row,column form.
    • Includes error injection and detection mechanisms and syndrome registers support only for 2 out of the 6 RAS error types.
    • Scrubbing functionality is not provided.
    • Does not implement direct read or write commands.
    • Does not implement any performance counters.
  • CMN-600:

    • PMU counters are not supported (counter registers are implemented as RAZ).
    • All RNI and RND nodes control 3 interface ports. The other variants which control 2 or 1 ports are not supported.
    • QoS is not supported and all related registers are RAZ/WI.
    • Error injection and Error generation is not supported. All error registers are RAZ/WI.
    • Power/Clock/Interrupt signals are not supported.
    • HN-T nodes are not supported.
  • SMMUv3AEM:

    • No support for RAS.
    • No support for power control. No P- or Q-channels.
    • AMBA 'stash' operations and 'destructive read' operations are not supported on PVBus and also not by the device.
    • The PMU has limited functionality, only a subset of the architecturally mandatory events are supported (as indicated by the SMMU_PMCG_CEID0 fields). The PMU is only intended for demonstration purposes and for driver development.
    • Cache maintenance operations from upstream client devices are not supported.
  • Mali-V550:

    • No support for HEVC or RealVideo decoders.
    • No support for 10-bit video output.
    • No profiling support.
    • No QoS support.
    • Power/Test modes are modelled only as register state changes.
    • To build example platforms containing V550, either the Fast Models Third-Party IP package needs to be installed, or the dependency on FFmpeg and libvpx needs to be removed from the platform's sgproj file by removing the line containing "V5xx.sgrepo".

    The model requires an external OpenMAX (OMX) IL implementation for codec functionality. By default, V550 will look for ffomaxil.dll on Windows or libffomaxil.so on Linux in the model binary's directory or in the Fast Models installation. The default library path can be overridden using the parameter omx-library-path.

    FFomaxIL is an OMX IL implementation provided by ARM in the TPIP package for convenience. Please refer to the TPIP package for more details on FFomaxIL.

    When querying the OMX core, V550 will search for the following roles in the list of OpenMAX components:

    • H.264 decode: "video_decoder.avc"
    • JPEG decode: "video_decoder.mjpeg"
    • MPEG2 decode: "video_decoder.mpeg2"
    • MPEG4 decode: "video_decoder.mpeg4"
    • VC1 decode: "video_decoder.vc1"
    • VP8 decode: "video_decoder.vp8"
    • VP8 encode: "video_encoder.vp8"
  • Mali-V61:

    • No support for HEVC, VP9 or RealVideo decoders.
    • No support for 10-bit video output.
    • No support for RGB or AFBC input for encoding.
    • No profiling support.
    • No QoS support.
    • Power/Test modes are modelled only as register state changes.
    • No support for AFBC 1.2.
    • Models r0p0 hardware revision.
    • To build example platforms containing V61, either the Fast Models Third-Party IP package needs to be installed, or the dependency on FFmpeg and libvpx needs to be removed from the platform's sgproj file by removing the line containing "V5xx.sgrepo".

    The model requires an external OpenMAX (OMX) IL implementation for codec functionality. By default, V61 will look for ffomaxil.dll on Windows or libffomaxil.so on Linux in the model binary's directory or in the Fast Models installation. The default library path can be overridden using the parameter omx-library-path.

    FFomaxIL is an OMX IL implementation provided by ARM in the TPIP package for convenience. Please refer to the TPIP package for more details on FFomaxIL.

    When querying the OMX core, V61 will search for the following roles in the list of OpenMAX components:

    • H.264 decode: "video_decoder.avc"
    • JPEG decode: "video_decoder.mjpeg"
    • MPEG2 decode: "video_decoder.mpeg2"
    • MPEG4 decode: "video_decoder.mpeg4"
    • VC1 decode: "video_decoder.vc1"
    • VP8 decode: "video_decoder.vp8"
    • VP8 encode: "video_encoder.vp8"

Compilers and Operating Systems supported by Fast Models

  • RedHat 6
  • RedHat 7
  • Ubuntu 14.04
  • Ubuntu 16.04
  • Windows 7
  • Windows 10
  • GCC-4.8.3 and GCC-4.8.4
  • GCC-4.9.2
  • GCC-5.4.0
  • Visual Studio 2013 - Update 4
  • Visual Studio 2015 - Update 3 (Support added in Fast Models 11.2)
  • The following warning is produced when compiling Fast Models with Visual Studio 2015: Unknown compiler version - please run the configure tests and report the results. This occurs due to the Accellera SystemC library using an older version of the Boost library which is not aware of any versions after Visual Studio 2013.

FLEXnet license management utilities

FLEXnet server binaries are no longer shipped with the product; if you need them, download them from https://developer.arm.com/products/software-development-tools/license-management/downloads.

Release 11.2 of Fast Models requires a newer version of the FLEXnet license management utilities. If you are using floating licenses, you need to upgrade to version 11.14.1.0 (or later) of the FLEXnet license management utilities. Prior versions are not compatible.

License queueing support

When using floating licenses, if all available licenses are in use, models and tools can be configured to queue until a license is available. This is enabled by setting the environment variable FM_LICENSE_QUEUE_TIMEOUT to a timeout value in seconds. The default value of 0 disables this feature.

Note that enabling this feature may cause model initialisation to take a long time, as models will wait for a license to become available until the timeout period expires, rather than failing immediately.

Linaro images and command lines tested in this release

All A-profile platforms available in this release have been validated against the following Linaro images: Android 16.12 for v8-A platforms and Android 15.03 for v7-A platforms.

The command lines tested are:

  • v8-A:

    FVP_Base_AEMv8A-AEMv8A \
    -C pctl.startup=0.0.0.0 -C bp.secure_memory=0 -C cache_state_modelled=0 -C bp.pl011_uart0.untimed_fifos=1 \
    -C bp.secureflashloader.fname=bl1.bin -C bp.flashloader0.fname=fip.bin \
    -C bp.ve_sysregs.mmbSiteDefault=0 -C bp.virtioblockdevice.image_path=fvp.img \
    --data cluster0.cpu0=Image@0x80080000 \
    --data cluster0.cpu0=fdt.dtb@0x82000000 \
    --data cluster0.cpu0=ramdisk.img@0x84000000
    EVS_Base_AEMv8A-AEMv8A.x \
    -C Base.pctl.startup=0.0.0.0 -C Base.bp.secure_memory=0 -C Base.cache_state_modelled=0 -C Base.bp.pl011_uart0.untimed_fifos=1 \
    -C Base.bp.secureflashloader.fname=bl1.bin -C Base.bp.flashloader0.fname=fip.bin \
    -C Base.bp.ve_sysregs.mmbSiteDefault=0 -C Base.bp.virtioblockdevice.image_path=fvp.img \
    --data Image@0x80080000 \
    --data fdt.dtb@0x82000000 \
    --data ramdisk.img@0x84000000
    (This command line is also valid for SVPs)
  • v7-A:

    FVP_VE_Cortex-A15x1-A7x1 \
    -C motherboard.flashloader0.fname=boot/rtsm/uefi_rtsm_ve-ca15.bin -C motherboard.flashloader1.fname=uefi-vars.fd \
    -C motherboard.flashloader1.fnameWrite=uefi-vars.fd -C motherboard.mmc.p_mmc_file=linaro.img \
    -C motherboard.pl011_uart0.unbuffered_output=true -C motherboard.smsc_91c111.enabled=1 \
    -C motherboard.hostbridge.userNetworking=1
    EVS_LinuxBoot_Cortex-A15x2 \
    -C Base.motherboard.flashloader0.fname=boot/rtsm/uefi_rtsm_ve-ca15.bin -C Base.motherboard.flashloader1.fname=uefi-vars.fd \
    -C Base.motherboard.flashloader1.fnameWrite=uefi-vars.fd -C Base.motherboard.mmc.p_mmc_file=linaro.img \
    -C Base.motherboard.pl011_uart0.unbuffered_output=true -C Base.motherboard.smsc_91c111.enabled=1 \
    -C Base.motherboard.hostbridge.userNetworking=1
    (This command line is also valid for SVPs)

Outstanding CTModel issues

  • Models only support some types of memory breakpoints. Currently the error message returned if an unsupported type is used may not clearly indicate that the breakpoint type is unsupported.

  • CADI methods deprecated for use in Fast Models 11.2:

    • CADICallbackObj
      • appliOpen()
      • appliClose()
      • cycleTick()
      • killInterface()
  • When attempting to debug an ISIM system, if you launch Model Debugger from System Canvas and then specify an application to load this causes an error in Model Debugger (Error using application...), and the model and application fail to load.

    Workaround: Launch Model Debugger without specifying an application, and then load the application from within Model Debugger itself using File -> Load Application Code.

  • A15 bus transactions are not bus accurate.

  • CADI and MTI names for CP15 registers are different.

  • Cache state modelling configuration is now verified at simulation start and the simulation will exit with an error message if an incorrect configuration is detected in the platform. For example:

    Error: MyPlatform: Incompatible Cache Configuration
    Cache state modelling is on in my_platform.cci
    Cache state modelling is off in my_platform.core.l2_cache
  • PVBus Fan out is not supported and a bus decoder is required in order to do this.

  • When semi-hosting is enabled on SystemC model and a read from stdin is done within the target software, the semi-hosting call from CADI does not originate from the SystemC thread. Consequently the complete simulation becomes blocked if the semi-hosting call cannot complete due to no user input.

  • Cache models may output debug messages on stderr even with --quiet.

  • The Watchpoint mask does not have the expected effect.

  • When writing to MDSCR_EL1.SS on AEMv8A, it does not change status until an ERET is executed. This should be consistently managed by the has_delayed_sysreg parameter.

  • In some circumstances, the model will boot more slowly when an operating system filesystem image is used in read-only mode. The workaround is to make sure that the image is writeable.

  • The shareable override functionality of CCI400 does not work. The slave interface shareable override register exists and may be read and written but has no functionality.

  • The value of cpu.register_reset_data and cpu.scramble_unknowns_at_reset should be reflected in the bits of CNTHCTL_EL2 which reset value is UNKNOWN.

  • When EL3 == AArch32 and executing in AArch32 Secure EL1 (SVC_s), an update of the CNTP_CTL_S causes the tarmac log to print an update of CNTPS_CTL_EL1.

  • Breakpoints must be set after loading the image to be run, otherwise these will not be hit during execution even if the addresses are accessed.

  • Cortex-A53, A35 and A32 lack the Advanced SIMD Engine-present parameter.

  • A17 BROADCAST parameters should be at cluster level, not cpu level.

  • CADIExecReset is no longer supported and CADIExecGetResetLevels does not throw an error.

  • InOrderPipelineModel is tested on Linux only. nMakefile for Windows is not available yet.

  • CortexA53PipelineModel plugin is available for Linux hosts only.

  • DynamIQ does not support all cluster models.

  • The Help output in SVP platforms lists "-f" command line shorthand being used for both "--config-file" and "--fast". Using "-f" will act as "--fast". In order to load a configuration file please use "--config-file" option instead.

  • CMN600 YML parser faults with single quoted strings.

Outstanding tools issues

  • ModelDebugger does not display the correct values for wTasKMaskId.

  • The Cortex-M0 model exposes a VTOR register via CADI, but this register in not present in hardware.

  • On Windows, .bmp files are copied into the top Build folder for FVP_MPS2 models. They are not accessible to the isim_system generated in the internal platform/flavor dependent folder. An easy workaround is to manually copy them into that folder.

Feedback on this product

If you have any comments or suggestions about this product, contact support-esl@arm.com and give:

  • The product name.

  • The product revision or version.

  • An explanation with as much information as you can provide. Include symptoms and diagnostic procedures if appropriate.