Cirrus Logic AN298 User Manual

Mid-Processor Overlay
PCM Output s
Post-Processor Overlay (with APP loaded)
ID = 0x83
ID = 0xD9
ID = 0xD5ID = 0xD4
Tone Control Module
Re-Eq
Module
Bass
Management
Module
Parametric
EQ
Module
Delay
Module
Audio Manager
Module
Includes:
Ga in (master) Mute (ma ster) Channel Trim Channel Remap
Up-sampler
Mid-Processor M odule
e. g. P L II, PLIIx, Neo6, Crossb a r,
Viva+, COMS2, Neural Surround,
Circl e Sur round 2
Virtualizer-Processor
Module
e.g. DVS2, DH2, SRS TSXT,
Audistry
Virtuali zer-Processor Overlay
Mid-Processor Overlay
PCM inputs
Down-
sampler
AN298
CS485xx Firmware User’s Manual:
General Overview and Common Firmware Modules
Contents
Document StrategyOverviewFirmware MessagingOS Firmware ModuleAudio Manager Firmware ModulePCM Firmware ModuleLow Power ModeWatchdog TimerDocument Revisions
Overview
AN298 provides a description of the operation of firmware for the CS485xx family of DSPs. This document gives a general overview to the family of CS485xx Firmware User’s Manuals designated by the general name AN298[X][Y]; where [X] = MPM (Matrix Processing Module), VPM (Virtual Processing Module), PPM (Post Processing Module), and [Y] = A,B,C, etc. Note that the CS485xx family of DSPs does not contain a compressed data decoder.
More specifically, the purpose of this document is to serve as an introduction to the various DSP Firmware designed specifically to run on the CS485xx DSP. This document will attempt to explain frequently used term in olog y and, at the same time, systematically explain the OS operation and communication for the CS485xx.
http://www.cirrus.com
CS485xx Block Diagram
Copyright Cirrus Logic, Inc. 2013
(All Rights Reserved)
AN298RC14
MAR '13

1 Document Strategy

1 Document Strategy
The CS485xx has been designed with an inherent flexibility in terms of firmware usage. Each instance of operation of the CS485xx can potentially use a different mix of DSP firmware depending on the need of the end user. As such, the strategy adopted to document the various DSP firmware is based on a single General Overview coupled with an individual Firmware User’s Manual for each DSP firmware module offered by Cirrus Logic. AN298 is the General Overview to the family of CS485xx Firmware User’s Manuals.
The individual Firmware User’s Manuals, mentioned in the abov e paragraph, each follow as an extension of AN298. These manuals have been named in such a way so as to classify them into one of the following categories:
Operating System and General Overview
Matrix Processing Module (MPM)
Virtual Processing Module (VPM)
Post Processing Module (PPM)
Furthermore, since each classification (e.g., Post Processing Module) may contain several associated DSP firmware, an incremental letter assignment (e.g., A, B, C etc.) was given to index each DSP firmware within a given category. As an example, the table below outlines the general naming conventions for several firmware modules.
Table 1-1. Naming Conventions
DSP Firmware Module Base Name Overlay Type Index Reference Number
General Overview, Op erating System & Common
Firmware Modules
Delay Module AN298 Post Processing Module (PPM) a AN298PPMA
Crossbar Mixer Module AN298 Matrix Processing Module (MPM) c AN298MPMC
Dolby Headphone 2 AN298 Virtual Processing Module (VPM) a AN298VPMA
AN298 (General) - AN298
For a further breakdown of the available CS485xx firmware modules and their respective Firmware User’s Guide document number, see Section 2.4. For the latest code updates and availability, contact your local field applications engineer (FAE).
2 AN298RC14
Mid-Processor O ver l a y
PCM Output s
Post-Processor O ver l ay (wit h APP loaded)
ID = 0x83
ID = 0xD9
ID = 0xD5ID = 0xD4
Tone Control Module
Re-Eq
Module
Bass
Management
Module
Parametric
EQ
Module
Delay
Module
Audio Manager
Module
Includes:
Ga in (mas ter) Mute (mas ter ) Channel Trim Channel Remap
Up-sampler
Mid-Processor Module
e.g. P L II, PLIIx, N e o6, Cros s b a r,
Viva+, COMS2, Neur al Sur r ound,
Circl e Surr ound 2
Virtualizer-Processor
Module
e.g. DVS2, DH2, SRS TSXT,
Audistry
Virtual izer-Processor Overlay
Mid-Processor O ve rlay
PCM input s
Down-
sampler

2 Overview

2 Overview
The firmware that runs on this device expects a stereo or multi-channel PCM input source. This section describes the different overlays as well as the functionality of the various processor module overlays.
Figure 2-1. CS485xx Firmware Block Diagram

2.1 Firmware Overlays

The data flows through a series of four firmware overlays that contain one or more firmware modules. A firmware module provides the specific application affectionately and is controlled by the host via a Firmware Mana ger that defines the control interface. The overlays segment the firmware module functionality into four independent groups depending on function:
OS Overlay
Manages the overall operation of the DSP. Also handles host communication, data inputs and outputs and various
other critical internal tasks.
Matrix Processing Module Overlay
Performs additional channel generation, upmixing, downmixing. This segment is where algorithms such as Pro
®
Logic
Virtual Processing Module Overlay
Performs stereo virtualizing to simulate multi-channel systems, such as Dolby
Dolby Virtual Surround
Post Processing Module Overlay
This segment specifically caters to firmware that performs post-processing tasks. It allows the system designer
flexibility in “tweaking” the system for optimal audio performance and effects. This is also the segment in which firmware modules such as the Audio Manager, Bass Manager, Tone Control, Delay, THX Module will reside.
AN298RC14 3
IIx, Neo6™, and COMS2 reside.
®
.
®
Audistry®, Dolby Headphone®, and
®
, and Parametric-EQ

2.2 Code Image (.uld) Files

2.2 Code Image (.uld) Files
Each overlay is a separate code image file (.uld) that is loaded individually into the DSP. To ch ange the functionality of the application, only the overlay of interest needs to be loaded. For example the Post Pro cessin g overlay can be exch anged from SPP to APP by reloading only the Post Processing overlay. This reduces the system response time to user changes as well as the code image storage requirements.
Note: There are 4 different memory configurations pertaining to the program RAM size (most code is in ROM). The
different memory configurations are denoted by p2, p4, p6, a nd p8 (p for prog ram memory, 2, 4, 6, a nd 8 are the number of kilo-words, 1 word = 32 bits). Increasing P RAM decreases Y RAM. Each overlay is denoted with the p2, p4, p6, or p8 in the .uld file name to indicate which memory configuration is used.
WARNING: Memory configuration must be consistent across all overlays (OS, MPM, VPM, and PPM).

2.2.1 .uld File Naming Conventions

A generic template for representing .uld file can be represented by the following file name:
AA_48BBB_pC_DD_EE_rcFF.uld
2.2.1.1 .uld File Name Variables
AA = Technology name (os, mb, app, spp, …)
BBB = minimum chip required to run the firmware loaded by the .uld file (520, 560, dv2, au2)
520 means this will run on a 520, 540, & 560
540 means this will run on a 540 & 560 (Not on a 520)
560 means this will run on a 560 (Not on a 520 or 540)
dv2 means this will run on a CS48DV2x DSP only
au2 mean this will run on a CS48AU2B only
C = memory configuration (2, 4, 6, or 8)
This is the amount of PRAM in Kilowords (1 word = 32-bits). More PRAM means less YRAM. The memory configurations can be broken down into the following categories:
P2
X Memory - 8kx32 SRAM, 8kx32 DROM
Y Memory - 14kx32 SRAM, 8kx32 DROM
P Memory - 2kx32 SRAM, 32kx32 DROM
P4
X Memory - 8kx32 SRAM, 8kx32 DROM
Y Memory - 12kx32 SRAM, 8kx32 DROM
P Memory - 4kx32 SRAM, 32kx32 DROM
P6
X Memory - 8kx32 SRAM, 8kx32 DROM
Y Memory - 10kx32 SRAM, 8kx32 DROM
P Memory - 6kx32 SRAM, 32kx32 DROM
P8
X Memory - 8kx32 SRAM, 8kx32 DROM
Y Memory - 8kx32 SRAM, 8kx32 DROM
P Memory - 8kx32 SRAM, 32kx32 DROM
DD = Firmware version
4 AN298RC14

2.3 Download Sequence

This variable is the specific memory map for the various overlays and can be specific to a particular version of ROM Current Firmware versions are:
01 = CS485xx
02 =CS48DV2A
03 = CS48DV2B
04 = CS485xx
05 = CS485xx
06 = CS48AU2B
09 = CS485xx
EE = This variable indicates a major revision, increments when rc99 -> rc1
FF = This Variable indicates a minor revision, increments by one for each new .uld build
2.2.1.2 Example of .uld file name
An example of a .uld file name:
os_48520_p2_48520_01_01_rc5.uld
AA = os (DSPP operating system)
BBB = CS48520 (this .uld will run on CS48520, CS48540, and CS48560)
C = p2
DD = 01 (all other overlays that are loaded on the DSP must be 01 overlays)
EE = 01 (have not made over 100 of these)
FF = rc5
2.3 Download Sequence
A standard procedure to download firmware to the DSP follows the following structure at system power-up:
1. Download OS Overlays to DSP
2. (optional) Download Matrix Processing Module Overlay (Crossbar Mixer, Pro Logic IIx, DTS Neo6 etc.)
3. (optional) Download Virtual Processing Module Overlay (COMS2)
4. (optional) Download Post Processing Module Overlay (Audio Manager, Bass Manager, Delay, Parametric EQ, etc.)
AN298RC14 5
Step 2 (optional): Download a matrix processing module
(e.g. Crossbar Mixer, Pro Logic IIx, DTS Neo6 etc.) Automatically fills the Matrix Processing Overlay.
Step 3 (optional): Download a virtual processing module
(e.g. Dolby Headphone, Dolby Virtual Speaker etc.) Automatically fills the Virtual Processing Overlay.
Step 4: Download a post processor module group
(e.g. SPP, APP) Automatically fills the Post Processing Overlay. If SPP or APP is not required , then the bare
requirement for this overlay is the Audio Manager module.
Step 1: Download the firmware OS_p*_**.uld
Automatically fills the OS Overlay. (*2, 4, 6, or 8 for memory map; **device and version)
2.3 Download Sequence
Figure 2-2. Download Sequence
6 AN298RC14
AN298RC14 7

2.4 Firmware Modules and Associated Application Notes

Table 2-1. Firmware Module Read and Write Addresses with Associated Application Note Reference
DSP Firmware Module /
(Application Note Name)
General:
OS Manager (AN298)
Matrix Processing Overlay:
Firmware Version/Memory Map(s)
Supported
See Table 2-2 for a list of Firmware versions/ memory maps associated with the various CS48xxx products.
Write Request Read Request Read Response
0x8100HHHH 0xhhhhhhhh 0x81C0HHHH 0x01C0HHHH 0xhhhhhhhh
Dolby Pro Logic IIx (AN298MPMA) V01, V03 0xBF00HHHH 0xhhhhhhhh 0xBFC0HHHH 0x3FC0HHHH 0xhhhhhhhh DTS Neo6
V01 0xB500HHHH 0xhhhhhhhh 0xB5C0HHHH 0x35C0HHHH 0xhhhhhhhh
(AN298MPMB) Crossbar
V01 0xDB00HHHH 0xhhhhhhhh 0xDBC0HHHH; 0x5BC0HHHH 0xhhhhhhhh
(AN298MPMC) BBE Viva Plus
V01 0x6000HHHH 0xhhhhhhhh 0x60C0HHHH 0x20C0HHHH 0xhhhhhhhh
(AN298MPMD) BBE Mach3Bass Manager
V01 0x6100HHHH 0xhhhhhhhh 0x61C0HHHH 0x21C0HHHH 0xhhhhhhhh
(AN298MPMD)
®
SRS
Circle Surround II
®
V01 0xB300HHHH 0xhhhhhhhh 0xB3C0HHHH 0x33C0HHHH 0xhhhhhhhh
(AN298MPMG) Signal Generator
V01 0x9A00HHHH 0xhhhhhhhh 0x9AC0HHHH 0x1AC0HHHH 0xhhhhhhhh
(AN298MPMH) Cirrus Original Multi-channel
V01 0xD300HHHH 0xhhhhhhhh 0xD3C0HHHH 0x53C0HHHH 0xhhhhhhhh
Surround 2 (COMS-2) (AN298MPMJ)
Dolby Pro Logic II
V01 0xB200HHHH 0xhhhhhhhh 0xB2C0HHHH 0x32C0HHHH 0xhhhhhhhh
(AN298MPMM) Neural-THX Dolby Headphone 2
®
Surround V02 0xC400HHHH 0xhhhhhhhh 0xC4C0HHHH 0x54C0HHHH 0xhhhhhhhh
1
V03, V06 0xC000HHHH 0xhhhhhhhh 0xC0C0HHHH 0x40C0HHHH 0xhhhhhhhh
(AN298VPMK) Dolby Virtual Speaker 2
1
V03, V06 0xC100HHHH 0xhhhhhhhh 0xC1C0HHHH 0x41C0HHHH 0xhhhhhhhh
(AN298VPML)
Virtualizer-Processor Overlay:
Audistry by Dolby
V01 0xE500HHHH 0xhhhhhhhh 0xE5C0HHHH 0x65C0HHHH 0xhhhhhhhh
(AN298VPMA)
AN298RC14 8
T able 2-1. Firmware Module Read and Write Addresses with Associated Application Note Reference (Cont.)
DSP Firmware Module /
(Application Note Name)
Virtualizer-Processor Overlay: (Continued)
SRS TruSurround XT
®
(AN298VPMH) Dolby Headphone 2
(AN298VPMK) Dolby Virtual Speaker 2
(AN298VPML) SRS® TruSurround HD4™ Modules
(with WOW HD (AN298VPMM) Cirrus Virtualization Tec hnology
(CVT) - Virtualizer Processor Module (AN298VPMN)
Post Processing Overlays:
Audio Manager (AN298)
PCM Manager (AN298)
Delay (AN298PPMA)
Bass Manager (AN298PPMB)
Cirrus Band XpandeR (BXR) (AN298PPMC)
Cirrus Dynamic Volume Lev eler (DVL) (AN298PPMD)
EQ Module with PEQ and Direct Coefficient Mode (11-bands)
(AN298PPME) Tone Control
(AN298PPMF) Dolby Volume
AN298PPMN
Firmware Version/Memory Map(s)
Supported
V01 0xBA00HHHH 0xhhhhhhhh 0xBAC0HHHH 0x3AC0HHHH 0xhhhhhhhh
V01 0xC000HHHH 0xhhhhhhhh 0xC0C0HHHH 0x40C0HHHH 0xhhhhhhhh
V01 0xC100HHHH 0xhhhhhhhh 0xC1C0HHHH 0x41C0HHHH 0xhhhhhhhh
V04, V09 0xB300HHHH 0xhhhhhhhh 0xB3C0HHHH 0x33C0HHHH 0xhhhhhhhh
V05 0xC100HHHH 0xhhhhhhhh 0xC1C0HHHH 0x41C0HHHH 0xhhhhhhhh
2
All
l2
Al
l2
All
l2
All
l2
All
l2
All
l2
All
l2
All
V03 0xE000HHHH 0xhhhhhhhh 0xE0C0HHHH 0x60C0HHHH 0xhhhhhhhh
Write Request Read Request Read Response
0x8300HHHH 0xhhhhhhhh 0x83c0HHHH 0x03c0HHHH 0xhhhhhhhh
0x9B00HHHH 0xhhhhhhhh 0x9BC0HHHH 0x1BC0HHHH 0xhhhhhhhh
0xD900HHHH 0xhhhhhhhh 0xD9C0HHHH 0x59C0HHHH 0xhhhhhhhh
0xD700HHHH 0xhhhhhhhh 0xD7C0HHHH 0x57C0HHHH 0xhhhhhhhh
0xE700HHHH 0xhhhhhhhh 0xE7C0HHHH 0x67C0HHHH 0xhhhhhhhh
0xE600HHHH 0xhhhhhhhh 0xE6C0HHHH 0x67C0HHHH 0xhhhhhhhh
0xD500HHHH 0xhhhhhhhh 0xD5C0HHHH 0x55C0HHHH 0xhhhhhhhh
0xD400HHHH 0xhhhhhhhh 0xD4C0HHHH 0x54C0HHHH 0xhhhhhhhh
AN298RC14 9
T able 2-1. Firmware Module Read and Write Addresses with Associated Application Note Reference (Cont.)
DSP Firmware Module /
(Application Note Name)
Post Processing Overlays: (Continued)
Cinema Re-EQ (AN298PPMK)
SRS TruVolume™ Module (was Volume IQ™ Module)
(AN298PPMO) MaxxBass
®
Module
(AN298PPMP) Audyssey Dynamic Volume
Audyssey Dynamic EQ
and
(AN298PPMQ) Audyssey EQ
(AN298PPMR) Audyssey BassXT
(AN298PPMS) Cirrus Bass Enhancer
(AN298PPMU)
Firmware Version/Memory Map(s)
Supported
2
All
V02, V09 0xE000HHHH 0xhhhhhhhh 0xE0C0HHHH 0x60C0HHHH 0xhhhhhhhh
V01 0xE800HHHH 0xhhhhhhhh 0xE8C0HHHH 0x68C0HHHH 0xhhhhhhhh
V06 0xC700HHHH 0xhhhhhhhh 0xC7C0HHHH 0x47C0HHHH 0xhhhhhhhh
V06 0xC800HHHH 0xhhhhhhhh 0xC8C0HHHH 0x48C0HHHH 0xhhhhhhhh
V06 0xC900HHHH 0xhhhhhhhh 0xC9C0HHHH 0xC9C0HHHH 0xhhhhhhhh
2
All
Write Request Read Request Read Response
0xDC00HHHH 0xhhhhhhhh 0xDCC0HHHH 0x5CC0HHHH 0xhhhhhhhh
0xED00HHHH 0xhhhhhhhh 0xEDC0HHHH 0x6DC0HHHH 0xhhhhhhhh
Loading...
+ 21 hidden pages