9.3.2 Software Requirements. An SPS_TYPE_A ECU shall be capable of reporting the base model part
number (DIDs $CC/$DC), end model part number (DIDs $CB/$DB), and all supported software module part
numbers (DIDs $C1 thru $CA/$D1 thru $DA, plus $DD and any application specific DIDs if more than
Page 251 GM WORLDWIDE ENGINEERING STANDARDS GMW3110 10 software/calibration parts exist) via the ReadDataByIdentifier ($1A) service. Support of other DIDs (e.g.,
$92, $97, $98, $99) is optional and shall be specified in the CTS if needed.
9.3.2.1 Operational Software. If the operational software is programmable via SPS, then the operational
software shall be capable of being programmed separately from the calibrations. This allows for assembly
plant programming of only calibrations. Deviations from this requirement must be agreed upon by appropriate
release responsible engineer, service operations and manufacturing representatives and shall be documented
in the CTS.
The operational software shall have its own unique identifier retrievable via the ReadDataByIdentifier ($1A)
service.
9.3.2.1.1 Requirements for SPS ECUs Where Operational Software Is Not Programmable. SPS_TYPE_C
ECUs executing operational software (only valid if operational software is not programmable via SPS) shall be
able to receive diagnostic messages using the AllNodes request CANId with AllNodes extended address. SPS
Programmable ECUs with preprogrammed permanent diagnostic CAN Identifiers (SPS_TYPE_A or
SPS_TYPE_B) shall also be able to receive messages addressed with its PTP request CANId. SPS_TYPE_C
ECUs (which do not have preprogrammed permanent diagnostic CAN Identifiers) shall respond to requests
sent with the SPS_PrimeReq ($0xx) CANId once diagnostic responses have been enabled.
An ECU shall be capable of using the same diagnostic CAN Identifiers for the duration of a programming
event. This means that an ECU which stores the permanent diagnostic CAN Identifiers in calibration and is
fully programmed at the beginning of a programming event (SPS_TYPE_A ECU) shall use the permanent
diagnostic CAN Identifiers even after the calibrations have been erased. The operational software is not
required to retain the permanent diagnostic CAN Identifiers if the programming event is interrupted prior to its
completion and the ECU has performed a software reset.
An ECU that is only capable of calibration programming (e.g., the operational software is part of ROM and
calibrations stored in EEPROM) shall have in the operational software the equivalent functionality specified for
the boot software in the subsequent sections of this chapter.