DEENESPTFRRUARHIKOZHNL

Ethernet Transceiver Driver (EthTrcv)

ModulEthTrcv (Ethernet Transceiver Driver)
BSW-Modul-ID73
Standard-Header#include "EthTrcv.h"
SWS-SpezifikationAUTOSAR_CP_SWS_EthernetTransceiverDriver.pdf, AUTOSAR_SWS_EthernetTransceiverDriver.pdf
Umfang206 Records · 25 Snippets
ClusterEthernet-Stack

Ethernet Transceiver Driver (EthTrcv)

AUTOSAR Classic Communication HW Abstraction-Modul Ethernet Transceiver Driver (EthTrcv, Spezifikation: AUTOSAR_CP_SWS_EthernetTransceiverDriver.pdf, AUTOSAR_SWS_EthernetTransceiverDriver.pdf).

Funktionen — Übersicht

Typen — Übersicht

Anforderungen — Übersicht

Funktionen & Typen — Detailansicht

함수 EthTrcv_Init [SWS_EthTrcv_00028] 📄 PDF

void EthTrcv_Init(const EthTrcv_ConfigType* CfgPtr);

Initializes the Ethernet Transceiver Driver

함수 EthTrcv_MainFunction [SWS_EthTrcv_00106] 📄 PDF

void EthTrcv_MainFunction(void);

Used for polling state changes and wakeup reasons. Calls EthIf_TrcvModeIndication when the transceiver mode changed. Stores wakeup events if EthTrcvWakeUpSupport is set to ETHTRCV_WAKEUP_BY_POLLING.

함수 EthTrcv_ReadMiiIndication [SWS_EthTrcv_00108] 📄 PDF

void EthTrcv_ReadMiiIndication(uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint8 RegVal);

Called when information has been read out via MII interface. Triggered by previous Eth_Read Mii call. Can directly be called within Eth_ReadMii.

함수 EthTrcv_WriteMiiIndication [SWS_EthTrcv_00109] 📄 PDF

void EthTrcv_WriteMiiIndication(uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx);

Called when information has been written via MII interface. Triggered by previous Eth_WriteMii call. Can directly be called within Eth_WriteMii.

함수 EthTrcv_SetTransceiverWakeupMode [SWS_EthTrcv_00119] 📄 PDF

Std_ReturnType EthTrcv_SetTransceiverWakeupMode(uint8 TrcvIdx, EthTrcv_WakeupModeType TrcvWakeupMode);

Enables / di sables the wake - up mode or clear the wake - up reason of the indexed transceiver Tags: atp.Status=obsolete

함수 EthTrcv_GetTransceiverWakeupMode [SWS_EthTrcv_00127] 📄 PDF

Std_ReturnType EthTrcv_GetTransceiverWakeupMode(uint8 TrcvIdx, EthTrcv_WakeupModeType* TrcvWakeupModePtr);

Returns the wake up mode of t he indexed transceiver Tags: atp.Status=obsolete

함수 <EthTrcvWakeUpCallout> [SWS_EthTrcv_00144] 📄 PDF

void <EthTrcvWakeUpCallout>(uint8 TrcvIdx, Eth_ModeType TrcvMode);

Indicates an wake-up request for the specified Ethernet Transceiver. The given TrcvMode 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).

함수 EthTrcv_GetCableDiagnosticsResult [SWS_EthTrcv_91009] 📄 PDF

Std_ReturnType EthTrcv_GetCableDiagnosticsResult(uint8 TrcvIdx, EthTrcv_CableDiagResultType* ResultPtr);

Retrieves the cable diagnostics result of a given transceiver.

함수 EthTrcv_GetMacMethod [SWS_EthTrcv_91014] 📄 PDF

Std_ReturnType EthTrcv_GetMacMethod(uint8* TrcvIdx, EthTrcv_MacMethodType* MacModePtr);

Obtains the media access mode of the transceiver when EthTrcvDuplexMode is configured as ETHTRCV_DUPLEX_MODE_HALF

함수 EthTrcv_MacSecUpdateSecY [SWS_EthTrcv_91026] 📄 PDF

Std_ReturnType EthTrcv_MacSecUpdateSecY(uint8 TrcvIdx, const Mka_MacSecConfigType* MACsecCfgPtr, uint64 TxSci);

Requests the Ethernet Transceiver to update the SecY/PAC of the PHY with the provided parameters. A Transmission Secure Channel with the provided SCI shall be configured during the first call. A pointer to a MACsec Basic Parameters Configuration file shall be provided to create the Secure Channel. Tags: atp.Status=DRAFT

함수 EthTrcv_MacSecInitRxSc [SWS_EthTrcv_91027] 📄 PDF

Std_ReturnType EthTrcv_MacSecInitRxSc(uint8 TrcvIdx, uint64 Sci);

Requests the Ethernet Transceiver Driver to configure a Reception Secure Channel for the given Secure Channel Identifier. Tags: atp.Status=DRAFT

함수 EthTrcv_MacSecResetRxSc [SWS_EthTrcv_91028] 📄 PDF

Std_ReturnType EthTrcv_MacSecResetRxSc(uint8 TrcvIdx, uint64 Sci);

Requests the Ethernet Transceiver Driver to reset to default the MACsec values of the Reception Secure Channel for the given Secure Channel Identifier. Tags: atp.Status=DRAFT

함수 EthTrcv_MacSecUpdateTxSa [SWS_EthTrcv_91029] 📄 PDF

Std_ReturnType EthTrcv_MacSecUpdateTxSa(uint8 TrcvIdx, uint8 An, uint64 NextPn, boolean Active);

Requests the Ethernet Transceiver Driver to update the Transmission Secure Association with the given Packet Number. The Active parameter is included to change the specified AN status. Tags: atp.Status=DRAFT

함수 EthTrcv_MacSecAddTxSa [SWS_EthTrcv_91030] 📄 PDF

Std_ReturnType EthTrcv_MacSecAddTxSa(uint8 TrcvIdx, uint8 An, uint64 NextPn, uint32 Ssci, const Mka_SakKeyPtrType* KeysPtr, boolean Active);

Requests the Ethernet Transceiver Driver to create a Transmission Secure Association in the Transceiver. The Short Secure Channel Identifier is included to support XPN configurations. Tags: atp.Status=DRAFT

함수 EthTrcv_MacSecDeleteTxSa [SWS_EthTrcv_91031] 📄 PDF

Std_ReturnType EthTrcv_MacSecDeleteTxSa(uint8 TrcvIdx, uint8 An);

Request the Ethernet Transceiver Driver to remove the Transmission Secure Association identified by the provided Association Number. Tags: atp.Status=DRAFT

함수 EthTrcv_MacSecAddRxSa [SWS_EthTrcv_91032] 📄 PDF

Std_ReturnType EthTrcv_MacSecAddRxSa(uint8 TrcvIdx, uint8 An, uint64 LowestPn, uint32 Ssci, const Mka_SakKeyPtrType* KeysPtr, boolean Active);

Request the Ethernet Transceiver Driver to create a Reception Secure Association in the Transceiver. The Short Secure Channel Identifier is included to support XPN configurations. Tags: atp.Status=DRAFT

함수 EthTrcv_MacSecUpdateRxSa [SWS_EthTrcv_91033] 📄 PDF

Std_ReturnType EthTrcv_MacSecUpdateRxSa(uint8 TrcvIdx, uint8 An, uint64 LowestPn, boolean Active);

Request the Ethernet Transceiver Driver to update the Reception Secure Association with the given Packet Number. The Active parameter is included to change the specified AN status. Tags: atp.Status=DRAFT

함수 EthTrcv_MacSecDeleteRxSa [SWS_EthTrcv_91034] 📄 PDF

Std_ReturnType EthTrcv_MacSecDeleteRxSa(uint8 TrcvIdx, uint8 An);

Request the Ethernet Transceiver Driver to remove the Reception Secure Association identified by the provided Association Number. Tags: atp.Status=DRAFT

함수 EthTrcv_MacSecGetTxSaNextPn [SWS_EthTrcv_91035] 📄 PDF

Std_ReturnType EthTrcv_MacSecGetTxSaNextPn(uint8 TrcvIdx, uint8 An, uint64* NextPnPtr);

Request the Ethernet Transceiver Driver to return the Packet Number that is used for the next packet in the given Transmission Secure Association. Tags: atp.Status=DRAFT

함수 EthTrcv_EthSwitchMacSecUpdateSecY [SWS_EthTrcv_91038] 📄 PDF

Std_ReturnType EthTrcv_EthSwitchMacSecUpdateSecY(uint8 TrcvIdx, const Mka_MacSecConfigType* MACsecCfgPtr, uint64 TxSci);

Requests the Ethernet Transceiver to update the SecY/PAC of the PHY with the provided parameters. A Transmission Secure Channel with the provided SCI shall be configured during the first call. A pointer to a MACsec Basic Parameters Configuration file shall be provided to create the Secure Channel. Tags: atp.Status=DRAFT

함수 EthTrcv_EthSwitchMacSecAddTxSa [SWS_EthTrcv_91039] 📄 PDF

Std_ReturnType EthTrcv_EthSwitchMacSecAddTxSa(uint8 TrcvIdx, uint8 An, uint64 NextPn, uint32 Ssci, const Mka_SakKeyPtrType* KeysPtr, boolean Active);

Requests the Ethernet Transceiver Driver to create a Transmission Secure Association in the Transceiver. The Short Secure Channel Identifier is included to support XPN configurations. Tags: atp.Status=DRAFT

함수 EthTrcv_SwitchMacSecAddRxSa [SWS_EthTrcv_91040] 📄 PDF

Std_ReturnType EthTrcv_SwitchMacSecAddRxSa(uint8 TrcvIdx, uint8 An, uint64 LowestPn, uint32 Ssci, const Mka_SakKeyPtrType* KeysPtr, boolean Active);

Request the Ethernet Transceiver Driver to create a Reception Secure Association in the Transceiver. The Short Secure Channel Identifier is included to support XPN configurations. Tags: atp.Status=DRAFT

함수 EthTrcv_SwitchMacSecGetMacSecStats [SWS_EthTrcv_91041] 📄 PDF

Std_ReturnType EthTrcv_SwitchMacSecGetMacSecStats(uint8 TrcvIdx, const Mka_Stats_SecYType* MacSecStats);

Request the Ethernet Transceiver Driver to provide MACsec statistics. Tags: atp.Status=DRAFT

타입 EthTrcv_LinkStateType [SWS_EthTrcv_00100] 📄 PDF

This type defines the Ethernet link state. The link state changes after an Ethernet cable gets plugged in and the transceivers on both ends negotiated the transmission parameters (i.e. baud rate and duplex mode)

타입 EthTrcv_StateType [SWS_EthTrcv_00101] 📄 PDF

Status supervision used for Development Error Detection. The state shall be available for debugging.

타입 EthTrcv_BaudRateType [SWS_EthTrcv_00102] 📄 PDF

This type defines the Ethernet baud rate. The baud rate gets either negotiated between the connected transceivers or has to be configured.

타입 EthTrcv_DuplexModeType [SWS_EthTrcv_00103] 📄 PDF

This type defines the Ethernet duplex mode. The duplex mode gets either negotiated between the connected transceivers or has to be configured.

타입 EthTrcv_WakeupModeType [SWS_EthTrcv_00113] 📄 PDF

This type controls the transceiver wake up modes and/ or clears the wake - up reason. Tags: atp.Status=obsolete

타입 EthTrcv_MacMethodType [SWS_EthTrcv_91013] 📄 PDF

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_EthTrcv_00055 have to be configured. Tags: atp.Status=draft

requirement SWS_EthTrcv_00003 [SWS_EthTrcv_00003] 📄 PDF

The Ethernet Transceiver Driver is using a zero-based in- dex to abstract the access for upper software layers. The parameter EthTrcvCtrlIdx [ECUC_EthTrcv_00014] within configuration corresponds to parameter TrcvIdx used in the APIs.

requirement SWS_EthTrcv_00004 [SWS_EthTrcv_00004] 📄 PDF

The Ethernet Transceiver Driver module shall support pre- compile time, link time and post-build time configuration.

requirement SWS_EthTrcv_00005 [SWS_EthTrcv_00005] 📄 PDF

The header file EthTrcv.h shall include a software and speci- fication version number.

requirement SWS_EthTrcv_00006 [SWS_EthTrcv_00006] 📄 PDF

The Ethernet Transceiver Driver module shall perform a con- sistency check between code files and header files based on pre-process-checking the version numbers of related code files and header files.

requirement SWS_EthTrcv_00007 [SWS_EthTrcv_00007] 📄 PDF

In case development error detection is enabled for the Eth- ernet Transceiver Driver module: The Ethernet Transceiver Driver module shall check API parameters for validity and report detected errors to the DET.

requirement SWS_EthTrcv_00009 [SWS_EthTrcv_00009] 📄 PDF

The Ethernet Transceiver Driver module shall implement the API functions specified by the Ethernet Transceiver Driver SWS as real C-code func- tions and shall not implement the API as macros for object code deliveries.

requirement SWS_EthTrcv_00010 [SWS_EthTrcv_00010] 📄 PDF

None of the Ethernet Transceiver Driver module header files shall define global variables.

requirement SWS_EthTrcv_00011 [SWS_EthTrcv_00011] 📄 PDF

The Ethernet Transceiver Driver module shall provide an XML file that contains the data, which is required for the SW identification (it shall contain the vendor identification, module ID and software version information), configuration and integration process. This file should describe vendor specific configuration parameters as well as it should contain recommended configuration parameter values.

requirement SWS_EthTrcv_00012 [SWS_EthTrcv_00012] 📄 PDF

of the Ethernet Driver module(s). Ethernet Driver related configuration data is contained in the Ethernet Driver module configuration description.

requirement SWS_EthTrcv_00014 [SWS_EthTrcv_00014] 📄 PDF

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.

requirement SWS_EthTrcv_00015 [SWS_EthTrcv_00015] 📄 PDF

The start address of post-build time configuration data shall be passed during module initialization.

requirement SWS_EthTrcv_00017 [SWS_EthTrcv_00017] 📄 PDF

Type of error Related error code Error value Invalid transceiver index ETHTRCV_E_INV_TRCV_IDX 0x01 EthTrcv module was not initialized ETHTRCV_E_UNINIT 0x02 Invalid pointer in parameter list ETHTRCV_E_PARAM_POINTER 0x03

requirement SWS_EthTrcv_00027 [SWS_EthTrcv_00027] 📄 PDF

Module Header File Imported Type Rte_Dem_Type.h Dem_EventIdType Dem Rte_Dem_Type.h Dem_EventStatusType EcuM EcuM.h EcuM_WakeupSourceType Eth Eth_GeneralTypes.h Eth_ModeType Icu Icu.h Icu_ChannelType Mka.h Mka_ConfidentialityOffsetType (DRAFT) Mka.h Mka_MacSecConfigType (DRAFT) Mka.h Mka_SakKeyPtrType (DRAFT) Mka.h Mka_Stats_Rx_ScType (DRAFT) Mka.h Mka_Stats_Rx_SecYType (DRAFT) Mka.h Mka_Stats_SecYType (DRAFT) Mka.h Mka_Stats_Tx_ScType (DRAFT) Mka.h Mka_Stats_Tx_SecYType (DRAFT) Mka Mka.h Mka_ValidateFramesType (DRAFT) Std_Types.h Std_ReturnType Std Std_Types.h Std_VersionInfoType

requirement SWS_EthTrcv_00029 [SWS_EthTrcv_00029] 📄 PDF

{DRAFT} The function shall store the access to the configura- tion structure for subsequent API calls.

requirement SWS_EthTrcv_00030 [SWS_EthTrcv_00030] 📄 PDF

The function shall change the state of the component from ETHTRCV_STATE_UNINIT to ETHTRCV_STATE_INIT.

requirement SWS_EthTrcv_00035 [SWS_EthTrcv_00035] 📄 PDF

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]).

requirement SWS_EthTrcv_00040 [SWS_EthTrcv_00040] 📄 PDF

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.

requirement SWS_EthTrcv_00043 [SWS_EthTrcv_00043] 📄 PDF

The function shall put the indexed transceiver in the specified mode according to the following specified requirements. Each time a new mode is en- tered which was previously requested by EthTrcv_SetTransceiverMode, EthTrcv shall call EthIf_TrcvModeIndication latest during the next EthTrcv_MainFunction.

requirement SWS_EthTrcv_00044 [SWS_EthTrcv_00044] 📄 PDF

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.

requirement SWS_EthTrcv_00045 [SWS_EthTrcv_00045] 📄 PDF

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.

requirement SWS_EthTrcv_00046 [SWS_EthTrcv_00046] 📄 PDF

{OBSOLETE} The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvSetTransceiverModeApi.

requirement SWS_EthTrcv_00049 [SWS_EthTrcv_00049] 📄 PDF

The function shall read the current transceiver mode of the Ethernet hardware (PHY), whereby ETH_MODE_ACTIVE_WITH_WAKEUP_RE- QUEST shall always be returned as ETH_MODE_ACTIVE.

requirement SWS_EthTrcv_00050 [SWS_EthTrcv_00050] 📄 PDF

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.

requirement SWS_EthTrcv_00051 [SWS_EthTrcv_00051] 📄 PDF

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.

requirement SWS_EthTrcv_00052 [SWS_EthTrcv_00052] 📄 PDF

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.

requirement SWS_EthTrcv_00053 [SWS_EthTrcv_00053] 📄 PDF

{OBSOLETE} The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvGetTransceiverModeApi.

requirement SWS_EthTrcv_00056 [SWS_EthTrcv_00056] 📄 PDF

The function shall restart the automatic negotiation of the transmission parameters used by the indexed transceiver if the internal cable diag- nostic state is different from ETHTRCV_CABLEDIAG_PENDING. Otherwise, the API shall return with E_NOT_OK.

requirement SWS_EthTrcv_00057 [SWS_EthTrcv_00057] 📄 PDF

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.

requirement SWS_EthTrcv_00058 [SWS_EthTrcv_00058] 📄 PDF

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.

requirement SWS_EthTrcv_00059 [SWS_EthTrcv_00059] 📄 PDF

The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvStartAutoNegotiationApi [ECUC_EthTrcv_00008] and EthTrcvEnablePLCA [ECUC_EthTrcv_00055].

requirement SWS_EthTrcv_00062 [SWS_EthTrcv_00062] 📄 PDF

The function shall read the current transceiver link state, ex- pect 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.

requirement SWS_EthTrcv_00063 [SWS_EthTrcv_00063] 📄 PDF

If development error detection is enabled: the function shall check that the service EthTrcv_Init() was previously called. If the check fails, the func- tion shall raise the development error ETHTRCV_E_UNINIT.

requirement SWS_EthTrcv_00064 [SWS_EthTrcv_00064] 📄 PDF

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.

requirement SWS_EthTrcv_00065 [SWS_EthTrcv_00065] 📄 PDF

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.

requirement SWS_EthTrcv_00066 [SWS_EthTrcv_00066] 📄 PDF

The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvGetLinkStateApi [ECUC_EthTrcv_00009].

requirement SWS_EthTrcv_00070 [SWS_EthTrcv_00070] 📄 PDF

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.

requirement SWS_EthTrcv_00071 [SWS_EthTrcv_00071] 📄 PDF

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.

requirement SWS_EthTrcv_00072 [SWS_EthTrcv_00072] 📄 PDF

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.

requirement SWS_EthTrcv_00073 [SWS_EthTrcv_00073] 📄 PDF

The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvGetBaudRateApi [ECUC_EthTrcv_00010].

requirement SWS_EthTrcv_00077 [SWS_EthTrcv_00077] 📄 PDF

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.

requirement SWS_EthTrcv_00078 [SWS_EthTrcv_00078] 📄 PDF

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.

requirement SWS_EthTrcv_00079 [SWS_EthTrcv_00079] 📄 PDF

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.

requirement SWS_EthTrcv_00080 [SWS_EthTrcv_00080] 📄 PDF

The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvGetDuplexModeApi [ECUC_EthTrcv_00011].

requirement SWS_EthTrcv_00085 [SWS_EthTrcv_00085] 📄 PDF

Dem_SetEventStatus Dem.h Called by SW-Cs or BSW modules to report monitor status information to the Dem. BSW modules calling Dem_SetEventStatus can safely ignore the return value. This API will be available only if ({Dem/Dem ConfigSet/DemEventParameter/DemEvent ReportingType} == STANDARD_REPORTING) API Function Header File Description EthIf_TrcvModeIndication EthIf.h Called asynchronously when a mode change has been read out. If the function is triggered by previous call of EthTrcv_SetTransceiverMode it can directly be called within the trigger function. SchM_Enter_EthTrcv SchM_<Mip>.h Invokes the SchM_Enter function to enter a module local exclusive area. SchM_Exit_EthTrcv SchM_<Mip>.h Invokes the SchM_Exit function to exit an exclusive area.

requirement SWS_EthTrcv_00086 [SWS_EthTrcv_00086] 📄 PDF

Det_ReportError Det.h Service to report development errors. EcuM_SetWakeupEvent EcuM.h Sets the wakeup event. Eth_ReadMii Eth.h Reads a transceiver register Eth_WriteMii Eth.h Configures a transceiver register or triggers a function offered by the receiver EthIf_SleepIndication (draft) EthIf.h This API is called by the corresponding EthTrcv, if a sleep indication was detected on the network. This could be used e.g. for Ethernet hardware which is compliant to the OA TC10. In this case the Ethernet hardware (PHY) detect an Sleep.Indication which was triggered by a Sleep.Request of the connected link partner. Tags: atp.Status=draft EthSwt_ReadTrcvRegister EthSwt.h Generic API for reading the content of a transceiver register EthSwt_WriteTrcvRegister EthSwt.h Generic API for writing the content of a transceiver register Icu_DisableNotification Icu.h This function disables the notification of a channel. Icu_EnableNotification Icu.h This function enables the notification on the given channel.

requirement SWS_EthTrcv_00088 [SWS_EthTrcv_00088] 📄 PDF

EthTrcv_StartAutoNegotiation() shall not be called or required by an upper layer BSW software component.

requirement SWS_EthTrcv_00089 [SWS_EthTrcv_00089] 📄 PDF

EthTrcv_GetBaudRate() shall not be called or required by an upper layer BSW software component.

requirement SWS_EthTrcv_00090 [SWS_EthTrcv_00090] 📄 PDF

EthTrcv_GetDuplexMode() shall not be called or required by an upper layer BSW software component.

requirement SWS_EthTrcv_00093 [SWS_EthTrcv_00093] 📄 PDF

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.

requirement SWS_EthTrcv_00094 [SWS_EthTrcv_00094] 📄 PDF

If the transceiver is already in the requested mode E_OK shall be returned and no development error shall be raised.

requirement SWS_EthTrcv_00104 [SWS_EthTrcv_00104] 📄 PDF

EthTrcv_SetTransceiverMode() 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.

requirement SWS_EthTrcv_00105 [SWS_EthTrcv_00105] 📄 PDF

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.

requirement SWS_EthTrcv_00107 [SWS_EthTrcv_00107] 📄 PDF

Used for polling state changes. Calls EthIf_TrcvModeIndica- tion when the transceiver mode changed.

requirement SWS_EthTrcv_00110 [SWS_EthTrcv_00110] 📄 PDF

The Ethernet Transceiver driver shall support wake up de- tection depending on the configuration parameter EthTrcvWakeUpSupport either not at all (ETHTRCV_WAKEUP_NOT_SUPPORTED) or by interrupt (ETHTRCV_ WAKEUP_BY_INTERRUPT) or by asynchronous check (ETHTRCV_WAKEUP_BY_ ASYNCHRONOUS_CHECK) or by polling (ETHTRCV_WAKEUP_BY_POLLING).

requirement SWS_EthTrcv_00111 [SWS_EthTrcv_00111] 📄 PDF

If the EthTrcv is requested with ETH_MODE_DOWN (e.g. low power mode), the Ethernet Transceiver driver shall enable the corresponding ICU chan- nel (see EthTrcvIcuChannelRef) by calling Icu_EnableNotification if configured.

requirement SWS_EthTrcv_00112 [SWS_EthTrcv_00112] 📄 PDF

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.

requirement SWS_EthTrcv_00115 [SWS_EthTrcv_00115] 📄 PDF

The function shall check for wake-up reasons and propagate the corresponding wake-up source (see EthTrcvWakeupMap configuration [ECUC_- EthTrcv_00027]) to the EcuM by calling EcuM_SetWakeupEvent.

requirement SWS_EthTrcv_00117 [SWS_EthTrcv_00117] 📄 PDF

If the function is called with ETH_MODE_DOWN and EthTrcv WakeupSleepOnDatalineEnabled is not configured, it shall set the corresponding Eth- ernet Hardware (PHY) into a mode (e.g. sleep mode) where wakeups can be de- tected.

requirement SWS_EthTrcv_00118 [SWS_EthTrcv_00118] 📄 PDF

If EthTrcv_SetTransceiverMode() is called with parameter ETH_MODE_ACTIVE or ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST, EthTrcv WakeupSleepOnDatalineEnabled is 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.

requirement SWS_EthTrcv_00120 [SWS_EthTrcv_00120] 📄 PDF

{OBSOLETE} If function EthTrcv_SetTra nsceiverWakeupMode() 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.

requirement SWS_EthTrcv_00121 [SWS_EthTrcv_00121] 📄 PDF

{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.

requirement SWS_EthTrcv_00122 [SWS_EthTrcv_00122] 📄 PDF

{OBSOLETE} If development er ror 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) re turn E_NOT_OK.

requirement SWS_EthTrcv_00123 [SWS_EthTrcv_00123] 📄 PDF

{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.

requirement SWS_EthTrcv_00124 [SWS_EthTrcv_00124] 📄 PDF

{OBSOLETE} The function EthTrcv_SetTransceiverWakeupMode() shall be only available if EthTrcvWakeUpSupport is not disabled (set to ETHTRCV_WAKEUP_NOT_SUPPORTED).

requirement SWS_EthTrcv_00125 [SWS_EthTrcv_00125] 📄 PDF

{OBSOLETE} If the transceiver is already in the requested wake - up mode, E_OK shall be returned and no development error shall be raised.

requirement SWS_EthTrcv_00126 [SWS_EthTrcv_00126] 📄 PDF

{OBSOLETE} Caveat: The function EthTrcv_SetTransceiverWakeup Mode() requires previous transceiver initialization (EthTrcv_Init).

requirement SWS_EthTrcv_00128 [SWS_EthTrcv_00128] 📄 PDF

{OBSOLETE} The function EthTrcv_GetTransceiverWakeupMode() shall read the current transceiver wake up mode and provide it into TrcvWakeupModePtr.

requirement SWS_EthTrcv_00129 [SWS_EthTrcv_00129] 📄 PDF

{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.

requirement SWS_EthTrcv_00130 [SWS_EthTrcv_00130] 📄 PDF

{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_IN V_TRCV_IDX otherwise (if DET is disabled) return E_NOT_OK.

requirement SWS_EthTrcv_00131 [SWS_EthTrcv_00131] 📄 PDF

{OBSOLETE} If development error detection is enabled: The function EthTrcv_GetTransceiverWakeupMode() shall check the parameter TrcvWakeupModePtr for being valid. If the c heck fails, the function shall raise the development error ETHTRCV_E_PARAM_POINTER otherwise (if DET is disabled) return E_NOT_OK.

requirement SWS_EthTrcv_00132 [SWS_EthTrcv_00132] 📄 PDF

{OBSOLETE} The function EthTrcv_GetTransceiverWakeupMode() shall be only available if EthTrcvGetTra nsceiverWakeupModeApi is set to TRUE.

requirement SWS_EthTrcv_00133 [SWS_EthTrcv_00133] 📄 PDF

{OBSOLETE} Caveat: The function EthTrcv_GetTransceiverWakeupMode() requires previous transceiver initialization (EthTrcv_Init).

requirement SWS_EthTrcv_00135 [SWS_EthTrcv_00135] 📄 PDF

If EthTrcvWakeUpSupport is set to ETHTRCV_WAKEUP_ BY_INTERRUPT or ETHTRCV_WAKEUP_BY_POLLING, the function EthTrcv_Check Wakeup() shall check if a wake up has been detected and if yes propagate the cor- responding wake up source (see EthTrcvWakeupMap configuration [ECUC_EthTrcv_- 00027]) to the EcuM by calling EcuM_SetWakeupEvent.

requirement SWS_EthTrcv_00136 [SWS_EthTrcv_00136] 📄 PDF

{OBSOLETE} I f the wake - up mode of the corresponding transceiver is not ETHTRCV_WUM_ENABLE, the function EthTrcv_CheckWakeup() shall return E_OK.

requirement SWS_EthTrcv_00137 [SWS_EthTrcv_00137] 📄 PDF

If development error detection is enabled: The function Eth Trcv_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.

requirement SWS_EthTrcv_00138 [SWS_EthTrcv_00138] 📄 PDF

If development error detection is enabled: The function Eth Trcv_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.

requirement SWS_EthTrcv_00139 [SWS_EthTrcv_00139] 📄 PDF

⌊ OBSOLETE g The function EthTrcv_CheckWakeup() shall be only available if EthTrcvWakeUpSupport is something else than ETHTRCV_WAKEUP_ NOT_SUPPORTED.

requirement SWS_EthTrcv_00141 [SWS_EthTrcv_00141] 📄 PDF

If EthTrcvWakeUpSupport is set to ETHTRCV_WAKEUP_POLLING, the function EthTrcv_MainFunction() shall check for wake up reasons. If wake-up reasons were detected, the wake-up events shall be stored and EcuM_CheckWakeup shall be called with the corresponding wake-up source (see EthTrcvWakeupMap configuration [ECUC_EthTrcv_00027]).

requirement SWS_EthTrcv_00145 [SWS_EthTrcv_00145] 📄 PDF

The callback function shall be configurable by the configura- tion parameter: EthTrcvWakeUpCallout.

requirement SWS_EthTrcv_00146 [SWS_EthTrcv_00146] 📄 PDF

The wake up interrupt handler (if present) shall clear the in- terrupt and identify the wake up reason and store it.

requirement SWS_EthTrcv_00147 [SWS_EthTrcv_00147] 📄 PDF

If development error detection is enabled: the function Eth Trcv_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.

requirement SWS_EthTrcv_00148 [SWS_EthTrcv_00148] 📄 PDF

If development error detection is enabled: the function Eth Trcv_SetPhyTxMode shall check the parameter Mode for being supported by the hard- ware. If the check fails, the function shall raise the development error ETHTRCV_E_ NOT_SUPPORTED.

requirement SWS_EthTrcv_00149 [SWS_EthTrcv_00149] 📄 PDF

If development error detection is enabled: the function Eth Trcv_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.

requirement SWS_EthTrcv_00151 [SWS_EthTrcv_00151] 📄 PDF

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.

requirement SWS_EthTrcv_00152 [SWS_EthTrcv_00152] 📄 PDF

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.

requirement SWS_EthTrcv_00153 [SWS_EthTrcv_00153] 📄 PDF

The function shall put the link down of the indexed transceiver, if the requested link state is ETHTRCV_LINK_STATE_DOWN.

requirement SWS_EthTrcv_00154 [SWS_EthTrcv_00154] 📄 PDF

If the Ethernet transceiver is already in the requested link state, E_OK shall be returned and no development error shall be raised.

requirement SWS_EthTrcv_00155 [SWS_EthTrcv_00155] 📄 PDF

The Ethernet Transceiver Driver module shall reject configu- rations with partition mappings which are not supported by the implementation.

requirement SWS_EthTrcv_00156 [SWS_EthTrcv_00156] 📄 PDF

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.

requirement SWS_EthTrcv_00157 [SWS_EthTrcv_00157] 📄 PDF

The ECUC partitions referenced by EthTrcvConfigEcucParti- tionRef shall be a subset of the ECUC partitions referenced by EthTrcvEcucPartition Ref.

requirement SWS_EthTrcv_00158 [SWS_EthTrcv_00158] 📄 PDF

EthTrcvConfig, EthCtrlConfig and EthSwtConfig (if existent in configuration) of one communication channel shall all reference the same ECUC partition.

requirement SWS_EthTrcv_00159 [SWS_EthTrcv_00159] 📄 PDF

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.

requirement SWS_EthTrcv_00160 [SWS_EthTrcv_00160] 📄 PDF

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.

requirement SWS_EthTrcv_00161 [SWS_EthTrcv_00161] 📄 PDF

As long as the cable diagnostic measurement is running (in- ternal 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.

requirement SWS_EthTrcv_00162 [SWS_EthTrcv_00162] 📄 PDF

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 af- fected Ethernet transceiver.

requirement SWS_EthTrcv_00163 [SWS_EthTrcv_00163] 📄 PDF

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).

requirement SWS_EthTrcv_00164 [SWS_EthTrcv_00164] 📄 PDF

{OBSOLETE} If the internal cable diagnostic state is ETHTRCV_CABLEDIAG_PENDING, the EthTrcv_SetTransceiverWakeupMode shall return E_NOT_OK .

requirement SWS_EthTrcv_00165 [SWS_EthTrcv_00165] 📄 PDF

If EthTrcv_TransceiverLinkStateRequest() is called and the internal cable diagnostic state is ETHTRCV_CABLEDIAG_PENDING, the Ethernet Transceiver driver shall store the link state request per Ethernet transceiver and pro- ceed as specified in [SWS_EthTrcv_00162].

requirement SWS_EthTrcv_00166 [SWS_EthTrcv_00166] 📄 PDF

If the internal cable diagnostic state is ETHTRCV_CABLE- DIAG_PENDING, EthTrcv_SetPhyTestMode() shall return E_NOT_OK.

requirement SWS_EthTrcv_00167 [SWS_EthTrcv_00167] 📄 PDF

If the internal cable diagnostic state is ETHTRCV_CABLE- DIAG_PENDING, the EthTrcv_SetPhyLoopbackMode() shall return E_NOT_OK.

requirement SWS_EthTrcv_00168 [SWS_EthTrcv_00168] 📄 PDF

If the internal cable diagnostic state is ETHTRCV_CABLE- DIAG_PENDING, the EthTrcv_SetPhyTxMode shall return E_NOT_OK.

requirement SWS_EthTrcv_00169 [SWS_EthTrcv_00169] 📄 PDF

The function shall be pre compile time configurable On/Off by the configuration parameter EthTrcvSetPhyTestModeApi [ECUC_EthTrcv_00047].

requirement SWS_EthTrcv_00170 [SWS_EthTrcv_00170] 📄 PDF

The function shall be pre compile time configurable On/Off by the configuration parameter EthTrcvEnableCableDiagnosticApi [ECUC_EthTrcv_- 00054].

requirement SWS_EthTrcv_00171 [SWS_EthTrcv_00171] 📄 PDF

The function shall be pre compile time configurable On/Off by the configuration parameter EthTrcvEnableCableDiagnosticApi [ECUC_EthTrcv_- 00054].

requirement SWS_EthTrcv_00172 [SWS_EthTrcv_00172] 📄 PDF

The function shall be pre compile time configurable On/Off by the configuration parameter EthTrcvGetPhyIdentifierApi [ECUC_EthTrcv_00046].

requirement SWS_EthTrcv_00173 [SWS_EthTrcv_00173] 📄 PDF

The function shall be pre compile time configurable On/Off by the configuration parameter EthTrcvVersionInfoApi [ECUC_EthTrcv_00004].

requirement SWS_EthTrcv_00174 [SWS_EthTrcv_00174] 📄 PDF

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.

requirement SWS_EthTrcv_00175 [SWS_EthTrcv_00175] 📄 PDF

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.

requirement SWS_EthTrcv_00176 [SWS_EthTrcv_00176] 📄 PDF

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.

requirement SWS_EthTrcv_00177 [SWS_EthTrcv_00177] 📄 PDF

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.

requirement SWS_EthTrcv_00179 [SWS_EthTrcv_00179] 📄 PDF

A new requested EthTrcv mode shall overwrite the last re- quested EthTrcv mode, except in case the last mode is ETH_MODE_ACTIVE_WITH_ WAKEUP_REQUEST and the new mode is ETH_MODE_ACTIVE.

requirement SWS_EthTrcv_00180 [SWS_EthTrcv_00180] 📄 PDF

If the function is called with ETH_MODE_DOWN, EthTrcv WakeupSleepOnDatalineEnabled is set to TRUE, the Ethernet Transceiver driver has detected a pending wake-up and a corresponding delay timer with EthTrcvSleepMode ExecutionDelay is not running, the Ethernet Transceiver driver shall start a delay timer with EthTrcvSleepModeExecutionDelay and return with E_OK.

requirement SWS_EthTrcv_00181 [SWS_EthTrcv_00181] 📄 PDF

If the function is called with ETH_MODE_DOWN, EthTrcv WakeupSleepOnDatalineEnabled is set to TRUE and the corresponding delay timer with EthTrcvSleepModeExecutionDelay is running, then the Ethernet Transceiver driver shall return with E_OK.

requirement SWS_EthTrcv_00183 [SWS_EthTrcv_00183] 📄 PDF

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 auto- matically by the statemachine of the Ethernet hardware (PHY), • Invoke the call-out <EthTrcvWakeUpCallout> function if configured.

requirement SWS_EthTrcv_00185 [SWS_EthTrcv_00185] 📄 PDF

If the function EthTrcv_CheckWakeup() is called and EthTrcv WakeUpSupport 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.

requirement SWS_EthTrcv_00186 [SWS_EthTrcv_00186] 📄 PDF

The function EthTrcv_GetBusWuReason shall read the stored wake-up reason and provide the information in WakeupReasonPtr.

requirement SWS_EthTrcv_00187 [SWS_EthTrcv_00187] 📄 PDF

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.

requirement SWS_EthTrcv_00188 [SWS_EthTrcv_00188] 📄 PDF

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.

requirement SWS_EthTrcv_00189 [SWS_EthTrcv_00189] 📄 PDF

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.

requirement SWS_EthTrcv_00190 [SWS_EthTrcv_00190] 📄 PDF

The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvGetBusWuReasonApi [ECUC_EthTrcv_00061].

requirement SWS_EthTrcv_00191 [SWS_EthTrcv_00191] 📄 PDF

If EthTrcvWakeUpSupport is set to ETHTRCV_WAKEUP_ BY_ASYNCHRONOUS_CHECK, the EthTrcv_MainFunction shall check the main- tained Ethernet hardware (PHY) for a signaled wake-up (e.g. Wakeup.Indication if using OA TC10 [3] compliant PHYs) 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.

requirement SWS_EthTrcv_00192 [SWS_EthTrcv_00192] 📄 PDF

{DRAFT} If EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE and EthTrcvActAsSlavePassiveEnabled is set to TRUE, the EthTrcv_Main Function shall evaluate the maintained Ethernet hardware (PHY) for a signaled Sleep.Indication (see [3]). If a Sleep.Indication is detected, the Ethernet Transceiver Driver shall inform the EthIf by calling EthIf_SleepIndication.

requirement SWS_EthTrcv_00195 [SWS_EthTrcv_00195] 📄 PDF

If EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE, the requested transceiver mode is still ETH_MODE_DOWN and Sleep Fail.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.

requirement SWS_EthTrcv_00196 [SWS_EthTrcv_00196] 📄 PDF

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 EthTrcvWakeupRequestNumberOfRep- etitions times with a delay of EthTrcvWakeUpRequestRepetitionPeriod in between as long as no EthTrcv_SetTransceiverMode with ETH_MODE_DOWN occurs for the same EthTrcv.

requirement SWS_EthTrcv_00197 [SWS_EthTrcv_00197] 📄 PDF

{DRAFT} If EthTrcvPhysLayerType is set to TRCV_PHYS_LAYER_TYPE_10BASE_T1S, the function shall internally store the requested link state and return E_OK.

requirement SWS_EthTrcv_00198 [SWS_EthTrcv_00198] 📄 PDF

{DRAFT} The function shall check the access to the Eth- ernet PHY to read the link register. If the check fails, the function shall raise the production error ETHTRCV_E_ACCESS return E_NOT_OK and state ETHTRCV_LINK_STATE_DOWN.

requirement SWS_EthTrcv_00199 [SWS_EthTrcv_00199] 📄 PDF

{DRAFT} The function shall return the stored requested state given by a previous call of EthTrcv_TransceiverLinkStateRequest() (see [SWS_EthTrcv_00197]) and return E_OK. If EthTrcv_TransceiverLinkStateRequest() was not called before, ETHTRCV_LINK_STATE_DOWN shall be returned with E_OK.

requirement SWS_EthTrcv_00200 [SWS_EthTrcv_00200] 📄 PDF

{DRAFT} If the PHY register indicates a link up, the func- tion shall additionally read the PLCA Status register of the PHY. If the PLCA mode is not active, the Ethernet transceiver driver shall report a runtime error ETHTRCV_E_MDI_COMMUNICATION and return E_NOT_OK.

requirement SWS_EthTrcv_00201 [SWS_EthTrcv_00201] 📄 PDF

If EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE and a wake-up reason was detected which relates to OA TC10 [3] compatible Eth- ernet hardware (PHY), then the Ethernet hardware state (e.g. normal mode) shall be kept, since a wake-up arrived and the corresponding delay timer with EthTrcvSleep- ModeExecutionDelay shall be started.

requirement SWS_EthTrcv_00202 [SWS_EthTrcv_00202] 📄 PDF

If the function EthTrcv_CheckWakeup() is called, EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE, a wake-up reason which relates to OA TC10 [3] compliant Ether- net hardware (PHY) was detected (ETHTRCV_WUR_WODL_WUP, ETHTRCV_WUR_WODL_WUR or ETHTRCV_WUR_TRANSFER) and EthTr- cvWakeUpSupport is to ETHTRCV_WAKEUP_BY_ASYNCHRONOUS_CHECK, ETHTRCV_WAKEUP_BY_INTERRUPT or ETHTRCV_WAKEUP_BY_POLLING, then the Ethernet Transceiver driver shall start a delay timer with EthTrcvSleepModeExecu- tionDelay.

requirement SWS_EthTrcv_00203 [SWS_EthTrcv_00203] 📄 PDF

The function shall consider at least the following initialization sequence for the Ethernet hardware (PHY): • check for wake-up reasons according to [SWS_EthTrcv_00115] • initialize the PHY according to [SWS_EthTrcv_00035] • ensure that the PHY resides in a defined hardware state according to [SWS_EthTrcv_00204] and [SWS_EthTrcv_00205].

requirement SWS_EthTrcv_00204 [SWS_EthTrcv_00204] 📄 PDF

If EthTrcvWakeupSleepOnDatalineEnabled is not configured, then the Ethernet Transceiver driver shall ensure within the function call of EthTrcv_Init that the Ethernet hardware (PHY) resides in a sleep mode.

requirement SWS_EthTrcv_00205 [SWS_EthTrcv_00205] 📄 PDF

If EthTrcvWakeupSleepOnDatalineEnabled is configured and no wake-up reason was detected, then the Ethernet Transceiver driver shall ensure within the call of EthTrcv_Init that the Ethernet hardware (PHY) resides in the OA TC10 [3] specified sleep mode

requirement SWS_EthTrcv_00206 [SWS_EthTrcv_00206] 📄 PDF

If the function is called with ETH_MODE_DOWN and EthTrcv WakeupSleepOnDatalineEnabled is set to FALSE, the Ethernet Transceiver shall set the corresponding Ethernet Hardware (PHY) into a sleep mode without performing the sleep process according to OA TC10 [3].

requirement SWS_EthTrcv_00207 [SWS_EthTrcv_00207] 📄 PDF

If EthTrcv_SetTransceiverMode() is called with parameter ETH_MODE_ACTIVE or ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST, EthTrcv WakeupSleepOnDatalineEnabled set to FALSE 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, • Invoke the call-out <EthTrcvWakeUpCallout> function if configured.

requirement SWS_EthTrcv_00208 [SWS_EthTrcv_00208] 📄 PDF

{DRAFT} The EthTrcv shall collect the information of the Eth Swt Ports referring to the each EthTrcv instance (e.g. TrcvIdx) during configuration in order to call the EthSwt callbacks of MKA (e.g. EthSwt_MacSecUpdateSecYIndication, EthSwt_MacSecAddTxSaNotification, EthSwt_MacSecAddRxSaNotification and Eth Swt_MacSecGetMacSecStatsNotification). The EthSwtPort.EthSwtPortTrcvRef links an EthSwtPort to an EthTrcvIdx in the EthSwt configuration.

requirement SWS_EthTrcv_CONSTR_00001 [SWS_EthTrcv_CONSTR_00001] 📄 PDF

If EthTrcvEcucPartitionRef references one or more ECUC partitions, EthTrcvConfigEcucPartitionRef shall have a multiplicity of one and reference one of these ECUC partitions as well.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_EthTrcv
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_EthTrcv@rel:R20-11#97691a59
Content hash
97691a59
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_EthernetTransceiverDriver.pdf#nameddest=SWS_EthTrcv_00028

주제 맵

콜아웃 및 예상 인터페이스

1

요구사항

153
SWS_EthTrcv_00003SWS_EthTrcv_00004SWS_EthTrcv_00005SWS_EthTrcv_00006SWS_EthTrcv_00007SWS_EthTrcv_00009SWS_EthTrcv_00010SWS_EthTrcv_00011SWS_EthTrcv_00012SWS_EthTrcv_00013SWS_EthTrcv_00014SWS_EthTrcv_00015SWS_EthTrcv_00017SWS_EthTrcv_00027SWS_EthTrcv_00029SWS_EthTrcv_00030SWS_EthTrcv_00032SWS_EthTrcv_00035SWS_EthTrcv_00040SWS_EthTrcv_00043SWS_EthTrcv_00044SWS_EthTrcv_00045SWS_EthTrcv_00046SWS_EthTrcv_00047SWS_EthTrcv_00049SWS_EthTrcv_00050SWS_EthTrcv_00051SWS_EthTrcv_00052SWS_EthTrcv_00053SWS_EthTrcv_00054SWS_EthTrcv_00056SWS_EthTrcv_00057SWS_EthTrcv_00058SWS_EthTrcv_00059SWS_EthTrcv_00060SWS_EthTrcv_00062SWS_EthTrcv_00063SWS_EthTrcv_00064SWS_EthTrcv_00065SWS_EthTrcv_00066SWS_EthTrcv_00067SWS_EthTrcv_00069SWS_EthTrcv_00070SWS_EthTrcv_00071SWS_EthTrcv_00072SWS_EthTrcv_00073SWS_EthTrcv_00074SWS_EthTrcv_00076SWS_EthTrcv_00077SWS_EthTrcv_00078SWS_EthTrcv_00079SWS_EthTrcv_00080SWS_EthTrcv_00081SWS_EthTrcv_00085SWS_EthTrcv_00086SWS_EthTrcv_00088SWS_EthTrcv_00089SWS_EthTrcv_00090SWS_EthTrcv_00093SWS_EthTrcv_00094SWS_EthTrcv_00104SWS_EthTrcv_00105SWS_EthTrcv_00107SWS_EthTrcv_00110SWS_EthTrcv_00111SWS_EthTrcv_00112SWS_EthTrcv_00115SWS_EthTrcv_00117SWS_EthTrcv_00118SWS_EthTrcv_00120SWS_EthTrcv_00121SWS_EthTrcv_00122SWS_EthTrcv_00123SWS_EthTrcv_00124SWS_EthTrcv_00125SWS_EthTrcv_00126SWS_EthTrcv_00128SWS_EthTrcv_00129SWS_EthTrcv_00130SWS_EthTrcv_00131SWS_EthTrcv_00132SWS_EthTrcv_00133SWS_EthTrcv_00135SWS_EthTrcv_00136SWS_EthTrcv_00137SWS_EthTrcv_00138SWS_EthTrcv_00139SWS_EthTrcv_00140SWS_EthTrcv_00141SWS_EthTrcv_00145SWS_EthTrcv_00146SWS_EthTrcv_00147SWS_EthTrcv_00148SWS_EthTrcv_00149SWS_EthTrcv_00151SWS_EthTrcv_00152SWS_EthTrcv_00153SWS_EthTrcv_00154SWS_EthTrcv_00155SWS_EthTrcv_00156SWS_EthTrcv_00157SWS_EthTrcv_00158SWS_EthTrcv_00159SWS_EthTrcv_00160SWS_EthTrcv_00161SWS_EthTrcv_00162SWS_EthTrcv_00163SWS_EthTrcv_00164SWS_EthTrcv_00165SWS_EthTrcv_00166SWS_EthTrcv_00167SWS_EthTrcv_00168SWS_EthTrcv_00169SWS_EthTrcv_00170SWS_EthTrcv_00171SWS_EthTrcv_00172SWS_EthTrcv_00173SWS_EthTrcv_00174SWS_EthTrcv_00175SWS_EthTrcv_00176SWS_EthTrcv_00177SWS_EthTrcv_00178SWS_EthTrcv_00179SWS_EthTrcv_00180SWS_EthTrcv_00181SWS_EthTrcv_00182SWS_EthTrcv_00183SWS_EthTrcv_00184SWS_EthTrcv_00185SWS_EthTrcv_00186SWS_EthTrcv_00187SWS_EthTrcv_00188SWS_EthTrcv_00189SWS_EthTrcv_00190SWS_EthTrcv_00191SWS_EthTrcv_00192SWS_EthTrcv_00193SWS_EthTrcv_00194SWS_EthTrcv_00195SWS_EthTrcv_00196SWS_EthTrcv_00197SWS_EthTrcv_00198SWS_EthTrcv_00199SWS_EthTrcv_00200SWS_EthTrcv_00201SWS_EthTrcv_00202SWS_EthTrcv_00203SWS_EthTrcv_00204SWS_EthTrcv_00205SWS_EthTrcv_00206SWS_EthTrcv_00207SWS_EthTrcv_00208SWS_EthTrcv_CONSTR_00001

상세 보기

개요에서 항목을 선택하세요.

초기화 및 상태

Returns the version information of this module

void EthTrcv_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);

Initializes the Ethernet Transceiver Driver

void EthTrcv_Init(const EthTrcv_ConfigType* CfgPtr);

서비스

Service is called by EthIf in case a wake-up interrupt is detected.

Std_ReturnType EthTrcv_CheckWakeup(uint8 TrcvIdx);

Requests the Ethernet Transceiver Driver to create a Transmission Secure Association in the Transceiver. The Short Secure Channel Identifier is included to support XPN configurations. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_EthSwitchMacSecAddTxSa(uint8 TrcvIdx, uint8 An, uint64 NextPn, uint32 Ssci, const Mka_SakKeyPtrType* KeysPtr, boolean Active);

Requests the Ethernet Transceiver to update the SecY/PAC of the PHY with the provided parameters. A Transmission Secure Channel with the provided SCI shall be configured during the first call. A pointer to a MACsec Basic Parameters Configuration file shall be provided to create the Secure Channel. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_EthSwitchMacSecUpdateSecY(uint8 TrcvIdx, const Mka_MacSecConfigType* MACsecCfgPtr, uint64 TxSci);

Obtains the baud rate of the indexed transceiver

Std_ReturnType EthTrcv_GetBaudRate(uint8 TrcvIdx, EthTrcv_BaudRateType* BaudRatePtr);

This function returns the least recent wakeup reasons.

Std_ReturnType EthTrcv_GetBusWuReason(uint8 TrcvIdx, EthTrcv_WakeupReasonType* WakeupReasonPtr);

Retrieves the cable diagnostics result of a given transceiver.

Std_ReturnType EthTrcv_GetCableDiagnosticsResult(uint8 TrcvIdx, EthTrcv_CableDiagResultType* ResultPtr);

Obtains the duplex mode of the indexed transceiver

Std_ReturnType EthTrcv_GetDuplexMode(uint8 TrcvIdx, EthTrcv_DuplexModeType* DuplexModePtr);

Obtains the link state of the indexed transceiver

Std_ReturnType EthTrcv_GetLinkState(uint8 TrcvIdx, EthTrcv_LinkStateType* LinkStatePtr);

Obtains the media access mode of the transceiver when EthTrcvDuplexMode is configured as ETHTRCV_DUPLEX_MODE_HALF

Std_ReturnType EthTrcv_GetMacMethod(uint8* TrcvIdx, EthTrcv_MacMethodType* MacModePtr);

Obtains the PHY identifier of the Ethernet Transceiver according to IEEE 802.3-2015 chapter 22.2.4.3.1 PHY Identifer.

Std_ReturnType EthTrcv_GetPhyIdentifier(uint8 TrcvIdx, uint32* OrgUniqueIdPtr, uint8* ModelNrPtr, uint8* RevisionNrPtr);

Obtains the current signal quality of the link of the indexed transceiver

Std_ReturnType EthTrcv_GetPhySignalQuality(uint8 TrcvIdx, uint32* SignalQualityPtr);

Obtains the state of the indexed transceiver

Std_ReturnType EthTrcv_GetTransceiverMode(uint8 TrcvIdx, Eth_ModeType* TrcvModePtr);

Returns the wake up mode of t he indexed transceiver Tags: atp.Status=obsolete

Std_ReturnType EthTrcv_GetTransceiverWakeupMode(uint8 TrcvIdx, EthTrcv_WakeupModeType* TrcvWakeupModePtr);

Request the Ethernet Transceiver Driver to create a Reception Secure Association in the Transceiver. The Short Secure Channel Identifier is included to support XPN configurations. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecAddRxSa(uint8 TrcvIdx, uint8 An, uint64 LowestPn, uint32 Ssci, const Mka_SakKeyPtrType* KeysPtr, boolean Active);

Requests the Ethernet Transceiver Driver to create a Transmission Secure Association in the Transceiver. The Short Secure Channel Identifier is included to support XPN configurations. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecAddTxSa(uint8 TrcvIdx, uint8 An, uint64 NextPn, uint32 Ssci, const Mka_SakKeyPtrType* KeysPtr, boolean Active);

Request the Ethernet Transceiver Driver to remove the Reception Secure Association identified by the provided Association Number. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecDeleteRxSa(uint8 TrcvIdx, uint8 An);

Request the Ethernet Transceiver Driver to remove the Transmission Secure Association identified by the provided Association Number. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecDeleteTxSa(uint8 TrcvIdx, uint8 An);

Request the Ethernet Transceiver Driver to provide MACsec statistics. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecGetMacSecStats(uint8 TrcvIdx);

Request the Ethernet Transceiver Driver to return the Packet Number that is used for the next packet in the given Transmission Secure Association. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecGetTxSaNextPn(uint8 TrcvIdx, uint8 An, uint64* NextPnPtr);

Requests the Ethernet Transceiver Driver to configure a Reception Secure Channel for the given Secure Channel Identifier. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecInitRxSc(uint8 TrcvIdx, uint64 Sci);

Requests the Ethernet Transceiver Driver to reset to default the MACsec values of the Reception Secure Channel for the given Secure Channel Identifier. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecResetRxSc(uint8 TrcvIdx, uint64 Sci);

Requests to set the Controlled Port enabled parameter of a PAE. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecSetControlledPortEnabled(uint8 TrcvIdx, boolean ControlledPortEnabled);

Request the Ethernet Transceiver Driver to update the Reception Secure Association with the given Packet Number. The Active parameter is included to change the specified AN status. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecUpdateRxSa(uint8 TrcvIdx, uint8 An, uint64 LowestPn, boolean Active);

Requests the Ethernet Transceiver to update the SecY/PAC of the PHY with the provided parameters. A Transmission Secure Channel with the provided SCI shall be configured during the first call. A pointer to a MACsec Basic Parameters Configuration file shall be provided to create the Secure Channel. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecUpdateSecY(uint8 TrcvIdx, const Mka_MacSecConfigType* MACsecCfgPtr, uint64 TxSci);

Requests the Ethernet Transceiver Driver to update the Transmission Secure Association with the given Packet Number. The Active parameter is included to change the specified AN status. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_MacSecUpdateTxSa(uint8 TrcvIdx, uint8 An, uint64 NextPn, boolean Active);

Called when information has been read out via MII interface. Triggered by previous Eth_Read Mii call. Can directly be called within Eth_ReadMii.

void EthTrcv_ReadMiiIndication(uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx, uint8 RegVal);

Trigger the cable diagnostics for the given Ethernet transceiver.

Std_ReturnType EthTrcv_RunCableDiagnostic(uint8 TrcvIdx);

Activates a given loopback mode.

Std_ReturnType EthTrcv_SetPhyLoopbackMode(uint8 TrcvIdx, EthTrcv_PhyLoopbackModeType Mode);

Activates a given test mode.

Std_ReturnType EthTrcv_SetPhyTestMode(uint8 TrcvIdx, EthTrcv_PhyTestModeType Mode);

Activates a given transmission mode.

Std_ReturnType EthTrcv_SetPhyTxMode(uint8 TrcvIdx, EthTrcv_PhyTxModeType Mode);

Enables / disables the indexed transceiver

Std_ReturnType EthTrcv_SetTransceiverMode(uint8 TrcvIdx, Eth_ModeType TrcvMode);

Enables / di sables the wake - up mode or clear the wake - up reason of the indexed transceiver Tags: atp.Status=obsolete

Std_ReturnType EthTrcv_SetTransceiverWakeupMode(uint8 TrcvIdx, EthTrcv_WakeupModeType TrcvWakeupMode);

Restarts the negotiation of the transmission parameters used by the indexed transceiver

Std_ReturnType EthTrcv_StartAutoNegotiation(uint8 TrcvIdx);

Request the Ethernet Transceiver Driver to create a Reception Secure Association in the Transceiver. The Short Secure Channel Identifier is included to support XPN configurations. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_SwitchMacSecAddRxSa(uint8 TrcvIdx, uint8 An, uint64 LowestPn, uint32 Ssci, const Mka_SakKeyPtrType* KeysPtr, boolean Active);

Request the Ethernet Transceiver Driver to provide MACsec statistics. Tags: atp.Status=DRAFT

Std_ReturnType EthTrcv_SwitchMacSecGetMacSecStats(uint8 TrcvIdx, const Mka_Stats_SecYType* MacSecStats);

Request the given link state for the given transceiver

Std_ReturnType EthTrcv_TransceiverLinkStateRequest(uint8 TrcvIdx, EthTrcv_LinkStateType LinkState);

Called when information has been written via MII interface. Triggered by previous Eth_WriteMii call. Can directly be called within Eth_WriteMii.

void EthTrcv_WriteMiiIndication(uint8 CtrlIdx, uint8 TrcvIdx, uint8 RegIdx);

콜아웃 및 예상 인터페이스

Indicates an wake-up request for the specified Ethernet Transceiver. The given TrcvMode 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).

void <EthTrcvWakeUpCallout>(uint8 TrcvIdx, Eth_ModeType TrcvMode);

주기적

Used for polling state changes and wakeup reasons. Calls EthIf_TrcvModeIndication when the transceiver mode changed. Stores wakeup events if EthTrcvWakeUpSupport is set to ETHTRCV_WAKEUP_BY_POLLING.

void EthTrcv_MainFunction(void);

타입

This type defines the Ethernet baud rate. The baud rate gets either negotiated between the connected transceivers or has to be configured.

Describes the results of the cable diagnostics.

Implementation specific structure of the post build configuration

This type defines the Ethernet duplex mode. The duplex mode gets either negotiated between the connected transceivers or has to be configured.

This type defines the Ethernet link state. The link state changes after an Ethernet cable gets plugged in and the transceivers on both ends negotiated the transmission parameters (i.e. baud rate and duplex mode)

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_EthTrcv_00055 have to be configured. Tags: atp.Status=draft

Describes the possible PHY loopback modes

Describes the possible PHY test modes

Describes the possible PHY transmit modes

Status supervision used for Development Error Detection. The state shall be available for debugging.

This type controls the transceiver wake up modes and/ or clears the wake - up reason. Tags: atp.Status=obsolete

This type defines the transceiver wake up reasons.

요구사항

SWS_EthTrcv_00003 requirement

The Ethernet Transceiver Driver is using a zero-based in- dex to abstract the access for upper software layers. The parameter EthTrcvCtrlIdx [ECUC_EthTrcv_00014] within configuration corresponds to parameter TrcvIdx used in the APIs.

SWS_EthTrcv_00004 requirement

The Ethernet Transceiver Driver module shall support pre- compile time, link time and post-build time configuration.

SWS_EthTrcv_00005 requirement

The header file EthTrcv.h shall include a software and speci- fication version number.

SWS_EthTrcv_00006 requirement

The Ethernet Transceiver Driver module shall perform a con- sistency 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 requirement

In case development error detection is enabled for the Eth- ernet Transceiver Driver module: The Ethernet Transceiver Driver module shall check API parameters for validity and report detected errors to the DET.

SWS_EthTrcv_00009 requirement

The Ethernet Transceiver Driver module shall implement the API functions specified by the Ethernet Transceiver Driver SWS as real C-code func- tions and shall not implement the API as macros for object code deliveries.

SWS_EthTrcv_00010 requirement

None of the Ethernet Transceiver Driver module header files shall define global variables.

SWS_EthTrcv_00011 requirement

The Ethernet Transceiver Driver module shall provide an XML file that contains the data, which is required for the SW identification (it shall contain the vendor identification, module ID and software version information), configuration and integration process. This file should describe vendor specific configuration parameters as well as it should contain recommended configuration parameter values.

SWS_EthTrcv_00012 requirement

of the Ethernet Driver module(s). Ethernet Driver related configuration data is contained in the Ethernet Driver module configuration description.

SWS_EthTrcv_00013 requirement

The MCG shall ensure the consistency of the generated con- figuration data.

SWS_EthTrcv_00014 requirement

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 requirement

The start address of post-build time configuration data shall be passed during module initialization.

SWS_EthTrcv_00017 requirement

Type of error Related error code Error value Invalid transceiver index ETHTRCV_E_INV_TRCV_IDX 0x01 EthTrcv module was not initialized ETHTRCV_E_UNINIT 0x02 Invalid pointer in parameter list ETHTRCV_E_PARAM_POINTER 0x03

SWS_EthTrcv_00027 requirement

Module Header File Imported Type Rte_Dem_Type.h Dem_EventIdType Dem Rte_Dem_Type.h Dem_EventStatusType EcuM EcuM.h EcuM_WakeupSourceType Eth Eth_GeneralTypes.h Eth_ModeType Icu Icu.h Icu_ChannelType Mka.h Mka_ConfidentialityOffsetType (DRAFT) Mka.h Mka_MacSecConfigType (DRAFT) Mka.h Mka_SakKeyPtrType (DRAFT) Mka.h Mka_Stats_Rx_ScType (DRAFT) Mka.h Mka_Stats_Rx_SecYType (DRAFT) Mka.h Mka_Stats_SecYType (DRAFT) Mka.h Mka_Stats_Tx_ScType (DRAFT) Mka.h Mka_Stats_Tx_SecYType (DRAFT) Mka Mka.h Mka_ValidateFramesType (DRAFT) Std_Types.h Std_ReturnType Std Std_Types.h Std_VersionInfoType

SWS_EthTrcv_00029 requirement

{DRAFT} The function shall store the access to the configura- tion structure for subsequent API calls.

SWS_EthTrcv_00030 requirement

The function shall change the state of the component from ETHTRCV_STATE_UNINIT to ETHTRCV_STATE_INIT.

SWS_EthTrcv_00032 requirement

EthTrcv_Init() shall be called during initialization.

SWS_EthTrcv_00035 requirement

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]).

SWS_EthTrcv_00040 requirement

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_00043 requirement

The function shall put the indexed transceiver in the specified mode according to the following specified requirements. Each time a new mode is en- tered which was previously requested by EthTrcv_SetTransceiverMode, EthTrcv shall call EthIf_TrcvModeIndication latest during the next EthTrcv_MainFunction.

SWS_EthTrcv_00044 requirement

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.

SWS_EthTrcv_00045 requirement

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.

SWS_EthTrcv_00046 requirement

{OBSOLETE} The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvSetTransceiverModeApi.

SWS_EthTrcv_00047 requirement

EthTrcv_Init() shall be called before EthTrcv_SetTransceiverMode() .

SWS_EthTrcv_00049 requirement

The function shall read the current transceiver mode of the Ethernet hardware (PHY), whereby ETH_MODE_ACTIVE_WITH_WAKEUP_RE- QUEST shall always be returned as ETH_MODE_ACTIVE.

SWS_EthTrcv_00050 requirement

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.

SWS_EthTrcv_00051 requirement

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.

SWS_EthTrcv_00052 requirement

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.

SWS_EthTrcv_00053 requirement

{OBSOLETE} The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvGetTransceiverModeApi.

SWS_EthTrcv_00054 requirement

EthTrcv_Init() shall be called before EthTrcv_GetTransceiverMode() .

SWS_EthTrcv_00056 requirement

The function shall restart the automatic negotiation of the transmission parameters used by the indexed transceiver if the internal cable diag- nostic state is different from ETHTRCV_CABLEDIAG_PENDING. Otherwise, the API shall return with E_NOT_OK.

SWS_EthTrcv_00057 requirement

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.

SWS_EthTrcv_00058 requirement

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.

SWS_EthTrcv_00059 requirement

The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvStartAutoNegotiationApi [ECUC_EthTrcv_00008] and EthTrcvEnablePLCA [ECUC_EthTrcv_00055].

SWS_EthTrcv_00060 requirement

EthTrcv_Init() shall be called before EthTrcv_StartAutoNego- tiation() .

SWS_EthTrcv_00062 requirement

The function shall read the current transceiver link state, ex- pect 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.

SWS_EthTrcv_00063 requirement

If development error detection is enabled: the function shall check that the service EthTrcv_Init() was previously called. If the check fails, the func- tion shall raise the development error ETHTRCV_E_UNINIT.

SWS_EthTrcv_00064 requirement

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.

SWS_EthTrcv_00065 requirement

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.

SWS_EthTrcv_00066 requirement

The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvGetLinkStateApi [ECUC_EthTrcv_00009].

SWS_EthTrcv_00067 requirement

EthTrcv_Init() shall be called before EthTrcv_GetLinkState() .

SWS_EthTrcv_00069 requirement

The function shall read the current transceiver baud rate.

SWS_EthTrcv_00070 requirement

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.

SWS_EthTrcv_00071 requirement

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.

SWS_EthTrcv_00072 requirement

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.

SWS_EthTrcv_00073 requirement

The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvGetBaudRateApi [ECUC_EthTrcv_00010].

SWS_EthTrcv_00074 requirement

EthTrcv_Init() shall be called before EthTrcv_GetBaudRate() .

SWS_EthTrcv_00076 requirement

The function shall read the current transceiver duplex mode.

SWS_EthTrcv_00077 requirement

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.

SWS_EthTrcv_00078 requirement

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.

SWS_EthTrcv_00079 requirement

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.

SWS_EthTrcv_00080 requirement

The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvGetDuplexModeApi [ECUC_EthTrcv_00011].

SWS_EthTrcv_00081 requirement

EthTrcv_Init() shall be called before EthTrcv_GetDuplexMode() .

SWS_EthTrcv_00085 requirement

Dem_SetEventStatus Dem.h Called by SW-Cs or BSW modules to report monitor status information to the Dem. BSW modules calling Dem_SetEventStatus can safely ignore the return value. This API will be available only if ({Dem/Dem ConfigSet/DemEventParameter/DemEvent ReportingType} == STANDARD_REPORTING) API Function Header File Description EthIf_TrcvModeIndication EthIf.h Called asynchronously when a mode change has been read out. If the function is triggered by previous call of EthTrcv_SetTransceiverMode it can directly be called within the trigger function. SchM_Enter_EthTrcv SchM_<Mip>.h Invokes the SchM_Enter function to enter a module local exclusive area. SchM_Exit_EthTrcv SchM_<Mip>.h Invokes the SchM_Exit function to exit an exclusive area.

SWS_EthTrcv_00086 requirement

Det_ReportError Det.h Service to report development errors. EcuM_SetWakeupEvent EcuM.h Sets the wakeup event. Eth_ReadMii Eth.h Reads a transceiver register Eth_WriteMii Eth.h Configures a transceiver register or triggers a function offered by the receiver EthIf_SleepIndication (draft) EthIf.h This API is called by the corresponding EthTrcv, if a sleep indication was detected on the network. This could be used e.g. for Ethernet hardware which is compliant to the OA TC10. In this case the Ethernet hardware (PHY) detect an Sleep.Indication which was triggered by a Sleep.Request of the connected link partner. Tags: atp.Status=draft EthSwt_ReadTrcvRegister EthSwt.h Generic API for reading the content of a transceiver register EthSwt_WriteTrcvRegister EthSwt.h Generic API for writing the content of a transceiver register Icu_DisableNotification Icu.h This function disables the notification of a channel. Icu_EnableNotification Icu.h This function enables the notification on the given channel.

SWS_EthTrcv_00088 requirement

EthTrcv_StartAutoNegotiation() shall not be called or required by an upper layer BSW software component.

SWS_EthTrcv_00089 requirement

EthTrcv_GetBaudRate() shall not be called or required by an upper layer BSW software component.

SWS_EthTrcv_00090 requirement

EthTrcv_GetDuplexMode() shall not be called or required by an upper layer BSW software component.

SWS_EthTrcv_00093 requirement

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_00094 requirement

If the transceiver is already in the requested mode E_OK shall be returned and no development error shall be raised.

SWS_EthTrcv_00104 requirement

EthTrcv_SetTransceiverMode() 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_00105 requirement

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.

SWS_EthTrcv_00107 requirement

Used for polling state changes. Calls EthIf_TrcvModeIndica- tion when the transceiver mode changed.

SWS_EthTrcv_00110 requirement

The Ethernet Transceiver driver shall support wake up de- tection depending on the configuration parameter EthTrcvWakeUpSupport either not at all (ETHTRCV_WAKEUP_NOT_SUPPORTED) or by interrupt (ETHTRCV_ WAKEUP_BY_INTERRUPT) or by asynchronous check (ETHTRCV_WAKEUP_BY_ ASYNCHRONOUS_CHECK) or by polling (ETHTRCV_WAKEUP_BY_POLLING).

SWS_EthTrcv_00111 requirement

If the EthTrcv is requested with ETH_MODE_DOWN (e.g. low power mode), the Ethernet Transceiver driver shall enable the corresponding ICU chan- nel (see EthTrcvIcuChannelRef) by calling Icu_EnableNotification if configured.

SWS_EthTrcv_00112 requirement

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_00115 requirement

The function shall check for wake-up reasons and propagate the corresponding wake-up source (see EthTrcvWakeupMap configuration [ECUC_- EthTrcv_00027]) to the EcuM by calling EcuM_SetWakeupEvent.

SWS_EthTrcv_00117 requirement

If the function is called with ETH_MODE_DOWN and EthTrcv WakeupSleepOnDatalineEnabled is not configured, it shall set the corresponding Eth- ernet Hardware (PHY) into a mode (e.g. sleep mode) where wakeups can be de- tected.

SWS_EthTrcv_00118 requirement

If EthTrcv_SetTransceiverMode() is called with parameter ETH_MODE_ACTIVE or ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST, EthTrcv WakeupSleepOnDatalineEnabled is 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.

SWS_EthTrcv_00120 requirement

{OBSOLETE} If function EthTrcv_SetTra nsceiverWakeupMode() 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 requirement

{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_00122 requirement

{OBSOLETE} If development er ror 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) re turn E_NOT_OK.

SWS_EthTrcv_00123 requirement

{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 requirement

{OBSOLETE} The function EthTrcv_SetTransceiverWakeupMode() shall be only available if EthTrcvWakeUpSupport is not disabled (set to ETHTRCV_WAKEUP_NOT_SUPPORTED).

SWS_EthTrcv_00125 requirement

{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 requirement

{OBSOLETE} Caveat: The function EthTrcv_SetTransceiverWakeup Mode() requires previous transceiver initialization (EthTrcv_Init).

SWS_EthTrcv_00128 requirement

{OBSOLETE} The function EthTrcv_GetTransceiverWakeupMode() shall read the current transceiver wake up mode and provide it into TrcvWakeupModePtr.

SWS_EthTrcv_00129 requirement

{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 requirement

{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_IN V_TRCV_IDX otherwise (if DET is disabled) return E_NOT_OK.

SWS_EthTrcv_00131 requirement

{OBSOLETE} If development error detection is enabled: The function EthTrcv_GetTransceiverWakeupMode() shall check the parameter TrcvWakeupModePtr for being valid. If the c heck fails, the function shall raise the development error ETHTRCV_E_PARAM_POINTER otherwise (if DET is disabled) return E_NOT_OK.

SWS_EthTrcv_00132 requirement

{OBSOLETE} The function EthTrcv_GetTransceiverWakeupMode() shall be only available if EthTrcvGetTra nsceiverWakeupModeApi is set to TRUE.

SWS_EthTrcv_00133 requirement

{OBSOLETE} Caveat: The function EthTrcv_GetTransceiverWakeupMode() requires previous transceiver initialization (EthTrcv_Init).

SWS_EthTrcv_00135 requirement

If EthTrcvWakeUpSupport is set to ETHTRCV_WAKEUP_ BY_INTERRUPT or ETHTRCV_WAKEUP_BY_POLLING, the function EthTrcv_Check Wakeup() shall check if a wake up has been detected and if yes propagate the cor- responding wake up source (see EthTrcvWakeupMap configuration [ECUC_EthTrcv_- 00027]) to the EcuM by calling EcuM_SetWakeupEvent.

SWS_EthTrcv_00136 requirement

{OBSOLETE} I f the wake - up mode of the corresponding transceiver is not ETHTRCV_WUM_ENABLE, the function EthTrcv_CheckWakeup() shall return E_OK.

SWS_EthTrcv_00137 requirement

If development error detection is enabled: The function Eth Trcv_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.

SWS_EthTrcv_00138 requirement

If development error detection is enabled: The function Eth Trcv_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.

SWS_EthTrcv_00139 requirement

⌊ OBSOLETE g The function EthTrcv_CheckWakeup() shall be only available if EthTrcvWakeUpSupport is something else than ETHTRCV_WAKEUP_ NOT_SUPPORTED.

SWS_EthTrcv_00140 requirement

EthTrcv_Init() shall be called before EthTrcv_Check Wakeup() .

SWS_EthTrcv_00141 requirement

If EthTrcvWakeUpSupport is set to ETHTRCV_WAKEUP_POLLING, the function EthTrcv_MainFunction() shall check for wake up reasons. If wake-up reasons were detected, the wake-up events shall be stored and EcuM_CheckWakeup shall be called with the corresponding wake-up source (see EthTrcvWakeupMap configuration [ECUC_EthTrcv_00027]).

SWS_EthTrcv_00145 requirement

The callback function shall be configurable by the configura- tion parameter: EthTrcvWakeUpCallout.

SWS_EthTrcv_00146 requirement

The wake up interrupt handler (if present) shall clear the in- terrupt and identify the wake up reason and store it.

SWS_EthTrcv_00147 requirement

If development error detection is enabled: the function Eth Trcv_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.

SWS_EthTrcv_00148 requirement

If development error detection is enabled: the function Eth Trcv_SetPhyTxMode shall check the parameter Mode for being supported by the hard- ware. If the check fails, the function shall raise the development error ETHTRCV_E_ NOT_SUPPORTED.

SWS_EthTrcv_00149 requirement

If development error detection is enabled: the function Eth Trcv_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.

SWS_EthTrcv_00151 requirement

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_00152 requirement

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 requirement

The function shall put the link down of the indexed transceiver, if the requested link state is ETHTRCV_LINK_STATE_DOWN.

SWS_EthTrcv_00154 requirement

If the Ethernet transceiver is already in the requested link state, E_OK shall be returned and no development error shall be raised.

SWS_EthTrcv_00155 requirement

The Ethernet Transceiver Driver module shall reject configu- rations with partition mappings which are not supported by the implementation.

SWS_EthTrcv_00156 requirement

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.

SWS_EthTrcv_00157 requirement

The ECUC partitions referenced by EthTrcvConfigEcucParti- tionRef shall be a subset of the ECUC partitions referenced by EthTrcvEcucPartition Ref.

SWS_EthTrcv_00158 requirement

EthTrcvConfig, EthCtrlConfig and EthSwtConfig (if existent in configuration) of one communication channel shall all reference the same ECUC partition.

SWS_EthTrcv_00159 requirement

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 requirement

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 requirement

As long as the cable diagnostic measurement is running (in- ternal 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 requirement

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 af- fected Ethernet transceiver.

SWS_EthTrcv_00163 requirement

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).

SWS_EthTrcv_00164 requirement

{OBSOLETE} If the internal cable diagnostic state is ETHTRCV_CABLEDIAG_PENDING, the EthTrcv_SetTransceiverWakeupMode shall return E_NOT_OK .

SWS_EthTrcv_00165 requirement

If EthTrcv_TransceiverLinkStateRequest() is called and the internal cable diagnostic state is ETHTRCV_CABLEDIAG_PENDING, the Ethernet Transceiver driver shall store the link state request per Ethernet transceiver and pro- ceed as specified in [SWS_EthTrcv_00162].

SWS_EthTrcv_00166 requirement

If the internal cable diagnostic state is ETHTRCV_CABLE- DIAG_PENDING, EthTrcv_SetPhyTestMode() shall return E_NOT_OK.

SWS_EthTrcv_00167 requirement

If the internal cable diagnostic state is ETHTRCV_CABLE- DIAG_PENDING, the EthTrcv_SetPhyLoopbackMode() shall return E_NOT_OK.

SWS_EthTrcv_00168 requirement

If the internal cable diagnostic state is ETHTRCV_CABLE- DIAG_PENDING, the EthTrcv_SetPhyTxMode shall return E_NOT_OK.

SWS_EthTrcv_00169 requirement

The function shall be pre compile time configurable On/Off by the configuration parameter EthTrcvSetPhyTestModeApi [ECUC_EthTrcv_00047].

SWS_EthTrcv_00170 requirement

The function shall be pre compile time configurable On/Off by the configuration parameter EthTrcvEnableCableDiagnosticApi [ECUC_EthTrcv_- 00054].

SWS_EthTrcv_00171 requirement

The function shall be pre compile time configurable On/Off by the configuration parameter EthTrcvEnableCableDiagnosticApi [ECUC_EthTrcv_- 00054].

SWS_EthTrcv_00172 requirement

The function shall be pre compile time configurable On/Off by the configuration parameter EthTrcvGetPhyIdentifierApi [ECUC_EthTrcv_00046].

SWS_EthTrcv_00173 requirement

The function shall be pre compile time configurable On/Off by the configuration parameter EthTrcvVersionInfoApi [ECUC_EthTrcv_00004].

SWS_EthTrcv_00174 requirement

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.

SWS_EthTrcv_00175 requirement

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.

SWS_EthTrcv_00176 requirement

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.

SWS_EthTrcv_00177 requirement

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.

SWS_EthTrcv_00178 requirement

EthTrcv_Init() shall be called before EthTrcv_GetMacMethod() .

SWS_EthTrcv_00179 requirement

A new requested EthTrcv mode shall overwrite the last re- quested EthTrcv mode, except in case the last mode is ETH_MODE_ACTIVE_WITH_ WAKEUP_REQUEST and the new mode is ETH_MODE_ACTIVE.

SWS_EthTrcv_00180 requirement

If the function is called with ETH_MODE_DOWN, EthTrcv WakeupSleepOnDatalineEnabled is set to TRUE, the Ethernet Transceiver driver has detected a pending wake-up and a corresponding delay timer with EthTrcvSleepMode ExecutionDelay is not running, the Ethernet Transceiver driver shall start a delay timer with EthTrcvSleepModeExecutionDelay and return with E_OK.

SWS_EthTrcv_00181 requirement

If the function is called with ETH_MODE_DOWN, EthTrcv WakeupSleepOnDatalineEnabled is set to TRUE and the corresponding delay timer with EthTrcvSleepModeExecutionDelay is running, then the Ethernet Transceiver driver shall return with E_OK.

SWS_EthTrcv_00182 requirement

Spezifikationsanforderung SWS_EthTrcv_00182.

SWS_EthTrcv_00183 requirement

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 auto- matically by the statemachine of the Ethernet hardware (PHY), • Invoke the call-out <EthTrcvWakeUpCallout> function if configured.

SWS_EthTrcv_00184 requirement

Spezifikationsanforderung SWS_EthTrcv_00184.

SWS_EthTrcv_00185 requirement

If the function EthTrcv_CheckWakeup() is called and EthTrcv WakeUpSupport 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.

SWS_EthTrcv_00186 requirement

The function EthTrcv_GetBusWuReason shall read the stored wake-up reason and provide the information in WakeupReasonPtr.

SWS_EthTrcv_00187 requirement

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.

SWS_EthTrcv_00188 requirement

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.

SWS_EthTrcv_00189 requirement

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.

SWS_EthTrcv_00190 requirement

The function shall be pre compile time configurable On/Off by the configuration parameter: EthTrcvGetBusWuReasonApi [ECUC_EthTrcv_00061].

SWS_EthTrcv_00191 requirement

If EthTrcvWakeUpSupport is set to ETHTRCV_WAKEUP_ BY_ASYNCHRONOUS_CHECK, the EthTrcv_MainFunction shall check the main- tained Ethernet hardware (PHY) for a signaled wake-up (e.g. Wakeup.Indication if using OA TC10 [3] compliant PHYs) 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.

SWS_EthTrcv_00192 requirement

{DRAFT} If EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE and EthTrcvActAsSlavePassiveEnabled is set to TRUE, the EthTrcv_Main Function shall evaluate the maintained Ethernet hardware (PHY) for a signaled Sleep.Indication (see [3]). If a Sleep.Indication is detected, the Ethernet Transceiver Driver shall inform the EthIf by calling EthIf_SleepIndication.

SWS_EthTrcv_00193 requirement

Spezifikationsanforderung SWS_EthTrcv_00193.

SWS_EthTrcv_00194 requirement

Spezifikationsanforderung SWS_EthTrcv_00194.

SWS_EthTrcv_00195 requirement

If EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE, the requested transceiver mode is still ETH_MODE_DOWN and Sleep Fail.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.

SWS_EthTrcv_00196 requirement

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 EthTrcvWakeupRequestNumberOfRep- etitions times with a delay of EthTrcvWakeUpRequestRepetitionPeriod in between as long as no EthTrcv_SetTransceiverMode with ETH_MODE_DOWN occurs for the same EthTrcv.

SWS_EthTrcv_00197 requirement

{DRAFT} If EthTrcvPhysLayerType is set to TRCV_PHYS_LAYER_TYPE_10BASE_T1S, the function shall internally store the requested link state and return E_OK.

SWS_EthTrcv_00198 requirement

{DRAFT} The function shall check the access to the Eth- ernet PHY to read the link register. If the check fails, the function shall raise the production error ETHTRCV_E_ACCESS return E_NOT_OK and state ETHTRCV_LINK_STATE_DOWN.

SWS_EthTrcv_00199 requirement

{DRAFT} The function shall return the stored requested state given by a previous call of EthTrcv_TransceiverLinkStateRequest() (see [SWS_EthTrcv_00197]) and return E_OK. If EthTrcv_TransceiverLinkStateRequest() was not called before, ETHTRCV_LINK_STATE_DOWN shall be returned with E_OK.

SWS_EthTrcv_00200 requirement

{DRAFT} If the PHY register indicates a link up, the func- tion shall additionally read the PLCA Status register of the PHY. If the PLCA mode is not active, the Ethernet transceiver driver shall report a runtime error ETHTRCV_E_MDI_COMMUNICATION and return E_NOT_OK.

SWS_EthTrcv_00201 requirement

If EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE and a wake-up reason was detected which relates to OA TC10 [3] compatible Eth- ernet hardware (PHY), then the Ethernet hardware state (e.g. normal mode) shall be kept, since a wake-up arrived and the corresponding delay timer with EthTrcvSleep- ModeExecutionDelay shall be started.

SWS_EthTrcv_00202 requirement

If the function EthTrcv_CheckWakeup() is called, EthTrcvWakeupSleepOnDatalineEnabled is set to TRUE, a wake-up reason which relates to OA TC10 [3] compliant Ether- net hardware (PHY) was detected (ETHTRCV_WUR_WODL_WUP, ETHTRCV_WUR_WODL_WUR or ETHTRCV_WUR_TRANSFER) and EthTr- cvWakeUpSupport is to ETHTRCV_WAKEUP_BY_ASYNCHRONOUS_CHECK, ETHTRCV_WAKEUP_BY_INTERRUPT or ETHTRCV_WAKEUP_BY_POLLING, then the Ethernet Transceiver driver shall start a delay timer with EthTrcvSleepModeExecu- tionDelay.

SWS_EthTrcv_00203 requirement

The function shall consider at least the following initialization sequence for the Ethernet hardware (PHY): • check for wake-up reasons according to [SWS_EthTrcv_00115] • initialize the PHY according to [SWS_EthTrcv_00035] • ensure that the PHY resides in a defined hardware state according to [SWS_EthTrcv_00204] and [SWS_EthTrcv_00205].

SWS_EthTrcv_00204 requirement

If EthTrcvWakeupSleepOnDatalineEnabled is not configured, then the Ethernet Transceiver driver shall ensure within the function call of EthTrcv_Init that the Ethernet hardware (PHY) resides in a sleep mode.

SWS_EthTrcv_00205 requirement

If EthTrcvWakeupSleepOnDatalineEnabled is configured and no wake-up reason was detected, then the Ethernet Transceiver driver shall ensure within the call of EthTrcv_Init that the Ethernet hardware (PHY) resides in the OA TC10 [3] specified sleep mode

SWS_EthTrcv_00206 requirement

If the function is called with ETH_MODE_DOWN and EthTrcv WakeupSleepOnDatalineEnabled is set to FALSE, the Ethernet Transceiver shall set the corresponding Ethernet Hardware (PHY) into a sleep mode without performing the sleep process according to OA TC10 [3].

SWS_EthTrcv_00207 requirement

If EthTrcv_SetTransceiverMode() is called with parameter ETH_MODE_ACTIVE or ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST, EthTrcv WakeupSleepOnDatalineEnabled set to FALSE 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, • Invoke the call-out <EthTrcvWakeUpCallout> function if configured.

SWS_EthTrcv_00208 requirement

{DRAFT} The EthTrcv shall collect the information of the Eth Swt Ports referring to the each EthTrcv instance (e.g. TrcvIdx) during configuration in order to call the EthSwt callbacks of MKA (e.g. EthSwt_MacSecUpdateSecYIndication, EthSwt_MacSecAddTxSaNotification, EthSwt_MacSecAddRxSaNotification and Eth Swt_MacSecGetMacSecStatsNotification). The EthSwtPort.EthSwtPortTrcvRef links an EthSwtPort to an EthTrcvIdx in the EthSwt configuration.

If EthTrcvEcucPartitionRef references one or more ECUC partitions, EthTrcvConfigEcucPartitionRef shall have a multiplicity of one and reference one of these ECUC partitions as well.