F29H85x-SDK  26.00.00
 
Resource Allocator

Resource Allocator is a novel methodology for configuring multi-core projects, which allows developers to tune SoC-level settings and allocate HW resources from a single unified view, simplifying the process of setting up a complex device with multiple cores. Resource Allocator is built around the existing SysConfig framework, and is available in the F29H85X-SDK, both in the Standalone SysConfig tool and integrated within CCS projects

Features

The Resource Allocator offers a consolidated view where the board designer can configure:

  • Peripheral Allocation
  • PinMux Configuration
  • Device level settings such as ClockTree, SysCtl...
  • System-level peripheral settings such as Frame Selection
  • SSU Configuration and Memory Allocation
  • Certain settings that can only be configured by the main core (CPU1)
  • ... and more

The CPU user can use the generated resource allocation database to configure their core independently, while still having access to critical configurations from other cores wherever needed.

Why use Resource Allocator?

  • Assign resources from one view : The board designer no longer needs to cycle through various SysConfig files to add modules on each core
  • Remove context interdependency : Application for one core can now be built independent of the other core projects
  • Abstraction of other core configurations : User can work freely in their own context without having to worry about other core configurations

How Resource Allocator Works

Standard Mode

Note
This is the default mode of SysConfig on startup, and is used by most examples provided in the SDK (unless otherwise specified)

Multi-Core view in Standard SysConfig

This is the normal operation flow, wherein the user configures each core using a separate CPUx.syscfg file, which is associated with a unique context in the SysConfig tool. Within each context, the user is free to specify the required hardware & software settings for that core. In F29x devices, certain initialization flows such as Clock setup, PinMux configuration, Device-level security specifications etc. must be performed on CPU1. This necessitates that all the cores must be opened concurrently in SysConfig (see image below) to ensure that the CPU1 context can aggregate information from all cores and generate correct initialization code.

Code generation on CPU1 for other core modules

In F29x devices, there is also a reverse dependency, where other contexts need to rely on the CPU1 to provide information such as Lockstep mode, clock dividers etc. in order to configure their respective cores accurately. This effectively means that each user must have access to all the SysConfig files in order to completely set up the SoC.

Resource Allocation (RA)

The RA flow consists of 2 steps:

  • Define Resource Allocations (SETUP Mode) : The board designer defines system level settings, and allocates resources to individual cores. This step generates a new Resource Allocation file in a .json format, which contains all this information

SETUP mode flow
  • Configure using Pre-defined Resources (CONFIGURE Mode) : The CPUx.syscfg file is loaded with the previously generated .json file as input. In this mode, the system-level configurations are locked to values specified in the JSON, and only the resources allocated to the current core are available to be configured

CONFIGURE mode flow

See the respective pages for detailed information on using these two modes.

Migrating from Standard to Resource Allocation Mode

Migration between modes is not supported with SysConfig v1.25 and F29H85X-SDK v1.02, with support planned for an upcoming release.

In order to get started, please create a new project / modify existing project to use Resource Allocation functionality. Refer to LED Blinky with Resource Allocator - CPU1/ CPU3 and RTDMA with Resource Allocator - CPU1/ CPU3 for steps to set up a CCS example project with Resource Allocation.

Dependencies

  • F29H85x-SDK : v1.02.00 or higher
  • SysConfig : v1.25 or higher
  • CCS : v20.3 or higher