DPAA-PRL Partitioning Inspection

From DDCIDeos
Jump to navigationJump to search

Targeted Component Inspection for DPAA-PRL Partitioning Violations

This project is to satisfy a deliverable for the Celestial_Program. This is the purpose as described to the customer:

   DDC-I's Targeted Component Inspection service can be used to
   increase the confidence that a specific version of a DDC-I provided
   Deos component satisfies a particular property. This service is
   intended to support pre-certification complete activities, such as
   flight test, where elevated confidence in some constrained property
   is required prior to the component completing all verification
   activities.
   
   DDC-I is proposing to provide this service for the DPAA PRL
   specifically targeted at ensuring the DPAA PRL will not cause
   unanticipated time or space partition effects.


This project will perform an inspection, i.e., not a formal review. The intent is to use your engineering judgement to increase confidence that the DPAA-PRL does not cause time or space partitioning violations. The inspection is not concerned with proper operation of the driver itself. Of course if an operational defect is found during inspection, make sure to record it.

Matt has confirmed that all DPAA-PRL hardware resources are not writable by user-mode software. This means that any software running in user mode can be ignored.

Kernel mode software must be inspected to ensure:

No time partitioning violations

Time partitioning can only be impacted by code executing within critical sections. Any code outside of a critical can be ignored for time partitining purposes. Code within a critical should not contain abnormally long criticals, i.e., criticals that have a duration substantially larger than what would be expected if the component was verified. E.g., unbounded loops, large amounts of code, etc.

No space partitioning violations

There are two aspects, software induced, and hardware induced.

Software induced are effects directly caused by the execution of driver software. These are coverd in the Deos Library code checklist sub-section: "Kernel mode Libraries Only:". For example ensuring no incorrect pointer dereferencing.

Hardware induced means that the driver cannot cause the hardware to access memory other than the intended platform resources.

Loss of kernel Availability

Time partitioning can be violated if code executing in kernel mode causes the kernel to stop operating due to an exception, or corruption of kernel data structures, including the thread's kernel stack. The exceptions for PowerPC are listed in the kernel 10.8.0 User Guide section "8.5.3.2.2. Exception Handling on PowerPC Processors". The relevant exceptions are:

  • DSI/ISI -- mostly covered by pointer dereferencing issue above
  • Alignment -- See /scm/Deos/docs/reference-data/cpu/ppc/freescale/EREF_RM.rev1.pdf section 8.8.6. Note especially restrictions on load/store conditional instructions.
  • Trap/Debug -- Only caused by trap instructions.
  • Floating point/Altivec -- Kernel mode code must not use floating point/SIMD.
  • Hypervisor call -- Not permitted

Calls to DEOSKERNPPI functions must be appropriate.

Status

File Assignee Status Comments
bman.cpp
bman.h
bman_portals.cpp
More to come...

Status is Blank (not started), Work, Done