ARINC653 P2
ARINC653 Part 2 defines extended services to complement the ARINC653 Part 1 standard.
Overview
The following sections define the different categories of extensions. To be compliant the entire category must be implemented.
File System
Defines POSIX like file system API's. DDC-I is contracted to provide an unverified version. See CFFS_A653P2 for details.
This subset is required by the FACE safety profile and FACE general purpose profile.
Sampling Port Data Structures
Defines data types used for parametric data corresponding to typical aviation data buses such as ARINC 429, ARINC 629, ARINC 664).
This subset is required by the FACE general purpose profile.
Multiple Module Schedules
Allows for the schedule to be changed at the next major frame. Each partition may receive a notification. Partitions may come or go in the timeline but they do not change state, but rather just don't get any more time, or now get time to execute. This requires the ability to have multiple Window Activation Tables in a single registry and the ability to change without a Deos coldstart.
This subset is excluded from all FACE profiles.
Logbook System
Stores messages to NVM.
This subset is excluded from all FACE profiles.
Sampling Port Extensions
Provides more flexibility in reading sampling port messages.
This subset is required by the FACE safety profile or FACE general purpose profile.
DDC-I is contracted to provide this subset in the context of the Tostones Program.
Design Considerations
There are 3 new API's. Sampling ports use the IOI with lastProduced, blackboard.
READ_UPDATED_SAMPLING_MESSAGE
This API reads the message only if there is new data, regardless of the update rate. It will require the producer to indicate a new message has been written and each consumer to track the message read to compare with this metadata.
GET_SAMPLING_PORT_CURRENT_STATUS
Adds a timestamp when message written into destination. Unclear what this does on source port. Replaces VALIDITY with MESSAGE_AGE indicating if message has been in destination without being replaced for longer than ports period. STALE if no data. Adds UPDATED state EMPTY_PORT, CONSUMED_MESSAGE, or NEW_MESSAGE.
READ_SAMPLING_MESSAGE_CONDITIONAL
Given a REF_TIME_STAMP as input and only reads the message if the timestamp of the message is greater than REF_TIME_STAMP.
This will require our read formatting function to know this type of caller from other callers and interpret extra input metadata as well as copying the message timestamp to output metadata for this API to use.
Service Access Points
A SAP port is a special kind of queuing port which allows addressing information.
This subset is required by the FACE general purpose profile.
Name Service
The name service is a companion to the SAP services, allowing a partition to retrieve an address based on a name, and a name based on an address.
This subset is required by the FACE general purpose profile.
Memory Blocks
Memory blocks provide a means for a partition to access blocks of memory within the modules memory space. (ie platform resources in Deos).
This subset is required by all FACE profiles.
DDC-I is contracted to provide this subset in the context of the Tostones Program.
Design Considerations
Memory Blocks appear to be platform resources, but we also allow that in Memory Regions. It seems like we will need to have the config tool produce a list of resource names. At startup we can attachPlatformResource and maintain a data structure to keep the handle and address. There is one new API GET_MEMORY_BLOCK_STATUS that needs the address, access, and size. For proxy access we can set the address to the handle of the resource. I'm not sure how we return if we have read or read/write access to the resource.
[GK: Propose the following. A platform resource can still be defined as a memory region - no change to any behavior there. Add <MemoryBlock> element with attributes MemoryBlockName, PartitionNameRef to the XML according to the P2 spec., and in addition to that, Deos653 needs an AccessRights extension. Items in this list must be automatically attachPlatformResource()'ed by the run-time. The config file will have a list of such things. Multiple ownership of the same resource remains a Deos registry/integration tool issue. The resource is presumed to exist in the .pi.xml file. Unless there is a real need to support proxy resources (non page sized/aligned resources), my vote is to not support them (when the run-time attaches, note the attach type returned and have GET_MEMORY_BLOCK_STATUS() return a DDC-I specific error code. If this sounds good, I can update the XML, update configfileinterface.h, and PCR the 653 CVT]
Health Monitoring Extensions
This subset is required by the FACE general purpose profile.
Queuing Port List Service
This subset is required by the FACE general purpose profile.