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.3

Released: February 28, 2018

What's new in 11.3

New features and enhancements

  • Support for the ARMv8.4 architecture.
  • Support for the Mali-D71 display processor.
  • New features in GGA:
    • IRQ trace support for all GRM variants.
    • Support for Vulkan GRM (Beta).
    • Support for Mali Graphics Debugger (MGD) (Beta).
  • ToggleMTIPlugin has been added to help to register and unregister MTI callbacks.
  • DRAM has been enhanced to accept routing of addresses in the 52-bit address range.
  • The -f parameter in SVP Platforms now means --config-file instead of --fast to make it consistent with existing FVPs.

Deprecated and removed features

  • The ARM926, ARM968, ARM1136, and ARM1176 core models have been removed.

Release Note for Release History 11.3

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.3 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.3

  • Support for ARMv8.4 architecture.

  • Support for Mali-D71 display processor.

  • GGA (Generic Graphics Accelerator) and GRM (Graphics Register Model) can work together to help graphics software stack verification in Fast Models 11.3. 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

    Major Updates in Fast Models 11.3:

    • Adds IRQ trace support for all GRM variants.
    • Adds Vulkan GRM support (Beta).
    • Adds Mali Graphics Debugger (MGD) support on GGA and GRM (Beta).
    • Fixed a multiple processes/threads issue with Sidechannel when running GGA.
    • Fixed bugs with AFBC encoding. Verified with bifrost-kernel r2p0-03rel0 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.
    • Mali-G51. 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.3/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.

    • The Mali Graphics DDK source and builds can be obtained at https://connect.arm.com/browse/Systems IP/Graphics.

    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 the 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
  • The ToggleMTIPlugin has been added. This plugin helps to register and unregister MTI callbacks thereby starting and stopping tracing activity during simulation.

  • DRAM has been enhanced to accept routing of addresses in 52-bit address range.

  • Replaced "-f" shorthand in SVP Platforms to mean "--config-file" instead of "--fast" to make it consistent with existing FVPs. Use "--fast" flag for fast mode.

Notice

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

  • The default parameter values for HostBridge and VirtioNet will change 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 core models have been removed.

  • SimGen issues warning W7538 when it detects all elements of a master port array are connected to a single slave port. Such fan-ins are valid, but are usually unintentional and can cause significant performance problems.

  • Support for compilers GCC 4.8.3 and Visual Studio 2013 will be removed after the next release.

Fast Models limitations

  • 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.
    • No support for PCIe-NoSnoop transactions.
    • All of SMMUv3.0, SMMUv3.1 implemented except for limitations above.
    • All of SMMUv3.2 implemented except for Secure Virtualisation and limitations above.
  • Mali-D71:

    • No support for Trusted layers.
    • No support for Image enhancements.
    • No Co-processor support for HDR processing.
    • No QoS support.
    • Extra ports have been provided for integration with SMMUv3.
    • The following configuration parameters are not available:
      • CONFIG_MAX_LINE_SIZE
      • CONFIG_DISPLAY_TBU_EN. TBUs are integrated separately using the given ports.
      • CONFIG_AFBC_DMA_EN. The ADU is present. If it is not used, do not program it.
  • For the InOrder PipelineModel source example plugin, "libtinfo-dev" needs to be installed if on Ubuntu 16.04.s

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
  • 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.3 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.3:

    • 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.

  • DynamIQ does not support all cluster models.

  • Repeated registering and deregistering MTI counters will eventually exhaust code cache.

  • FCM clusters don't support cores with different LISA interfaces.

  • Publishing of vfp-present parameter on Cortex-A75 is inconsistent.

  • RVBARADDR is used to determine PC on reset even when core is resetting in AArch32.

  • scx_get_parameter_list on a system with CMN600 will create warning.

  • SystemC isim disables timing annotation by default.

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.

  • When the Cortex-M33 and Cortex-M23 models are in Non-Secure state, they can fetch instructions from regions marked as NSC. This special case occurs when returning to a non-secure mode from a secure exception with the return address set to an NSC region which is not 1K aligned.

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.