OVP Virtual Platform: SiFiveFU540
This page provides detailed information about the OVP Virtual Platform Model of the
imperas.ovpworld.org SiFiveFU540 platform.
Licensing
Open Source Apache 2.0
Description
SiFive FU540-C000 SoC module.
On start up or reset, the reset code at 0x1004 will jump to a jump table entry indexed by the MSEL register at address 0x1000 (default initial MSEL value is 0xf which will cause a jump to address 0x10000). Use the msel peripheral's MSEL parameter to change the initial value of this register.
To run a bare metal application use the --program command line option to specify an elf file to be loaded. It must be linked to use addresses corresponding to the implemented memory regions. The --program option will override the initial pc with the ELF file's start address.
To facilitate booting Linux an OVP SmartLoader psuedo-peripheral has been included that provides the functionality of the ZSBL/FSBL. The SmartLoader's dtb parameter should be used to specify the device tree blob file to load, and the bbl elf file should be loaded using the --objfilenoentry command line option.
Reference
SiFive Freedom U540-C000 Manual FU540-C000-v1.0.pdf (https://www.sifive.com/documentation/chips/freedom-u540-c000-manual)
Limitations
Caches and the Cache Controller are not modeled.
The Instruction Tightly Integrated Memory (ITIM) is implemented simply as RAM. Deallocation by writing to the byte immediately following the memory is a NOP.
The L2 Loosely Integrated Memory (L2-LIM) is implemented simply as RAM. It is always available, since the Cache Controller is not modeled.
The L2 Scratchpad memory is not modeled.
The Platform DMA Engine (PDMA) is not modeled.
The Pulse Width Modulator (PWM) is not modeled.
The Inter-Integrated Circuit (I2C) Master Interface is not modeled.
The Serial Peripheral Interface (SPI) is not modeled. Instead a Virtio Block MMIO device has been added at reserved address 0x1f000000, using interrupt 54.
The General Purpose Input/Output Controller (GPIO) is not modeled.
The One-Time Programmable Memory Interface (OTP) is not modeled.
DDR controller is not modeled. DDR memory is modeled as RAM.
The Debug Interface is not modeled.
Location
The SiFiveFU540 virtual platform is located in an Imperas/OVP installation at the VLNV: imperas.ovpworld.org / platform / SiFiveFU540 / 1.0.
Platform Summary
Table : Components in platform
Type | Instance | Vendor | Component | |
---|
Module | SiFiveFU540 | sifive.ovpworld.org | FU540 | |
Platform Simulation Attributes
Table 1: Platform Simulation Attributes
Attribute | Value | Description |
---|
wallclock | 10 | Specify the wallclock factor |
stoponctrlc | stoponctrlc | Stop on control-C |
Command Line Control of the Platform
Built-in Arguments
Table 2: Platform Built-in Arguments
Attribute | Value | Description |
---|
extendedargs | extendedargs | The Command line parser will accept the extended argument set |
When running a platform in a Windows or Linux shell several command arguments can be specified. Typically there is a '-help' command which lists the commands available in the platforms.
For example: myplatform.exe -help
Some command line arguments require a value to be provided.
For example: myplatform.exe -program myimagefile.elf
Platform Specific Command Line Arguments
No platform specific command line arguments have been specified.
Sub-Module [sifive.ovpworld.org/module/FU540/1.0] instance: SiFiveFU540
No connections to this sub-module have been specified.