diff options
author | Gjorgji <gjorgji.petkovski@seavus.com> | 2011-10-19 15:22:31 +0100 |
---|---|---|
committer | Viktor Mladenovski <viktor.mladenovski@seavus.com> | 2011-10-28 18:56:05 +0200 |
commit | 6a702a0d231d02360066f718c5ef4e38431ddc8a (patch) | |
tree | 0c6bd094ba2c6cecc1bd18269d975657a5d1f85e /source | |
parent | 0ee6a4fffd68ec125fc7e7e0854aa10d8c09efc0 (diff) |
Flash based ARB support.
ST-Ericsson ID: 344196
ST-Ericsson FOSS-OUT ID: NA
Change-Id: Id4e7569ebe5f41806ceb9d57915acd434c27ef93
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/30353
Tested-by: Vlatko STENKOSKI
Reviewed-by: Zoran ANCEVSKI <zoran.ancevski@seavus.com>
Diffstat (limited to 'source')
-rw-r--r-- | source/CEH/commands_impl.cpp | 7 | ||||
-rw-r--r-- | source/LCDriver.cpp | 7 | ||||
-rw-r--r-- | source/LCDriver.h | 24 | ||||
-rw-r--r-- | source/LCDriver.rc | 6 | ||||
-rw-r--r-- | source/LCDriverMethods.cpp | 21 | ||||
-rw-r--r-- | source/LCDriverMethods.h | 1 | ||||
-rw-r--r-- | source/config/commands.xml | 22 |
7 files changed, 76 insertions, 12 deletions
diff --git a/source/CEH/commands_impl.cpp b/source/CEH/commands_impl.cpp index 8cceed9..768f075 100644 --- a/source/CEH/commands_impl.cpp +++ b/source/CEH/commands_impl.cpp @@ -421,3 +421,10 @@ ErrorCode_e LoaderRpcInterfaceImpl::DoneRPC_Security_BindPropertiesImpl(uint16 S return E_SUCCESS; } + +ErrorCode_e LoaderRpcInterfaceImpl::DoneRPC_Security_InitARBTableImpl(uint16 Session, ErrorCode_e Status) +{ + cmdResult_->GeneralResponse_Session = Session; + + return E_SUCCESS; +} diff --git a/source/LCDriver.cpp b/source/LCDriver.cpp index 6afb1c1..914483e 100644 --- a/source/LCDriver.cpp +++ b/source/LCDriver.cpp @@ -506,6 +506,13 @@ LCDRIVER_API int __cdecl Security_StoreSecureObject(LCDContext Context, const ch return Context->m_pObject->Do_OTP_StoreSecureObject(pchSourcePath, iDestination, iUseBulk); } +LCDRIVER_API int __cdecl Security_InitARBTable(LCDContext Context, int iType, int iLength, unsigned char *puarbdata) +{ + VERIFY_CONTEXT_STARTED(Context); + + return Context->m_pObject->Do_Security_InitARBTable(iType, iLength, puarbdata); +} + LCDRIVER_API int __cdecl A2_System_Shutdown(LCDContext Context) { VERIFY_CONTEXT_STARTED(Context); diff --git a/source/LCDriver.h b/source/LCDriver.h index d50007e..9f6db6e 100644 --- a/source/LCDriver.h +++ b/source/LCDriver.h @@ -165,12 +165,12 @@ extern "C" /// </summary> /// <param name="pContext">A pointer to a LCDContext where to store the newly created context or to put /// the previously created context if the context with the specified interface id already exists.</param> - /// <param name="InterfaceId">A zero terminated string conaining the interface unique ID.</param> + /// <param name="InterfaceId">A zero terminated string containing the interface unique ID.</param> /// <param name="Read_fn">A pointer to a communication device read function.</param> /// <param name="Write_fn">A pointer to a communication device write function.</param> /// <param name="Cancel_fn">A pointer to a communication device cancel function.</param> /// <param name="Instance">A pointer to a pointer where to store the adress of the loader communication module instance.</param> - /// <param name="Message_fn">A pointer to a message loging function.</param> + /// <param name="Message_fn">A pointer to a message logging function.</param> /// <param name="LCMLibPath">A zero terminated string containing the path to the LCM library.</param> /// <param name="ProgressBar_fn">A pointer to function which receives the progress updates.</param> /// <returns>0 if OK, otherwise non-zero.</returns> @@ -221,10 +221,10 @@ extern "C" LCDRIVER_API int __cdecl ConfigureCommunicationDevice(LCDContext Context, void *Read_fn, void *Write_fn, void *Cancel_fn); /// <summary> - /// Sets the callback for message loging. + /// Sets the callback for message logging. /// </summary> /// <param name="Context">LCD context on which to execute the operation.</param> - /// <param name="Callback_fn">A pointer to a message loging function.</param> + /// <param name="Callback_fn">A pointer to a message logging function.</param> /// <returns>0 if OK, otherwise non-zero.</returns> LCDRIVER_API int __cdecl SetMessageCallback(LCDContext Context, void *Callback_fn); @@ -240,7 +240,7 @@ extern "C" /// Starts the context. Should be called after the required parameters are previously configured. /// </summary> /// <param name="Context">LCD context on which to execute the operation.</param> - /// <param name="Instance">A pointer to a pointer where to store the adress of the started communication instance.</param> + /// <param name="Instance">A pointer to a pointer where to store the address of the started communication instance.</param> /// <returns>0 if OK, otherwise non-zero.</returns> LCDRIVER_API int __cdecl StartContext(LCDContext Context, void **Instance); @@ -370,7 +370,7 @@ extern "C" /// <param name="Context">LCD context on which to execute the operation.</param> /// <param name="iType">Authentication type:0 = control key authentication,1 = certificate authentication.</param> /// <param name="piSize">Size of puchData.</param> - /// <param name="puchdata">Data challange. </param> + /// <param name="puchdata">Data challenge. </param> /// <returns>Status of the command.</returns> LCDRIVER_API int __cdecl System_Authenticate(LCDContext Context, int iType, int *piSize, unsigned char *puchdata); @@ -425,7 +425,7 @@ extern "C" /// The Loader shuts down the global communication and enters in a Relay working mode. /// </summary> /// <param name="HostDeviceId">Communication device number of the relay input (host device).</param> - /// <param name="TargetDeviceId">Communication device number of the relay ouptut (target device).</param> + /// <param name="TargetDeviceId">Communication device number of the relay output (target device).</param> /// <param name="ControlDeviceId">Communication device number for the loader commands (control device).</param> /// <returns>Status of the command.</returns> LCDRIVER_API int __cdecl System_StartCommRelay(LCDContext Context, uint32 HostDeviceId, uint32 TargetDeviceId, uint32 ControlDeviceId); @@ -738,6 +738,16 @@ extern "C" LCDRIVER_API int __cdecl Security_StoreSecureObject(LCDContext Context, const char *pchSourcePath, int iDestination, int iUseBulk); /// <summary> + /// This command is used to initialize a SW version table, intended for checking the ARB functionality. + /// </summary> + /// <param name="Context">LCD context on which to execute the operation.</param> + /// <param name="iType">ARB data type:0 = COPS_ARB_DATA_TYPE_MODELID.</param> + /// <param name="iLength">Length of puarbData.</param> + /// <param name="puarbdata">For arb_data_type = COPS_ARB_DATA_TYPE_MODELID the data is a 16 bit modelid.</param> + /// <returns>Status of the command.</returns> + LCDRIVER_API int __cdecl Security_InitARBTable(LCDContext Context, int iType, int iLength, unsigned char *puarbdata); + + /// <summary> /// The A2 loader shuts down in a controlled fashion and proceeds to shut down the ME itself. /// The ME does not accept any further communication after a successful response from this /// command has been returned. diff --git a/source/LCDriver.rc b/source/LCDriver.rc index 05c89ca..ead99a3 100644 --- a/source/LCDriver.rc +++ b/source/LCDriver.rc @@ -81,15 +81,15 @@ BEGIN BEGIN
BLOCK "000904b0"
BEGIN
- VALUE "Comments", "Build date: 2011-10-13"
+ VALUE "Comments", "Build date: 2011-10-19"
VALUE "CompanyName", "STEricsson AB"
VALUE "FileDescription", "LCDriver Dynamic Link Library"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "Loader Communication Driver"
VALUE "LegalCopyright", "Copyright (C) STEricsson AB 2011"
- VALUE "PrivateBuild", "Change-Id: I372f164a742d031976ae9aed50a509f130a101cd"
+ VALUE "PrivateBuild", "Change-Id: Id4e7569ebe5f41806ceb9d57915acd434c27ef93"
VALUE "ProductName", "CXC 173 0865, LCDriver DLL"
- VALUE "ProductVersion", "PT5"
+ VALUE "ProductVersion", "PT6"
END
END
BLOCK "VarFileInfo"
diff --git a/source/LCDriverMethods.cpp b/source/LCDriverMethods.cpp index 147bb2a..ca44754 100644 --- a/source/LCDriverMethods.cpp +++ b/source/LCDriverMethods.cpp @@ -703,7 +703,7 @@ ErrorExit: /// </summary> /// <param name="iType">Authentication type:0 = control key authentication,1 = certificate authentication.</param> /// <param name="piSize">Size of puchData.</param> -/// <param name="puchdata">Data challange. </param> +/// <param name="puchdata">Data challenge. </param> /// <returns> Status of the command.</returns> int CLCDriverMethods::Do_System_Authenticate(int iType, int *piSize, unsigned char *puchdata) { @@ -1746,6 +1746,23 @@ ErrorExit: } /// <summary> +/// This command is used to initialize a SW version table, intended for checking the ARB functionality. +/// </summary> +/// <returns> Status of the command.</returns> +int CLCDriverMethods::Do_Security_InitARBTable(int iType, int iLength, const unsigned char *puarbdata) +{ + uint16 uiSessionOut = 0; + int ReturnValue = E_SUCCESS; + + VERIFY_SUCCESS(IsMainThreadAlive()); + VERIFY_SUCCESS(m_pLoaderRpcFunctions->DoRPC_Security_InitARBTable(uiSessionOut, iType, iLength, puarbdata)); + VERIFY_SUCCESS(WaitForEvent(EVENT_GR_RECEIVED, GROUP_SECURITY, COMMAND_SECURITY_INITARBTABLE)); + +ErrorExit: + return ReturnValue; +} + +/// <summary> /// The A2 loader shuts down in a controlled fashion and proceeds to shut down the ME itself. /// The ME does not accept any further communication after a successful response from this /// command has been returned. @@ -2179,7 +2196,7 @@ ErrorExit: } /// <summary> -/// Exit Z-protocol and start uing PROTROM-protocol. +/// Exit Z-protocol and start using PROTROM-protocol. /// </summary> /// <returns> Status of the command.</returns> int CLCDriverMethods::Do_Z_Exit_Z_Protocol() diff --git a/source/LCDriverMethods.h b/source/LCDriverMethods.h index c63cd84..fdc66f3 100644 --- a/source/LCDriverMethods.h +++ b/source/LCDriverMethods.h @@ -105,6 +105,7 @@ public: int Do_Security_GetProperties(int iUnitId, int *piSize, unsigned char *puchDataBuffer); int Do_Security_SetProperties(int iUnitId, int iSize, const unsigned char *puchDataBuffer); int Do_Security_BindProperties(); + int Do_Security_InitARBTable(int iType, int iLength, const unsigned char *puarbdata); // A2 Protocol Methods int Do_A2_System_Shutdown(); diff --git a/source/config/commands.xml b/source/config/commands.xml index 6060fe8..650cbfe 100644 --- a/source/config/commands.xml +++ b/source/config/commands.xml @@ -1085,6 +1085,28 @@ </permissions> </command> + <command number="6" name="Init ARBTable" ADbg="false" source="PC"> + <documentation> + Initialize a SW version table, intended for checking the ARB functionality. + </documentation> + <interface type="loader" name="InitARBTable"/> + <input> + <value type="uint32" name="Type">ARB Type to update</value> + <value type="uint32" name="DataLength">Length of the Data buffer</value> + <value type="buffer" name="DataBuff_p" length="DataLength">The data to write</value> + </input> + <output> + </output> + <authentication depandancy="or" factory="TRUE" rd="TRUE" product="TRUE" service="TRUE"> + <value ref="A1"/> + <value ref="CA"/> + </authentication> + <permissions> + <value ref="AdvanceServiceModeLevel"/> + <value ref="ProductionModeLevel"/> + </permissions> + </command> + </group> <group number="8" name="ADbg application"> |