Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added STM500 Demo Model #26

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
# This file is autogenerated by FastSim/BuildSGProjs.py. Please do not edit directly.
sgproject "FVP_STM_Cortex-A57.sgproj"
{
TOP_LEVEL_COMPONENT = "FVP_STM";
ACTIVE_CONFIG_LINUX = "Linux64-Release-GCC-4.9";
ACTIVE_CONFIG_LINUX_ARMV8L = "Linux64_armv8l-Release-GCC-6.3";
ACTIVE_CONFIG_WINDOWS = "Win64-Release-VC2015";
config "Linux64-Debug-GCC-4.9"
{
ADDITIONAL_COMPILER_SETTINGS = "-march=core2 -ggdb3 -Wall -std=c++11";
ADDITIONAL_LINKER_SETTINGS = "-Wl,--no-undefined";
BUILD_DIR = "./Linux64-Debug-GCC-4.9";
COMPILER = "gcc-4.9";
CONFIG_DESCRIPTION = "Default x86_64 Linux configuration for GCC 4.9 with debug information";
CONFIG_NAME = "Linux64-Debug-GCC-4.9";
ENABLE_DEBUG_SUPPORT = "1";
PLATFORM = "Linux64";
SIMGEN_COMMAND_LINE = "--num-comps-file 10";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Linux64-Release-GCC-4.9"
{
ADDITIONAL_COMPILER_SETTINGS = "-march=core2 -O3 -Wall -std=c++11";
ADDITIONAL_LINKER_SETTINGS = "-Wl,--no-undefined";
BUILD_DIR = "./Linux64-Release-GCC-4.9";
COMPILER = "gcc-4.9";
CONFIG_DESCRIPTION = "Default x86_64 Linux configuration for GCC 4.9, optimized for speed";
CONFIG_NAME = "Linux64-Release-GCC-4.9";
PLATFORM = "Linux64";
PREPROCESSOR_DEFINES = "NDEBUG";
SIMGEN_COMMAND_LINE = "--num-comps-file 50";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Linux64-Debug-GCC-6.4"
{
ADDITIONAL_COMPILER_SETTINGS = "-march=core2 -ggdb3 -Wall -std=c++11 -Wno-deprecated -Wno-unused-function";
ADDITIONAL_LINKER_SETTINGS = "-Wl,--no-undefined";
BUILD_DIR = "./Linux64-Debug-GCC-6.4";
COMPILER = "gcc-6.4";
CONFIG_DESCRIPTION = "Default x86_64 Linux configuration for GCC 6.4 with debug information";
CONFIG_NAME = "Linux64-Debug-GCC-6.4";
ENABLE_DEBUG_SUPPORT = "1";
PLATFORM = "Linux64";
SIMGEN_COMMAND_LINE = "--num-comps-file 10";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Linux64-Release-GCC-6.4"
{
ADDITIONAL_COMPILER_SETTINGS = "-march=core2 -O3 -Wall -std=c++11 -Wno-deprecated -Wno-unused-function";
ADDITIONAL_LINKER_SETTINGS = "-Wl,--no-undefined";
BUILD_DIR = "./Linux64-Release-GCC-6.4";
COMPILER = "gcc-6.4";
CONFIG_DESCRIPTION = "Default x86_64 Linux configuration for GCC 6.4, optimized for speed";
CONFIG_NAME = "Linux64-Release-GCC-6.4";
PLATFORM = "Linux64";
PREPROCESSOR_DEFINES = "NDEBUG";
SIMGEN_COMMAND_LINE = "--num-comps-file 50";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Linux64-Debug-GCC-7.3"
{
ADDITIONAL_COMPILER_SETTINGS = "-march=core2 -ggdb3 -Wall -std=c++11 -Wno-deprecated -Wno-unused-function";
ADDITIONAL_LINKER_SETTINGS = "-Wl,--no-undefined";
BUILD_DIR = "./Linux64-Debug-GCC-7.3";
COMPILER = "gcc-7.3";
CONFIG_DESCRIPTION = "Default x86_64 Linux configuration for GCC 7.3 with debug information";
CONFIG_NAME = "Linux64-Debug-GCC-7.3";
ENABLE_DEBUG_SUPPORT = "1";
PLATFORM = "Linux64";
SIMGEN_COMMAND_LINE = "--num-comps-file 10";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Linux64-Release-GCC-7.3"
{
ADDITIONAL_COMPILER_SETTINGS = "-march=core2 -O3 -Wall -std=c++11 -Wno-deprecated -Wno-unused-function";
ADDITIONAL_LINKER_SETTINGS = "-Wl,--no-undefined";
BUILD_DIR = "./Linux64-Release-GCC-7.3";
COMPILER = "gcc-7.3";
CONFIG_DESCRIPTION = "Default x86_64 Linux configuration for GCC 7.3, optimized for speed";
CONFIG_NAME = "Linux64-Release-GCC-7.3";
PLATFORM = "Linux64";
PREPROCESSOR_DEFINES = "NDEBUG";
SIMGEN_COMMAND_LINE = "--num-comps-file 50";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Linux64_armv8l-Debug-GCC-6.3"
{
ADDITIONAL_COMPILER_SETTINGS = "-march=armv8-a -ggdb3 -Wall -std=c++11 -Wno-deprecated -Wno-unused-function";
ADDITIONAL_LINKER_SETTINGS = "-Wl,--no-undefined";
BUILD_DIR = "./Linux64_armv8l-Debug-GCC-6.3";
COMPILER = "gcc-6.3";
CONFIG_DESCRIPTION = "Default armv8l Linux configuration for GCC 6.3 with debug information";
CONFIG_NAME = "Linux64_armv8l-Debug-GCC-6.3";
ENABLE_DEBUG_SUPPORT = "1";
PLATFORM = "Linux64_armv8l";
SIMGEN_COMMAND_LINE = "--num-comps-file 10";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Linux64_armv8l-Release-GCC-6.3"
{
ADDITIONAL_COMPILER_SETTINGS = "-march=armv8-a -O3 -fomit-frame-pointer -Wall -std=c++11 -Wno-deprecated -Wno-unused-function";
ADDITIONAL_LINKER_SETTINGS = "-Wl,--no-undefined";
BUILD_DIR = "./Linux64_armv8l-Release-GCC-6.3";
COMPILER = "gcc-6.3";
CONFIG_DESCRIPTION = "Default armv8l Linux configuration for GCC 6.3, optimized for speed";
CONFIG_NAME = "Linux64_armv8l-Release-GCC-6.3";
PLATFORM = "Linux64_armv8l";
PREPROCESSOR_DEFINES = "NDEBUG";
SIMGEN_COMMAND_LINE = "--num-comps-file 50";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Win64-Debug-VC2015"
{
ADDITIONAL_COMPILER_SETTINGS = "/Od /RTCsu /Zi";
ADDITIONAL_LINKER_SETTINGS = "/DEBUG";
BUILD_DIR = "./Win64-Debug-VC2015";
COMPILER = "VC2015";
CONFIG_DESCRIPTION = "Default x86_64 Windows configuration for Visual Studio 2015 with debug information";
CONFIG_NAME = "Win64-Debug-VC2015";
ENABLE_DEBUG_SUPPORT = "1";
PLATFORM = "Win64D";
SIMGEN_COMMAND_LINE = "--num-comps-file 10";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Win64-Release-VC2015"
{
ADDITIONAL_COMPILER_SETTINGS = "/O2";
BUILD_DIR = "./Win64-Release-VC2015";
COMPILER = "VC2015";
CONFIG_DESCRIPTION = "Default x86_64 Windows configuration for Visual Studio 2015, optimized for speed";
CONFIG_NAME = "Win64-Release-VC2015";
PLATFORM = "Win64";
PREPROCESSOR_DEFINES = "NDEBUG";
SIMGEN_COMMAND_LINE = "--num-comps-file 50";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Win64-Debug-VC2017"
{
ADDITIONAL_COMPILER_SETTINGS = "/Od /RTCsu /Zi";
ADDITIONAL_LINKER_SETTINGS = "/DEBUG";
BUILD_DIR = "./Win64-Debug-VC2017";
COMPILER = "VC2017";
CONFIG_DESCRIPTION = "Default x86_64 Windows configuration for Visual Studio 2017 with debug information";
CONFIG_NAME = "Win64-Debug-VC2017";
ENABLE_DEBUG_SUPPORT = "1";
PLATFORM = "Win64D";
SIMGEN_COMMAND_LINE = "--num-comps-file 10";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
config "Win64-Release-VC2017"
{
ADDITIONAL_COMPILER_SETTINGS = "/O2";
BUILD_DIR = "./Win64-Release-VC2017";
COMPILER = "VC2017";
CONFIG_DESCRIPTION = "Default x86_64 Windows configuration for Visual Studio 2017, optimized for speed";
CONFIG_NAME = "Win64-Release-VC2017";
PLATFORM = "Win64";
PREPROCESSOR_DEFINES = "NDEBUG";
SIMGEN_COMMAND_LINE = "--num-comps-file 50";
SIMGEN_WARNINGS_AS_ERRORS = "1";
TARGET_MAXVIEW = "0";
TARGET_SYSTEMC_ISIM = "1";
}
files
{
path = "$(PVLIB_HOME)/etc/sglib.sgrepo";
path = "$PVLIB_HOME/examples/LISA/FVP_MPS2/LISA/CMSDK_UART.lisa";
path = "../LISA/FVP_STM.lisa";
path = "../LISA/STM500.lisa";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@echo off

rem brief Build a CADI system using simgen
rem
rem Copyright ARM Limited 2020 All Rights Reserved.

"%MAXCORE_HOME%\bin\simgen" --num-comps-file 50 --gen-sysgen --warnings-as-errors -p "FVP_STM_Cortex-A57.sgproj" -b %*

rem eof build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh
# vim: syntax=sh

# brief Build a CADI system using simgen
#
# Copyright ARM Limited 2020 All Rights Reserved.

simgen --num-comps-file 50 --gen-sysgen --warnings-as-errors -p "FVP_STM_Cortex-A57.sgproj" -b $*

# eof build.sh
60 changes: 60 additions & 0 deletions fast-models-examples/STM_Demo/Model/FVP_STM/LISA/FVP_STM.lisa
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
component FVP_STM
{
properties
{
version = "0.0";
description = "ARM platform for STM";
}

includes
{
#define STM_AXI_BASE 0x28000000ULL
#define STM_APB_BASE 0x20100000ULL
#define UART0_BASE 0x40004000
}

resources
{
PARAMETER { description("RAM Fill Pattern 1"), default(0x0), type(uint32_t) } ram_fill_pattern_1;
PARAMETER { description("RAM Fill Pattern 2"), default(0x0), type(uint32_t) } ram_fill_pattern_2;
}

composition
{
ram : RAMDevice(fill1=ram_fill_pattern_1, fill2=ram_fill_pattern_2);
cpu : ARMCortexA57x4CT("PERIPHBASE"=0x2C000000,
"cpu0.semihosting-heap_base".default = 0x00000000,
"cpu0.semihosting-heap_limit".default = 0xff000000,
"cpu0.semihosting-stack_limit".default = 0xff000000,
"cpu0.semihosting-stack_base".default = 0xffff0000);
uart0 : PL011_Uart(revision="r1p5");
stm : STM500();
telnetterminal0 : TelnetTerminal();
busdecoder : PVBusDecoder;
masterclock : MasterClock;
clk100Mhz : ClockDivider("mul"=100000000, "div" =1);
}

connection
{
// Clock
masterclock.clk_out => clk100Mhz.clk_in;
clk100Mhz.clk_out => cpu.clk_in;

// RAM
// All transaction go to memory by default
busdecoder.pvbus_m_range[0x00000000..0xffffFFFF] => ram.pvbus;

// STM
busdecoder.pvbus_m_range[STM_AXI_BASE..STM_AXI_BASE+0x3FFF] => stm.AXI[STM_AXI_BASE..STM_AXI_BASE+0x3FFF];
busdecoder.pvbus_m_range[STM_APB_BASE..STM_APB_BASE+0x3FFF] => stm.DebugAPB;

// CPU
cpu.pvbus_m0 => busdecoder.pvbus_s;

// UART
busdecoder.pvbus_m_range[UART0_BASE..UART0_BASE+0xFFF] => uart0.pvbus;
clk100Mhz.clk_out => uart0.clk_in_ref;
uart0.serial_out => telnetterminal0.serial;
}
}
Loading