AUTOSAR SWS EthernetTransceiverDriver
AUTOSAR SWS EthernetTransceiverDriver
AUTOSAR CP R20-11
Disclaimer
This work (specification and/or software implementation) and the material contained
in it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR
and the companies that have contributed to it shall not be liable for any use of the
work.
The material contained in this work is protected by copyright and other types of
intellectual property rights. The commercial exploitation of the material contained in
this work requires a license to such intellectual property rights.
This work may be utilized or reproduced without any modification, in any form or by
any means, for informational purposes only. For any other purpose, no part of the
work may be utilized or reproduced, in any form or by any means, without permission
in writing from the publisher.
The work has been developed for automotive applications only. It has neither been
developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
Table of Contents
Known Limitations
Currently, chapter 5 Dependencies to other modules does not describe the versions
of dependent modules. Thus, a version check will extend the chapter.
A single Ethernet Transceiver Driver module supports only one type of transceiver
hardware, but several transceivers of the same type. The Ethernet Transceiver
Driver's prefix requires a unique namespace. The Ethernet Interface can access
different Ethernet controller types using different Ethernet Transceiver Drivers using
this prefix. The decision which driver to use to access a particular transceiver is a
configuration parameter of the Ethernet Interface.
Figure 1.1 depicts the lower part of the Ethernet stack. One Ethernet Interface
accesses several transceivers using one or several Ethernet Transceiver Drivers.
Note: The Ethernet Transceiver Driver is specified in a way that allows for object
code delivery of the code module, following the "one-fits-all" principle, i.e. the entire
configuration of the Ethernet Interface can be carried out without modifying any
source code. Thus, the configuration of the Ethernet Transceiver Driver can be
carried out largely without detailed knowledge of the Ethernet Transceiver Driver
software.
3 Related documentation
[23] OPEN ALLIANCE Sleep/Wake-up Specification Version 2.0 (Rel Feb 21, 2017),
http://www.opensig.org/Automotive-Ethernet-Specifications/
Thus, the specification SWS BSW General shall be considered as additional and
required specification for Ethernet Transceiver Driver.
4.1 Limitations
The Ethernet Transceiver Driver module is only able to handle a single thread of
execution. The execution must not be pre-empted by itself.
6 Requirements traceability
a wake-up request.
SRS_Eth_00155 The Ethernet SWS_EthTrcv_00194, SWS_EthTrcv_00195
Transceiver Driver
shall provide a
possibility to re-trigger
a sleep request.
SRS_ModeMgm_09267 - SWS_EthTrcv_00192
7 Functional specification
7.1 Ethernet BSW stack
As part of the AUTOSAR Layered Software Architecture according to Figure 7.1, the
Ethernet BSW modules also form a layered software stack. Figure 7.1 depicts the
basic structure of this Ethernet BSW stack. The EthIf module accesses several
transceivers using the Ethernet Transceiver Driver layer, which can be made up of
several Ethernet Transceiver Drivers modules.
Ethernet Interface
Software
Ethernet Transceiver Ethernet Transceiver Ethernet Transceiver
Driver Vendor A Driver Vendor B Driver Vendor C
Hardware
ET Type A ET Type A ET Type B ET Type C ET Type C
[SWS_EthTrcv_00003] ⌈
The Ethernet Transceiver Driver is using a zero-based index to abstract the access
for upper software layers. The parameter EthTrcv_CtrlIdx within configuration
corresponds to parameter TrcvIdx used in the API. ⌋()
7.1.2 Requirements
This chapter lists requirements that shall be fulfilled by Ethernet Transceiver Driver
module implementations.
The Ethernet Interface module environment comprises all modules which are calling
interfaces of the Ethernet Interface module.
[SWS_EthTrcv_00004] ⌈
The Ethernet Transceiver Driver module shall support pre-compile time, link time and
post-build time configuration. ⌋()
[SWS_EthTrcv_00005] ⌈
The header file EthTrcv.h shall include a software and specification version number.
⌋()
[SWS_EthTrcv_00006] ⌈
The Ethernet Transceiver Driver module shall perform a consistency check between
code files and header files based on pre-process-checking the version numbers of
related code files and header files. ⌋()
[SWS_EthTrcv_00007] ⌈
In case development error detection is enabled for the Ethernet Transceiver Driver
module: The Ethernet Transceiver Driver module shall check API parameters for
validity and report detected errors to the DET. ⌋()
[SWS_EthTrcv_00009] ⌈
The Ethernet Transceiver Driver module shall implement the API functions specified
by the Ethernet Transceiver Driver SWS as real C-code functions and shall not
implement the API as macros for object code deliveries. ⌋()
[SWS_EthTrcv_00010] ⌈
None of the Ethernet Transceiver Driver module header files shall define global
variables. ⌋()
[SWS_EthTrcv_00012] ⌈
The MCG shall read the ECU configuration description of the Ethernet Driver
module(s). Ethernet Driver related configuration data is contained in the Ethernet
Driver module configuration description. ⌋()
[SWS_EthTrcv_00013] ⌈
The MCG shall ensure the consistency of the generated configuration data. ⌋()
[SWS_EthTrcv_00014] ⌈
The configuration of the Ethernet Transceiver Driver module shall be calculated at
ECU configuration time. None of the communication parameters shall be calculated
at runtime. ⌋()
[SWS_EthTrcv_00015] ⌈
The start address of post-build time configuration data shall be passed during module
initialization (see chapter 8.3.1). ⌋()
Note: If the Ethernet Transceiver driver detects a wakeup it will map the wake-up
reason provided by the Ethernet hardware (PHY) to wake-up events defined by
EcuM. The Ethernet Transceiver driver will support the following scenarios:
- Sleeping ECU and sleeping network -> wake up detection via EthTrcv_Init
(called during Power On)
- Awake ECU and sleeping network -> wake up detection via
EthTrcv_MainFunction or wake up interrupt handler (checked by EcuM within
CheckWakeup)
[SWS_EthTrcv_00111]{DRAFT} ⌈
If the EthTrcv is requested with ETH_MODE_DOWN (e.g. low power mode), the
Ethernet Transceiver driver shall enable the corresponding ICU channel (see
EthTrcvIcuChannelRef) by calling Icu_EnableNotification if configured. ⌋()
[SWS_EthTrcv_00112]{DRAFT} ⌈
If the EthTrcv is requested with ETH_MODE_ACTIVE (e.g. normal mode), the
Ethernet Transceiver driver shall disable the corresponding ICU channel (see
EthTrcvIcuChannelRef) by calling Icu_DisableNotification if configured. ⌋()
[SWS_EthTrcv_00146] ⌈
The wake up interrupt handler (if present) shall clear the interrupt and identify the
wake up reason and store it. ⌋(SRS_Eth_00107)
AUTOSAR supports OA TC10 compliant Ethernet hardware (PHY) (see [23]). Such
PHYs have the capability to transmit wake-up and sleep signals on the dataline.
Wake-up on dataline will bring the connected communication partners from a low-
power sleep mode to a normal mode. Sleep on dataline will bring the connected
communication partners from a normal mode to a low-power mode in a synchronized
manner.
The Ethernet Transceiver driver is requested to trigger a wake-up on the network if
the upper layer requests ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST.
The Ethernet transceiver driver is requested to trigger a sleep on the network if the
upper layer requests ETH_MODE_DOWN.
A wake-up on the network could be propagated to neighboring PHYs according to
the configuration.
Addtionally timing parameters are available to define the timing behaviour of used
Ethernet hardware (PHY):
- Define the time when a local wake-up on the used wake-up detection
connection (e.g. I/O pins) is evaluated and detected as valid
(EthTrcvWakeupLocalDetectionTime). Please note, local wake-up is triggered
by a connected neighboring PHY;
- Define the time duration how long a wake-up is present on the used wake-up
detection connection (e.g. I/O pins) for the connected neighboring PHYs
(EthTrcvWakeupLocalDurationTime).
Note: If using OA TC10 compliant PHYs, then the ECU needs its own control of the
power supply and should not rely on the PHY, since the INH will be switched off per
specification (see [23] Figure 1: PHY power mode sequence)
[SWS_EthTrcv_00159] ⌈
If EthTrcv_RunPortCableDiagnostic is called, EthTrcv has to ensure that the Ethernet
hardware (PHY) is in a state to run the cable diagnostic by considering at least the
following points:
- the corresponding Ethernet transceiver is in state ETH_MODE_ACTIVE
- the corresponding Ethernet transceiver is in state
ETHTRCV_LINK_STATE_DOWN
If all pre conditions are fullfilled to run the cable diagnostic measurement, EthTrcv
shall trigger the cable diagnostic measurement and set the state internally to
ETHTRCV_CABLEDIAG_PENDING of the affected Ethernet transceiver. ⌋()
[SWS_EthTrcv_00160] ⌈
If EthTrcv_GetCableDiagnosticsResult is called, the current state of the cable
diagnostic measurement of the affected Ethernet transceiver shall be returned and
stored per Ethernet transceiver as internal cable diagnostic state. ⌋()
[SWS_EthTrcv_00161] ⌈
As long as the cable diagnostic measurement is running (internal cable diagnostic
state is ETHTRCV_CABLEDIAG_PENDING), a mode request (indicated by
EthTrcv_SetTransceiverMode) and link request (indicated by
EthTrcv_TransceiverLinkStateRequest), respectively, shall be stored and not
executed. ⌋()
[SWS_EthTrcv_00162] ⌈
As soon as the cable diagnostic meassurement has finished (internal cable
diagnostic state is different from ETHTRCV_CABLEDIAG_PENDING), EthTrcv shall
execute the last mode request and link request, respectively, of the affected Ethernet
transceiver. ⌋()
Note: Cable diagnostic measurement is triggered by a CDD that maintain the cable
diagnostic result. The CDD should use the dedicated APIs of EthIf to execute the
cable diagnostic measurement:
- EthIf_RunCableDiagnostic: For a single Ethernet transceiver which is not
referenced by an Ethernet switch port;
- EthIf_RunPortCableDiagnostic: For an Ethernet transceiver which is
referenced by an Ethernet switch port.
Thus, the upper layer of the EthTrcv is either EthIf or an Ethernet switch.
Based on this foundation, the following section specifies particular errors arranged in
the respective subsections below.
⌋()
[SWS_EthTrcv_00105] ⌈
Error Name: ETHTRCV_E_ACCESS
Short Description: Ethernet Transceiver Access Failure.
Long Description: Monitors the access to the Ethernet Transceiver.
Fail When access to the Ethernet Transceiver fails the module
shall report the extended production error with event
status DEM_EVENT_STATUS_PREFAILED to DEM.
Detection Criteria: Pass When access to the Ethernet Transceiver succeds the
module shall report the extended production error with
event status DEM_EVENT_STATUS_PREPASSED to
DEM.
Secondary Parameters: None.
Time Required: None.
Monitor Frequency None.
⌋()
8 API specification
[SWS_EthTrcv_00027]⌈
Module Header File Imported Type
Rte_Dem_Type.h Dem_EventIdType
Dem
Rte_Dem_Type.h Dem_EventStatusType
Std_Types.h Std_ReturnType
Std
Std_Types.h Std_VersionInfoType
⌋()
8.2.1 EthTrcv_ConfigType
[SWS_EthTrcv_00098]⌈
Name EthTrcv_ConfigType
Kind Structure
⌋()
8.2.2 EthTrcv_LinkStateType
[SWS_EthTrcv_00100]⌈
Name EthTrcv_LinkStateType
Kind Enumeration
This type defines the Ethernet link state. The link state changes after an Ethernet
Description cable gets plugged in and the transceivers on both ends negotiated the transmission
parameters (i.e. baud rate and duplex mode)
Available
Eth_GeneralTypes.h
via
⌋()
8.2.3 EthTrcv_StateType
[SWS_EthTrcv_00101]⌈
Name EthTrcv_StateType
Kind Enumeration
Status supervision used for Development Error Detection. The state shall be available
Description
for debugging.
Available
Eth_GeneralTypes.h
via
⌋()
8.2.4 EthTrcv_BaudRateType
[SWS_EthTrcv_00102]⌈
Name EthTrcv_BaudRateType
Kind Enumeration
This type defines the Ethernet baud rate. The baud rate gets either negotiated
Description
between the connected transceivers or has to be configured.
Available
Eth_GeneralTypes.h
via
⌋()
8.2.5 EthTrcv_DuplexModeType
[SWS_EthTrcv_00103]⌈
Name EthTrcv_DuplexModeType
Kind Enumeration
This type defines the Ethernet duplex mode. The duplex mode gets either negotiated
Description
between the connected transceivers or has to be configured.
Available
Eth_GeneralTypes.h
via
⌋()
8.2.6 EthTrcv_ WakeupModeType
[SWS_EthTrcv_00113]{OBSOLETE} ⌈
Name EthTrcv_WakeupModeType (obsolete)
Kind Enumeration
ETHTRCV_WUM_
0x00 Transceiver wake up disabled
DISABLE
This type controls the transceiver wake up modes and/or clears the wake-up reason.
Description
Tags:atp.Status=obsolete
Available
Eth_GeneralTypes.h
via
⌋()
8.2.7 EthTrcv_ WakeupReasonType
[SWS_EthTrcv_00114]⌈
Name EthTrcv_WakeupReasonType
Kind Enumeration
ETHTRCV_
0x00 No wake up reason detected.
WUR_NONE
Range
ETHTRCV_
General wake up detected, no distinct reason supported by
WUR_ 0x01
hardware.
GENERAL
ETHTRCV_
Internal wake up detected. Available if supported by
WUR_ 0x03
hardware.
INTERNAL
ETHTRCV_
0x04 Reset wake up detected. Available if supported by hardware.
WUR_RESET
ETHTRCV_
Power on wake up detected. Available if supported by
WUR_ 0x05
hardware.
POWER_ON
ETHTRCV_
0x06 Pin wake up detected. Available if supported by hardware.
WUR_PIN
Available
Eth_GeneralTypes.h
via
⌋(SRS_Eth_00108)
Kind Enumeration
ETHTRCV_PHYTESTMODE_
0x00 normal operation
NONE
Range
ETHTRCV_PHYTESTMODE_1 0x01 test transmitter droop
Available
Eth_GeneralTypes.h
via
⌋(SRS_Eth_00117)
Kind Enumeration
⌋(SRS_Eth_00117)
[SWS_EthTrcv_91006]⌈
Name EthTrcv_PhyTxModeType
Kind Enumeration
⌋(SRS_Eth_00117)
[SWS_EthTrcv_91008]⌈
Name EthTrcv_CableDiagResultType
Kind Enumeration
ETHTRCV_CABLEDIAG_
0x00 Cable diagnostic ok
OK
ETHTRCV_CABLEDIAG_
0x01 Cable diagnostic failed
ERROR
ETHTRCV_CABLEDIAG_
0x02 Short circuit detected
SHORT
Range
ETHTRCV_CABLEDIAG_
0x03 Open circuit detected
OPEN
ETHTRCV_CABLEDIAG_
0x04 cable diagnostic is still running
PENDING
Available
Eth_GeneralTypes.h
via
⌋(SRS_Eth_00117)
8.2.12 EthTrcv_MacMethodType
[SWS_EthTrcv_91013]{DRAFT} ⌈
Name EthTrcv_MacMethodType (draft)
Kind Enumeration
This type defines the media access control type in half duplex. If ETHTRCV_MAC_
TYPE_PLCA is configured, PLCA is supported and the parameters listed in ECUC_
Description
EthTrcv_00055 have to be configured.
Tags:atp.Status=draft
Available
Eth_GeneralTypes.h
via
⌋()
void EthTrcv_Init (
Syntax const EthTrcv_ConfigType* CfgPtr
)
Sync/Async Synchronous
⌋()
[SWS_EthTrcv_00029] ⌈
The function shall store the access to the configuration structure for subsequent API
calls. ⌋(SRS_Eth_00039)
[SWS_EthTrcv_00035] ⌈
The function shall initialize the Ethernet hardware (PHY) with all available
configuration parameters:
- EthTrcvConnNeg (see ECUC_EthTrcv_00025)
- EthTrcvDuplexMode (see ECUC_EthTrcv_00023)
- EthTrcvMacLayerSpeed (see ECUC_EthTrcv_00044)
- EthTrcvMacLayerSubType (see ECUC_EthTrcv_00043)
- EthTrcvMacLayerType (see ECUC_EthTrcv_00035)
- EthTrcvPhysLayerType (see ECUC_EthTrcv_00024)
- EthTrcvSpeed (see ECUC_EthTrcv_00022).
29 of 89 Document ID 431: AUTOSAR_SWS_EthernetTransceiverDriver
Specification of Ethernet Transceiver Driver
AUTOSAR CP R20-11
⌋(SRS_Eth_00039)
Note: Only available configuration parameter of Ethernet hardware (PHY) are
considered by the EthTcrv initialization. The remaining configuration parameter may
be hardware-configured (e.g. pin strapping).
[SWS_EthTrcv_00030] ⌈
The function shall change the state of the component from
ETHTRCV_STATE_UNINIT to ETHTRCV_STATE_INIT. ⌋(SRS_Eth_00039)
[SWS_EthTrcv_00115]{DRAFT} ⌈
The function shall check for wake-up reasons and propagate the corresponding
wake-up source (see EthTrcvWakeupMap configuration) to the EcuM by calling
EcuM_SetWakeupEvent. ⌋(SRS_Eth_00108)
[SWS_EthTrcv_00040] ⌈
The function shall check the access to the Ethernet transceiver. If the check fails, the
function shall raise the production error ETHTRCV_E_ACCESS otherwise pass the
production error ETHTRCV_E_ACCESS. ⌋()
[SWS_EthTrcv_00032] ⌈
Caveat: The API has to be called during initialization. ⌋()
8.3.2 EthTrcv_SetTransceiverMode
[SWS_EthTrcv_00042]⌈
Service
EthTrcv_SetTransceiverMode
Name
Std_ReturnType EthTrcv_SetTransceiverMode (
uint8 TrcvIdx,
Syntax
Eth_ModeType TrcvMode
)
Service ID
0x03
[hex]
Sync/Async Asynchronous
Parameters
None
(inout)
Parameters
None
(out)
Std_-
E_OK: Service accepted
Return value Return-
E_NOT_OK: Service denied
Type
⌋(SRS_Eth_00154)
[SWS_EthTrcv_00163] ⌈
If EthTrcv_SetTransceiverMode() is called and the internal cable diagnostic state is
equal to ETHTRCV_CABLEDIAG_PENDING, the Ethernet Transceiver driver shall
store the mode request per EthTrcv (TrcvIdx).⌋()
Note: Furhter processing of the mode will be done when cable diagnostic has
finished, see SWS_EthTrcv_00162.
[SWS_EthTrcv_00043]{DRAFT} ⌈
The function shall put the indexed transceiver in the specified mode according to the
following specified requirements. Each time a new mode is entered which was
previously requested by EthTrcv_SetTransceiverMode, EthTrcv shall call
EthIf_TrcvModeIndication latest during the next EthTrcv_MainFunction. ⌋()
[SWS_EthTrcv_00179]{DRAFT} ⌈
A new requested EthTrcv mode shall overwrite the last requested EthTrcv mode,
except in case the last mode is ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST
and the new mode is ETH_MODE_ACTIVE. ⌋()
Note: The Ethernet Transceiver driver store the requested mode per EthTrcv. The
stored mode is used to re-trigger the requested mode in the context of the main
function:
- A stored wake-up is repeated according to the available configuration (see
EthTrcvWakeupRequestNumberOfRepetitions and
EthTrcvWakeUpRequestRepetitionPeriod).
- A stored sleep request is repeated according the available configuration
(EthTrcvSleepRequestNumberOfRepetitions and
EthTrcvSleepRequestRepetitionPeriod).
[SWS_EthTrcv_00117]{DRAFT} ⌈
If the function is called with ETH_MODE_DOWN and
EthTrcvWakeupSleepOnDatalineEnabled is set to FALSE or not configured, it shall
set the corresponding Ethernet Hardware (PHY) into a mode (e.g. sleep mode)
where wakeups can be detected. ⌋()
[SWS_EthTrcv_00180]{DRAFT} ⌈
If the function is called with ETH_MODE_DOWN,
EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE, the Ethernet Transceiver
driver has detected a pending wake-up and a corresponding delay timer with
EthTrcvSleepModeExecutionDelay is not running, the Ethernet Transceiver driver
shall start a delay timer with EthTrcvSleepModeExecutionDelay and return with
E_OK. ⌋ (SRS_Eth_00151)
⌋()
[SWS_EthTrcv_00181]{DRAFT} ⌈
If the function is called with ETH_MODE_DOWN,
EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE, the Ethernet Transceiver
driver has detected a pending wake-up and a corresponding delay timer with
EthTrcvSleepModeExecutionDelay is running, then the Ethernet Transceiver driver
shall return with E_OK. ⌋ (SRS_Eth_00151)
[SWS_EthTrcv_00182]{DRAFT} ⌈
If the function is called with ETH_MODE_DOWN,
EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE and the EthTrcv has not
detected a pending wake-up (see SWS_EthTrcv_00180), the Ethernet hardware
(PHY) is in another mode than sleep mode and has not already triggered a sleep
request, the Ethernet Transceiver driver shall trigger a sleep request according to the
specification of OA TC10 (see [23]).⌋( SRS_Eth_00151)
Note: The Ethernet Transceiver driver is checking if the Ethernet hardware (PHY)
has already entered the sleep mode to avoid to trigger the affected Ethernet
32 of 89 Document ID 431: AUTOSAR_SWS_EthernetTransceiverDriver
Specification of Ethernet Transceiver Driver
AUTOSAR CP R20-11
hardware (PHY) again with a sleep request. This is needed, because the connected
Ethernet ECUs trigger a sleep request may be in a different point in time (e.g. if using
Ethernet switch port switching the executing of sleep request is delayed by
EthIfSwitchOffPortTimeDelay). The Ethernet ECU which shutdown a bit earlier trigger
the sleep request and bring the own Ethernet hardware (PHY) and the Ethernet
hardware of the connected Ethernet ECUs to sleep mode. The Ethernet Transceiver
driver of the ECU which shutdown a bit later detect that the affected Ethernet
hardware (PHY) has already reached sleep mode. In this case, the Ethernet
hardware (PHY) shall be left as it is and return from the function call.
8.3.2.2 ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST or
ETH_MODE_ACTIVE request
[SWS_EthTrcv_00118]{DRAFT} ⌈
If EthTrcv_SetTransceiverMode() is called with parameter ETH_MODE_ACTIVE or
ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST,
EthTrcvWakeupSleepOnDatalineEnabled set to FALSE or not configured and the
internal cable diagnostic state is different from ETHTRCV_CABLEDIAG_PENDING,
the Ethernet Transceiver driver shall:
- Check for wake-up reasons when entering the transceiver's active mode;
- If no wake-up reason has been detected, the Ethernet transceiver shall send a
wake-up symbol on the bus if configured;
- Invoke the call-out <EthTrcvWakeUpCallout> function if configured.
⌋(SRS_Eth_00108)
[SWS_EthTrcv_00183]{DRAFT} ⌈
If the function is called with ETH_MODE_ACTIVE,
EthTrcvWakeupSleepOnDatalineEnabled is TRUE and the internal cable diagnostic
state is different from ETHTRCV_CABLEDIAG_PENDING, the Ethernet Transceiver
driver shall:
- Put the Ethernet hardware (PHY) to normal mode, if not already switched
automatically by the statemachine of the Ethernet hardware (PHY),
- Invoke the call-out <EthTrcvWakeUpCallout> function if configured.
⌋(SRS_Eth_00108)
[SWS_EthTrcv_00184]{DRAFT} ⌈
If the function is called with ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST,
EthTrcvWakeupSleepOnDatalineEnabled is TRUE, the internal cable diagnostic state
is different from ETHTRCV_CABLEDIAG_PENDING and EthTrcv does not currently
[SWS_EthTrcv_00044] ⌈
If development error detection is enabled: the function shall check that the service
EthTrcv_Init was previously called. If the check fails, the function shall raise the
development error ETHTRCV_E_UNINIT otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00045] ⌈
If development error detection is enabled: the function shall check the parameter
TrcvIdx for being valid. If the check fails, the function shall raise the development
error ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00094] ⌈
If the transceiver is already in the requested mode E_OK shall be returned and no
development error shall be raised. ⌋()
[SWS_EthTrcv_00104] ⌈
The function shall check the access to the Ethernet transceiver. If the check fails, the
function shall raise the production error ETHTRCV_E_ACCESS and return
E_NOT_OK, otherwise pass the production error ETHTRCV_E_ACCESS and return
E_OK. ⌋()
[SWS_EthTrcv_00047] ⌈
Caveat: The function requires previous transceiver initialization (EthTrcv_Init). ⌋()
The function shall be pre compile time configurable On/Off by the configuration
parameter: EthTrcvSetTransceiverModeApi. ⌋()
8.3.3 EthTrcv_GetTransceiverMode
[SWS_EthTrcv_00048]⌈
Service Name EthTrcv_GetTransceiverMode
Std_ReturnType EthTrcv_GetTransceiverMode (
uint8 TrcvIdx,
Syntax Eth_ModeType* TrcvModePtr
)
Sync/Async Synchronous
Parameters
None
(inout)
⌋()
[SWS_EthTrcv_00049]{DRAFT} ⌈
The function shall read the current transceiver mode of the Ethernet hardware (PHY),
whereby ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST shall always be
returned as ETH_MODE_ACTIVE. ⌋()
[SWS_EthTrcv_00050] ⌈
If development error detection is enabled: the function shall check that the service
EthTrcv_Init was previously called. If the check fails, the function shall raise the
development error ETHTRCV_E_UNINIT otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00051] ⌈
If development error detection is enabled: the function shall check the parameter
TrcvIdx for being valid. If the check fails, the function shall raise the development
error ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
35 of 89 Document ID 431: AUTOSAR_SWS_EthernetTransceiverDriver
Specification of Ethernet Transceiver Driver
AUTOSAR CP R20-11
[SWS_EthTrcv_00052] ⌈
If development error detection is enabled: the function shall check the parameter
TrcvModePtr for being valid. If the check fails, the function shall raise the
development error ETHTRCV_E_PARAM_POINTER otherwise (if DET is disabled)
return E_NOT_OK. ⌋()
[SWS_EthTrcv_00053]{OBSOLETE} ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter: EthTrcvGetTransceiverModeApi. ⌋()
[SWS_EthTrcv_00054] ⌈
Caveat: The function requires previous transceiver initialization (EthTrcv_Init). ⌋()
Std_ReturnType EthTrcv_SetTransceiverWakeupMode (
uint8 TrcvIdx,
Syntax EthTrcv_WakeupModeType TrcvWakeupMode
)
Service ID
0x0d
[hex]
Sync/Async Synchronous
Parameters
None
(inout)
Parameters
None
(out)
Enables / disables the wake-up mode or clear the wake-up reason of the indexed
Description transceiver
Tags:atp.Status=obsolete
⌋()
36 of 89 Document ID 431: AUTOSAR_SWS_EthernetTransceiverDriver
Specification of Ethernet Transceiver Driver
AUTOSAR CP R20-11
[SWS_EthTrcv_00128]{OBSOLETE} ⌈
The function EthTrcv_GetTransceiverWakeupMode() shall read the current
transceiver wake up mode and provide it into TrcvWakeupModePtr. ⌋()
[SWS_EthTrcv_00129]{OBSOLETE} ⌈
If development error detection is enabled: The function
EthTrcv_GetTransceiverWakeupMode() shall check that the service EthTrcv_Init was
previously called. If the check fails, the function shall raise the development error
ETHTRCV_E_UNINIT otherwise (if DET is disabled) return E_NOT_OK. ⌋()
[SWS_EthTrcv_00130]{OBSOLETE} ⌈
If development error detection is enabled: The function
EthTrcv_GetTransceiverWakeupMode() shall check the parameter TrcvIdx for being
valid. If the check fails, the function shall raise the development error
ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is disabled) return E_NOT_OK. ⌋()
[SWS_EthTrcv_00131]{OBSOLETE} ⌈
If development error detection is enabled: The function
EthTrcv_GetTransceiverWakeupMode() shall check the parameter
TrcvWakeupModePtr for being valid. If the check fails, the function shall raise the
development error ETHTRCV_E_PARAM_POINTER otherwise (if DET is disabled)
return E_NOT_OK. ⌋()
[SWS_EthTrcv_00132]{OBSOLETE} ⌈
The function EthTrcv_GetTransceiverWakeupMode() shall be only available if
EthTrcvGetTransceiverWakeupModeApi is set to TRUE. ⌋()
[SWS_EthTrcv_00133]{OBSOLETE} ⌈
Caveat: The function EthTrcv_GetTransceiverWakeupMode() requires previous
transceiver initialization (EthTrcv_Init). ⌋()
8.3.5 EthTrcv_GetTransceiverWakeupMode
[SWS_EthTrcv_00127]{OBSOLETE} ⌈
Service Name EthTrcv_GetTransceiverWakeupMode (obsolete)
Std_ReturnType EthTrcv_GetTransceiverWakeupMode (
uint8 TrcvIdx,
Syntax
EthTrcv_WakeupModeType* TrcvWakeupModePtr
)
Service ID
0x0e
[hex]
Sync/Async Synchronous
Parameters
None
(inout)
⌋()
[SWS_EthTrcv_00120]{OBSOLETE} ⌈
If function EthTrcv_SetTransceiverWakeupMode() is called with
ETHTRCV_WUM_DISABLE or ETHTRCV_WUM_ENABLE and the internal cable
diagnostic state is different from ETHTRCV_CABLEDIAG_PENDING, the Ethernet
Transceiver shall put the indexed transceiver in the specified wake up mode. ⌋()
[SWS_EthTrcv_00121]{OBSOLETE} ⌈
If function EthTrcv_SetTransceiverWakeupMode() is called with
ETHTRCV_WUM_CLEAR and the internal cable diagnostic state is different from
ETHTRCV_CABLEDIAG_PENDING, the Ethernet Transceiver driver shall clear
stored wakeup events on the indexed transceiver. ⌋()
[SWS_EthTrcv_00164]{OBSOLETE} ⌈
If the internal cable diagnostic state is ETHTRCV_CABLEDIAG_PENDING, the
EthTrcv_SetTransceiverWakeupMode shall return E_NOT_OK. ⌋()
[SWS_EthTrcv_00122]{OBSOLETE} ⌈
If development error detection is enabled: The function
EthTrcv_SetTransceiverWakeupMode() shall check that the service EthTrcv_Init was
previously called. If the check fails, the function shall raise the development error
ETHTRCV_E_UNINIT otherwise (if DET is disabled) return E_NOT_OK. ⌋()
[SWS_EthTrcv_00123]{OBSOLETE} ⌈
If development error detection is enabled: The function
EthTrcv_SetTransceiverWakeupMode() shall check the parameter TrcvIdx for being
valid. If the check fails, the function shall raise the development error
ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is disabled) return E_NOT_OK. ⌋()
[SWS_EthTrcv_00124]{OBSOLETE} ⌈
The function EthTrcv_SetTransceiverWakeupMode() shall be only available if
EthTrcvWakeUpSupport is not disabled (set to
ETHTRCV_WAKEUP_NOT_SUPPORTED). ⌋(SRS_Eth_00106)
[SWS_EthTrcv_00125]{OBSOLETE} ⌈
If the transceiver is already in the requested wake-up mode, E_OK shall be returned
and no development error shall be raised. ⌋()
[SWS_EthTrcv_00126]{OBSOLETE} ⌈
Caveat: The function EthTrcv_SetTransceiverWakeupMode() requires previous
transceiver initialization (EthTrcv_Init). ⌋()
8.3.6 EthTrcv_GetBusWuReason
[SWS_EthTrcv_91012]{DRAFT} ⌈
Service Name EthTrcv_EthTrcv_GetBusWuReason (draft)
Std_ReturnType EthTrcv_EthTrcv_GetBusWuReason (
uint8 TrcvIdx,
Syntax EthTrcv_WakeupReasonType* WakeupReasonPtr
)
Sync/Async Synchronous
Reentrancy Reentrant
Parameters
None
(inout)
Parameters Wakeup Pointer to structure of least recent wakeup event, which was
(out) ReasonPtr detected by the Ethernet PHY
⌋(SRS_Eth_00107)
[SWS_EthTrcv_00186] {DRAFT}⌈
The function EthTrcv_GetBusWuReason shall read the stored wake-up reason and
provide the information in WakeupReasonPtr. ⌋(SRS_Eth_00107)
[SWS_EthTrcv_00187]{DRAFT} ⌈
If development error detection is enabled: the function shall check that the service
EthTrcv_Init was previously called. If the check fails, the function shall raise the
development error ETHTRCV_E_UNINIT otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
39 of 89 Document ID 431: AUTOSAR_SWS_EthernetTransceiverDriver
Specification of Ethernet Transceiver Driver
AUTOSAR CP R20-11
[SWS_EthTrcv_00188]{DRAFT} ⌈
If development error detection is enabled: the function shall check the parameter
TrcvIdx for being valid. If the check fails, the function shall raise the development
error ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00189]{DRAFT} ⌈
If development error detection is enabled: the function shall check the parameter
TrcvModePtr for being valid. If the check fails, the function shall raise the
development error ETHTRCV_E_PARAM_POINTER otherwise (if DET is disabled)
return E_NOT_OK. ⌋()
[SWS_EthTrcv_00190]{DRAFT} ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter: EthTrcvGetBusWuReasonApi. ⌋()
8.3.7 EthTrcv_CheckWakeup
[SWS_EthTrcv_00134]⌈
Service Name EthTrcv_CheckWakeup
Std_ReturnType EthTrcv_CheckWakeup (
Syntax uint8 TrcvIdx
)
Sync/Async Synchronous
Reentrancy Reentrant
Parameters
None
(inout)
⌋()
[SWS_EthTrcv_00136]{OBSOLETE} ⌈
If the wake-up mode of the corresponding transceiver is not
ETHTRCV_WUM_ENABLE, the function EthTrcv_CheckWakeup() shall return
E_OK. ⌋()
[SWS_EthTrcv_00135]{DRAFT} ⌈
If EthTrcvWakeUpSupport is set to ETHTRCV_WAKEUP_BY_INTERRUPT, the
function EthTrcv_CheckWakeup() shall check if a wake up has been detected and if
yes propagate the corresponding wake up source (see EthTrcvWakeupMap
configuration) to the EcuM by calling EcuM_SetWakeupEvent. ⌋(SRS_Eth_00107)
[SWS_EthTrcv_00185]{DRAFT} ⌈
If the function EthTrcv_CheckWakeup() is called and EthTrcvWakeUpSupport is set
to ETHTRCV_WAKEUP_BY_ASYNCHRONOUS_CHECK, the Ethernet Transceiver
Driver shall store the request to asynchronously check for a wake-up of used
Ethernet hardware (e.g. the OA TC10 compliant PHY) in the context of the
EthTrcv_MainFunction. ⌋(SRS_Eth_00108, SRS_Eth_00107)
Note: Asychronous check for a wake-up could be used for Ethernet switches, due to
the time consumption to read out all Ethernet switch ports of an Ethernet switch. E.g.
the Ethernet switch is signaled that an interrupt of one or more of its Ethernet switch
ports occurred. The corresponding host ECU (ECU that maintain an Ethernet switch)
has to read out all registers of the cooresponding PHYs, to check which PHYs
signaled the interrupt and the reason for the interrupt. This could be done in the
context of the EthTrcv_MainFunction asynchronously (and NOT synchronously in the
context of EthTrcv_CheckWakeup) to support timing constraints regarding runtime of
the host ECU.
[SWS_EthTrcv_00137] ⌈
If development error detection is enabled: The function EthTrcv_CheckWakeup()
shall check that the service EthTrcv_Init was previously called. If the check fails, the
function shall raise the development error ETHTRCV_E_UNINIT otherwise (if DET is
disabled) return E_NOT_OK. ⌋()
[SWS_EthTrcv_00138] ⌈
If development error detection is enabled: The function EthTrcv_CheckWakeup()
shall check the parameter TrcvIdx for being valid. If the check fails, the function shall
raise the development error ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is
disabled) return E_NOT_OK. ⌋()
[SWS_EthTrcv_00139] ⌈
The function EthTrcv_CheckWakeup() shall be only available if
EthTrcvWakeUpSupport is something else than
ETHTRCV_WAKEUP_NOT_SUPPORTED. ⌋(SRS_Eth_00106)
[SWS_EthTrcv_00140] ⌈
Caveat: The function EthTrcv_CheckWakeup() requires previous transceiver
initialization (EthTrcv_Init). ⌋()
8.3.8 EthTrcv_StartAutoNegotiation
[SWS_EthTrcv_00055]⌈
41 of 89 Document ID 431: AUTOSAR_SWS_EthernetTransceiverDriver
Specification of Ethernet Transceiver Driver
AUTOSAR CP R20-11
Std_ReturnType EthTrcv_StartAutoNegotiation (
Syntax uint8 TrcvIdx
)
Sync/Async Synchronous
Parameters
None
(inout)
⌋()
[SWS_EthTrcv_00056] ⌈
The function shall restart the automatic negotiation of the transmission parameters
used by the indexed transceiver if the internal cable diagnostic state is different from
ETHTRCV_CABLEDIAG_PENDING. Otherwise, the API shall return with
E_NOT_OK. ⌋()
[SWS_EthTrcv_00057] ⌈
If development error detection is enabled: the function shall check that the service
EthTrcv_Init was previously called. If the check fails, the function shall raise the
development error ETHTRCV_E_UNINIT otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00058] ⌈
If development error detection is enabled: the function shall check the parameter
TrcvIdx for being valid. If the check fails, the function shall raise the development
error ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00059] ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter: EthTrcvStartAutoNegotiationApi and EthTrcvEnablePLCA.
⌋(SRS_Eth_00149)
[SWS_EthTrcv_00060] ⌈
Caveat: The function requires previous transceiver initialization (EthTrcv_Init). ⌋()
[SWS_EthTrcv_00088] ⌈
Caveat: The function is not required or called by an upper layer BSW software
component. ⌋()
8.3.9 EthTrcv_TransceiverLinkStateRequest
[SWS_EthTrcv_91025]⌈
Service Name EthTrcv_TransceiverLinkStateRequest
Std_ReturnType EthTrcv_TransceiverLinkStateRequest (
uint8 TrcvIdx,
Syntax EthTrcv_LinkStateType LinkState
)
Sync/Async Asynchronous
Reentrancy Reentrant for different TrcvIdx. Non reentrant for the same TrcvIdx.
Parameters
None
(inout)
Description Request the given link state for the given Ethernet transceiver
⌋()
[SWS_EthTrcv_00151] ⌈
The function shall start link training of the indexed transceiver if:
- the requested link state is ETHTRCV_LINK_STATE_ACTIVE and
- the internal cable diagnostic state is different from
ETHTRCV_CABLEDIAG_PENDING and
- EthTrcvConnNeg is set to TRCV_CONN_NEG_MASTER or
TRCV_CONN_NEG_AUTO.
If EthTrcvConnNeg is set to TRCV_CONN_NEG_SLAVE, the indexed transceiver
shall be put in a state to wait for the link training of the link partner. ⌋()
[SWS_EthTrcv_00165] ⌈
[SWS_EthTrcv_00152] ⌈
The function shall stop link training of the indexed transceiver, if the requested link
state is ETHTRCV_LINK_STATE_DOWN and EthTrcvConnNeg is set to
TRCV_CONN_NEG_MASTER or TRCV_CONN_NEG_AUTO. ⌋()
[SWS_EthTrcv_00153] ⌈
The function shall put the link down of the indexed transceiver, if the requested link
state is ETHTRCV_LINK_STATE_DOWN. ⌋()
[SWS_EthTrcv_00154] ⌈
If the Ethernet transceiver is already in the requested link state, E_OK shall be
returned and no development error shall be raised. ⌋()
8.3.10 EthTrcv_GetLinkState
[SWS_EthTrcv_00061]⌈
Service Name EthTrcv_GetLinkState
Std_ReturnType EthTrcv_GetLinkState (
uint8 TrcvIdx,
Syntax EthTrcv_LinkStateType* LinkStatePtr
)
Service ID
0x06
[hex]
Sync/Async Synchronous
Parameters
None
(inout)
⌋()
[SWS_EthTrcv_00062]{DRAFT} ⌈
44 of 89 Document ID 431: AUTOSAR_SWS_EthernetTransceiverDriver
Specification of Ethernet Transceiver Driver
AUTOSAR CP R20-11
The function shall read the current transceiver link state, expect for the following
condition:
If EthTrcvWakeupSleepOnDatalineEnabled set to TRUE and the Ethernet
Transceiver Driver detect that a sleep process is performed for the given TrcvIdx,
then ETHTRCV_LINK_STATE_DOWN shall be returned. ⌋(SRS_Eth_00040)
Note: OA TC10 compliant Ethernet hardware is not able to transfer data on the date
line, if a sleep process is performed. In that case a link down is reported to the upper
layer, to indicate that communication is not possible on data line
[SWS_EthTrcv_00063] ⌈
If development error detection is enabled: the function shall check that the service
EthTrcv_Init was previously called. If the check fails, the function shall raise the
development error ETHTRCV_E_UNINIT otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00064] ⌈
If development error detection is enabled: the function shall check the parameter
TrcvIdx for being valid. If the check fails, the function shall raise the development
error ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00065] ⌈
If development error detection is enabled: the function shall check the parameter
LinkStatePtr for being valid. If the check fails, the function shall raise the
development error ETHTRCV_E_PARAM_POINTER otherwise (if DET is disabled)
return E_NOT_OK. ⌋()
[SWS_EthTrcv_00066] ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter: EthTrcvGetLinkStateApi. ⌋()
[SWS_EthTrcv_00067] ⌈
Caveat: The function requires previous transceiver initialization (EthTrcv_Init). ⌋()
8.3.11 EthTrcv_GetBaudRate
[SWS_EthTrcv_00068]⌈
Service
EthTrcv_GetBaudRate
Name
Std_ReturnType EthTrcv_GetBaudRate (
uint8 TrcvIdx,
Syntax
EthTrcv_BaudRateType* BaudRatePtr
)
Service ID
0x07
[hex]
Sync/Async Synchronous
45 of 89 Document ID 431: AUTOSAR_SWS_EthernetTransceiverDriver
Specification of Ethernet Transceiver Driver
AUTOSAR CP R20-11
Parameters Index of the transceiver within the context of the Ethernet Transceiver
TrcvIdx
(in) Driver
Parameters
None
(inout)
Std_-
E_OK: success
Return value Return-
E_NOT_OK: transceiver could not be initialized
Type
⌋()
[SWS_EthTrcv_00069] ⌈
The function shall read the current transceiver baud rate. ⌋()
[SWS_EthTrcv_00070] ⌈
If development error detection is enabled: the function shall check that the service
EthTrcv_Init was previously called. If the check fails, the function shall raise the
development error ETHTRCV_E_UNINIT otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00071] ⌈
If development error detection is enabled: the function shall check the parameter
TrcvIdx for being valid. If the check fails, the function shall raise the development
error ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00072] ⌈
If development error detection is enabled: the function shall check the parameter
BaudRatePtr for being valid. If the check fails, the function shall raise the
development error ETHTRCV_E_PARAM_POINTER otherwise (if DET is disabled)
return E_NOT_OK. ⌋()
[SWS_EthTrcv_00073] ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter: EthTrcvGetBaudRateApi. ⌋()
[SWS_EthTrcv_00074] ⌈
Caveat: The function requires previous transceiver initialization (EthTrcv_Init). ⌋()
[SWS_EthTrcv_00089] ⌈
Caveat: The function is not required or called by an upper layer BSW software
component. ⌋()
8.3.12 EthTrcv_GetDuplexMode
[SWS_EthTrcv_00075]⌈
Service Name EthTrcv_GetDuplexMode
Std_ReturnType EthTrcv_GetDuplexMode (
uint8 TrcvIdx,
Syntax
EthTrcv_DuplexModeType* DuplexModePtr
)
Service ID
0x08
[hex]
Sync/Async Synchronous
Parameters
None
(inout)
⌋()
[SWS_EthTrcv_00076] ⌈
The function shall read the current transceiver duplex mode. ⌋()
[SWS_EthTrcv_00077] ⌈
If development error detection is enabled: the function shall check that the service
EthTrcv_Init was previously called. If the check fails, the function shall raise the
development error ETHTRCV_E_UNINIT otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00078] ⌈
If development error detection is enabled: the function shall check the parameter
TrcvIdx for being valid. If the check fails, the function shall raise the development
error ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00079] ⌈
47 of 89 Document ID 431: AUTOSAR_SWS_EthernetTransceiverDriver
Specification of Ethernet Transceiver Driver
AUTOSAR CP R20-11
If development error detection is enabled: the function shall check the parameter
DuplexModePtr for being valid. If the check fails, the function shall raise the
development error ETHTRCV_E_PARAM_POINTER otherwise (if DET is disabled)
return E_NOT_OK. ⌋()
[SWS_EthTrcv_00080] ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter: EthTrcvGetDuplexModeApi. ⌋()
[SWS_EthTrcv_00081] ⌈
Caveat: The function requires previous transceiver initialization (EthTrcv_Init). ⌋()
[SWS_EthTrcv_00090] ⌈
Caveat: The function is not required or called by an upper layer BSW software
component. ⌋()
8.3.13 EthTrcv_SetPhyTestMode
[SWS_EthTrcv_91003]⌈
Service Name EthTrcv_SetPhyTestMode
Std_ReturnType EthTrcv_SetPhyTestMode (
uint8 TrcvIdx,
Syntax
EthTrcv_PhyTestModeType Mode
)
Sync/Async Synchronous
Reentrancy Reentrant for different TrcvIdx. Non reentrant for the same TrcvIdx.
Parameters
None
(inout)
⌋(SRS_Eth_00117)
[SWS_EthTrcv_00166] ⌈
If the internal cable diagnostic state is ETHTRCV_CABLEDIAG_PENDING, the
EthTrcv_SetPhyTestMode shall return E_NOT_OK. ⌋()
48 of 89 Document ID 431: AUTOSAR_SWS_EthernetTransceiverDriver
Specification of Ethernet Transceiver Driver
AUTOSAR CP R20-11
[SWS_EthTrcv_00147] ⌈
If development error detection is enabled: the function EthTrcv_SetPhyTestMode
shall check the parameter Mode for being supported by the hardware. If the check
fails, the function shall raise the development error
ETHTRCV_E_NOT_SUPPORTED.⌋(SRS_Eth_00117)
[SWS_EthTrcv_00169] ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter EthTrcvSetPhyTestModeApi (ECUC_EthTrcv_00047). ⌋()
8.3.14 EthTrcv_SetPhyLoopbackMode
[SWS_EthTrcv_91005]⌈
Service Name EthTrcv_SetPhyLoopbackMode
Std_ReturnType EthTrcv_SetPhyLoopbackMode (
uint8 TrcvIdx,
Syntax EthTrcv_PhyLoopbackModeType Mode
)
Sync/Async Synchronous
Reentrancy Reentrant for different TrcvIdx. Non reentrant for the same TrcvIdx.
Parameters
None
(inout)
⌋(SRS_Eth_00117)
[SWS_EthTrcv_00167] ⌈
If the internal cable diagnostic state is ETHTRCV_CABLEDIAG_PENDING, the
EthTrcv_SetPhyLoopbackMode shall return E_NOT_OK. ⌋()
[SWS_EthTrcv_00149] ⌈
If development error detection is enabled: the function
EthTrcv_SetPhyLoopbackMode shall check the parameter Mode for being supported
by the hardware. If the check fails, the function shall raise the development error
ETHTRCV_E_NOT_SUPPORTED.⌋(SRS_Eth_00117)
8.3.15 EthTrcv_GetPhySignalQuality
[SWS_EthTrcv_91001]⌈
Service Name EthTrcv_GetPhySignalQuality
Std_ReturnType EthTrcv_GetPhySignalQuality (
uint8 TrcvIdx,
Syntax
uint32* SignalQualityPtr
)
Sync/Async Synchronous
Reentrancy Reentrant for different TrcvIdx. Non reentrant for the same TrcvIdx.
Parameters
None
(inout)
SignalQuality
Parameters (out) Pointer to the memory where the signal quality shall be stored.
Ptr
Description Obtains the current signal quality of the link of the indexed transceiver
⌋(SRS_Eth_00117)
8.3.16 EthTrcv_SetPhyTxMode
[SWS_EthTrcv_91007]⌈
Service Name EthTrcv_SetPhyTxMode
Std_ReturnType EthTrcv_SetPhyTxMode (
uint8 TrcvIdx,
Syntax EthTrcv_PhyTxModeType Mode
)
Sync/Async Synchronous
Reentrancy Reentrant for different TrcvIdx. Non reentrant for the same TrcvIdx.
Parameters
None
(inout)
⌋(SRS_Eth_00117)
[SWS_EthTrcv_00168] ⌈
If the internal cable diagnostic state is ETHTRCV_CABLEDIAG_PENDING, the
EthTrcv_SetPhyTxMode shall return E_NOT_OK. ⌋()
[SWS_EthTrcv_00148] ⌈
If development error detection is enabled: the function EthTrcv_SetPhyTxMode shall
check the parameter Mode for being supported by the hardware. If the check fails,
the function shall raise the development error ETHTRCV_E_NOT_SUPPORTED.⌋()
8.3.17 EthTrcv_ RunCableDiagnostic
[SWS_EthTrcv_91011]⌈
Service Name EthTrcv_RunCableDiagnostic
Std_ReturnType EthTrcv_RunCableDiagnostic (
Syntax uint8 TrcvIdx
)
Sync/Async Asynchronous
Reentrancy Reentrant for different TrcvIdx. Non reentrant for the same TrcvIdx.
Parameters
None
(inout)
Parameters
None
(out)
Description Trigger the cable diagnostics for the given Ethernet transceiver.
⌋()
[SWS_EthTrcv_00170] ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter EthTrcvEnableCableDiagnosticApi (ECUC_EthTrcv_00054).
⌋()
8.3.18 EthTrcv_GetCableDiagnosticsResult
[SWS_EthTrcv_91009]⌈
Service Name EthTrcv_GetCableDiagnosticsResult
Std_ReturnType EthTrcv_GetCableDiagnosticsResult (
uint8 TrcvIdx,
Syntax
EthTrcv_CableDiagResultType* ResultPtr
)
Sync/Async Synchronous
Reentrancy Reentrant for different TrcvIdx. Non reentrant for the same TrcvIdx.
Parameters
None
(inout)
⌋(SRS_Eth_00117)
[SWS_EthTrcv_00171] ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter EthTrcvEnableCableDiagnosticApi (ECUC_EthTrcv_00054).⌋()
8.3.19 EthTrcv_GetPhyIdentifier
[SWS_EthTrcv_91010]⌈
Service Name EthTrcv_GetPhyIdentifier
Std_ReturnType EthTrcv_GetPhyIdentifier (
uint8 TrcvIdx,
uint32* OrgUniqueIdPtr,
Syntax uint8* ModelNrPtr,
uint8* RevisionNrPtr
)
Sync/Async Synchronous
Reentrancy Reentrant for different TrcvIdx. Non reentrant for the same TrcvIdx.
Parameters
None
(inout)
Obtains the PHY identifier of the Ethernet Transceiver according to IEEE 802.3-
Description
2015 chapter 22.2.4.3.1 PHY Identifer.
⌋(SRS_Eth_00117)
[SWS_EthTrcv_00172] ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter EthTrcvGetPhyIdentifierApi (ECUC_EthTrcv_00046).⌋()
8.3.20 EthTrcv_GetMacMethod
[SWS_EthTrcv_91014]{DRAFT} ⌈
Service Name EthTrcv_GetMacMethod (draft)
Std_ReturnType EthTrcv_GetMacMethod (
uint8* TrcvIdx,
Syntax EthTrcv_MacMethodType* MacModePtr
)
Service ID
0x18
[hex]
Sync/Async Synchronous
Parameters
None
(inout)
⌋()
[SWS_EthTrcv_00174]{DRAFT} ⌈
If the parameter EthTrcvDuplexMode is set to ETHTRCV_DUPLEX_MODE_HALF
the function shall return the current transceiver media access mode. Otherwise, it
shall return E_NOT_OK. ⌋(SRS_Eth_00149)
[SWS_EthTrcv_00175]{DRAFT} ⌈
If development error detection is enabled: the function shall check that the service
EthTrcv_Init was previously called. If the check fails, the function shall raise the
development error ETHTRCV_E_UNINIT otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00176]{DRAFT} ⌈
If development error detection is enabled: the function shall check the parameter
TrcvIdx for being valid. If the check fails, the function shall raise the development
error ETHTRCV_E_INV_TRCV_IDX otherwise (if DET is disabled) return
E_NOT_OK. ⌋()
[SWS_EthTrcv_00177]{DRAFT} ⌈
If development error detection is enabled: the function shall check the parameter
MacModePtr for being valid. If the check fails, the function shall raise the
development error ETHTRCV_E_PARAM_POINTER otherwise (if DET is disabled)
return E_NOT_OK. ⌋()
[SWS_EthTrcv_00178]{DRAFT} ⌈
Caveat: The function requires previous transceiver initialization (EthTrcv_Init). ⌋()
8.3.21 EthTrcv_GetVersionInfo
[SWS_EthTrcv_00082]⌈
Service Name EthTrcv_GetVersionInfo
Std_VersionInfoType* VersionInfoPtr
)
Sync/Async Synchronous
Reentrancy Reentrant
⌋()
[SWS_EthTrcv_00093] ⌈
If development error detection is enabled: the function shall check the parameter
VersionInfoPtr for being valid. If the check fails, the function shall raise the
development error ETHTRCV_E_PARAM_POINTER. ⌋()
[SWS_EthTrcv_00173] ⌈
The function shall be pre compile time configurable On/Off by the configuration
parameter EthTrcvVersionInfoApi (ECUC_EthTrcv_00004). ⌋()
8.4.1 EthTrcv_ReadMiiIndication
[SWS_EthTrcv_00108]⌈
Service Name EthTrcv_ReadMiiIndication
void EthTrcv_ReadMiiIndication (
uint8 CtrlIdx,
uint8 TrcvIdx,
Syntax
uint8 RegIdx,
uint8 RegVal
)
Service ID
0x09
[hex]
Sync/Async Synchronous
Reentrancy Non Reentrant for the same CtrlIdx, reentrant for different
CtrlIdx Index of the controller within the context of the Ethernet Driver
Parameters
None
(inout)
Parameters
None
(out)
Called when information has been read out via MII interface. Triggered by previous
Description
Eth_ReadMii call. Can directly be called within Eth_ReadMii.
⌋()
8.4.2 EthTrcv_WriteMiiIndication
[SWS_EthTrcv_00109]⌈
Service Name EthTrcv_WriteMiiIndication
void EthTrcv_WriteMiiIndication (
uint8 CtrlIdx,
Syntax uint8 TrcvIdx,
uint8 RegIdx
)
Service ID
0x0a
[hex]
Sync/Async Synchronous
Reentrancy Non Reentrant for the same CtrlIdx, reentrant for different
CtrlIdx Index of the controller within the context of the Ethernet Driver
Parameters
TrcvIdx Index of the transceiver on the MII
(in)
RegIdx Index of the transceiver register on the MII
Parameters
None
(inout)
Parameters
None
(out)
Called when information has been written via MII interface. Triggered by previous
Description
Eth_WriteMii call. Can directly be called within Eth_WriteMii.
⌋()
8.6.1 EthTrcv_MainFunction
[SWS_EthTrcv_00106]⌈
Service
EthTrcv_MainFunction
Name
void EthTrcv_MainFunction (
Syntax void
)
Service ID
0x0c
[hex]
Used for polling state changes and wakeup reasons. Calls EthIf_TrcvModeIndication
Description when the transceiver mode changed. Stores wakeup events if EthTrcvWakeUp
Support is set to ETHTRCV_WAKEUP_BY_POLLING.
⌋()
[SWS_EthTrcv_00107] ⌈
Used for polling state changes. Calls EthIf_TrcvModeIndication when the transceiver
mode changed. ⌋()
[SWS_EthTrcv_00141] ⌈
The function EthTrcv_MainFunction() shall check for wake up reasons and shall store
wakeup events if EthTrcvWakeUpSupport is set to
ETHTRCV_WAKEUP_BY_POLLING. ⌋()
[SWS_EthTrcv_00191]{DRAFT} ⌈
If EthTrcvWakeUpSupport is set to
ETHTRCV_WAKEUP_BY_ASYNCHRONOUS_CHECK, the EthTrcv_MainFunction
shall check the maintained Ethernet hardware (PHY) for a signaled
Wakeup.Indication of those EthTrcvs where the check for wake-up was requested by
EthTrcv_CheckWakeup. If a wake-up is detected, the Ethernet Transceiver Driver
shall inform the EcuM by calling EcuM_SetWakeupEvent with the corresponding
WakeupSource. ⌋(SRS_Eth_00108)
[SWS_EthTrcv_00192]{DRAFT} ⌈
[SWS_EthTrcv_00193]{DRAFT} ⌈
If EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE, the
EthTrcv_MainFunction shall process running delay timers. If a sleep delay timer
exceeds and the requested transceiver mode is still ETH_MODE_DOWN, the
Ethernet Transceiver driver shall trigger a sleep request according to the
specification of OA TC10 (see [23]). ⌋(SRS_Eth_00151)
The following requirements specify the procedure in case a sleep request was
rejected by the counter part of the Ethernet connection.
[SWS_EthTrcv_00194]{DRAFT} ⌈
If EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE, the requested transceiver
mode is still ETH_MODE_DOWN and SleepFail.Indication was reported less than
EthTrcvSleepRequestNumberOfRepetitions, the Ethernet Transceiver driver shall
trigger a sleep request according to the specification of OA TC10 (see [23]) after
EthTrcvSleepRequestRepetitionPeriod has been elapsed. ⌋(SRS_Eth_00155)
[SWS_EthTrcv_00195]{DRAFT} ⌈
If EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE, the requested transceiver
mode is still ETH_MODE_DOWN and SleepFail.Indication was reported
EthTrcvSleepRequestNumberOfRepetitions times, the Ethernet Transceiver driver
shall call EthIf_TrcvModeIndication(ETH_MODE_DOWN). If
EthTrcvForceSleepEnabled is set to true the Ethernet Transceiver driver shall
additionally force the Ehternet hardware (PHY) to go to sleep. ⌋(SRS_Eth_00155)
[SWS_EthTrcv_00196]{DRAFT} ⌈
After each call of EthTrcv_SetTransceiverMode with
ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST for a particular EthTrcv the
EthTrcv_MainFunction shall repeat a wake-up request
EthTrcvWakeupRequestNumberOfRepetitions times with a delay of
EthTrcvWakeUpRequestRepetitionPeriod in between as long as no
EthTrcv_SetTransceiverMode with ETH_MODE_DOWN occurs for the same
EthTrcv. ⌋(SRS_Eth_00154)
[SWS_EthTrcv_00085]⌈
API Header
Description
Function File
EthIf_Trcv- Called asynchronously when a mode change has been read out. If the
Mode- EthIf.h function is triggered by previous call of EthTrcv_SetTransceiverMode it
Indication can directly be called within the trigger function.
SchM_-
Sch Invokes the SchM_Enter function to enter a module local exclusive
Enter_Eth-
M_<Mip>.h area.
Trcv
SchM_Exit_- Sch
Invokes the SchM_Exit function to exit an exclusive area.
EthTrcv M_<Mip>.h
⌋()
8.7.2 Optional Interfaces
This chapter defines all interfaces required to fulfill an optional functionality of the
module.
[SWS_EthTrcv_00086]⌈
API Header
Description
Function File
Det_Report-
Det.h Service to report development errors.
Error
EcuM_Set-
Wakeup- EcuM.h Sets the wakeup event.
Event
EthSwt_-
Eth
ReadTrcv- Generic API for reading the content of a transceiver register
Swt.h
Register
EthSwt_-
Eth
WriteTrcv- Generic API for writing the content of a transceiver register
Swt.h
Register
Icu_Disable-
Icu.h This function disables the notification of a channel.
Notification
Icu_Enable-
Icu.h This function enables the notification on the given channel.
Notification
⌋()
8.7.3 Configurable interfaces
This chapter lists all interfaces with configurable target functions. The target function
is usually a callback function. The function names are configurable.
[SWS_EthTrcv_00144]{DRAFT} ⌈
Service
<EthTrcvWakeUpCallout> (draft)
Name
void <EthTrcvWakeUpCallout> (
uint8 TrcvIdx,
Syntax Eth_ModeType TrcvMode
)
Service ID
0x11
[hex]
Sync/Async Asynchronous
Trcv
Index of the Ethernet Transceiver
Idx
Parameters
ETH_MODE_ACTIVE: enable the transceiver ETH_MODE_ACTIVE_
(in)
Trcv WITH_WAKEUP_REQUEST: enable the transceiver and request to trigger
Mode a wake-up on the network, if the used Ethernet PHY support such a feature.
E.g. used for PHYs with a compliant to OA TC10.
Parameters
None
(inout)
Parameters
None
(out)
Description Indicates an wake-up request for the specified Ethernet Transceiver. The given Trcv
Mode indicates if the request is based on a remote request from the network (ETH_
MODE_ACTIVE) or if the request is based on active user request (ETH_MODE_
ACTIVE_WITH_WAKEUP_REQUEST). The callback function Ccan be used to
trigger integrator code that initiates a remote wake-up .(e.g. trigger a wake-up line for
an active user request).
Tags:atp.Status=draft
⌋()
[SWS_EthTrcv_00145] ⌈
The callback function shall be configurable by the configuration parameter:
EthTrcvWakeUpCallout. ⌋()
9 Sequence diagrams
The usage of the Ethernet Transceiver Driver is depicted in the sequence diagrams
of the Ethernet Interface.
10 Configuration specification
In general, this chapter defines configuration parameters and their clustering into
containers. In order to support the specification Chapter 10.1 describes
fundamentals. It also specifies a template (table) you shall use for the parameter
specification. We intend to leave Chapter 10.1 in the specification to guarantee
comprehension.
Chapter 10.2 specifies the structure (containers) and the parameters of the module
Ethernet Transceiver Driver.
[SWS_EthTrcv_00155] ⌈
The Ethernet Transceiver Driver module shall reject configurations with partition
mappings which are not supported by the implementation. ⌋()
EthTrcv :EcucModuleDef
lowerMultiplicity = 0
upperMultiplicity = *
+container
EthTrcvMaxTrcvsSupported :
EthTrcvGeneral :
EcucIntegerParamDef
EcucParamConfContainerDef +parameter
defaultValue = 1
max = 255
min = 0
+parameter EthTrcvDevErrorDetect :
EcucBooleanParamDef
+parameter EthTrcvVersionInfoApi :
EcucBooleanParamDef
+parameter EthTrcvVersionInfoApiMacro :
EcucBooleanParamDef
+parameter EthTrcvSetTransceiverModeApi :
EcucBooleanParamDef
+parameter EthTrcvGetTransceiverModeApi :
EcucBooleanParamDef
+parameter EthTrcvStartAutoNegotiationApi :
EcucBooleanParamDef
+parameter EthTrcvGetLinkStateApi :
EcucBooleanParamDef
+parameter EthTrcvGetBaudRateApi :
EcucBooleanParamDef
+parameter EthTrcvGetDuplexModeApi :
EcucBooleanParamDef
EthTrcvIndex :
+parameter EcucIntegerParamDef
min = 0
max = 255
EthTrcv :EcucModuleDef
lowerMultiplicity = 0
upperMultiplicity = *
+container
EthTrcvConfigSet :
EcucParamConfContainerDef
EthTrcvIdx :EcucIntegerParamDef
min = 0
+subContainer
max = 255
+parameter symbolicNameValue = true
EthTrcvConfig :
EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = * EthTrcvCtrlIdx :EcucIntegerParamDef
+parameter
min = 0
max = 255
DemEventParameter :
EcucParamConfContainerDef
EthTrcvMgmtInterface :
+subContainer EcucChoiceContainerDef
upperMultiplicity = 65535
lowerMultiplicity = 1
lowerMultiplicity = 0
upperMultiplicity = 1 +destination
(from Dem)
EthTrcvDemEventParameterRefs : ETHTRCV_E_ACCESS :
+subContainer EcucParamConfContainerDef +reference EcucSymbolicNameReferenceDef
upperMultiplicity = 1 lowerMultiplicity = 0
lowerMultiplicity = 0 upperMultiplicity = 1
+parameter EthTrcvAutoNegotiationEnabled :
EcucBooleanParamDef
+literal
EthTrcvSpeed : TRCV_SPEED_10 :EcucEnumerationLiteralDef
EcucEnumerationParamDef
+parameter
+literal
TRCV_SPEED_100 :EcucEnumerationLiteralDef
+literal
TRCV_SPEED_1000 :EcucEnumerationLiteralDef
+literal
ETHTRCV_DUPLEX_MODE_FULL :
EcucEnumerationLiteralDef
+literal
TRCV_PHYS_LAYER_TYPE_100BASE_TX :
EthTrcvPhysLayerType : EcucEnumerationLiteralDef
EcucEnumerationParamDef
+literal
lowerMultiplicity = 0 TRCV_PHYS_LAYER_TYPE_1000BASE_T :
+parameter EcucEnumerationLiteralDef
upperMultiplicity = 1
+literal
TRCV_PHYS_LAYER_TYPE_100BASE_T1 :
EcucEnumerationLiteralDef
+literal
TRCV_PHYS_LAYER_TYPE_1000BASE_T1 :
EcucEnumerationLiteralDef
+literal
EthTrcvPortMacLayerType : TRCV_MAC_LAYER_TYPE_XMII :EcucEnumerationLiteralDef
EcucEnumerationParamDef
+parameter +literal
lowerMultiplicity = 0 TRCV_MAC_LAYER_TYPE_XGMII :EcucEnumerationLiteralDef
upperMultiplicity = 1
+literal
TRCV_MAC_LAYER_TYPE_XXGMII :EcucEnumerationLiteralDef
EthTrcvConnNeg :
+literal TRCV_CONN_NEG_MASTER :
EcucEnumerationParamDef
EcucEnumerationLiteralDef
lowerMultiplicity = 1
upperMultiplicity = 1
+literal TRCV_CONN_NEG_AUTO :
EcucEnumerationLiteralDef
lowerMultiplicity = 0 +parameter
(from EcuM)
upperMultiplicity = 1
EthTrcvWakeupMap : EthTrcvWakeupSourceRef :
+destination EcuMWakeupSource :EcucParamConfContainerDef
EcucParamConfContainerDef +reference EcucSymbolicNameReferenceDef
lowerMultiplicity = 1
lowerMultiplicity = 0 lowerMultiplicity = 1
upperMultiplicity = 32
upperMultiplicity = 7 upperMultiplicity = 1
(from EcuM)
EthTrcvWakeupReason :
EcucEnumerationParamDef +literal ETHTRCV_WUR_GENERAL :
EcucEnumerationLiteralDef
lowerMultiplicity = 1
upperMultiplicity = 1
+literal ETHTRCV_WUR_BUS :
+subContainer EcucEnumerationLiteralDef
+literal ETHTRCV_WUR_INTERNAL :
EcucEnumerationLiteralDef
+literal ETHTRCV_WUR_POWER_ON :
EcucEnumerationLiteralDef
+literal ETHTRCV_WUR_PIN :
EcucEnumerationLiteralDef
+literal ETHTRCV_WUR_SYSERR :
EcucEnumerationLiteralDef
10.1.1 EthTrcv
Included Containers
Container Name Multiplicity Scope / Dependency
This container contains the configuration parameters and sub
EthTrcvConfigSet 1
containers of the AUTOSAR EthTrcv module.
EthTrcvGeneral 1 General configuration of Ethernet Transceiver Driver module
10.1.2 EthTrcvConfigSet
Included Containers
Container Name Multiplicity Scope / Dependency
EthTrcvConfig 1..* Configuration of the individual transceiver
10.1.3 EthTrcvConfig
Description Specifies if the Ethernet hardware (PHY) support to go to sleep without the
confirmation of the Ethernet hardware (PHY) of the linked Ethernet
communication partner according to the OA TC10.
If the parameter is set to TRUE, the Ethernet hardware (PHY) support to
force its hardware state to the sleep state. This is used, if the Ethernet
communication partner do not accept the Sleep.Request after the specified
repetitions on Sleep.Request (see
EthTrcvSleepRequestNumberOfRepetitions). If
EthTrcvSleepRequestNumberOfRepetitions is not available, the
EthTransceiver driver shall force the Ethernet hardware (PHY) to sleep
state after the first unsuccessful Sleep.Request.
Tags:
atp.Status=draft
Multiplicity 1
Type EcucBooleanParamDef
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: This parameter is only valid, if
EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE.
Class POST-BUILD
Post-build time --
Value Pre-compile time X VARIANT-PRE-COMPILE
Configuration Link time X VARIANT-LINK-TIME, VARIANT-
Class POST-BUILD
Post-build time --
Scope / scope: ECU
Dependency
Link time --
Post-build time --
Scope / Dependency scope: local
dependency: This parameter is only relevant in case that
EthTrcvEnablePLCA is set to true.
This parameter shall be set identical within a PLCA cluster.
Type EcucEnumerationParamDef
Range TRCV_SPEED_10 10 MBit/s
TRCV_SPEED_100 100 MBit/s
TRCV_SPEED_1000 1000 MBit/s
Post-Build Variant
true
Value
Value Pre-compile time X VARIANT-PRE-COMPILE
Configuration Link time X VARIANT-LINK-TIME
Class Post-build time X VARIANT-POST-BUILD
Scope / scope: local
Dependency dependency: EthTrcvConnNeg=TRCV_CONN_NEG_AUTO
Multiplicity 0..1
Type EcucFloatParamDef
Range [1E-6 .. 0.1]
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity Configuration Pre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local
dependency: This parameter is only valid, if
EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE.
Included Containers
Container Name Multiplicity Scope / Dependency
Container for the references to DemEventParameter
EthTrcvDemEventParameterRef elements which shall be invoked using the API
0..1
s Dem_SetEventStatus in case the corresponding error
occurs. The EventId is taken from the referenced
[SWS_EthTrcv_00157] ⌈
The ECUC partitions referenced by EthTrcvConfigEcucPartitionRef shall be a subset
of the ECUC partitions referenced by EthTrcvEcucPartitionRef.⌋()
[SWS_EthTrcv_00158] ⌈
EthTrcvConfig, EthCtrlConfig and EthSwtConfig (if existent in configuration) of one
communication channel shall all reference the same ECUC partition.⌋()
[SWS_EthTrcv_CONSTR_00001] ⌈
If EthTrcvEcucPartitionRef references one or more ECUC partitions,
EthTrcvConfigEcucPartitionRef shall have a multiplicity of one and reference one of
these ECUC partitions as well. ⌋()
10.1.4 EthTrcvDemEventParameterRefs
No Included Containers
10.1.5 EthTrcvMgmtInterface
Container Choices
Container Name Multiplicity Scope / Dependency
This container includes the MII interface configuration between
an Ethernet Controller and the Ethernet Transceiver. If this
EthTrcvMiiInterface 0..1
container is configured the EthTrcv shall call Eth_WriteMii /
Eth_ReadMii API to access the hardware ethernet tranceiver.
This container includes the Switch interface configuration
between an Ethernet Switch and an Ethernet Transceiver. If
EthTrcvSwitchInterface 0..1 this container is configured the EthTrcv shall call
EthSwt_WriteTrcvRegister / EthSwt_WriteTrcvRegister API to
access the hardware ethernet transceiver.
10.1.6 EthTrcvMiiInterface
No Included Containers
10.1.7 EthTrcvSwitchInterface
No Included Containers
10.1.8 EthTrcvGeneral
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
ETHTRCV_WAKEUP_NOT_SUPPORTED
Default value --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity ConfigurationPre-compile time X All Variants
Class Link time --
Post-build time --
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
up is not support (e.g. wake-up detection not needed or Ethernet hardware does not
support wake-up detection), the BSWMD pre-configuration shall be set to
ETHTRCV_WAKEUP_NOT_SUPPORTED.
Multiplicity 1
Type EcucEnumerationParamDef
Range ETHTRCV_WAKEUP_BY_- Wake-up detection is done within the
ASYNCHRONOUS_CHECK main function. Polling of the Ethernet
hardware is only done, if a wake-up
was signaled. Otherwise the Ethernet
hardware is not checked for wake-
up.Used e.g. if Ethernet hardware is
OA TC10 compliant and the ECU
maintain an Ethernet switch.
ETHTRCV_WAKEUP_BY_INTERRUPT Wake-up detection is signaled by
interrupt
ETHTRCV_WAKEUP_BY_POLLING Wake-up detection is done by polling
continuouslly within the main function
ETHTRCV_WAKEUP_NOT_SUPPORTED Wake up is not supported
Post-Build Variant
false
Value
Value Pre-compile time X All Variants
Configuration Link time --
Class Post-build time --
Scope / scope: local
Dependency
No Included Containers
[SWS_EthTrcv_00156] ⌈
The module will operate as an independent instance in each of the partitions, means
the called API will only target the partition it is called in.⌋()