SceVeneziaImage

The VENEZIA binary image module.

= Module =

This module doesn't contain any ARM code; instead, it holds the image for execution on the VENEZIA coprocessor.

The module doesn't import from any library, and doesn't export any library.

The VENEZIA image is an executable binary for the MeP architecture. The binary is copied to physical address  by SceSblFwLoader (mapped at vaddr  ).

On the VENEZIA MeP cores, the image is visible at address  (i.e. the binary's base address is  ).

= Image =

General information
The image contains MeP code for SceNgs, SceAudioDec, JPEG encoder, decoder and CSC.

The MP3 decoder used is.

The AAC decoder used is.

All offsets in the following sections are relative to the start of the image, for  from firmware ???.

More information is available in the VVNZRunner GitHub repository.

RPC calls
MeP code parses RPC calls from ARM (issued with  in a function at 0x11482. It maps RPC call ID to a function with the following code:  located at 0x1F988.

VENEZIA memory model
Venezia works with memory by using physical addresses directly However since Venezia supports threading it includes memory mapping model to prevent race conditions This model is described in detail in the US20120324167A1 patent.

PRIVATE state
In this state, only a task that has changed a memory region to this state is permitted to perform a read/write access by the L1C/L2C. This access is achieved by accessing a virtual address that is mapped in a physical memory by the L1 CFL2C.

PROTECTED state
In this state, one or more tasks that belong to the same process and that have requested a transition to this state are permitted to perform a read access by the L1C/L2C. A task is not permitted to perform a write access to a memory region in this state.

PUBLIC state
In this state, tasks of which mapping set by the ATU is the same, that is, tasks that belong to the same process, share data. However, a task cannot directly access a memory region in this state. Only tasks that belong to the same process are permitted to access, after changing a memory in this state to the PRIVATE state or the PROTECTED state

UNMANAGED state
This state is a state that is not managed by the kernel. That is, this is a portion excluding the kernel management region out of memory regions that the memory has. Because the kernel does not manage consistency of caches in a memory region in this state, a task must hold consistency of the caches by taking responsibility, when a task uses this memory region.

Any memory must be switched to at least PUBLIC state to ensure cache coherence.

Functions
The VENEZIA image includes the following functions:

Toshiba functions
Those functions are described in the US20120324167A1 patent.

Sony functions
These functions are wrappers for the Toshiba functions, written by SCE.

See vnz/memory.h.

VENEZIA threads
VENEZIA can run up to 7 threads in parallel (one on each core). Threads are assigned to cores automatically and have a priority system.

See vnz/vthread.h.