Author Topic: DIGIC 8 DryOS Shell (drysh) investigation  (Read 4760 times)

coon

  • Developer
  • Member
  • *****
  • Posts: 105
DIGIC 8 DryOS Shell (drysh) investigation
« on: December 09, 2020, 09:17:19 PM »
Meanwhile I have built a little dev kit for convenient access to the RPs UART port (see https://www.magiclantern.fm/forum/index.php?topic=7531.msg232902#msg232902)

Sending akashimorino to ICU port starts the Event Shell. Typing ? gives 2133 available commands:

Code: [Select]
[AECOM_DispFLK]
[AECOM_SetFLK]
[AEITG_]
[APEX.DebugPropStillPhoto]
[APEX.DebugSceneMode]
[APEX.LogLevel]
[APEX.LogOnly]
[APEX.ManualExposureMode]
[APEX.PoLogLevel]
[APEX.ReCalcStillPhotoParam]
[APEX.RewriteMode]
[APEX.Test1]
[APEX.Test2]
[ATest_RegistEventProc]
[ActivateDL]
[ActivateDOS]
[ActivateHotPlug]
[ActivateImager]
[ActivateRTC]
[AddNoiseFilter]
[AddTransMemory]
[AddTransparentMemory]
[AllocateFactoryProgramMemoryArea]
[AllocateFactoryWorkMemoryArea]
[AllocateMemory]
[AttachToTransMemory]
[AttachToTransparentMemory]
[BusyChk]
[CUCreateTask]
[CUInitialize]
[CUOldTsmStart]
[CUOldTsmStop]
[CUPrintTSMonitor]
[CUSetBuffer]
[CUSetMode]
[CUSetPrefix]
[CUSetPrint]
[CUStart]
[CUStop]
[CUTerminate]
[CalcLowBatteryOffsetValue]
[CalculateBatSenseOffsetCADET]
[CalculateBatSenseOffsetSubCPU]
[CalculateBatSenseOffset]
[CamInfo_Debug]
[CancelImager]
[Capture.Create]
[ChangeDistortionSetForLiveImage]
[CheckAllEventFlag]
[CheckAnti]
[CheckAnyEventFlag]
[CheckLCR]
[CheckSumOfCamif]
[CheckSumOfFixData]
[CheckSumOfGUIResource]
[CheckSumOfLensData2]
[CheckSumOfLensData]
[CheckSumOfProgramArea]
[CheckSumOfRasenData]
[CheckSumOfRingData]
[CheckSumOfTuneData2]
[CheckSumOfTuneData4]
[CheckSumOfTuneDataMap]
[CheckSumOfTuneData]
[ClearDUIDFixFlag]
[ClearErrHistory]
[ClearEventFlag]
[ClearFactoryMasterFlag]
[ClearFactoryMasterROMProtection]
[ClearFactoryMenu]
[ClearFactoryMode]
[CloseFile]
[CloseSession]
[Clr_AllMWBMode]
[Clr_PartMWBMode]
[CmplForwardData]
[CmplForwardSize]
[CompTestHDMI]
[CopyNoiseFilter]
[CreateAdjustmentTableMirror]
[CreateCountingSemaphore]
[CreateDefectTableMirror]
[CreateEventFlag]
[CreateProxyOfEventProcedure]
[CreateTask]
[CtrlSrvQueue]
[DAFMonitor.DetectFocus]
[DAFMonitor.Initiate]
[DAFMonitor.Terminate]
[DISP_Evf_GetCurrentTemp]
[DISP_Evf_GetStartupTemp]
[DISP_Evf_ReceiveData]
[DISP_Evf_SendData]
[DISP_Evf_StopOrbit]
[DISP_Panel_SendData]
[DOSDebugOff]
[DOSDebugOn]
[DOSOff]
[DOSOn]
[DP_WriteDebugFile]
[DebugSTG_1SectorRead]
[DebugSTG_1SectorWrite]
[DebugSTG_BatchTest]
[DebugSTG_CacheUnCache]
[DebugSTG_ChangeNews]
[DebugSTG_CheckUHS2Mode]
[DebugSTG_CheckUHSIIHW]
[DebugSTG_ChgSDSpeedMode]
[DebugSTG_ClearSusAddr]
[DebugSTG_CreateDesignateFile]
[DebugSTG_EasyMount]
[DebugSTG_EasyUnMount]
[DebugSTG_EndChain]
[DebugSTG_EngineDriver]
[DebugSTG_ExtendDir]
[DebugSTG_GetCFASTCardInfo]
[DebugSTG_GetClusterSize]
[DebugSTG_GetEmptyInfo]
[DebugSTG_GetFatData]
[DebugSTG_GetFreeCluster]
[DebugSTG_GetSDCardInfo]
[DebugSTG_GetSDWriteSpeed]
[DebugSTG_GetSusAddr]
[DebugSTG_GetUHS2CardCapability]
[DebugSTG_Getdriveinfo]
[DebugSTG_InitTSM]
[DebugSTG_IsScriptMode]
[DebugSTG_IsUHS2Card]
[DebugSTG_IsUHSCard]
[DebugSTG_MemorySpeed]
[DebugSTG_MonPinActivate]
[DebugSTG_NewsGpoRead]
[DebugSTG_PowerOnFromNoCard]
[DebugSTG_PrintfLogEnable]
[DebugSTG_RandomWrite]
[DebugSTG_ReadDummyData]
[DebugSTG_ReadReg]
[DebugSTG_ResetMemAddr]
[DebugSTG_SDPreInit]
[DebugSTG_SDUhs2Dormant]
[DebugSTG_SDWRNative]
[DebugSTG_SetSDPowerLimit]
[DebugSTG_SetSDRMode]
[DebugSTG_SetSSCG]
[DebugSTG_SetSleepMode]
[DebugSTG_SplitPerformance]
[DebugSTG_StartChain]
[DebugSTG_StartInfWrite]
[DebugSTG_StopInfWrite]
[DebugSTG_SwitchPll]
[DebugSTG_UnMountDevice]
[DebugSTG_VFatOpen]
[DebugSTG_VFatSC]
[DebugSTG_VFatSearch]
[DebugSTG_WriteDummyData]
[DebugSTG_WriteRegData]
[DebugSTG_d]
[DebugSTG_dfile]
[DebugSTG_fileio]
[DebugSTG_getautable]
[DebugTch_AlterPanelSence]
[DebugTch_DebugTSMInit]
[DebugTch_Firmup]
[DebugTch_GetICVer]
[DebugTch_JDI_LAM_Cmd_StartScan]
[DebugTch_JDI_LAM_Cmd_StopScan]
[DebugTch_JDI_LAM_ReadProductID]
[DebugTch_JDI_LAM_Read]
[DebugTch_JDI_LAM_Write]
[DebugTch_LargeObject]
[DebugTch_RES_TFT]
[DebugTch_RegNotifyTouch]
[DebugTch_Rhoge]
[DebugTch_SetINTC]
[DebugTch_StartInform]
[DebugTch_StopInform]
[DebugTch_TerminalColor2]
[DebugTch_TerminalColor3]
[DebugTch_TerminalColor]
[DebugTch_WaitInt]
[DebugTch_WhichDrive]
[DebugTch_Whoge]
[DeleteEventFlag]
[DeleteProxyOfEventProcedure]
[DeleteSemaphore]
[DetachToTransMemory]
[DetachToTransparentMemory]
[DeviceUniqueIDCheckSum]
[DisableBootDisk]
[DisableCardNoiseChk]
[DisableFirmware]
[DisableFnoCorrect]
[DisableISDriveError]
[DisableISTripod]
[DisableLinearOffset]
[DisableLvAccumGain]
[DisableLvFnoCorrect]
[DisableLvLinearOffset]
[DisableMainFirm]
[DisablePowerSaveWithID]
[DisablePowerSave]
[DisableSelfRefreshWithID]
[DispColor]
[DispCon_ColorBarForShowYuv]
[DispCon_ConnectHDMI]
[DispCon_DisconnectHDMI]
[DispCon_GetCurrentVRAM]
[DispCon_GetLcdGainAdjParameter]
[DispCon_PrepareDramCheck]
[DispCon_SaveLcdGainAdjParameter]
[DispCon_SetBackLightWhite]
[DispCon_SetDisplayTypeLCD]
[DispCon_SetDisplayType]
[DispCon_SetExEvfBackLight]
[DispCon_SetLcdGainAdjParameter]
[DispCon_SetMaxBackLightBrightness]
[DispCon_ShowBlackChart]
[DispCon_ShowBlueChart]
[DispCon_ShowColorBar]
[DispCon_ShowColorChart]
[DispCon_ShowCustomColorBar]
[DispCon_ShowFiveStep]
[DispCon_ShowGreenChart]
[DispCon_ShowNStepsChart]
[DispCon_ShowRedChart]
[DispCon_ShowWhiteChart]
[DispCon_ShowYuvData]
[DispCon_ShowYuvFileForExEVF]
[DispCon_TurnOffDisplay]
[DispCon_TurnOnBackLightForCheckVoltage]
[DispCon_TurnOnDisplay]
[DispDev.Create]
[DispLayerOff]
[DispLayerOn]
[DispMarker]
[DispOpe_FixDisplayTypeEVF]
[DispOpe_FixDisplayTypeTFT]
[DispRealFrame]
[DispSaveProperty]
[DispSioMon]
[DlphWriteReg]
[Driver.Create]
[DumpEvfReg]
[DumpPanelReg]
[DumpSinkSupport]
[DumpSlaveLogData]
[DumpSlaveOldLogData]
[DumpSubCPULogData]
[DumpTransparentMemory]
[EF.2]
[EF.Activate]
[EF.BltEttlAdj]
[EF.BltEttlFlash]
[EF.BuiltInFlashChargeStop]
[EF.BuiltInFlashCharge]
[EF.BuiltInFlashFlashWirelessData]
[EF.BuiltInFlashFlashWirelessPulse]
[EF.BuiltInFlashFlash]
[EF.BuiltInFlashFullFlash]
[EF.BuiltInFlashGetFlashAdValue]
[EF.BuiltInFlashReady]
[EF.BuiltInFlashSetAdjFlashTime]
[EF.BuiltInFlashSetFlashVolume]
[EF.BuiltInFlashSetMainFlashTime]
[EF.BuiltInFlashSetWirelessParam]
[EF.BuiltInFlashTrigger]
[EF.ChangeState_to_HotShoeState]
[EF.EFTest]
[EF.ETAD_Test]
[EF.ExtFlashFlash]
[EF.ExtFlashNotifyRearCurtainDriveEnd]
[EF.ExtFlashNotifyRearCurtainStartTime]
[EF.ExtFlashPostProcess]
[EF.ExtFlashPreProcess]
[EF.ExtFlashSingleComm]
[EF.ExtFlashTest]
[EF.ExtGetIntegValue]
[EF.GetChar]
[EF.HookPreFlashResult]
[EF.IsActivated]
[EF.MCellFlashCheck]
[EF.PreFlashReady]
[EF.RenewCommOperate]
[EF.SetFlashRestrictionState]
[EF.SetState]
[EF.Shoot]
[EF.TempAdj]
[EF.XOutControl]
[EF.]
[EF.test_spi]
[EF_]
[EIS_SubPrintEnable]
[EIS_TestShmemRead]
[EepromRingWriteTime]
[ElectricCurrentFirm]
[EnableBootDisk]
[EnableCardNoiseChk]
[EnableExternalMIC]
[EnableFirmware]
[EnableFnoCorrect]
[EnableHDMI]
[EnableHeadPhoneOut]
[EnableISDriveError]
[EnableISTripod]
[EnableInternalMIC]
[EnableLinearOffset]
[EnableLvAccumGain]
[EnableLvFnoCorrect]
[EnableLvLinearOffset]
[EnableMainFirm]
[EnableMovieVectorFB]
[EnablePowerSaveWithID]
[EnablePowerSave]
[EnableSelfRefreshWithID]
[EndGraphics]
[EndGyroAdjust]
[ErrorHandlerDevelopMode]
[ExecuteEventProcedure]
[ExecuteTestRecDevelopProcess]
[ExecuteTestRec]
[ExitTask]
[ExportToEventProcedure]
[FA.Create]
[FAC_LensRegist]
[FADBGPrintf]
[FAE_AdKizDetPath]
[FAE_AddSubPath]
[FAE_DefoePath]
[FAE_DetectDefectMarge]
[FAE_DetectDefect]
[FAE_FurikakePath]
[FAE_GetSensDefect]
[FAE_OrbbenPath]
[FAPrintf]
[FA_ActivateModule]
[FA_AddProperty]
[FA_AdjustLowBattValue]
[FA_AdjustWhiteBalance]
[FA_AllActivate]
[FA_AudApplyICReg]
[FA_AudChangeFilParam]
[FA_AudChangeMicGainParam]
[FA_AudGetAudioParam]
[FA_AudGetBalanceData]
[FA_AudGetHPDetect]
[FA_AudGetHdmiDetect]
[FA_AudGetICReg]
[FA_AudGetInLevel]
[FA_AudGetInPut]
[FA_AudGetOutPut]
[FA_AudGetRecLevel]
[FA_AudInitVolume]
[FA_AudSetAudioParam]
[FA_AudSetBalanceData]
[FA_AudSetICAmp]
[FA_AudSetICDrive]
[FA_AudSetICReg]
[FA_AudSetOutPut]
[FA_AudSetSignalProc]
[FA_AudSetVolBeepSp]
[FA_AudSetVolBeep]
[FA_AudSetVolBuzzer]
[FA_AudSetVolTouch]
[FA_AudSetVolumeDial]
[FA_AudStartPlayWaveData]
[FA_AudStopPlayWaveData]
[FA_Aud_ATT]
[FA_Aud_ClearRec]
[FA_Aud_ExtractFixData]
[FA_Aud_In_VolumeReg]
[FA_Aud_In_Volume]
[FA_Aud_OnlyBlockStart]
[FA_Aud_OnlyBlockStop]
[FA_Aud_Out_Volume]
[FA_Aud_PlayWaveVolume]
[FA_Aud_PrepareRec]
[FA_Aud_SetFromConf]
[FA_Aud_StartRec]
[FA_Aud_StopRec]
[FA_Aud_WindCut]
[FA_AudioBeepFileStart]
[FA_AudioBeepStart]
[FA_AudioBeepStop]
[FA_AudioGetMicDetect]
[FA_AudioInitialize]
[FA_AudioNoise]
[FA_AudioPlayStartEx]
[FA_AudioPlayStart]
[FA_AudioPlayStop]
[FA_AudioPrint]
[FA_AudioRecStartEx]
[FA_AudioRecStart]
[FA_AudioRecStop]
[FA_AudioTerminate]
[FA_BLECheckBLEAssembly]
[FA_BLEEndFactoryMode]
[FA_BLEFirmUp]
[FA_BLEGetBdAddr]
[FA_BLEGetModuleNum]
[FA_BLEStartFactoryMode]
[FA_BLEStartScanBdAddr]
[FA_BLEStopScanBdAddr]
[FA_COM_SetCamera]
[FA_CalculateLowBattAdjValue]
[FA_ClearBitProperty32]
[FA_ClearReleaseModeForSR]
[FA_ConvertTv2AEAccumH]
[FA_CopyAVoltageBoardInf]
[FA_CopySecurityBoardInf]
[FA_CopyVistaUniqueID]
[FA_CreateCenterColor]
[FA_CreateClrAdjustShootingInfo]
[FA_CreateColor]
[FA_CreateGradColor]
[FA_CreateMixColor]
[FA_CreateRGBWPanelColor]
[FA_CreateTestImageEx]
[FA_CreateTestImage]
[FA_CreateTimeLapse]
[FA_DebugPrint]
[FA_DebugShdData]
[FA_DefectsTestImage]
[FA_DeleteColor]
[FA_DeleteFile]
[FA_DeleteProperty]
[FA_DeleteTestImageEx]
[FA_DeleteTestImage]
[FA_DetectDefTestImage]
[FA_DetectDefTestMarge]
[FA_DisableAccumGain]
[FA_DisableElectronicShutterCorrection]
[FA_DisableEvfFrameRateLower]
[FA_DisableFixedPo]
[FA_DisableFnoCorrect]
[FA_DisableLinearOffset]
[FA_DisableLinerEShutCurve]
[FA_DisableLtkids]
[FA_DisplayLayerOff]
[FA_EnableAccumGain]
[FA_EnableColorBar]
[FA_EnableEvfFrameRateLower]
[FA_EnableFixedPo]
[FA_EnableFnoCorrect]
[FA_EnableLinearOffset]
[FA_EnableLinerEShutCurve]
[FA_EnableLtkids]
[FA_EndColor]
[FA_EndViewFinderData]
[FA_FM_GetCardExist]
[FA_FM_GetCardWriteProtect]
[FA_FM_GetNumOfMovieObject]
[FA_FinishRemoteRelease]
[FA_FormatDrive]
[FA_GetAEIntegBuf]
[FA_GetAdapterProperty]
[FA_GetBLEFirmVerInICU]
[FA_GetBLEFirmVer]
[FA_GetBlockIntegBuf]
[FA_GetCalendar]
[FA_GetCheckFlagBoardInf]
[FA_GetCheckModelNoInf]
[FA_GetCheckProgramVersionBoardInf]
[FA_GetCmosGainAddr]
[FA_GetCorrectLowBattValue]
[FA_GetCrawBuf]
[FA_GetDLDriveMaxADValue]
[FA_GetDLDriveMinADValue]
[FA_GetDLDriveSettingCycleCount]
[FA_GetDLDriveSettingCycleIntervalTime]
[FA_GetDLDriveSettingDeltaFrequency]
[FA_GetDLDriveSettingEndFrequency]
[FA_GetDLDriveSettingStartFrequency]
[FA_GetDLDriveSettingSweepTime]
[FA_GetDPRawBuf]
[FA_GetDafImageABAreaData]
[FA_GetDarkLevel]
[FA_GetDecryptPcsetFlavorLuckyTable]
[FA_GetDetectDefCount]
[FA_GetDetectDefSize]
[FA_GetDfeGainAddr]
[FA_GetFileData]
[FA_GetFileSize]
[FA_GetFixDataCheckSum]
[FA_GetFreeSizeOfMemory]
[FA_GetIcuCheckSum]
[FA_GetKeySwInfoData]
[FA_GetLensAdpID]
[FA_GetLensInfoData]
[FA_GetLensUnsharpMaskCommCheckSum]
[FA_GetLvDarkLevel]
[FA_GetMacAddress]
[FA_GetObInteg]
[FA_GetPITimeData]
[FA_GetPredictionData]
[FA_GetProperty32]
[FA_GetPropertyAddress]
[FA_GetPropertyDataSize]
[FA_GetProperty]
[FA_GetRecCount]
[FA_GetRefCxCy]
[FA_GetRemoteReleasePlusImage]
[FA_GetReverseAdjustSum]
[FA_GetSensDefect]
[FA_GetTotalSizeOfMemory]
[FA_GetTuneDataPropertyList]
[FA_GetViewFinderData]
[FA_GetWlanModuleNum]
[FA_GetWorkBuf]
[FA_ImgMuteOff]
[FA_ImgMuteOn]
[FA_InactivateModule]
[FA_InitAudioVolumeReg]
[FA_IsActivated]
[FA_IsHotPlugDrvDisableMode]
[FA_IsMechaDrvDisableMode]
[FA_IsStrobeDrvDisableMode]
[FA_IsTPDrvDisableMode]
[FA_JoinNetwork]
[FA_LeaveNetwork]
[FA_LightMeasureOnOff]
[FA_LightMeasure]
[FA_LoadProperty]
[FA_MVP_ChangePlayCard]
[FA_MVP_ChangePlayMode]
[FA_MVP_GetMovieSize]
[FA_MVP_GetPlayTime]
[FA_MVP_PlayStart]
[FA_MechaShutterClose]
[FA_MechaShutterOpen]
[FA_MovieEnd]
[FA_MovieStart]
[FA_NeoFinishRemoteRelease]
[FA_NeoRemoteReleaseSw1]
[FA_NeoRemoteReleaseSw2]
[FA_NeoRemoteRelease]
[FA_OSDMuteOff]
[FA_OSDMuteOn]
[FA_ObIntegTestImage]
[FA_PCLVEnd]
[FA_PCLVStart]
[FA_PrepareLowBattValue]
[FA_ReadDispDebugFile]
[FA_ReadEepromData]
[FA_ReadEepromMultiData]
[FA_ReadLensEEPROM]
[FA_ReceiveDispData]
[FA_RegistSavePropertyList]
[FA_RegisterPostNextCBR]
[FA_Release]
[FA_RemoteRelease]
[FA_ReplaceMuteOff]
[FA_ReplaceMuteOn]
[FA_RequestIntegResult]
[FA_ResetCalendar]
[FA_RestartEvfDevFactorySendJobToEpp]
[FA_ResumeSubCPUUSBCharge]
[FA_ReverseAdjust]
[FA_SaveAllProperty]
[FA_SavePropertyList]
[FA_SaveProperty]
[FA_SeBitProperty32]
[FA_SelectCard]
[FA_SelectInnerMIC]
[FA_SendDispData]
[FA_SendLensCommand]
[FA_SendTestPacket]
[FA_SetAccumulateTimeForSR12]
[FA_SetAccumulateTimeForSR14]
[FA_SetAccumulateTimeForSR15]
[FA_SetAccumulateTimeForSR]
[FA_SetAdapterProperty]
[FA_SetAudioFilterMicTest]
[FA_SetAudioVolumeReg]
[FA_SetBayerComponent]
[FA_SetBrightness]
[FA_SetCRawBitNum]
[FA_SetCalendar]
[FA_SetColor]
[FA_SetContinuasCaptureForFixed]
[FA_SetDLDriveSettingCycleCount]
[FA_SetDLDriveSettingCycleIntervalTime]
[FA_SetDLDriveSettingDeltaFrequency]
[FA_SetDLDriveSettingEndFrequency]
[FA_SetDLDriveSettingNumPattern]
[FA_SetDLDriveSettingStartFrequency]
[FA_SetDLDriveSettingSweepTime]
[FA_SetDarkLevelValue]
[FA_SetDarkLevelforCaptain]
[FA_SetDefaultNetworkSetting]
[FA_SetDefaultSetting]
[FA_SetDetectAreaforCaptain]
[FA_SetDetectThresholdforCaptain]
[FA_SetFactoryLens]
[FA_SetFixedPo]
[FA_SetHotPlugDrvDisableMode]
[FA_SetIBPAFWinPos]
[FA_SetIBPCameraAFFrameSetting]
[FA_SetIBPCameraAFSetting]
[FA_SetIBPCameraDefaultMenu]
[FA_SetIBPCameraExpSimSetting]
[FA_SetIBPDataSetting]
[FA_SetIBPDriveMode]
[FA_SetIdGradeforCaptain]
[FA_SetLensCommProtcol]
[FA_SetLvCaptureStartFrame]
[FA_SetLvControlAEParam]
[FA_SetMechaDrvDisableMode]
[FA_SetNeoLvProjectionMode]
[FA_SetNetworkServerRegion]
[FA_SetNormalizedRGB]
[FA_SetObIntegMode]
[FA_SetObWindow]
[FA_SetPhotoOpeMechalessMode]
[FA_SetProperty32]
[FA_SetProperty]
[FA_SetReadDispDebugFileParam]
[FA_SetRecInit]
[FA_SetRecMode]
[FA_SetReleaseModeForSR]
[FA_SetSavePropertyListNum]
[FA_SetSsWbCoef]
[FA_SetStrobeDrvDisableMode]
[FA_SetTPDrvDisableMode]
[FA_SetVramOutput]
[FA_StartAddressing]
[FA_StartCenter]
[FA_StartColor]
[FA_StartDLDrive]
[FA_StartLiveView]
[FA_StartMix]
[FA_StartNeoLvTestExposureImage]
[FA_StartRGBW]
[FA_StartRecord]
[FA_StopDLDrive]
[FA_StopEvfDevFactorySendJobToEpp]
[FA_StopIntegResult]
[FA_StopLiveView]
[FA_StopNeoLvTestExposureImage]
[FA_StopOrbit]
[FA_StopRecord]
[FA_SubtractTestImage]
[FA_SuspendSubCPUUSBCharge]
[FA_SyncProperty]
[FA_TP_BackLightOff]
[FA_TP_Complete]
[FA_TP_Prepare]
[FA_TP_ReceiveData]
[FA_TP_ResetTP]
[FA_TP_SendData]
[FA_TP_SetWaitIntTime]
[FA_TP_TurnOff]
[FA_TurnOffDisplay]
[FA_TurnOnDisplay]
[FA_UnregisterPostNextCBR]
[FA_UseAdjustSsDevelopParam]
[FA_UseDefaultSsDevelopParam]
[FA_WaitSavePropertyList]
[FA_WlanInitialize]
[FA_WlanTerminate]
[FA_WriteEepromData]
[FA_WriteEepromMultiData]
[FA_WriteLensEEPROM]
[FA_WriteMem1File2]
[FA_WriteMem1File]
[FA_WriteYuvFile]
[FA_YuvSsDevelopTestImage]
[FA_colorConvertColor2CxCyForAdjustment]
[FA_colorConvertCxCy2ColorForAdjustment]
[FA_colorGetMatrixForAdjustment]
[FactorySW1]
[FactorySW2]
[FireErr]
[FreeFactoryProgramMemoryArea]
[FreeFactoryWorkMemoryArea]
[FreeMemory]
[FromCustomWriteTime]
[FromEraseTime]
[FromLensWriteTime]
[FromRasenWriteTime]
[FromRingWriteTime]
[FromSectorWriteTime]
[GUILiveViewTSM]
[GetADValue]
[GetBatteryVoltage]
[GetCCDTemperature]
[GetCamSetProp]
[GetCameraFlg]
[GetCameraInformationData]
[GetCurrentMaximumLogSize]
[GetDOSState]
[GetDebugDataFromFROM]
[GetFaexeWorkAddress]
[GetFirmwareVersion]
[GetGripFirList]
[GetGyroDataMultiPitch]
[GetGyroDataMultiRoll]
[GetGyroDataMultiYaw]
[GetGyroDataPitch]
[GetGyroDataRoll]
[GetGyroDataYaw]
[GetGyroHPFINMultiPitch]
[GetGyroHPFINMultiRoll]
[GetGyroHPFINMultiYaw]
[GetGyroHPFINPitch]
[GetGyroHPFINRoll]
[GetGyroHPFINYaw]
[GetISTripodMode]
[GetLensExist]
[GetLogData]
[GetNumOfGripFir]
[GetPORTValue]
[GetPostureState]
[GetRand]
[GetSFInfoData]
[GetSRShutterType]
[GetShakeTripod]
[GetStroboPopUpState]
[GetSubPORTValue]
[GetSystemTime]
[GetTRIPODModeFlagbyIS]
[GetTimeOfSystem]
[GetTransMemory]
[GetTransparentMemoryPosition]
[GetTransparentMemorySize]
[GetValVbatt]
[GiveSemaphore]
[GraphFocusPos_DispFocusInfo]
[GuiDebugAE]
[GuiDebugInfo]
[GuiDialItemInfo]
[GvdnMemory]
[INDEV_Test_CutMovie]
[IOPSenarios]
[ImgSeq_LvDumpFullImg]
[ImgSeq_LvSetFullImg]
[InActivateDL]
[InActivateDOS]
[InActivateHotPlug]
[InActivateRTC]
[Indev_Test_CFilter]
[Indev_Test_Resize]
[Indev_Test_Trimming]
[InhTempStatus]
[InitGuiView]
[InitialOperateHDMI]
[InitializeAdjustmentSystem]
[InitializeLED]
[InitializePTPFrameworkController]
[InitializeTestRec]
[IsAdjustmentSystem]
[IsDUIDFixFlag]
[IsEVFDriveMode]
[IsEVFDrive]
[IsFactoryMenu]
[IsFactoryMode]
[IsNTSC]
[IsTransCodeFinish]
[LEDDrv.Create]
[LEDDrv_SetLEDBlinkCount]
[LEDDrv_SetLED]
[LensCorrectDebug]
[LimitLangJapan]
[LimitLangOther]
[LoadBatteryAdjData]
[LoadBatteryID]
[LoadBatteryKey]
[LoadDOSParam]
[LoadDUIDCheckSum]
[LoadDUID]
[LoadFactoryAdjData]
[LoadFactoryAdjFlag]
[LoadScript]
[LvDisableDebugFnoGain]
[LvEnableDebugFnoGain]
[MRRSC_SHOW_MEM]
[MRRSC_SHOW_MEM_DISABLE]
[MRRSC_SHOW_MEM_ENABLE]
[Mecha.Create]
[MemLVOn]
[MixFailCount]
[MonSelCamifFunctionPlus]
[MonSelCamifFunction]
[MonSelCdomainFunction]
[MonSelCdomainOckickFunction]
[MonSelClkgenFunction]
[MonSelPiassFunctionPlus]
[MonSelPiassFunction]
[MonSelToCamif]
[MonSelToCdomain]
[MonSelToClkgen]
[MonSelToPiass]
[MoveFocusDistance]
[MoveLensToFirstPoint]
[MoveLensToTerminatePoint]
[NWFA_GetMacAddress]
[NWFA_GetWlanModuleNum]
[NWFA_JoinNetwork]
[NWFA_LeaveNetwork]
[NWFA_SendTestPacket]
[NWFA_StartAddressing]
[NWFA_StartPtpIP]
[NWFA_StopPtpIP]
[NWFA_WlanInitialize]
[NWFA_WlanTerminate]
[NewTaskShell]
[NwLimeInit]
[NwLimeOn]
[OpenFileCREAT]
[OpenFileRDWR]
[OpenFileRD]
[OpenFileWR]
[OpenMShutter]
[OpenSession]
[PTPRspnd.ShutDownPTPFrameworkClient]
[PTPRspnd.StartUpPTPFrameworkClient]
[Peek16]
[Peek32]
[Peek8]
[Poke16]
[Poke32]
[Poke8]
[PowerOffCaptureDevice]
[PowerOnCaptureDevice]
[PrepareDisableFirmware]
[PrepareEnableFirmware]
[PrintAdjKabotanInfo]
[PrintDOSParam]
[PrintIDCnt]
[PrintSRClk]
[Printf]
[PutOutNdFilter]
[QuietImager]
[RS_Eis_onoff]
[RTC_CheckCharge]
[RTC_Permit]
[RTC_Prohibit]
[RTC_RegRead]
[RTC_RegWrite]
[ReadALS]
[ReadDOSReg]
[ReadDebugDataFromFROM]
[ReadPS]
[ReadParam_IsExistString]
[ReadParam_Num]
[ReadParam_String]
[RegisterAutoPowerOffNotify]
[RegisterEmPropMultiCastForScript]
[Release]
[RemoveFile]
[RemoveTransMemory]
[RemoveTransparentMemory]
[ReqChgAfDistance]
[ReqChgAudioVolumeBeep]
[ReqChgAutoPowerOffTime]
[ReqChgLvAFSystem]
[ReqChgMoviePlayVolume]
[ResetLensData2]
[ResetSRShutterType]
[RomCheckSum]
[SDWriteProtect]
[SaveAllRomImageToFile]
[SaveAllTuneToFile]
[SaveBatSenseOffsetAdjustmentTable]
[SaveBatteryAdjData]
[SaveBatteryID]
[SaveBatteryKey]
[SaveBootableToFile]
[SaveCamifToFile]
[SaveCustomToFile]
[SaveDOSParam]
[SaveDUIDCheckSum]
[SaveDUID]
[SaveDebug1ToFileRAM]
[SaveDebug1ToFileROM]
[SaveDebug2ToFileROM]
[SaveErrHistory]
[SaveErrorToFile]
[SaveFactoryAdjData]
[SaveFactoryAdjFlag]
[SaveFixToFileForSlave]
[SaveFixToFile]
[SaveGUIToFile]
[SaveGkLogToFile]
[SaveLens2ToFile]
[SaveLens3ToFile]
[SaveLens4ToFile]
[SaveLens5ToFile]
[SaveLensToFile]
[SavePPPToFile]
[SaveRasenToFile]
[SaveRingToFile]
[SaveServiceToFile]
[SaveTune2ToFileForSlave]
[SaveTune2ToFile]
[SaveTune4ToFile]
[SaveTuneMapToFile]
[SaveTuneToFileForSlave]
[SaveTuneToFile]
[SaveVRAM]
[ScriptAutoRun]
[SeekFileEnd]
[SetAccessLedMode]
[SetAccumulateMsecTimeForSR14]
[SetCameraFlgWithWrite]
[SetCameraFlg]
[SetClkGearFlgPU0]
[SetClkGearFlgPU1]
[SetDOSIled]
[SetDOSMode]
[SetDOSPers]
[SetDOSPsOffSet]
[SetDOSVthH]
[SetDOSVthL]
[SetDUIDFixFlag]
[SetDloTestMode]
[SetDrawWait]
[SetEventFlag]
[SetFactoryMasterFlag]
[SetFactoryMasterROMProtection]
[SetFactoryMenu]
[SetFactoryModeFlag]
[SetFactoryMode]
[SetFactorySW]
[SetGuiSpecialMode]
[SetGyroHPFINOffsetPitch]
[SetGyroHPFINOffsetRoll]
[SetGyroHPFINOffsetYaw]
[SetInputVoltage]
[SetOLCLightingFunc]
[SetPORTValue]
[SetPrintAngelParam]
[SetPrintApiParam]
[SetSRClk]
[SetSRShutterType]
[SetSfrDevelopParam]
[SetSpOpt]
[SetSpecialOptionID]
[SetSubPORTValue]
[SetTuningFlag]
[SetVariangleStateCBR]
[SetYccRgb]
[ShowApInfo]
[ShowCameraFlg]
[ShowDeviceInfo]
[ShowMainFirmVersion]
[ShowROM1ModelAndVer]
[ShowROM1Version]
[ShowSpOpt]
[ShowTransparentMemory]
[ShowWinsysMemory]
[SleepTask]
[StartAllTempMeasurement]
[StartEVFDriveWithMode]
[StartEVFDrive]
[StartFlatDisplay]
[StartGraphics]
[StartGyroAdjust]
[StartGyroRec]
[StartLogOut]
[StartRedirectUART]
[StartTestRecLog]
[StopEVFDrive]
[StopLogOut]
[StopRedirectUART]
[StopTestRecLog]
[SvdsDate]
[SvdsSleep]
[System.Create]
[TCMTest]
[TCTest]
[TEST_ACodecDec]
[TEST_ACodecEnc]
[TEST_ACodecTStart]
[TEST_ACodecTStop]
[TEST_ALV_GetOutputVol]
[TEST_ALV_RegistCBR]
[TEST_ALV_SetAttenuator]
[TEST_ALV_SetInputMode]
[TEST_ALV_SetInputVol]
[TEST_ALV_SetOutputVol]
[TEST_ALV_SetWindCut]
[TEST_ALV_Start]
[TEST_ALV_Stop]
[TEST_ALV_UnRegistCBR]
[TEST_AUDGetTime]
[TEST_AudioFile]
[TEST_AudioResetSigSel]
[TEST_AudioTime]
[TEST_Audio_AddPlayNextBuffer]
[TEST_Audio_AddPlayStartBuffer]
[TEST_Audio_AudioEnd]
[TEST_Audio_DebugAproc]
[TEST_Audio_DebugWriteEnd]
[TEST_Audio_DebugWriteStart]
[TEST_Audio_GetFrame]
[TEST_Audio_GetSize]
[TEST_Audio_HDMIConnect]
[TEST_Audio_HPConnect]
[TEST_Audio_HdmiMute]
[TEST_Audio_LPCMode]
[TEST_Audio_LPC]
[TEST_Audio_MakeFileAproc]
[TEST_Audio_MicConnect]
[TEST_Audio_Mute]
[TEST_Audio_PlayParam]
[TEST_Audio_ReadyPlayData]
[TEST_Audio_RecDMAStop]
[TEST_Audio_RecNextBuffer]
[TEST_Audio_RecPause]
[TEST_Audio_RecResume]
[TEST_Audio_SetAtt]
[TEST_Audio_SetAudioInit]
[TEST_Audio_SetHdmiDelay]
[TEST_Audio_SetInStart]
[TEST_Audio_SetInVolume]
[TEST_Audio_SetMovieStart]
[TEST_Audio_SetMovieStop]
[TEST_Audio_SetOutStart]
[TEST_Audio_SetOutVolume]
[TEST_Audio_SetOut]
[TEST_Audio_SetPlayParam]
[TEST_Audio_SetRecParam]
[TEST_Audio_SetWindCut]
[TEST_Audio_WriteAproc]
[TEST_ExtractAacBinFile]
[TEST_TransCancel]
[TEST_TransStart]
[TakeSemaphore]
[TempStatusDebugMode]
[TerminateAdjustmentSystem]
[TerminatePTPFrameworkController]
[TerminateTestRec]
[TestAudioSignalPlay]
[TestAudioSignalRec]
[TestGetAudioMic]
[TestGetSignalParam]
[TestGyroAdjust]
[TestSetAudioHPMon]
[TestSetAudioHeadPhone]
[TestSetAudioMic]
[Test_AprocDis]
[Test_AprocEna]
[Test_AudInit]
[Test_ChgBLBrightness]
[Test_ChgEvfBrightness]
[Test_Evf_CurrentRegMap]
[Test_Evf_GetTempNullCount]
[Test_Evf_IndividualAdj]
[Test_Evf_SetBrightness]
[Test_Evf_TempCorrLogLevel]
[Test_Evf_TempCorrParam]
[Test_Evf_TempCorrResult]
[Test_ReceiveDataFromEVF]
[Test_SE_ChangeBeepVolume]
[Test_SendDataToEvf]
[Test_SendDataToTft]
[Test_SetTFTTone]
[Test_VariangleNormal]
[Test_VariangleOpen]
[Test_VariangleSelf]
[UHS2Test]
[UHSIICompTest]
[UnLoadScript]
[UndispRealFrame]
[UpdateGripFir]
[UtilSTG_SetScriptMode]
[VerifyCamif]
[VerifyFixData]
[VerifyGUIResource]
[VerifyLensData2]
[VerifyLensData]
[VerifyRasenData]
[VerifyRingData]
[VerifyTuneData2]
[VerifyTuneData4]
[VerifyTuneDataMap]
[VerifyTuneData]
[VramRead]
[VramStateNum]
[VramState]
[WRITEADJTABLETOFROM]
[WRITEADJUSTMENTDATATOFROM]
[WRITEBOARDADJDATATOFROM]
[WaitForAllEventFlag]
[WaitForAnyEventFlag]
[WinsysTSM]
[WriteFileString]
[WriteSpeedMeasureOn]
[XCMStatus]
[accrcBttyInfo]
[accrcCancel]
[accrcDmyCCCB]
[accrcFirmVer]
[accrcFirmup]
[accrcSetPhase]
[actTemp]
[aeds_setaealo]
[aewb_inhibitmicrostep]
[af.close]
[af.closecancel]
[af.open]
[algs_dump]
[appendH]
[appendP]
[arima_setdebugmode]
[arima_setdebugvalue]
[arima_setlogint]
[arimadrysh]
[arimamoni]
[bleFallTest]
[bleactivate]
[blearceventres]
[bleatthandle]
[bleautooff]
[blebtdualclean]
[blebtdualinit]
[blebtdualterm]
[blebuilt]
[blecampoweroff]
[blecampoweroffenable]
[bleclearpair]
[blecomcheck]
[bleconnect]
[bleconnectcancel]
[bledispbdaddr]
[bleen]
[blefa_chkassembly]
[blefa_endfactory]
[blefa_firmup]
[blefa_getaddr]
[blefa_getmodulenum]
[blefa_getver]
[blefa_getvericu]
[blefa_startfactory]
[blefa_startscan]
[blefa_stopscan]
[blefuncinpoweroff]
[blegetbdaddr]
[blegetmodulenum]
[blegetnvram]
[blegpsSpiGpsInfo]
[blegpsStateChange]
[blegps]
[blehofromcam]
[bleillegalflg]
[bleinfo]
[bleinit]
[blepairconfirmres]
[blepairing]
[blepowerstate]
[blerefresh]
[blereset]
[bleresstartho]
[blesethocbr]
[blesleep]
[blespicheck]
[blesrcShootResult]
[blestateadv]
[blestateidle]
[bleterm]
[blewaittime]
[btc_changerfmode]
[btc_startrxtest]
[btc_starttxfrqtest]
[btc_starttxtest]
[btc_stoprxtest]
[btc_stoptxfrqtest]
[btc_stoptxtest]
[captain_detect]
[captain_detect_akbad]
[captain_merge]
[captain_setDarkLevel]
[captain_setDetArea]
[captain_setDetTh]
[captain_setIdGrade]
[captain_zero]
[cc_cmd_change_moviesize]
[cc_cmd_change_shotmode]
[cc_cmd_change_strobo_firing]
[cc_cmd_input_anyevent]
[cc_cmd_keychkmode]
[cc_cmd_movie_mode]
[cc_cmd_moviebtn_on]
[cc_cmd_playbtn_on]
[cc_cmd_print_uilock]
[cc_cmd_reboot_start]
[cc_cmd_reboot_start_mainsw_off]
[cc_cmd_regist_btn_hook]
[cc_cmd_send_cmdctrl]
[cc_cmd_set_movie_mode]
[cc_cmd_settuningmode]
[cc_cmd_show_stepzoom_pos]
[cc_cmd_shutdown_start]
[cc_cmd_start_cmdctrl]
[cc_cmd_start_zoom_with_pos]
[cc_cmd_start_zoom_with_pos_digi]
[cc_cmd_sw1sw2on_continuous]
[cc_cmd_sw1sw2on_single]
[cc_cmd_unregist_btn_hook]
[cfastSataCtrl]
[cfastSataPowerMode]
[cfastSataTransMode]
[cfastSatagen]
[cfastactpm]
[cfastplevel]
[cfastsanitize]
[cfastsata]
[cfastslumber]
[changerfmode]
[checksum]
[checksumarea]
[chgedid]
[chgmon]
[chkAlloc]
[col_CyclicNrDebugMode]
[col_clearlog]
[col_lvwbdump]
[col_wbdump]
[colorprint]
[comEMITestRamDataOff]
[comEMITestRamDataOn]
[comRTCDebug]
[d]
[daf_dumpab]
[daf_dumpabshdk]
[daf_dumpcor]
[daf_dumpcorout]
[daf_dumpdafraw]
[daf_getsensorinfo]
[daf_ibpoff]
[daf_ibpon]
[daf_meminfo]
[daf_postevent]
[daf_predmodeenable]
[daf_setabexpcorrectgainmode]
[daf_setafset]
[daf_setdafraw]
[daf_setdafwinpos]
[daf_setdafwinpossub]
[daf_setdebugmode]
[daf_setlogint]
[daf_setposition]
[daf_setpredictmode]
[daf_setwbmode]
[daf_testadjbaseparam]
[daf_testdafabout]
[daf_testdafmemout]
[daf_testdafpass]
[daf_testfocuswinmag]
[daf_warpabortdafigaro]
[daf_warpactivatedafigaro]
[daf_warpenddafigaro]
[daf_warpinitdafigaro]
[daf_warpoutabsig]
[daf_warpoutclk]
[daf_warpoutcmdprm]
[daf_warpoutdafigaromem]
[daf_warpoutedafigaro]
[daf_warpoutedmacdaf]
[daf_warpoutintreg]
[daf_warpstartdafigaro]
[dafdebug]
[dafdebugoption]
[dafdefocusdrive]
[dafdisableafg]
[dafenableafg]
[dafg_init]
[daflvd]
[dafmonpoint]
[dafparam]
[dev_AutoTest]
[dev_CfilterAll]
[dev_Cfilter]
[dev_InitLogFile]
[dev_Pcheck]
[dev_aspecttype]
[dev_check]
[dev_contcheck]
[dev_cropcheck]
[dev_cropcontcheck]
[dev_ddd]
[dev_def]
[dev_developAll]
[dev_disttest]
[dev_drvin]
[dev_hdrplayoff]
[dev_hdrplayon]
[dev_in]
[dev_mem1develop]
[dev_monall]
[dev_mondisp]
[dev_monoff]
[dev_monon]
[dev_off]
[dev_out]
[dev_outdecodeImg]
[dev_outohyear]
[dev_pan]
[dev_picttype]
[dev_qtest]
[dev_reg]
[dev_resizeAll]
[dev_settrimmingRotatAng]
[dev_test]
[dev_trimmingAll]
[dev_trimmingRotatAll]
[dev_trimming]
[dev_tsm_disable]
[dev_tsm_e]
[dev_tsm_enable]
[dev_tsm_s]
[dev_yuvdevelop]
[devbindtest]
[devpath_setColorApithrough]
[devpath_setReplaceImg]
[devpath_setthrough]
[devpath_setunittestmode]
[dfrom]
[dl_CancelDL]
[dl_ChangeRegister]
[dl_ExecJustNow]
[dl_FactoryCheck]
[dl_GetCycleCount]
[dl_GetCycleIntervalTime]
[dl_GetDeltaFreq]
[dl_GetEndFreq]
[dl_GetMaxValue]
[dl_GetMinValue]
[dl_GetNumPattern]
[dl_GetPeakFreq]
[dl_GetStartFreq]
[dl_GetSweepTime]
[dl_PrepareDL]
[dl_ReqStartDL]
[dl_SetCycleCount]
[dl_SetCycleIntervalTime]
[dl_SetDeltaFreq]
[dl_SetEndFreq]
[dl_SetNumPattern]
[dl_SetPeakFreq]
[dl_SetStartFreq]
[dl_SetSweepTime]
[dl_StartDL]
[dl_TerminateDL]
[dl_TestFactoryDL]
[dmescalation]
[dmhistory]
[dmprint]
[dmstart]
[dmstop]
[dmstore]
[dope_guilock_Show]
[dope_occ_Show]
[drvtimer.info]
[drysh]
[dumpSRClk]
[dump]
[dumpall]
[dumpentire]
[dumpf]
[dumpfall]
[dumpfrom]
[edid]
[edstart]
[edstop]
[eep_boot_change_ring]
[eep_boot_change_service]
[eep_boot_check]
[eep_erase]
[eep_force_read]
[eep_force_sync]
[eep_forcefrom_ring]
[eep_forcefrom_service]
[eep_read]
[eep_show_service]
[eep_sync]
[eep_write]
[eep_write_single]
[eis_auto_offset]
[eis_balancetime]
[eis_gain_r]
[eis_gain_rs]
[eis_gain_x]
[eis_gain_y]
[eis_get_offset]
[eis_getset_offset]
[eis_off]
[eis_offset]
[eis_on]
[eis_set_offset1]
[eis_set_offset2]
[eis_set_offset3]
[eis_timing]
[eis_x]
[eis_y]
[eisinterface]
[eislog]
[eislogmode]
[eisrecflag]
[eistest]
[eisvectorgain]
[eisvectormode]
[epp_disable]
[epp_dump_compositeHdr]
[epp_dump_compositeRaw]
[epp_dump_vram]
[epp_dump_vram_old]
[epp_dump_vramsub]
[epp_e]
[epp_enable]
[epp_regist_cpusage]
[epp_s]
[epp_test_jpegenc_vramsub]
[fcacheClear]
[fcacheDump]
[fcsChangeEOICheckFlag]
[filewrite]
[flasherase]
[flashwrite]
[fmAllFileRemove]
[fmChangeCardExtentionSameSave]
[fmChangeCurrentMedia]
[fmContainerIbus]
[fmPropertyPrint]
[fmShotRecordAvailable]
[fmdefmapnotify]
[fmdefocus]
[fmdump]
[fmface]
[fmfacenum]
[fmgeneral]
[fmheader]
[fmidCompo]
[fmidOneShotYuvDump]
[fmidSetFactoryMode]
[fmidTestOneShotProc]
[fmobject]
[fmrecog]
[fmresultdump]
[fmsimple]
[fmsurfing]
[fmtrust]
[fmutil]
[fmvalidarea]
[fmyuvdump]
[fmyuvnotify]
[ftafareamode]
[ftcancelmaintarget]
[ftchangelostalg]
[ftcompo]
[ftcompoparam]
[ftdisptrackframe]
[ftdummydetect]
[ftdummytrack]
[fteyeaf]
[ftframeselect]
[ftignorebvthresh]
[ftmotionmethod]
[ftsetmaintargetsal]
[ftsetmaintargettrack]
[ftshiftface]
[ftsurfinfo]
[fttoggleface]
[ftutil]
[gang]
[gis_AllocateMemory]
[gis_CopyMM1ToMEM1]
[gis_SetMM1]
[gkdump]
[gmtwaku_af_center]
[gmtwaku_all]
[gmtwaku_avail]
[gmtwaku_center]
[gmtwaku_check]
[gmtwaku_conti]
[gmtwaku_conv_cmos]
[gmtwaku_dbg_frame]
[gmtwaku_dispsize]
[gmtwaku_facedata]
[gmtwaku_focus]
[gmtwaku_force_updateavail]
[gmtwaku_ignore_eis_shift]
[gmtwaku_imag]
[gmtwaku_mem1]
[gmtwaku_set_afsystem]
[gmtwaku_set_lenssw]
[gmtwaku_set_magnify_location]
[gmtwaku_set_mainframemagnify]
[gmtwaku_setlvinfo]
[gmtwaku_show_winmode]
[gmtwaku_status]
[gmtwaku_test_dmprint]
[gmtwaku_touch]
[gpioread]
[gpiowrite]
[grep]
[gus]
[harbint]
[hdmiddc]
[hdmiphy]
[hdmitc]
[hdr_AllocateMemory]
[hdr_CopyMM1ToMEM1]
[hdr_SetMM1]
[head_logon.end]
[head_logon.l]
[head_logon.s]
[hist_card]
[hist_unit_test]
[i2c_read_proc]
[i2c_write_proc]
[i]
[ibpmodeon]
[ibpon]
[icodec_out_decbuf]
[icodec_through]
[imagevram]
[imgctrl_DisableFixedCmosPattern]
[imgctrl_EnableFixedCmosPattern]
[imgctrl_ReseetAdjDarkCapture]
[imgctrl_SetAdjDarkCapture]
[imgctrl_SetFixedCmosPattern]
[imgseq_propread]
[imgseq_propwrite]
[inActTemp]
[initPod]
[kill]
[led.debug.noprint]
[led.debug]
[led.set.blinkcount]
[led.set.callback.ae]
[led.set.callback]
[led.set.directly]
[led.set.sync]
[led.set]
[lensafdata]
[lensapitest]
[lensdeli.test]
[lensdrivefocus]
[lensdynamic]
[lensemdnoise]
[lensemdnoisenew]
[lensfactorydata]
[lensfactoryinfo]
[lensfocusnoise]
[lensfocusnoiseex]
[lensfocusoverlapnoise]
[lensfscubugfix]
[lenshaltdisable]
[lensheattest]
[lensisnoise]
[lensmoni]
[lensoispos]
[lenspower]
[lenssearch]
[lenssearchnoise]
[lenssetisparam]
[lenstest.api]
[lenstest.burst]
[lensusmnoise]
[lensusmnoisemode]
[lensusmnoiseold]
[lensvdd2Reset]
[logstat]
[lv_90fps_off]
[lv_90fps_on]
[lv_addkizdet2]
[lv_addkizdet]
[lv_af_area]
[lv_af_disable]
[lv_af_enable]
[lv_af_log]
[lv_af_raw]
[lv_af_test]
[lv_avail]
[lv_availall]
[lv_capraw_dump]
[lv_capture_iso]
[lv_capturecontinuousframe_fa]
[lv_capturetestimage]
[lv_changemoviemode]
[lv_conaf_start]
[lv_conaf_stop]
[lv_counterraw_dump]
[lv_dafraw_dump]
[lv_dbg_pocom]
[lv_dbg_timemeasure]
[lv_debug_acc]
[lv_debug_mon]
[lv_defmap_dump]
[lv_defmark_disable]
[lv_defmark_enable]
[lv_disable_disp]
[lv_dispAvailableArea]
[lv_disp_alohist]
[lv_dispafframe]
[lv_dispframerate]
[lv_disppri]
[lv_distort_disable]
[lv_distort_dumpinfo]
[lv_distort_print]
[lv_distort_strong]
[lv_dts_printrandominfo]
[lv_dts_subdatastoreaddrdump]
[lv_dts_transferdatastore]
[lv_dts_transferrandomdata]
[lv_dzoom_debug]
[lv_enable_disp]
[lv_enable_lipsync]
[lv_enable_sync]
[lv_execafmechaless]
[lv_execmechaless]
[lv_factory_changemode]
[lv_factory_resume]
[lv_factory_setinfo]
[lv_factory_start]
[lv_factory_stop]
[lv_factory_suspend]
[lv_flicker_on]
[lv_force_suspend]
[lv_get_defm_data]
[lv_getframeNo]
[lv_gmtfact_off]
[lv_gmtfact_on]
[lv_hd120_recfrkeep]
[lv_hdr_dump]
[lv_ignore_badframe]
[lv_manip]
[lv_measure_usage]
[lv_mechalessmode]
[lv_msht_aspect_test]
[lv_mvhdr_on]
[lv_new_folder]
[lv_old_start]
[lv_old_stop]
[lv_pclvyuv_dump]
[lv_pps_print_debug]
[lv_print_badframe]
[lv_print_lipsync_log]
[lv_print_mode]
[lv_put_usage]
[lv_raw_100dumpStart]
[lv_raw_100dump]
[lv_raw_dump2]
[lv_raw_dump3]
[lv_raw_dump]
[lv_raw_flicker_dump]
[lv_real_object]
[lv_remote_param]
[lv_rshd_raw]
[lv_save_hdmivram]
[lv_save_raw]
[lv_save_sndpas]
[lv_sequence_checker]
[lv_set_af_frame_size]
[lv_set_atemp_new]
[lv_set_diorama_rate]
[lv_set_eis_mode]
[lv_set_fixed_movie]
[lv_set_mm]
[lv_set_movie_resol]
[lv_set_multi_aspect]
[lv_set_raw]
[lv_set_raw_wp]
[lv_setcapturetestimagebuffer]
[lv_setcontinuascaptureforfamode]
[lv_setcontinuascaptureforfixed]
[lv_setcounter_raw]
[lv_setfaaccum]
[lv_setfactoryflag]
[lv_setfactorylegacyflag]
[lv_setfactorylens]
[lv_setfadaf]
[lv_setfamodeflag]
[lv_setimagemagnifyforfactory]
[lv_setlvcapturestartframe]
[lv_setlvcapturewaitframe]
[lv_start]
[lv_stop]
[lv_ta10raw_dump]
[lv_track_compo_track_gui]
[lv_veckydebugyuv_dump]
[lv_visibleframe_log]
[lv_vram_delay]
[lv_vram_dump]
[lvae_2kando]
[lvae_ChangeAvType]
[lvae_ClearAdjustSenzu]
[lvae_ClearGPParam]
[lvae_ClearRealCurrentAv]
[lvae_ColorLogTest]
[lvae_DafLight_End]
[lvae_DafLight_Ready]
[lvae_DafLight_SetIso]
[lvae_DafLight_Show]
[lvae_DafLight_StartInd]
[lvae_DafLight_StartOvl]
[lvae_DafLight_StopOvl]
[lvae_GetExposure]
[lvae_GetInfoForAdjustSenzu]
[lvae_IntegResult]
[lvae_LensEmd]
[lvae_MBvSimDataSet]
[lvae_MBvSim]
[lvae_SetAdjustSenzu]
[lvae_SetGPParam]
[lvae_SetKeepRange]
[lvae_SetRealCurrentAv]
[lvae_SetVignettingOff]
[lvae_ShowDiagramKind]
[lvae_TBvSimDataSet]
[lvae_TBvSim]
[lvae_accumh]
[lvae_accumhssm]
[lvae_afledoff]
[lvae_afledon]
[lvae_checkdiagram]
[lvae_checkiso]
[lvae_checksenzu]
[lvae_checksenzup]
[lvae_chkexpcomp]
[lvae_clearcontrolaeparam]
[lvae_debug]
[lvae_dumpvig]
[lvae_dumpy]
[lvae_frtrdebugmode]
[lvae_furicore]
[lvae_getEFYforTable]
[lvae_getslensdata]
[lvae_guicompomode]
[lvae_guidebugmode]
[lvae_lensinfo]
[lvae_printfixdata]
[lvae_printgero]
[lvae_savey]
[lvae_setaccumgain]
[lvae_setaealo]
[lvae_setaemeteringmode]
[lvae_setaflimitav]
[lvae_setcontrolaccumh]
[lvae_setcontrolaeparamAF]
[lvae_setcontrolaeparamEFandFlicker]
[lvae_setcontrolaeparam]
[lvae_setcontrolaeparamaftv]
[lvae_setcontrolbv]
[lvae_setdebugmode2]
[lvae_setdebugmode]
[lvae_setdebugport]
[lvae_setdispgain]
[lvae_setdumpy]
[lvae_setemdpoweroffmode]
[lvae_setemdsafeshiftmode]
[lvae_setexpcomp]
[lvae_setfixaccumgain]
[lvae_setflickermode]
[lvae_setinitialbv]
[lvae_setinterpolatecontrol]
[lvae_setmanualcontrol]
[lvae_setmaxtv]
[lvae_setmoviemanualcontrol]
[lvae_setsendDecbv]
[lvae_setsendbv]
[lvae_setsenzudump]
[lvae_settargetbv]
[lvae_settimelapsemode]
[lvae_settuneingmode]
[lvae_simmetering]
[lvae_startsenzudump_af]
[lvafae_log]
[lvafae_setaftv]
[lvdbg_printmember_aecolor]
[lvdbg_printmember_af]
[lvdbg_printmember_debugtruck]
[lvdbg_printmember_normal]
[lvdbg_setmode2]
[lvdev_subchip_dump]
[lvdnavi_testlvmem]
[lvdnavi_testservomem]
[lvdrv_santa_chgain_ignore_dafprm]
[lvdrv_santa_choff_ignore_dafprm]
[lvdrv_santa_defr_ignore_dafprm]
[lvdrv_santa_fact_mode]
[lvdrv_santa_hivshd_ignore_dafprm]
[lvdrv_santa_kids_ignore_dafprm]
[lvdrv_santa_mkb_ignore_dafprm]
[lvdrv_santa_orbben_ignore_dafprm]
[lvdrv_santa_win28_ignore_dafprm]
[lvdrv_sap_chgain_bypass]
[lvdrv_sap_choff_bypass]
[lvdrv_sap_defoe_bypass]
[lvdrv_sap_degeen28_1_bypass]
[lvdrv_sap_degeen32_bypass]
[lvdrv_sap_hivshd_bypass]
[lvdrv_sap_kids_bypass]
[lvdrv_sap_rshd_bypass]
[lvdrv_sap_yossie_bypass]
[lvezoom_disp]
[lvezoom_log]
[lvezoom_posi]
[lvezoom_setting]
[lvezoom_start]
[lvezoom_stop]
[lvfact_lv_old_start]
[lvfact_lv_old_stop]
[lvfact_lv_start]
[lvfact_lv_stop]
[lvfact_setmode]
[lvfact_state]
[lvmirrorup]
[mecha.activate1st]
[mecha.activate2nd]
[mecha.activate]
[mecha.bulb]
[mecha.check]
[mecha.debug.port]
[mecha.debug]
[mecha.fa.getShInfo]
[mecha.fa.omrel]
[mecha.fa.rel]
[mecha.gotofd]
[mecha.gotolv]
[mecha.hist]
[mecha.inactivate]
[mecha.init.learn.param]
[mecha.lvopen]
[mecha.mirror.count.set]
[mecha.mirror.down]
[mecha.mirror.recover]
[mecha.mirror.release]
[mecha.mirror.up]
[mecha.recover]
[mecha.release.ex]
[mecha.release.exend]
[mecha.release.ready]
[mecha.release]
[mecha.reset]
[mecha.rushEnd]
[mecha.shutter.charge]
[mecha.shutter.chargeset.chk]
[mecha.shutter.chargeset]
[mecha.shutter.close]
[mecha.shutter.correct.off]
[mecha.shutter.correct.on]
[mecha.shutter.count.set]
[mecha.shutter.learnparam]
[mecha.shutter.open]
[mecha.shutter.recover]
[mecha.shutter.return]
[mecha.shutter.run1]
[mecha.shutter.run2]
[mecha.shutter.set]
[mecha.test]
[mecha.timerinfo]
[memMap]
[memShow]
[memcmp]
[memcpy]
[memdump]
[memset]
[mnav_alloc]
[mnav_alloca]
[mnav_free]
[mnav_free_adr]
[mnav_freea]
[mnav_sem]
[mnav_shoot]
[mnav_status]
[mount]
[mrapc]
[mrbreakoffset]
[mrcancel]
[mrcnlg]
[mrdctl]
[mrencth]
[mrenctl]
[mrgklog]
[mrhdmi]
[mrmbilog]
[mrmem]
[mrpma]
[mrrectl]
[mrsetpma]
[mrstoptl]
[mrtcfwrite]
[mrtstart]
[mrtstop]
[mvrAppendCheckSetRecLimit]
[mvrDump]
[mvrSetRecLimit]
[mvrTestGero]
[normal]
[objInfo]
[olddump]
[olddumpall]
[olddumpf]
[olddumpfall]
[oldgrep]
[on]
[oplg.all]
[oplg.assert]
[oplg.entermenu]
[oplg.excommand]
[oplg.level]
[oplg.mode]
[oplg.play.sd.newest]
[oplg.play.sd]
[oplg.reg]
[oplg.send.fin]
[oplg.send.init]
[oplg.send.usb]
[oplg.start]
[oplg.state]
[oplg.test]
[oplg]
[overwritelensfunc]
[overwritelensfuncextern]
[pa_GetDbgAssist1State]
[pa_SetDbgAssist1ONOFF]
[pa_dbg]
[pa_gero_reset]
[pa_gero_set]
[pa_moni_on]
[pa_status]
[pa_tsm_on]
[pcomnetmem]
[po.batt_cal]
[po.call]
[po.debug]
[po.drivemode]
[po.fel]
[po.flick.now]
[po.highSpeedImageReviewOn]
[po.ibpmode]
[po.ignore]
[po.ignore_check]
[po.maskReleaseBlock]
[po.measure]
[po.mecha.recover]
[po.mirrorUpSetting]
[po.optimizationTimeLag]
[po.posture]
[po.printReleaseBlock]
[po.relcount.clear]
[po.relcount.print]
[po.relcount.set]
[po.respect]
[po.respect_check]
[po.set]
[po.set_cu_buffer]
[po.shutter.close]
[po.shutter.open]
[po.sw2on]
[po.test.init]
[po.test.start]
[po.test.stop]
[po_fa_resetaeparam]
[po_fa_setaeparam]
[printerr]
[prop_deletepropertyfromfile]
[prop_getproperty]
[prop_getpropertylist]
[prop_prohibitfromaccess]
[prop_readpropertytofile]
[prop_saveproperty]
[prop_savepropertydual]
[prop_savepropertymultipartly]
[prop_savepropertypartly]
[prop_savewritemultipartly]
[prop_setidwritemultipartly]
[prop_setnumwritemultipartly]
[prop_testFactory]
[prop_testmultipartly1]
[prop_writemultipartly]
[prop_writepropertyfromfile]
[ptptest]
[readedid]
[readid]
[rectsm]
[rectsmtime]
[redevCreate]
[releaseType]
[rep_sw2on]
[repvram]
[reqBatt]
[reqError]
[reqStrobo]
[saveedid]
[scls]
[scsFactoryLens]
[selfRefresh]
[send_mpu]
[setStartTime]
[setTimeMode]
[set_Ta10CorrectType]
[set_multishot_debugmode]
[set_multishot_obwb]
[setedid]
[shirahama.taskinfo]
[sht_ChangeAv]
[sht_ChangeIso]
[sht_ChangeTv]
[sht_ChgPropVal]
[sht_DisableManualSilent]
[sht_DisableNrJudgement]
[sht_EnableManualSilent]
[sht_EnableNrJudgement]
[sht_EngineCheck]
[sht_GetPropVal]
[sht_SaveMmrFileNoOverWrite]
[sht_SaveMmrFile]
[sht_SetTa10CorrectType]
[sht_SubChipCheck]
[sht_Ta10Check]
[sht_bypass_chgain]
[sht_bypass_choff]
[sht_bypass_degeen28]
[sht_bypass_degeen32]
[sht_bypass_hivshd]
[sht_bypass_kids]
[sht_bypass_off]
[sht_bypass_yossie]
[sht_dbgcappath_direct]
[sht_dbgcappath_end]
[sht_dmprint]
[sht_dmstore]
[sht_fixflag]
[sht_fixregread]
[sht_fixregsave]
[sht_fixregwrite]
[sht_out_dark]
[sht_out_face]
[sht_out_vram]
[sht_propread]
[sht_propshow]
[sht_propwriteSC]
[sht_propwrite]
[sht_regread]
[sht_regwrite]
[sht_servo_vram_off]
[sht_servo_vram_on]
[sht_showid]
[sht_tuneregread]
[sht_tuneregsave]
[sht_tuneregwrite]
[sio_FA_ReceiveDataFromEEPROM]
[sio_FA_SendDataToEEPROM16]
[sio_FA_SendDataToEEPROM8]
[sio_FA_SendDataToEEPROM]
[sio_logon2]
[sio_logon2_wp]
[smemFactory2]
[smemFactory]
[smemImage]
[smemSetCraw]
[smemShowCBx]
[smemShowFix]
[smemShowObj]
[smemShowStat]
[smemStgAlloc]
[smemTerm]
[sprintf]
[sscanf]
[sstgShowDcf]
[startcircledrive]
[startrxtest]
[starttxfrqtest]
[starttxtest]
[stopcircledrive]
[stoprxtest]
[stoptxfrqtest]
[stoptxtest]
[strcmp]
[strcpy]
[strlen]
[sysConfig]
[taskShow]
[tcmdisptest]
[tcmpre]
[tg_FA_ClearGainSetting]
[tg_FA_DisableAdjustForSR]
[tg_FA_DisableDefmark]
[tg_FA_DisableFixedPo]
[tg_FA_DisableLinerEShutCurve]
[tg_FA_EnableAdjustForSR]
[tg_FA_EnableDefmark]
[tg_FA_EnableFixedPo]
[tg_FA_EnableLinerEShutCurve]
[tg_FA_SetAccumulateTimeForSR12]
[tg_FA_SetAccumulateTimeForSR14]
[tg_FA_SetAccumulateTimeForSR15]
[tg_FA_SetFixedPo]
[tg_FA_SetGainSetting]
[timer.getcount]
[timer.setcount]
[umount]
[update]
[usm_changefreq]
[usm_init]
[usm_start]
[usm_stop]
[usvMaker]
[vfx_CFDevAll]
[vfx_CFilterDev]
[vfx_ResizeAll]
[vfx_Resize]
[vfx_TrimmingAll]
[vfx_TrimmingBase]
[vfx_TrimmingEasy]
[vfx_Trimming]
[vramdump]
[vsmode]
[waitForInt]
[wlanHeatStart]
[wlanLachesisTest]
[wlanSetMacAdderess]
[wlanchk]
[wlandebug]
[wlandown]
[wlanhwreset]
[wlanipset]
[wlanjoin]
[wlanledblink]
[wlanledoff]
[wlanledon]
[wlanpingsend]
[wlanpoweroff]
[wlanpoweron]
[wlanscan]
[wlanuAPTest]
[wlanup]
[wprd]
[yuvdump]
[lv_dummy_badframe]

This is quite a lot and it will take a while to explore them. However, they cannot be executed blindly on UART. Also functions which expect arguments and aren't actually that useful on UART are listed here. Some examples:

Code: [Select]
memcpy
sprintf
sscanf
...

Some functions look dangorous and may brick the camera:
Code: [Select]
ClearFactoryMasterROMProtection
eep_erase
...

When running drysh the DryOS shell starts. Running extask right after RP has booted into menu does list the following running tasks:

Code: [Select]
K433[1]>dryshDry[WarpPUX]> Dry[WarpPUX]> extask
 Name            ID   State Pri         Wait(ID)      Stack  % StackTop StackEnd       SP Bound(ID)
EvfCap     01920046    WAIT  13  RCVMQ(01910049)  047c/0c00 37 00212200 00212e00 00212d38    BND(0)
ShtCap     0050000c    WAIT  14  RCVMQ(004f0005)  0198/1000 09 001c7508 001c8508 001c8440    BND(1)
ShtCapCorr 0053000d    WAIT  14  RCVMQ(00520006)  0198/1000 09 001ced50 001cfd50 001cfc88    BND(1)
ShtCapFact 0055000e    WAIT  14  RCVMQ(00540007)  00f8/1000 06 001cfd58 001d0d58 001d0c90    BND(1)
EvfDev     00670014    WAIT  14  RCVMQ(0066000d)  0364/0c00 28 001d5d88 001d6988 001d68c0    BND(1)
RTCMgr     00a20025    WAIT  14  RCVMQ(00a10020)  02f0/0400 73 001f1610 001f1a10 001f1948    BND(0)
EventMgr   00a80026    WAIT  14  RCVMQ(00a70021)  01e0/1000 11 001f1a18 001f2a18 001f2950    BND(0)
ShootCaptu 0299006f    WAIT  14  RCVMQ(0298007a)  0240/1000 14 00245348 00246348 00246280    BND(0)
Epp        006b0016    WAIT  15  RCVMQ(006a000f)  0690/2800 16 001d7998 001da198 001da0d0    BND(1)
DAFPath    0085001e    WAIT  15  RCVMQ(00840019)  0210/1000 12 001eb1d8 001ec1d8 001ec110    BND(1)
CamConduct 00b10028    WAIT  15  EVENT(00ad0011)  02c0/1000 17 001f2e28 001f3e28 001f3da0    BND(0)
PhotoOpe   0106002e    WAIT  15  RCVMQ(01050029)  02d8/1000 17 001f6248 001f7248 001f7180    BND(0)
LensDelive 0110002f    WAIT  16  RCVMQ(010d002c)  0190/0400 39 001f7250 001f7650 001f75c0    BND(0)
LensCPUCom 01150030    WAIT  16  RCVMQ(0112002e)  00c0/0400 18 001f7658 001f7a58 001f79c8    BND(0)
SyncSys    01350038    WAIT  16  EVENT(01360022)  00c8/1000 04 001fdd98 001fed98 001fed08    BND(0)
MRFRMTask  0163003f    WAIT  16  RCVMQ(0162003b)  00b8/1000 04 002081d0 002091d0 00209148    BND(0)
TimeCodeMa 016f0041    WAIT  16  RCVMQ(016e003f)  01d0/2000 05 0020b1e0 0020d1e0 0020d118    BND(0)
COP        00690015    WAIT  17  RCVMQ(0068000e)  0198/1000 09 001d6990 001d7990 001d78c8    BND(1)
MovieRecor 015f003e    WAIT  17  RCVMQ(015e003a)  00f8/2000 03 002061c8 002081c8 00208100    BND(0)
RscMgr     01240035    WAIT  18  RCVMQ(01230030)  0368/1000 21 001fad80 001fbd80 001fbcb8    BND(0)
Panning    01a30048    WAIT  18  RCVMQ(01a2004b)  0200/0c00 16 00213610 00214210 00214148    BND(0)
DispVCtrl  01e60053    WAIT  18  RCVMQ(01e50056)  03d8/1000 24 00225a68 00226a68 002269a0    BND(0)
DispDCtrl  01ea0054    WAIT  18  RCVMQ(01e90057)  025c/1000 14 00226a70 00227a70 002279a8    BND(0)
DispOperat 01f30056    WAIT  18  RCVMQ(01f20059)  02a0/1000 16 00228a80 00229a80 00229a00    BND(0)
AeWbIneg   006f0018    WAIT  19  RCVMQ(006e0011)  0690/1000 41 001db1a8 001dc1a8 001dc0e0    BND(1)
EF_MAIN    01190031    WAIT  19  RCVMQ(0118002f)  0268/1000 15 001f7a60 001f8a60 001f8998    BND(0)
AlgsMgr    012d0036    WAIT  19  RCVMQ(012c0033)  0280/1000 15 001fbd88 001fcd88 001fccc0    BND(0)
AlgsMgrDec 012f0037    WAIT  19  RCVMQ(012e0034)  00f8/1000 06 001fcd90 001fdd90 001fdcc8    BND(0)
DAF        01380039    WAIT  19  RCVMQ(01370035)  0220/1000 13 001feda0 001ffda0 001ffcd8    BND(0)
MovPlay    01730042    WAIT  19  RCVMQ(01720040)  00f8/2000 03 0020d1e8 0020f1e8 0020f120    BND(0)
AeWb       01a7004a    WAIT  19  RCVMQ(01a6004d)  0738/2000 22 0021c220 0021e220 0021e158    BND(0)
ApexMgr    01b5004b    WAIT  19  RCVMQ(01b4004e)  0250/2000 07 0021e228 00220228 00220160    BND(0)
ACtrl      01cc004c    WAIT  19  RCVMQ(01cb004f)  0258/1000 14 00220230 00221230 00221168    BND(0)
ABeepObjec 01d8004f    WAIT  19  RCVMQ(01d70052)  01c8/1000 11 00223248 00224248 00224180    BND(0)
EIS        01e00051    WAIT  19  RCVMQ(01df0054)  00f8/0400 24 00225258 00225658 00225590    BND(0)
ImageCodec 02a00070    WAIT  19  RCVMQ(029f007b)  0168/1000 08 00246350 00247350 00247288    BND(0)
ShootPreCo 02b40073    WAIT  19  RCVMQ(02b30080)  01c8/4000 02 0024c368 00250368 002502a0    BND(0)
ShtPreDev  0059000f    WAIT  20  RCVMQ(00580008)  01a0/1000 10 001d0d60 001d1d60 001d1c98    BND(1)
ShtDev     005d0010    WAIT  20  RCVMQ(005c0009)  0198/1000 09 001d1d68 001d2d68 001d2ca0    BND(1)
ShtDistCor 00600011    WAIT  20  RCVMQ(005f000a)  0190/1000 09 001d2d70 001d3d70 001d3ca8    BND(1)
PropMgr    00620012    WAIT  20  RCVMQ(0061000b)  02e8/1000 18 001d3d78 001d4d78 001d4cb0    BND(0)
ShtEncode  00640013    WAIT  20  RCVMQ(0063000c)  01e4/1000 11 001d4d80 001d5d80 001d5cb8    BND(1)
LEDCon     00ac0027    WAIT  20  RCVMQ(00a90022)  00e8/0400 22 001f2a20 001f2e20 001f2d68    BND(0)
AFTask     0153003a    WAIT  20  EVENT(0145002c)  0478/1000 27 001ffda8 00200da8 00200cc0    BND(0)
DAFDeliver 0157003b    WAIT  20    SEM(0156009e)  01c8/1000 11 00200db0 00201db0 00201d48    BND(0)
MovReader  01790043    WAIT  20  RCVMQ(01780041)  00f8/1000 06 0020f1f0 002101f0 00210128    BND(0)
Gmt        01800044    WAIT  20  RCVMQ(017f0043)  0850/2000 25 002101f8 002121f8 00212130    BND(0)
LVEZM      01a10047    WAIT  20  RCVMQ(01a0004a)  01a0/0800 20 00212e08 00213608 00213540    BND(0)
FileCache  02860069    WAIT  20  RCVMQ(02850074)  01d8/1000 11 0023f318 00240318 00240250    BND(0)
ShootDevel 02b60074    WAIT  20  RCVMQ(02b50081)  01a0/1000 10 00250370 00251370 002512a8    BND(0)
ShootPreDe 02b80075    WAIT  20  RCVMQ(02b70082)  01a0/1000 10 00251378 00252378 002522b0    BND(0)
DistCorrec 02ba0076    WAIT  20  RCVMQ(02b90083)  01a0/1000 10 00252380 00253380 002532b8    BND(0)
ShootEncod 02bc0077    WAIT  20  RCVMQ(02bb0084)  01b8/1000 10 00253388 00254388 002542c0    BND(0)
ShootEncod 02be0078    WAIT  20  RCVMQ(02bd0085)  0190/1000 09 00254390 00255390 002552c8    BND(0)
ShtVfx     006d0017    WAIT  21  RCVMQ(006c0010)  01a0/1000 10 001da1a0 001db1a0 001db0d8    BND(1)
LensCorrec 007c001b    WAIT  21  RCVMQ(007b0016)  0774/1000 46 001e81c0 001e91c0 001e90f8    BND(1)
MovWriter  01650040    WAIT  21  RCVMQ(0164003c)  00f8/2000 03 002091d8 0020b1d8 0020b110    BND(0)
AStrm      01d0004d    WAIT  21  RCVMQ(01cf0050)  00f8/1000 06 00221238 00222238 00222170    BND(0)
ShootBlack 02ae0071    WAIT  21  RCVMQ(02ad007e)  01a0/1000 10 00247358 00248358 00248290    BND(0)
ShootVfx   02c00079    WAIT  21  RCVMQ(02bf0086)  01a8/4000 02 00255398 00259398 002592d0    BND(0)
Fwrite     02df007d    WAIT  21  RCVMQ(02de008a)  00f8/1000 06 0025c3b8 0025d3b8 0025d2f0    BND(0)
CLR_CALC   01a50049    WAIT  22  RCVMQ(01a4004c)  0200/8000 01 00214218 0021c218 0021c150    BND(0)
ShootColor 02b00072    WAIT  22  RCVMQ(02af007f)  0218/4000 03 00248360 0024c360 0024c298    BND(0)
FaceTrack  015a003c    WAIT  23  RCVMQ(01590039)  09d8/4000 15 00201db8 00205db8 00205cf0    BND(0)
FinderDisp 015d003d    WAIT  23  EVENT(015c003a)  0128/0400 28 00205dc0 002061c0 00206138    BND(0)
FingerDet  01f00055    WAIT  23  RCVMQ(01ef0058)  01b8/1000 10 00227a78 00228a78 002289b0    BND(0)
GuiMainTas 02610066    WAIT  23  RCVMQ(0260006d)  0a00/2000 31 00238300 0023a300 0023a268    BND(0)
Sound      02e4007e    WAIT  23  RCVMQ(02e3008b)  00f8/1000 06 0025d3c0 0025e3c0 0025e2f8    BND(0)
DPPU1Mgr   0081001d    WAIT  24  RCVMQ(00800018)  00f8/1000 06 001ea1d0 001eb1d0 001eb108    BND(1)
ImgPly     008a001f    WAIT  24  RCVMQ(0089001a)  0148/1000 08 001ec1e0 001ed1e0 001ed118    BND(1)
ImgPlyTask 02660067    WAIT  24  RCVMQ(0263006e)  00b8/1000 04 0023a308 0023b308 0023b280    BND(1)
CtrlSrv    02720068    WAIT  24  EVENT(02710053)  1168/4000 27 0023b310 0023f310 0023f268    BND(0)
EvShel     032c0082 RUNNING  24         -------   0310/8000 02 002613e0 002693e0 --------    BND(0)
ConsoleSvr 03340084    WAIT  24  RCVMQ(032f008e)  01f8/0800 24 001cb538 001cbd38 001cbca0    BND(0)
MvwTask    007e001c    WAIT  25  RCVMQ(007d0017)  00f8/1000 06 001e91c8 001ea1c8 001ea100    BND(1)
GlobalVect 008d0020    WAIT  25  RCVMQ(008c001b)  0198/0400 39 001ed1e8 001ed5e8 001ed520    BND(1)
DetSeqFace 009b0022    WAIT  25  RCVMQ(009a001f)  0358/1800 13 001ef1f8 001f09f8 001f0978    BND(1)
FileMgr    00bd002a    WAIT  25  RCVMQ(00bc0026)  0a48/1000 64 001f4e38 001f5e38 001f5d70    BND(0)
BLEMgr     00fc002b    WAIT  25  RCVMQ(00fb0027)  0220/1000 13 001f3e30 001f4e30 001f4d68    BND(0)
Gero       01880045    WAIT  25  RCVMQ(01870044)  00f8/1000 06 001c8510 001c9510 001c9448    BND(0)
ALevel     01d4004e    WAIT  25  RCVMQ(01d30051)  00f8/1000 06 00222240 00223240 00223178    BND(0)
Fstorage   01de0050    WAIT  25  RCVMQ(01dd0053)  01a0/1000 10 00224250 00225250 00225188    BND(0)
ImageStabi 01e20052    WAIT  25  RCVMQ(01e10055)  01a8/0400 41 00225660 00225a60 00225998    BND(0)
InnerDevel 01f90057    WAIT  25  RCVMQ(01f8005a)  00f8/1000 06 00229a88 0022aa88 0022a9c0    BND(0)
ReDevelop  01fc0058    WAIT  25  RCVMQ(01fb005b)  00f8/1000 06 0022aa90 0022ba90 0022b9c8    BND(0)
Remote     01ff0059    WAIT  25  RCVMQ(01fe005c)  00f8/1000 06 0022ba98 0022ca98 0022c9d0    BND(0)
ComMgr     0201005a    WAIT  25  RCVMQ(0200005d)  0634/1000 38 0022caa0 0022daa0 0022d9d8    BND(0)
ComJobMgr  020a005b    WAIT  25  RCVMQ(0209005e)  00f8/1000 06 0022daa8 0022eaa8 0022e9e0    BND(0)
PtpMgr     020c005c    WAIT  25  RCVMQ(020b005f)  01d0/1000 11 0022eab0 0022fab0 0022f9e8    BND(0)
USBTrns    0213005d    WAIT  25  RCVMQ(02110061)  01e0/1000 11 0022fab8 00230ab8 002309c0    BND(0)
PTPSession 021c005e    WAIT  25  RCVMQ(02190062)  0470/1000 27 00230ac0 00231ac0 002319b8    BND(0)
TOMgr      022a005f    WAIT  25  RCVMQ(02290064)  040c/1000 25 00231ac8 00232ac8 00232a00    BND(0)
GpsMgr     022e0060    WAIT  25  RCVMQ(022d0065)  0208/1000 12 00232ad0 00233ad0 00233a08    BND(0)
USB20Drv   02330061    WAIT  25  RCVMQ(02300066)  0180/0800 18 00233ad8 002342d8 00234240    BND(0)
DPMgr      023a0062    WAIT  25  RCVMQ(02390069)  01f8/1000 12 002342e0 002352e0 00235218    BND(0)
PtpTrans   02510064    WAIT  25  RCVMQ(0250006b)  01c8/1000 11 002362f0 002372f0 00237228    BND(0)
PtpEvent   025b0065    WAIT  25  RCVMQ(025a006c)  00f8/1000 06 002372f8 002382f8 00238230    BND(0)
Ta10Mgr    0289006a    WAIT  25  RCVMQ(02880075)  00f8/1000 06 00240320 00241320 00241258    BND(0)
HDRMgr     028d006b    WAIT  25  RCVMQ(028c0076)  00f8/1000 06 00241328 00242328 00242260    BND(0)
HDRStage   028f006c    WAIT  25  RCVMQ(028e0077)  00f8/1000 06 00242330 00243330 00243268    BND(0)
GISMgr     0293006d    WAIT  25  RCVMQ(02920078)  00f8/1000 06 00243338 00244338 00244270    BND(0)
GISStage   0295006e    WAIT  25  RCVMQ(02940079)  00f8/1000 06 00244340 00245340 00245278    BND(0)
Fcreate    02c2007a    WAIT  25  RCVMQ(02c10087)  0280/1000 15 002593a0 0025a3a0 0025a2d8    BND(0)
Fread      02dd007c    WAIT  25  RCVMQ(02dc0089)  00f8/1000 06 0025b3b0 0025c3b0 0025c2e8    BND(0)
LowConsole 03330083 SUSPEND  25         -------   00d0/0800 10 001cad30 001cb530 001cb4c0    BND(0)
DetSeqChas 00940021    WAIT  26  RCVMQ(0093001d)  03b0/1c00 13 001ed5f0 001ef1f0 001ef170    BND(1)
DOSDriver  01210034    WAIT  26  EVENT(01200020)  0178/1000 09 001f9d78 001fad78 001facf0    BND(0)
Mrk        02e9007f    WAIT  26  RCVMQ(02e8008c)  0204/1000 12 0025e3c8 0025f3c8 0025f300    BND(0)
FmidTask   009d0023    WAIT  27  EVENT(009c000f)  05d8/0800 73 001f0a00 001f1200 001f1178    BND(1)
ColorSPCS  0077001a    WAIT  28  RCVMQ(00760014)  00f8/4000 01 001e41b8 001e81b8 001e80f0    BND(1)
TempSvc    011e0033    WAIT  28  EVENT(011d001f)  0138/0300 40 001f9a70 001f9d70 001f9cd8    BND(0)
CSMgrTask  02490063    WAIT  28  RCVMQ(0247006a)  0638/1000 38 002352e8 002362e8 00236240    BND(0)
NwComMgr   02ef0080    WAIT  28  RCVMQ(02ee008d)  0208/1000 12 0025f3d0 002603d0 00260308    BND(0)
Color      00740019    WAIT  29  RCVMQ(00730012)  1f2c/8000 24 001dc1b0 001e41b0 001e40e8    BND(1)
BcSvc      00ff002c    WAIT  29  EVENT(00fe0018)  00c8/0400 19 001f5e40 001f6240 001f61b0    BND(0)
MetaCtg    02d9007b    WAIT  29  RCVMQ(02d80088)  0870/1000 52 0025a3a8 0025b3a8 0025b2e0    BND(0)
LpfMode    02f30081    WAIT  29    SEM(02f20162)  0080/1000 03 002603d8 002613d8 00261388    BND(0)
HotPlug    011c0032    WAIT  30  EVENT(011a001e)  0118/1000 06 001f8a68 001f9a68 001f99e8    BND(0)
DbgMgr     002b0006    WAIT  31  RCVMQ(002a0001)  02d8/1000 17 001c9920 001ca920 001ca858    BND(0)
EEPROM     002d0007    WAIT  31  EVENT(002c0004)  02c0/0400 68 001ca928 001cad28 001cac88    BND(0)
PowerMgr   00290005   READY  32         -------   0060/0400 09 001c9518 001c9918 001c9908    BND(0)
ClockSaver 009f0024 RUNNING  32         -------   0060/0400 09 001f1208 001f1608 --------    BND(1)
idle       00010001   READY  33         -------   0080/0100 50 001c72f8 001c73f8 001c73c8    BND(0)
idle       00020002   READY  33         -------   0080/0100 50 001c7400 001c7500 001c74d0    BND(1)

Maybe we can find some useful functions which do output some debug information needed for qemu.
EOS RP

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #1 on: December 12, 2020, 02:44:26 AM »
sysConfig on RP:

Code: [Select]
K433[1]>sysConfig
vers_dry                 DRYOS version 2.3, release #0060+p4
vers_mk                  2.67
use_smp                  1
act_spi_sem              1
act_spi_event            1
act_spi_mq               1
act_spi_mutex            1
act_spi_cond             1
act_spi_timer            1
act_spi_clock            1
act_spi_isr              0
act_spi_objlist          1
act_spi_objinfo          1
act_spi_objsetname       1
act_timeout              1
act_objname              1
dbg_stack_check          1
dbg_error_check          1
dbg_logging              0
pu_max                   2
sys_mem_start   0x001c72e8
sys_mem_max         926208
user_mem_start  0x000a94e8
user_mem_max       1126436
sys_objs_start  0x001bc50c
sys_objs_end    0x001c72e8
priority_max            34
task_max               199
semaphore_max          463
event_max              142
message_q_max          230
mutex_max               46
condition_max            0
timer_max                0
vector_max               0
it4_mbx_max              0
it4_mpf_max              0
it4_mpl_max              0
level_low                0
level_timer            128
level_kern             128
prio_default            16
stack_default         4096
stack_idle             256
stack_init            4096
stack_addr_idle 0x00000000
stack_addr_init 0x00000000
use_barrier              0
barrier_max              0

 sysConfig returned 1(0x1)
EOS RP

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #2 on: December 13, 2020, 06:05:22 PM »
I have done some additional experiments via UART for the last few days and here are my findings so far:

PrintSRClk:

Code: [Select]
K433[1]>PrintSRClk

********************************************************************
 [[ CLK Gating]]
ADOMAIN_CLK_EN  (0xD010B050) = 0x00000000
ADOMAIN_CLK_EN  (0x0000B050) = 0x00000000
CLKGATECFG      (0xD0100008) = 0x00000000
CLKGATECFG2     (0xD010002C) = 0x00000000
CLKGATECFG3     (0xD0100074) = 0x00000000
INT_TM_CLK_EN   (0xD010B120) = 0x00000000
BLOCK_CKGATE    (0xD0270600) = 0x00000000
SDDOMAIN_CLK_EN (0xD010B140) = 0x00000000
MDOMAIN_CLK_EN  (0xD010B060) = 0x00000000
RSTGEN_CLK_EN   (0xD010B010) = 0x00000000
PIASS_CLK_EN    (0xD010B020) = 0x00000000
MONI_CLK_EN     (0xD010B130) = 0x00000000
DEBSIO_CLK_EN   (0xD010B030) = 0x00000000
SWIMMY_CLK_EN   (0xD010B090) = 0x00000000
SITTER_CLK_EN   (0xD010B0A0) = 0x00000000
ALGS_CLK_EN     (0xD010B110) = 0x00000000
GLDA_CLK_EN     (0xD010B0F0) = 0x00000000
XIMR_CLK_EN     (0xD010B100) = 0x00000000
DOLPHIN_CLK_EN  (0xD010B0C0) = 0x00000000
DOLPHIN_CLK_EN  (0xD010B0C0) = 0x00000000
APROC_CLK_EN    (0xD010B070) = 0x00000000
CAMIF_CLK_EN    (0xD010B080) = 0x00000000
AD_EN1(SER-ADC) (0xD9800358) = 0x00000000
FLTCEF0(DS-ADC) (0xD98080D8) = 0x00000000
CLKEN(PWC)      (0xD9870F04) = 0x00000000
CCLIME_CLK_EN   (0xD010B150) = 0x00000000
CCLIME_CLK_EN   (0xD010B150) = 0x00000000
MARIO_RX_CLK_EN (0xD010B160) = 0x00000000
MARIO_TX_CLK_EN (0xD010B170) = 0x00000000
CAIN_RX_CLK_EN  (0xD010B180) = 0x00000000
CAIN_TX_CLK_EN  (0xD010B190) = 0x00000000
DDRPHY_CLK_EN   (0xD010B500) = 0x00000000
MCPU_CLK_EN     (0xD010B520) = 0x00000000
SROMC0_CLK_EN   (0xD010B540) = 0x00000000
SROMC1_CLK_EN   (0xD010B550) = 0x00000000
XDMAC_CLK_EN    (0xD010B530) = 0x00000000
SATA_CLK_EN     (0xD010B590) = 0x00000000
PCIE0_CLK_EN    (0xD010B610) = 0x00000000
PCIE1_CLK_EN    (0xD010B620) = 0x00000000
PCIE2_CLK_EN    (0xD010B630) = 0x00000000
UHS2_CLK_EN     (0xD010B640) = 0x00000000
HIBIKI_CLK_EN   (0xD010B600) = 0x00000000
HDMI_CLK_EN     (0xD010B6B0) = 0x00000000
DSI_CLK_EN      (0xD010B6A0) = 0x00000000
DSI_CLK_EN      (0xD010B6A0) = 0x00000000
I2C0_CLK_EN     (0xD010B670) = 0x00000000
I2C1_CLK_EN     (0xD010B680) = 0x00000000
PMU_CLK_EN      (0xD010B660) = 0x00000000
PLL_SYS         (0xD010F200) = 0x00000000
PLL_AUDIO       (0xD010F210) = 0x00000000
PLL_VIDEO       (0xD010F204) = 0x00000000
PLL_PAL         (0xD010F208) = 0x00000000
PLL_NTSC        (0xD010F20C) = 0x00000000
PLL_PANEL       (0xD010F230) = 0x00000000
PLL_CARD        (0xD010F218) = 0x00000000
PLL_EXT         (0xD010F214) = 0x00000000

 [[ SRAM ]]
0xD7302300 = 0x00000000
0xD730230C = 0x00000000
0xD7302308 = 0x00000000
0xD7302304 = 0x00000000

 [[ PowerDown ]]
0xD7302018 = 0x00000000

********************************************************************


 PrintSRClk returned 71(0x47)
EOS RP

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #3 on: December 13, 2020, 06:12:52 PM »
I have started an update for firmware 1.6.0 and logged the output:

When entering firmware updater (after the loading screen):

Code: [Select]
FIRMUP_START!
     3157: 100283.538 [LENS] WARN [ARIMA]LensDrv_ComWithRetry err:2 (0,0)
     3158: 100283.551 [LENS] WARN [ARIMA]EFLensLib_Com ERR:0x10002,[13][80],2
     3285: 100441.682 [FM] Suspend : Normal
     3305: 100484.319 [FSU] PwControl: CARD_POWER_OFF End 41061us 2000
#

BootLoadErase SROM(start:0xE1FF8000)
complete
Write SROM
complete
CheckSum file=FACFA6A9 calc=FACFA6A9
Now jump to EOSRP160.FIR(0x00800120)!!
READY FIR
       14:     52.575 [PROPAD] ERROR SearchFromProperty DataType = 0x03000000(L:3290)
       15:     52.589 [PROPAD] ERROR SearchFromProperty DataType = 0x03000000(L:3290)
       16:     52.594 [PROPAD] ERROR SearchFromProperty DataType = 0x03000000(L:3290)
       63:     56.703 [PROPAD] ERROR SearchFromProperty DataType = 0x12000000(L:3290)
       64:     56.711 [PRP] ERROR NotFoundID:0x12000004,Func:0x008ACE82
       65:     57.032 [PROPAD] ERROR SearchFromProperty DataType = 0x12000000(L:3290)
       66:     57.040 [PRP] ERROR NotFoundID:0x12000000,Func:0x008ACE82
       70:     58.924 [UPDATE] startupInitializeComplete
       86:    160.013 [UPDATE] Mount Card2
      153:    345.603 VARI: 1 0 0 0
      156:    345.735 [PROPAD] ERROR SearchFromProperty DataType = 0x12000000(L:3290)
      157:    345.743 [PRP] ERROR NotFoundID:0x12000003,Func:0x008037E6
      158:    345.777 [DEVICE] ERROR PROP_ACTIVE_SWEEP_STATUS : 0
      159:    345.845 [UPD] Welcome to Update program
      160:    345.851 [UPD]   Program Ver.Master 0.2.0
      167:    345.962 [UPD] ------------ Initialized
      187:    362.998 0x0=SpecificToPartnerForFirmUp
      190:    363.075 [UPD] CurrentVersion=1.6.0
      208:    369.691 [FIO] ERROR @tUpdMgr FirstEnt(ecode=0x100b) L:1405
      213:    378.873 [UPD] FILESELECT_FIRMUP ffffffff
      218:    379.255 [UPD] 01 B:/EOSRP160.FIR 0

When starting the update process:

Code: [Select]
264:  52725.951 [UPD] FileSelect 0
      265:  52725.966 [UPD] CurrentFile=B:/EOSRP160.FIR
      289:  56613.927 0x0=SpecificToPartnerForFirmUp
      290:  56613.955 [UPD] StartFirmupProgress
      296:  56631.329 [UPD] Read file=B:/EOSRP160.FIR
      300:  58128.931 [UPD] V&D Updater V5
      301:  62250.558 [UPD] V&D Firmware V5
      403: 115892.943 [UPD] CheckSum file=0x4eb0a38d buffer=0x4eb0a38d

 next boot : get service from FROM
      415: 116219.746 [UPD] TAG type 256
      435: 118193.515 [UPD] detect File == FROM, No need to write. (No=0x1)
      437: 118193.535 [UPD] Erace add=0xe13ecf20 Tsize=0x13acf20 size=0x2f30e0

 next boot : get service from FROM
      448: 131293.247 [UPD] updProgress(01,142344/333819) 46percent
      451: 131305.313 [UPD] No=1 done
      453: 131305.331 [UPD] TAG type 256

 next boot : get service from FROM
      469: 131357.037 [UPD] detect File == FROM, No need to write. (No=0x2)
      471: 131357.057 [UPD] Erace add=0xe1f9df44 Tsize=0x4df44 size=0x520bc

 next boot : get service from FROM
      476: 132553.509 [UPD] updProgress(02,3932/333819) 47percent
      479: 132565.787 [UPD] No=2 done
      481: 132565.806 [UPD] TAG type 256

 next boot : get service from FROM
      497: 132585.260 [UPD] detect File == FROM, No need to write. (No=0x3)
      499: 132585.278 [UPD] Erace add=0xf0000014 Tsize=0x14 size=0xfec

 next boot : get service from FROM
      504: 132585.361 [UPD] updProgress(03,25/333819) 47percent
      507: 132597.474 [UPD] No=3 done
      509: 132597.492 [UPD] TAG type 256
      525: 132738.252 [UPD] detect File == FROM, No need to write. (No=0x4)
      527: 132738.272 [UPD] Erace add=0xf0627fbc Tsize=0x137fbc size=0x68044
      532: 134320.359 [UPD] updProgress(04,10224/333819) 50percent
      535: 134332.472 [UPD] No=4 done
      537: 134332.491 [UPD] TAG type 256
      555: 135169.633 [UPD] detect File == FROM, No need to write. (No=0x5)
      557: 135169.651 [UPD] Erace add=0xf0edb56c Tsize=0x83b56c size=0x124a94
      564: 140271.701 [UPD] updProgress(05,58982/333819) 68percent
      567: 140284.414 [UPD] No=5 done
      569: 140284.432 [UPD] TAG type 512
      611: 140395.480 [UPD] updProgress(06,102/333819) 68percent

 next boot : get service from FROM
      614: 140407.622 [UPD] No=6 done
      616: 140407.643 [UPD] TAG type 512
    21387: 221631.510 [UPD] updProgress(07,104858/333819) 100percent
    21390: 221643.797 [UPD] No=7 done
    21392: 221643.816 [UPD] COMPLETE_FIRMUP
    21396: 221873.039 0x0=SpecificToPartnerForFirmUp

MPU is also updated and does print this at the same time:

Code: [Select]
Waiting for receive binary

EEP write start...********************
Complete.

MPU Send RAM Program...

jump to RAM program

RAM exec Start


Write MPU Firm
S0 Check OK
erase Area
Write Blocks Start
****************************** ... (lots of stars)

Write Complete.

ErasedBlock:000007FE
ErasedPage :00000000
Erase Rest Block
ChkSum_WRITE=0x5F81A6BF
ChkSum_READ =0x5F81A6BF
ChkSum OK!
Update Successfly Complete.

when leaving updater:

Code: [Select]
24019: 643960.485 [UPD] SHUTDOWN_FIRMUP
    24036: 644099.539 [UPD] _REBOOT ICU -> MPU

MPU prints this when leaving:
Code: [Select]
MPU Update Done.
RESET

RSTFLG : 0100

MPU Update Complete
Clear Hold RAMsetCCSnkRst
disableBattUVLOInt
Reg0D: 00/00, Reg14: 7F/7F
setCCSnkRst
E0ON
E1ON
initBattery

On first boot after update:

Code: [Select]
BootLoadeK433 READY
       31:      8.813 [STARTUP] K433 ICU Firmware Version 1.6.0 ( 3.9.5 )
      175:    895.293 [BATCHK] ERROR PROP_ACTIVE_SWEEP_STATUS : 0
      184:    895.732 [BATCHK] ERROR PROP_ACTIVE_SWEEP_STATUS : 0
      382:    914.341 [STARTUP] update inner version string. "3.9.5 0110(0a)"
      383:    914.378 [STARTUP] update outer version string. "1.�

For some reason the outer version string is broken on the 1.6.0 update but it is stored properly anyway.

Output after downgrading to 1.5.0:

Code: [Select]
BootLoadeK433 READY
       31:      8.843 [STARTUP] K433 ICU Firmware Version 1.5.0 ( 3.8.7 )
      172:    725.251 [BATCHK] ERROR PROP_ACTIVE_SWEEP_STATUS : 0
      181:    725.695 [BATCHK] ERROR PROP_ACTIVE_SWEEP_STATUS : 0
      380:    744.557 [STARTUP] update inner version string. "3.8.7 0110(0a)"
      381:    744.581 [STARTUP] update outer version string. "1.5.0"
...

These update version string messages will only appear, if there is actually a change. When updating from 1.6.0 -> 1.6.0 they won't appear.

I have always wondered why there are two version numbers. You can find the second version number 3.9.5. in ROM1 usually. According to line 380 and 381 I do now know that 1.5.0 is the outer version number which the customer sees, and 3.8.7 is the version number canon uses inernally. Internal name for EOSRP is K433 by the way.


When beeing at the updater typing akashimorino will start an Eval Shell but with fewer and different options compared to main firmware. It is basically a mini DryOS which is loaded from the firmware update file.

Prompt is K433FU[1]> instead of K433[1]>. FU does probably stand for Firmware Updater.

Typing ? while beeing in the updater does list the following Event Functions:

Code: [Select]
K433FU[1]>?

[CompTestHDMI]
[CtrlSrvQueue]
[DISP_Evf_GetCurrentTemp]
[DISP_Evf_GetStartupTemp]
[DISP_Evf_ReceiveData]
[DISP_Evf_SendData]
[DISP_Evf_StopOrbit]
[DISP_Panel_SendData]
[DebugSTG_1SectorRead]
[DebugSTG_1SectorWrite]
[DebugSTG_BatchTest]
[DebugSTG_CacheUnCache]
[DebugSTG_ChangeNews]
[DebugSTG_CheckUHS2Mode]
[DebugSTG_CheckUHSIIHW]
[DebugSTG_ChgSDSpeedMode]
[DebugSTG_ClearSusAddr]
[DebugSTG_CreateDesignateFile]
[DebugSTG_EasyMount]
[DebugSTG_EasyUnMount]
[DebugSTG_EndChain]
[DebugSTG_EngineDriver]
[DebugSTG_ExtendDir]
[DebugSTG_GetCFASTCardInfo]
[DebugSTG_GetClusterSize]
[DebugSTG_GetEmptyInfo]
[DebugSTG_GetFatData]
[DebugSTG_GetFreeCluster]
[DebugSTG_GetSDCardInfo]
[DebugSTG_GetSDWriteSpeed]
[DebugSTG_GetSusAddr]
[DebugSTG_GetUHS2CardCapability]
[DebugSTG_Getdriveinfo]
[DebugSTG_InitTSM]
[DebugSTG_IsScriptMode]
[DebugSTG_IsUHS2Card]
[DebugSTG_IsUHSCard]
[DebugSTG_MemorySpeed]
[DebugSTG_MonPinActivate]
[DebugSTG_NewsGpoRead]
[DebugSTG_PowerOnFromNoCard]
[DebugSTG_PrintfLogEnable]
[DebugSTG_RandomWrite]
[DebugSTG_ReadDummyData]
[DebugSTG_ReadReg]
[DebugSTG_ResetMemAddr]
[DebugSTG_SDPreInit]
[DebugSTG_SDUhs2Dormant]
[DebugSTG_SDWRNative]
[DebugSTG_SetSDPowerLimit]
[DebugSTG_SetSDRMode]
[DebugSTG_SetSSCG]
[DebugSTG_SetSleepMode]
[DebugSTG_SplitPerformance]
[DebugSTG_StartChain]
[DebugSTG_StartInfWrite]
[DebugSTG_StopInfWrite]
[DebugSTG_SwitchPll]
[DebugSTG_UnMountDevice]
[DebugSTG_VFatOpen]
[DebugSTG_VFatSC]
[DebugSTG_VFatSearch]
[DebugSTG_WriteDummyData]
[DebugSTG_WriteRegData]
[DebugSTG_d]
[DebugSTG_dfile]
[DebugSTG_fileio]
[DebugSTG_getautable]
[DebugTch_AlterPanelSence]
[DebugTch_DebugTSMInit]
[DebugTch_Firmup]
[DebugTch_GetICVer]
[DebugTch_JDI_LAM_Cmd_StartScan]
[DebugTch_JDI_LAM_Cmd_StopScan]
[DebugTch_JDI_LAM_ReadProductID]
[DebugTch_JDI_LAM_Read]
[DebugTch_JDI_LAM_Write]
[DebugTch_LargeObject]
[DebugTch_RES_TFT]
[DebugTch_RegNotifyTouch]
[DebugTch_Rhoge]
[DebugTch_SetINTC]
[DebugTch_StartInform]
[DebugTch_StopInform]
[DebugTch_TerminalColor2]
[DebugTch_TerminalColor3]
[DebugTch_TerminalColor]
[DebugTch_WaitInt]
[DebugTch_WhichDrive]
[DebugTch_Whoge]
[DisableBootDisk]
[DisableFirmware]
[DisableMainFirm]
[DispColor]
[DispLayerOff]
[DispLayerOn]
[DispMarker]
[DispSaveProperty]
[DispSioMon]
[DlphWriteReg]
[DumpEvfReg]
[DumpPanelReg]
[DumpSinkSupport]
[EVP_CreateFROMPropertyHandleForTuneData2]
[EVP_CreateFROMPropertyHandleForTuneData]
[EVP_DeleteFROMPropertyHandleForTuneData]
[EnableBootDisk]
[EnableFirmware]
[EnableMainFirm]
[FA_TP_BackLightOff]
[FA_TP_Complete]
[FA_TP_Prepare]
[FA_TP_ReceiveData]
[FA_TP_ResetTP]
[FA_TP_SendData]
[FA_TP_SetWaitIntTime]
[FA_TP_TurnOff]
[IOPSenarios]
[MixFailCount]
[NewTaskShell]
[PrepareDisableFirmware]
[PrepareEnableFirmware]
[SetAccessLedMode]
[SetFactoryModeFlag]
[SetYccRgb]
[StartRedirectUART]
[StopRedirectUART]
[Test_ChgBLBrightness]
[Test_ChgEvfBrightness]
[Test_Evf_CurrentRegMap]
[Test_Evf_GetTempNullCount]
[Test_Evf_IndividualAdj]
[Test_Evf_SetBrightness]
[Test_Evf_TempCorrLogLevel]
[Test_Evf_TempCorrParam]
[Test_Evf_TempCorrResult]
[Test_ReceiveDataFromEVF]
[Test_SendDataToEvf]
[Test_SendDataToTft]
[Test_SetTFTTone]
[Test_VariangleNormal]
[Test_VariangleOpen]
[Test_VariangleSelf]
[UHS2Test]
[UHSIICompTest]
[UPD_AddPropertyDataIfNotExist]
[UPD_AddPropertyData]
[UPD_AddPropertyUINT32DataIfNotExist]
[UPD_AddPropertyUINT32Data]
[UPD_CopyCurrentFROMPropertyByDataType]
[UPD_DeletePropertyData]
[UPD_EraseFROMPropertySectorByDataType]
[UPD_GetPropertyData]
[UPD_SaveFixToFile]
[UPD_SavePropertyDataToTextFile]
[UPD_SaveRasenToFile]
[UPD_SaveRingToFile]
[UPD_SaveTuneToFile]
[UPD_SetPropertyData]
[UPD_SetPropertyUINT32Data]
[UPD_WriteFROMPropertyByDataType]
[UPD_WriteFROMPropertyPartly]
[UtilSTG_SetScriptMode]
[VramRead]
[VramStateNum]
[VramState]
[cfastSataCtrl]
[cfastSataPowerMode]
[cfastSataTransMode]
[cfastSatagen]
[cfastactpm]
[cfastplevel]
[cfastsanitize]
[cfastsata]
[cfastslumber]
[checksum]
[checksumarea]
[chgedid]
[chgmon]
[d]
[dfrom]
[dmescalation]
[dmhistory]
[dmprint]
[dmstart]
[dmstop]
[dmstore]
[drysh]
[dump]
[dumpf]
[dumpfrom]
[edid]
[filewrite]
[flasherase]
[flashwrite]
[gang]
[gpioread]
[gpiowrite]
[grep]
[harbint]
[hdmiddc]
[hdmiphy]
[hdmitc]
[i2c_read_proc]
[i2c_write_proc]
[i]
[logstat]
[memMap]
[memShow]
[objInfo]
[olddump]
[olddumpf]
[oldgrep]
[prop_deletepropertyfromfile]
[prop_getproperty]
[prop_getpropertylist]
[prop_prohibitfromaccess]
[prop_readpropertytofile]
[prop_saveproperty]
[prop_savepropertydual]
[prop_savepropertymultipartly]
[prop_savepropertypartly]
[prop_savewritemultipartly]
[prop_setidwritemultipartly]
[prop_setnumwritemultipartly]
[prop_testFactory]
[prop_testmultipartly1]
[prop_writemultipartly]
[prop_writepropertyfromfile]
[readedid]
[saveedid]
[setedid]
[sysConfig]
[taskShow]
[umDBack]
[umDComp]
[umDConSafe]
[umDConServ]
[umDCon]
[umDFail]
[umDFile]
[umDL]
[umDLow]
[umDPow]
[umDProg]
[umDR]
[umGetTest]
[umMenu]
[umPostMessage]
[umResume]
[umSendState]
[umSet]
[umSuspend]
[umfirminvalid]
[umfirmvalid]
[ummemdumpf]
[up]

This reveals some updater specific functions. To name a few:
Code: [Select]
[UPD_AddPropertyDataIfNotExist]
[UPD_AddPropertyData]
[UPD_AddPropertyUINT32DataIfNotExist]
[UPD_AddPropertyUINT32Data]
[UPD_CopyCurrentFROMPropertyByDataType]
[UPD_DeletePropertyData]
[UPD_EraseFROMPropertySectorByDataType]
[UPD_GetPropertyData]
[UPD_SaveFixToFile]
[UPD_SavePropertyDataToTextFile]
[UPD_SaveRasenToFile]
[UPD_SaveRingToFile]
[UPD_SaveTuneToFile]
[UPD_SetPropertyData]
[UPD_SetPropertyUINT32Data]
[UPD_WriteFROMPropertyByDataType]
[UPD_WriteFROMPropertyPartly]
...
[umDBack]
[umDComp]
[umDConSafe]
[umDConServ]
[umDCon]
[umDFail]
[umDFile]
[umDL]
[umDLow]
[umDPow]
[umDProg]
[umDR]
[umGetTest]
[umMenu]
[umPostMessage]
[umResume]
[umSendState]
[umSet]
[umSuspend]
[umfirminvalid]
[umfirmvalid]
[ummemdumpf]
[up]

Running drysh and extask while in the update file dialog does list the following running tasks:

Code: [Select]
K433FU[1]>dryshDry[WarpPUX]> Dry[WarpPUX]> extask
 Name            ID   State Pri         Wait(ID)      Stack  % StackTop StackEnd       SP Bound(ID)
CC_SWHACK  0093000f    WAIT  15  RCVMQ(0092000c)  00d0/1000 05 00140bf8 00141bf8 00141b58    BND(0)
EventMgr   0042000b    WAIT  17  RCVMQ(00410006)  0100/1000 06 001387b0 001397b0 001396e8    BND(0)
LEDCon     0046000c    WAIT  18  RCVMQ(00430007)  00e8/0400 22 0013e7e0 0013ebe0 0013eb28    BND(0)
CamConduct 004b000d    WAIT  18  EVENT(00470006)  0188/1000 09 0013ebe8 0013fbe8 0013fb60    BND(0)
PropMgr    0037000a    WAIT  20  RCVMQ(00360005)  0238/1000 13 001377a8 001387a8 001386e0    BND(0)
DispVCtrl  00980010    WAIT  21  RCVMQ(0097000d)  0428/1000 25 00141c00 00142c00 00142b38    BND(0)
DispDCtrl  009c0011    WAIT  21  RCVMQ(009b000e)  0244/1000 14 00142c08 00143c08 00143b40    BND(0)
FingerDet  00a20012    WAIT  22  RCVMQ(00a1000f)  01b8/1000 10 00143c10 00144c10 00144b48    BND(0)
CtrlSrv    00b70019    WAIT  24  EVENT(00b6000c)  00d8/4000 01 00149c40 0014dc40 0014db98    BND(0)
EvShel     00c9001a RUNNING  24         -------   0300/8000 02 0014dc48 00155c48 --------    BND(0)
ConsoleSvr 00d1001c    WAIT  24  RCVMQ(00cc001a)  01f8/0800 24 0013b3d0 0013bbd0 0013bb38    BND(0)
UpdMgrM    00a70014    WAIT  25  RCVMQ(00a60010)  0200/1000 12 00144c18 00145c18 00145b50    BND(0)
UpdApiTask 00af0018    WAIT  25  RCVMQ(00ae0014)  00b0/1000 04 00148c38 00149c38 00149bb8    BND(0)
LowConsole 00d0001b SUSPEND  25         -------   00d0/0800 10 0013abc8 0013b3c8 0013b358    BND(0)
tUpdMgr    00a90015    WAIT  26  RCVMQ(00a80011)  0798/1000 47 00145c20 00146c20 00146b80    BND(0)
UpgMpuMgr  00ad0017    WAIT  26  RCVMQ(00ac0013)  0198/1000 09 00147c30 00148c30 00148b68    BND(0)
UpgIcuMgr  00ab0016    WAIT  27  RCVMQ(00aa0012)  0198/1000 09 00146c28 00147c28 00147b60    BND(0)
BcSvc      00a50013    WAIT  29  EVENT(00a4000b)  00c0/0400 18 0013a7c0 0013abc0 0013ab30    BND(0)
CSMgrTask  0057000e    WAIT  30  RCVMQ(0055000b)  0638/1000 38 0013fbf0 00140bf0 00140b48    BND(0)
DbgMgr     002a0005    WAIT  31  RCVMQ(00290001)  02d8/1000 17 001397b8 0013a7b8 0013a6f0    BND(0)
idle       00010001   READY  33         -------   0080/0100 50 00137598 00137698 00137668    BND(0)
idle       00020002 RUNNING  33         -------   0070/0100 43 001376a0 001377a0 --------    BND(1)
EOS RP

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #4 on: December 13, 2020, 08:08:50 PM »
I have found a low level function for controlling LEDs:

Code: [Select]
int LEDDrv_SetLED(uint ledKind,uint controlId); // 0xe0697bca on firmware 1.6.0

This is also called by LedOn() and LedOff() internally.

ledKind param is the LED which shall be turned on or off.
controlId param is an ID for a an action to be done on the LED.

According to Canon code there are up to 15 controllable LEDs and up to 9 control IDs.
The control ID param can also be used to let an LED blink. There are different blink patterns to chose from:

Control ID:

Code: [Select]
0: Turns LED on
1: Turns LED off
2: Blinks LED
3: Blinks LED faster
4: Blinks LED more faster
5: Blinks LED even more faster
6: Blinks LED very slow with long ON time
7: Turns LED off (debug output says Keep Check!? maybe undefined)
8: freezes cam (undefined?)
9: untested yet

control ID 8 did freeze my camera and I had to perform a battery pull before getting it back to life. Thefere I have stopped getting higher with the IDs and did not test ID 9.

I have only tried LED IDs which are referenced in Canon code yet:

LED Kind:

Code: [Select]
0: SD Card LED
1: Auto Focus assist beam LED
2: Auto Focus assist beam LED
3: Auto Focus assist beam LED
4: Auto Focus assist beam LED
10: Auto Focus assist beam LED
...
12: SD Card LED
13: SD Card LED

Even if there are 15 LEDs in theory, I am only able to control the red SD card LED and the orange front Auto Focus Assist Beam LED. Multiple LED kind IDs can be mapped to the same LED multiple times.
All LED kinds which point to the same LED have to be turned off to turn the physical LED off.
For example: When switching on LED 0 and LED 12 (which are both mapped to the physical SD card LED), turning LED 0 off will not turn off the physical LED. Both LED kinds have to be turned off before it turns off physically. Blink patters do work on both phyiscal LEDs.

The camera does also have a green LED which indicates USB charging. This does only light up when charging via USB-C and the camera is turned off.
MPU does print the following messages when plugging in the USB-C cable:

Code: [Select]
VchkAd >= 5.5V
With thermister
LP-E17, OK for charge
CurLim:3.0A
RSTFLG : 0010

The green LED seems to be controlled by MPU and meight not be user controllable.
EOS RP

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #5 on: December 13, 2020, 08:27:48 PM »
I have found a fancy memory hexdumper from Canon which is called xd in drysh:

Code: [Select]
Dry[WarpPUX]> xd
xd [- | address(hex) | > | <]
xd {address(hex) | > | <} [line count]
xd {address(hex) | > | <}  line count  [b | w | l]
    >  : next page
    <  : previous page
    b  : 1byte access
    w  : 2byte access
    l  : 4byte access

Reading some bytes from an address gives the following output:

Code: [Select]
Dry[WarpPUX]> xd e0040000 15
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f  0123456789abcdef
e0040000: 0d 48 0c ee 10 0f bf f3 6f 8f 42 f2 00 00 c0 f2  .H......o.B.....
e0040010: 00 00 85 46 10 ee b0 5f 15 f0 0f 00 0a d1 40 f2  ...F..._......@.
e0040020: 04 40 cd f2 11 00 01 68 01 29 04 bf 03 21 01 60  .@.....h.)...!.`
e0040030: 00 f0 04 b8 00 f0 66 b8 60 ad 73 e0 22 48 23 49  ......f.`.s."H#I
e0040040: 23 4b 99 42 3c bf 50 f8 04 2b 41 f8 04 2b f8 d3  #K.B<.P..+A..+..
e0040050: 20 48 21 49 21 4b 99 42 3c bf 50 f8 04 2b 41 f8   H!I!K.B<.P..+A.
e0040060: 04 2b f8 d3 1c 48 19 1a 69 f1 4e f7 1a 48 1c 4b  .+...H..i.N..H.K
e0040070: 19 1a 69 f1 b3 f7 1b 4b 1b 49 4f f0 00 02 8b 42  ..i....K.IO....B
e0040080: 38 bf 43 f8 04 2b fa d3 18 48 19 49 19 4b 99 42  8.C..+...H.I.K.B
e0040090: 3c bf 50 f8 04 2b 41 f8 04 2b f8 d3 14 48 19 1a  <.P..+A..+...H..
e00400a0: 69 f1 32 f7 12 48 13 4b 19 1a 69 f1 97 f7 12 49  i.2..H.K..i....I
e00400b0: 12 4b 4f f0 00 02 99 42 38 bf 41 f8 04 2b fa d3  .KO....B8.A..+..
e00400c0: 0f 48 40 f0 01 00 00 47 00 64 2f e1 00 40 00 00  .H@....G.d/..@..
e00400d0: fc 87 02 00 fc ab 31 e1 00 b0 23 02 90 c7 30 02  ......1...#...0.
e00400e0: fc 87 02 00 fc 87 02 00 e8 8c 0a 00 8c c3 3e e1  ..............>.

Magic Lantern veterans meight already know it because it also exists on 50D but using this will make dumping of memory regions very convenient.
EOS RP

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #6 on: December 13, 2020, 08:42:50 PM »
I have found some EDID related functions:

Code: [Select]
edid
setedid
saveedid
readedid
chgedid

Just calling edid without having anything connected to HDMI will print 255 blocks like this:

Code: [Select]
K433[1]>edid
###################### Block[0] #######################
      : 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
-------------------------------------------------------
0x000 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x010 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x020 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x030 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x040 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x050 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x060 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x070 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

When connecting a HDMI cable to an Elgato HD60 Pro capture card I get the following two data blocks:

Code: [Select]
K433[1]>edid
###################### Block[0] #######################
      : 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
-------------------------------------------------------
0x000 : 00 ff ff ff ff ff ff 00 14 e1 01 00 00 00 00 00
0x010 : 11 17 01 03 80 00 02 78 1a cf 74 a3 57 4c b0 23
0x020 : 09 48 4c 00 00 00 81 c0 d1 c0 01 01 01 01 01 01
0x030 : 01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c
0x040 : 45 00 c4 8e 21 00 00 1e 00 00 00 18 00 1c 16 20
0x050 : 58 2c 25 00 c4 8e 21 00 00 9e 00 00 00 fc 00 45
0x060 : 6c 67 61 74 6f 0a 20 20 20 20 20 20 00 00 00 fd
0x070 : 00 17 3d 19 46 0f 00 0a 20 20 20 20 20 20 01 e5

###################### Block[1] #######################
      : 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
-------------------------------------------------------
0x000 : 02 03 26 f4 51 85 04 03 02 12 13 94 16 07 06 11
0x010 : 15 a1 a2 27 1f 10 23 09 07 01 83 01 00 00 67 03
0x020 : 0c 00 10 00 20 2d 8c 0a a0 14 51 f0 16 00 26 7c
0x030 : 43 00 c4 8e 21 00 00 98 8c 0a d0 8a 20 e0 2d 10
0x040 : 10 3e 96 00 c4 8e 21 00 00 19 01 1d 00 72 51 d0
0x050 : 1e 20 6e 28 55 00 c4 8e 21 00 00 1f 01 1d 80 18
0x060 : 71 1c 16 20 58 2c 25 00 c4 8e 21 00 00 9e 00 00
0x070 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f

When connecting the HDMI cable to a Samsung SyncMaster P2470HD monitor I get the following output:

Code: [Select]
K433[1]>edid

###################### Block[0] #######################
      : 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
-------------------------------------------------------
0x000 : 00 ff ff ff ff ff ff 00 4c 2d 0a 06 00 00 00 00
0x010 : 1d 13 01 03 80 10 09 78 0a ee 91 a3 54 4c 99 26
0x020 : 0f 50 54 bf ef 80 71 4f 81 00 81 40 81 80 95 00
0x030 : 95 0f a9 40 b3 00 02 3a 80 18 71 38 2d 40 58 2c
0x040 : 45 00 a0 5a 00 00 00 1e 01 1d 00 bc 52 d0 1e 20
0x050 : b8 28 55 40 a0 5a 00 00 00 1e 00 00 00 fd 00 18
0x060 : 4b 1a 51 17 00 0a 20 20 20 20 20 20 00 00 00 fc
0x070 : 00 53 79 6e 63 4d 61 73 74 65 72 0a 20 20 01 66

###################### Block[1] #######################
      : 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
-------------------------------------------------------
0x000 : 02 03 1c f1 4b 93 04 05 14 03 12 10 1f 20 21 22
0x010 : 23 09 07 07 67 03 0c 00 10 00 b8 2d 01 1d 80 d0
0x020 : 72 1c 16 20 10 2c 25 80 a0 5a 00 00 00 9e 01 1d
0x030 : 80 18 71 1c 16 20 58 2c 25 00 a0 5a 00 00 00 9e
0x040 : 01 1d 00 72 51 d0 1e 20 6e 28 55 00 a0 5a 00 00
0x050 : 00 1e 8c 0a d0 90 20 40 31 20 0c 40 55 00 a0 5a
0x060 : 00 00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00
0x070 : a0 5a 00 00 00 1e 00 00 00 00 00 00 00 00 00 c7

One can use an EDID decoder like this http://www.edidreader.com/ to decode the contents of the blocks. :)

With setedid or chgedid it meight be possible to change the HDMI mode. Different resolutions or a frame rate of 24fps instead of 60fps could be set here but I will come back to this once full ML runs on RP.

EOS RP

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #7 on: December 17, 2020, 01:37:15 PM »
When akashimorino is entered, the NewTaskShell command is registred as Event Procedure, and is executed. (Event Procedures are these functions which can be called by Canon Basic for example.)
NewTaskShell does spawn a EvShell (Event Shell) task and the well known prompt appers:

Code: [Select]
K433[1]>

When executing NewTaskShell while there is already a prompt, another EvShell Task is spawned and the following does happen:

Code: [Select]
K433[1]>NewTaskShell
Change Console K433[1]> To K433[2]>...

The number between the brackets is increased and does threfore show how many shell tasks are currently running:

Code: [Select]
K433[2]>NewTaskShell
Change Console K433[2]> To K433[3]>...

With quit command, all shells can be closed again:

Code: [Select]
K433[3]>quit
Quiting event shell...
Change Console K433[3]> To K433[2]>...

K433[2]>quit
Quiting event shell...
Change Console K433[2]> To K433[1]>...

K433[1]>quit
Console All Closed

It might be possible to switch between the shells somehow but I don't understand what the benefit of this would be. There meight be a feature we don't know about yet.
EOS RP

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #8 on: December 17, 2020, 06:42:49 PM »
I have found out by accident that the shell has some form of "tab completion" by typing a partial command and ending it with a ?:

Code: [Select]
K433[1]>eep_?
 [eep_erase]
 [eep_forcefrom_service]
 [eep_forcefrom_ring]
 [eep_boot_change_ring]
 [eep_force_sync]
 [eep_force_read]
 [eep_write]
 [eep_sync]
 [eep_write_single]
 [eep_read]
 [eep_show_service]
 [eep_boot_change_service]
 [eep_boot_check]

Code: [Select]
K433[1]>eep_for?
 [eep_forcefrom_service]
 [eep_forcefrom_ring]
 [eep_force_sync]
 [eep_force_read]

If there is only one result found it will be autocompleted in the prompt so you can just hit enter to execute:

Code: [Select]
K433[1]>Cam?
 [CamInfo_Debug]
K433[1]>CamInfo_Debug

EOS RP

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #9 on: December 17, 2020, 11:53:19 PM »
Code: [Select]
K433[1]>eep_read 0 0x8000
[Notice] Target is Not EEP_2ND

address   0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
00000000 00 AA 00 AA FF FF FF FF D0 44 00 00 00 80 00 00
00000010 00 AA 00 AA FF FF FF FF BC 00 00 00 00 01 00 00
00000020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
...

Does a hex dump from a region of the ICUs EEPROM. First argument is start address, second argument is end address.
Addresses are decimal by default. When adding a 0x prefix, numbers are interpreted as hex values.

A full EEPROM dump of EOS RP can be done by executing the command from above (range from 0 to 0x8000).

Reading memory after 0x8000 will make the camera crash and cameras display will show error 70.
Camera must be reset by a battery pull then:

Code: [Select]
K433[1]>eep_read 0x8000 0x9000
[Notice] Target is Not EEP_2ND

address   0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
00008000 00      3468: 216045.037 ERROR [EEP ERROR] ReadEEPROM : Unavailable Address !!
     3469: 216045.188 [STARTUP] ERROR ASSERT : Device::eeprom.c
     3470: 216045.210 [STARTUP] ASSERT : Task = EvShel
     3471: 216045.216 [STARTUP] ASSERT : Core 0
     3472: 216045.220 [STARTUP] ASSERT : Line 1419
     3473: 216045.227 [STARTUP] < StackDump >
     3474: 216045.230 [STARTUP] SP: 0x00268294

Therefore the size of ICUs EEPROM of EOS RP is 32KB.

Content of EEPROM is unknown yet. Readable content I have found is:

- Version information of ICU and MPU: 1.6.0.0110(0a)
- address of canons cloud service: jp.co.canon.ic.cameraconnect. Replacing this address in EEPROM could make it possible to let the camera connect to somewhere else.
- last used lens: EF50mm f/1.8 STM

However, I didn't find some expected values like shutter count or wifi passwords.
On every read of the EEPROM the message [Notice] Target is Not EEP_2ND is displayed. This implies, that there is a second EEPROM somewhere.
EOS RP

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #10 on: December 18, 2020, 02:09:01 AM »
I have found the functions for creating a category and an entry for drysh on EOS RP:

Code: [Select]
int drysh_add_category(char* pCategoryName);

Arg NameDescription
pCategoryNamename of the category which is displayed in the help menu

returns the ID of the created category.

Code: [Select]
int drysh_add_command(int categoryId, void* pNullUnknown, char* pName, void* pFunction, char* pUsageInfo);

Arg NameDescription
int categoryIdThe category where the entry shall be added
void* pNullUnknownUnknown. Is always set to 0 by canon code in RP firmware.
char* pNameName of the command
void* pFunctionFunction pointer to the function which the command will execute
char* pUsageInfoOptional Information which is displayed when typing help <command>

returns the id of the entry.

Function pointer definitions (for EOS RP firmware 1.6.0):

Code: [Select]
int (*drysh_add_category)(char *pCategoryName) = 0xe06687b5;
int (*drysh_add_command)(int categoryId, void *pNullUnknown, char *pName, void *pFunction, char *pUsageInfo) = 0xe06688d5;

And here is some example code which shows how to use it:
Code: [Select]
// This function is passed to drysh_add_command() and called when executing ml_version command on drysh:
void ml_version() {
  uart_printf("Camera: EOS RP Firmware 1.6.0\nMagic Lantern: 0.1 (pre alpha)\n");
}

void magic_lantern_task() {
...
const int categoryId = drysh_add_category("Magic Lantern"); // Create a Magic Lantern category
drysh_add_command(categoryId, 0, "ml_version", ml_version, "Displays version information of Magic Lantern."); // Create a ml_version entry
...
}

On the UART shell it looks like this when beeing in drysh:

Code: [Select]
K433[1]>Dry[WarpPUX]> ?
[Kern]
 extask  memmap  meminfo  mkcfg  dminfo  exobjinfo  stdlibcfg  efatcfg
 sysvers  xd  xm  prio  resume  suspend  release  sem  mutex  event  mq  exit
[Utility]
 uart_change
[Magic Lantern]
 ml_version

Dry[WarpPUX]> help ml_version
ml_version : Displays version information of Magic Lantern.
Dry[WarpPUX]> ml_version
Camera: EOS RP Firmware 1.6.0
Magic Lantern: 0.1 (pre alpha)

That way we can register our own debugging functions now.
EOS RP

nikfreak

  • Developer
  • Hero Member
  • *****
  • Posts: 1193
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #11 on: December 18, 2020, 02:34:12 PM »
superb! Just superb! Please continue!  :-*
70D.112 & 100D.101

coon

  • Developer
  • Member
  • *****
  • Posts: 105
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #12 on: May 24, 2021, 12:46:27 PM »
FA_MechaShutterClose (as the name already suggests) closes the shutter.
FA_MechaShutterOpen opens the shutter.

It is possible to call FA_MechaShutterClose and turn off the camera. Shutter will open automatically once the camera is turned on again.
This will make it possible to close the shutter once the camera is turned off on RP, like it already happens on R, R6, R5 etc.
EOS RP

kitor

  • Developer
  • Senior
  • *****
  • Posts: 281
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #13 on: June 03, 2021, 12:27:35 PM »
readid 1 gives some lens details:

Code: [Select]
[LENS] ------------------------------------------
[LENS] LENSID1 90
[LENS] LENSID[7:8] 53 b8
[LENS] LENSID[13:14] 18 88
[LENS] LENSID[16:20] 9c 7 42 40 ad
[LENS] LENSID[21:25] a9 34 fd d8 e7
[LENS] LENSID[26:30] c8 0 0 f9 c0
[LENS] LENSID[31:35] c1 d0 ff 28 1
[LENS] LENSID[36:40] f8 0 0 0 0
[LENS] LENSID[41:45] 0 0 0 0 0
[LENS] lens_id:                   0xeefe
[LENS] lens_id_ex:                0x102
[LENS] fl_wide:                   0x18
[LENS] fl_tele:                   0x69
[LENS] lens_serial:               0x68 0x3 0x0 0x48 0x9
[LENS] extender_id:               0xff 0x0 0x0 0x0 0x0
[LENS] lens_firm_ver:             0x2 0x0 0x6
[LENS] field_vision:              0x0
[LENS] lens_type:                 0x3
[LENS] lens_name_length:          0x17
[LENS] zoom_pos_size:             0x3f
[LENS] focus_pos_size:            0x1f
[LENS] fine_focus_size:           0x1f
[LENS] av_d1p_lens:               0x1
[LENS] av_slow_enable:            0x1
[LENS] av_stop_div:               0x2
[LENS] av_max_spd:                0x262
[LENS] av_silent_spd:             0x3d
[LENS] av_min_spd:                0x1
[LENS] mount_size:                0x0
[LENS] lens_switch_exist:         0x1
[LENS] lens_is_switch_exist:      0x1
[LENS] lens_is_func_exist:               0x1
[LENS] af_speed_setting_available:0x1
[LENS] dafLimitFno:                      0xd
[LENS] distortionCorrectInfo:     0x0
[LENS] bcfInfo:                              0x0
[LENS] pza_exist:                 0x0
[LENS] pza_id:                    0x0 0x0 0x0 0x0 0x0
[LENS] pza_firm_ver:              0x0 0x0 0x0
[LENS] pza_firmup:                0x0
[LENS] d1Adp_count:               0x0
[LENS] d1Adp1_id:                 0x0
[LENS] d1Adp1_func1:              0x0
[LENS] d1Adp1_firm_ver:           0x0 0x0 0x0
[LENS] d1Adp2_id:                 0x0
[LENS] d1Adp2_func1:              0x0
[LENS] d1Adp2_firm_ver:           0x0 0x0 0x0
[LENS] demandWarnDispFromLens:    0x0
[LENS] demandWarnDispFromAdp:     0x0
[LENS] colorBalance:              0x1
[LENS] ------------------------------------------

lensmoni <number> gives some lens details too (eg 10 prints lens name)
EOS R, 200D, 750D, 50D...

axelcine

  • Member
  • ***
  • Posts: 218
  • Hi, I'm Axel, editor, journalist and photographer
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #14 on: June 17, 2021, 08:42:20 PM »
Dear Coon - where can I get the FA_MechaShutterClose... routine and implement it on my RP? Your solution seems to be nothing less than fabulous - and the open shutter is a problem for those of us who have to change our lenses ever so often.
Thanks for your effort.
EOS RP, 5dIII.113/Batt.grip, 5dIII.123, 700d/Batt.Grip/VF4 viewfinder + a truckload of new and older Canon L, Sigma and Tamron glass

kitor

  • Developer
  • Senior
  • *****
  • Posts: 281
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #15 on: June 18, 2021, 06:26:29 PM »
At the moment: be patient and do not hijack research threads (there's R/RP thread in proper section).

This requires a special Magic Lantern build. At this moment R/RP/200D/M50 support is very hackish and we do a lot of potentially unsafe things.
However it is (kind of) okay as long as we risk only our own devices.

We need to fix those first (and this will take time) before we will be confident enough to provide even "unstable, not well tested, use at own risk" builds.

Also: current implementation will only close shutter on shutdown. It won't do it after lens is detached on running camera.
This should be possible too and would be a very nice feature even for R. However - no research was done (yet) and don't expect any to be done soon. We have more basic problems to solve first ;)
EOS R, 200D, 750D, 50D...

axelcine

  • Member
  • ***
  • Posts: 218
  • Hi, I'm Axel, editor, journalist and photographer
Re: DIGIC 8 DryOS Shell (drysh) investigation
« Reply #16 on: June 20, 2021, 09:53:39 PM »
Thanks, Kitor. I know the rules here, having been a member for several years. But of course I'm looking forward to good news. So of course I'm not hijacking research threads, just asking as politely as possible for a link - which as you say, isn't there for the moment. So I just wait, excited and hopeful. Good luck to all of you excellent software detectives.
EOS RP, 5dIII.113/Batt.grip, 5dIII.123, 700d/Batt.Grip/VF4 viewfinder + a truckload of new and older Canon L, Sigma and Tamron glass