diff --git a/firmware/ec/.ccsproject b/firmware/ec/.ccsproject new file mode 100644 index 0000000000..4b71c4173c --- /dev/null +++ b/firmware/ec/.ccsproject @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/firmware/ec/.cproject b/firmware/ec/.cproject new file mode 100644 index 0000000000..cfc755074a --- /dev/null +++ b/firmware/ec/.cproject @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/firmware/ec/.gitattributes b/firmware/ec/.gitattributes new file mode 100644 index 0000000000..7b70dd67fa --- /dev/null +++ b/firmware/ec/.gitattributes @@ -0,0 +1,6 @@ +# Enable autocrlf by default for this respository (in case global setting is different) +* text=auto + +# Explicitely ensure our source files get EOL converted +*.c text +*.h text diff --git a/firmware/ec/.gitignore b/firmware/ec/.gitignore new file mode 100644 index 0000000000..0272aabef7 --- /dev/null +++ b/firmware/ec/.gitignore @@ -0,0 +1,10 @@ +/Debug/ +/Release/ + +.xdchelp +/.config/ +/.launches + +# NOTE: this should only be ignored when "Manage the project's +# target-configuration automatically" is selected in Properties->CCS General +/targetConfigs/ diff --git a/firmware/ec/.project b/firmware/ec/.project new file mode 100644 index 0000000000..646b656d0e --- /dev/null +++ b/firmware/ec/.project @@ -0,0 +1,28 @@ + + + OpenCellular + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.rtsc.xdctools.buildDefinitions.XDC.xdcNature + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + diff --git a/firmware/ec/.settings/org.eclipse.cdt.codan.core.prefs b/firmware/ec/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000000..a3d4231390 --- /dev/null +++ b/firmware/ec/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,69 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false +org.eclipse.cdt.codan.checkers.errnoreturn=Warning +org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false} +org.eclipse.cdt.codan.checkers.errreturnvalue=Error +org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.checkers.noreturn=Error +org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false} +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false} +org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning +org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true} +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error +org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error +org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false} +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false} +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")} +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}} diff --git a/firmware/ec/.settings/org.eclipse.cdt.core.prefs b/firmware/ec/.settings/org.eclipse.cdt.core.prefs new file mode 100644 index 0000000000..7cc203caf4 --- /dev/null +++ b/firmware/ec/.settings/org.eclipse.cdt.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +environment/project/com.ti.ccstudio.buildDefinitions.TMS470.Debug.229522676/append=true +environment/project/com.ti.ccstudio.buildDefinitions.TMS470.Debug.229522676/appendContributed=true diff --git a/firmware/ec/.settings/org.eclipse.cdt.debug.core.prefs b/firmware/ec/.settings/org.eclipse.cdt.debug.core.prefs new file mode 100644 index 0000000000..2adc7b1dde --- /dev/null +++ b/firmware/ec/.settings/org.eclipse.cdt.debug.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker diff --git a/firmware/ec/.settings/org.eclipse.core.resources.prefs b/firmware/ec/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..1134de1cc1 --- /dev/null +++ b/firmware/ec/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,78 @@ +eclipse.preferences.version=1 +encoding//Debug/config/oc-sdr/subdir_rules.mk=UTF-8 +encoding//Debug/config/oc-sdr/subdir_vars.mk=UTF-8 +encoding//Debug/makefile=UTF-8 +encoding//Debug/objects.mk=UTF-8 +encoding//Debug/platform/oc-sdr/cfg/subdir_rules.mk=UTF-8 +encoding//Debug/platform/oc-sdr/cfg/subdir_vars.mk=UTF-8 +encoding//Debug/platform/oc-sdr/schema/subdir_rules.mk=UTF-8 +encoding//Debug/platform/oc-sdr/schema/subdir_vars.mk=UTF-8 +encoding//Debug/platform/oc-sdr/subdir_rules.mk=UTF-8 +encoding//Debug/platform/oc-sdr/subdir_vars.mk=UTF-8 +encoding//Debug/sources.mk=UTF-8 +encoding//Debug/src/Devices/i2c/subdir_rules.mk=UTF-8 +encoding//Debug/src/Devices/i2c/subdir_vars.mk=UTF-8 +encoding//Debug/src/Devices/ocmp_wrappers/subdir_rules.mk=UTF-8 +encoding//Debug/src/Devices/ocmp_wrappers/subdir_vars.mk=UTF-8 +encoding//Debug/src/Devices/subdir_rules.mk=UTF-8 +encoding//Debug/src/Devices/subdir_vars.mk=UTF-8 +encoding//Debug/src/Devices/uart/subdir_rules.mk=UTF-8 +encoding//Debug/src/Devices/uart/subdir_vars.mk=UTF-8 +encoding//Debug/src/comm/subdir_rules.mk=UTF-8 +encoding//Debug/src/comm/subdir_vars.mk=UTF-8 +encoding//Debug/src/devices/i2c/subdir_rules.mk=UTF-8 +encoding//Debug/src/devices/i2c/subdir_vars.mk=UTF-8 +encoding//Debug/src/devices/ocmp_wrappers/subdir_rules.mk=UTF-8 +encoding//Debug/src/devices/ocmp_wrappers/subdir_vars.mk=UTF-8 +encoding//Debug/src/devices/subdir_rules.mk=UTF-8 +encoding//Debug/src/devices/subdir_vars.mk=UTF-8 +encoding//Debug/src/devices/uart/subdir_rules.mk=UTF-8 +encoding//Debug/src/devices/uart/subdir_vars.mk=UTF-8 +encoding//Debug/src/drivers/subdir_rules.mk=UTF-8 +encoding//Debug/src/drivers/subdir_vars.mk=UTF-8 +encoding//Debug/src/helpers/subdir_rules.mk=UTF-8 +encoding//Debug/src/helpers/subdir_vars.mk=UTF-8 +encoding//Debug/src/interfaces/Ethernet/subdir_rules.mk=UTF-8 +encoding//Debug/src/interfaces/Ethernet/subdir_vars.mk=UTF-8 +encoding//Debug/src/interfaces/UART/subdir_rules.mk=UTF-8 +encoding//Debug/src/interfaces/UART/subdir_vars.mk=UTF-8 +encoding//Debug/src/interfaces/USB/subdir_rules.mk=UTF-8 +encoding//Debug/src/interfaces/USB/subdir_vars.mk=UTF-8 +encoding//Debug/src/post/subdir_rules.mk=UTF-8 +encoding//Debug/src/post/subdir_vars.mk=UTF-8 +encoding//Debug/src/registry/subdir_rules.mk=UTF-8 +encoding//Debug/src/registry/subdir_vars.mk=UTF-8 +encoding//Debug/src/subdir_rules.mk=UTF-8 +encoding//Debug/src/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/bms/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/bms/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/debug/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/debug/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/ethernet/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/ethernet/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/gpp/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/gpp/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/hci/led/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/hci/led/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/hci/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/hci/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/obc/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/obc/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/power/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/power/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/rffe/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/rffe/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/sdr/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/sdr/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/sync/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/sync/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/sys/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/sys/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/testModule/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/testModule/subdir_vars.mk=UTF-8 +encoding//Debug/src/subsystem/watchdog/subdir_rules.mk=UTF-8 +encoding//Debug/src/subsystem/watchdog/subdir_vars.mk=UTF-8 +encoding//Debug/src/utils/subdir_rules.mk=UTF-8 +encoding//Debug/src/utils/subdir_vars.mk=UTF-8 +encoding//Debug/subdir_rules.mk=UTF-8 +encoding//Debug/subdir_vars.mk=UTF-8 diff --git a/firmware/ec/Makefile b/firmware/ec/Makefile index caea6de085..da7b8aa9f6 100644 --- a/firmware/ec/Makefile +++ b/firmware/ec/Makefile @@ -1,11 +1,3 @@ -# -# Copyright (c) 2017-present, Facebook, Inc. -# All rights reserved. -# -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. An additional grant -# of patent rights can be found in the PATENTS file in the same directory. -# # # Main makefile for OCWare. @@ -15,13 +7,13 @@ # Set proper path. ###################### -OCWARE_DIR=/Users/kashi/work/OpenCellular/review/firmware -TIRTOS_DIR=/Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14 -XDCTOOLS_DIR=/Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core -TOOLCHAIN=/Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3 +OCWARE_DIR=/home/kashif/OpenCellular/OCWare/firmware +TIRTOS_DIR=/home/kashif/OpenCellular/OCWare/firmware/ti/tirtos_tivac_2_16_01_14/ +XDCTOOLS_DIR=/home/kashif/OpenCellular/OCWare/firmware/ti/xdctools_3_32_01_22_core/ +TOOLCHAIN = /usr ####################### -# Do not change anything below this, unless you know what you really want! +# Do not change anything below this. ####################### BIOS_DIR=$(TIRTOS_DIR)/products/bios_6_45_02_31/ @@ -34,15 +26,14 @@ XDCPATH_LIST = \ $(BIOS_DIR)/packages \ $(UIA_DIR)/packages \ $(TIRTOS_DIR)/packages \ - $(TIRTOS_DRIVER_DIR)/packages \ - $(NDK_PATH) \ + $(TIRTOS_DRIVER_DIR)/packages TARGET = gnu.targets.arm.M4F PLATFORM = ti.platforms.tiva:TM4C1294NCPDT:true -MCU=TM4C1294NCPDT +PART=TM4C1294NCPDT ROV_XS_SUFFIX = pm4fg CONFIGURO_OPTS = -v -CONFIG=OpenCellular +CONFIG=bld empty:= space:= $(empty) $(empty) XDCPATH = $(subst $(space),;,$(XDCPATH_LIST)) @@ -51,24 +42,19 @@ CONFIGURO = $(XDCTOOLS_DIR)/xs --xdcpath="$(XDCPATH)" \ xdc.tools.configuro $(CONFIGURO_OPTS) # Find all C source/object files. -SRC_FILE = $(shell find . -name '*.c' -not -path "./OpenCellular/*" -not -path "*test/*") -MAIN_OBJS = $(patsubst %.c, %.o, $(SRC_FILE)) +SRC_FILE = $(shell find . -name '*.c') +MAIN_OBJS = $(patsubst %.c,%.o,$(wildcard *.c */*.c)) -CC = $(TOOLCHAIN)/bin/arm-none-eabi-gcc -std=c99 -CFLAGS = -mcpu=cortex-m4 -mthumb -mabi=aapcs -mapcs-frame -CFLAGS += @$(CONFIG)/compiler.opt -O3 -g -Wconversion -Wno-implicit -CFLAGS += -Wfatal-errors -w -DPART_$(MCU) -c -CFLAGS += -I$(TIVAWARE_PATH) -I$(OCWARE_DIR)/src -DPART_TM4C1294NCPDT -Dgcc -CFLAGS += -DTIVAWARE -DDEBUG_LOGS -D_POSIX_SOURCE +CC = $(TOOLCHAIN)/bin/arm-none-eabi-gcc +CFLAGS = -Wall -mcpu=cortex-m4 -mthumb -mabi=aapcs -mapcs-frame @$(CONFIG)/compiler.opt -O3 -g +CFLAGS += -DPART_$(MCU) -c -I$(TIVAWARE_PATH) -I$(OCWARE_DIR)/src CFLAGS += -I$(XDC_PATH) -I$(BIOS_PATH) -I$(TIDRIVER_PATH) -I./ -CFLAGS += -I$(OCWARE_DIR)/inc -I$(OCWARE_DIR)/src/ -I$(OCWARE_DIR) -CFLAGS += -DFW_REV_C -DSDR_CURRENT_SENSOR -CFLAGS += -I./ -I$(NDK_PATH) -I$(NDK_PATH)/ti/ndk/inc/bsd/ -I$(BIOS_DIR)/packages/ti/sysbios/posix +CFLAGS += -I$(OCWARE_DIR)/src/inc +CFLAGS += -I./ -I$(NDK_PATH) CFLAGS += -I$(TIVAWARE_DIR) -CFLAGS += -ffunction-sections -fdata-sections -MD -pedantic LD = $(TOOLCHAIN)/bin/arm-none-eabi-gcc -LFLAGS = -Wl,-Map,$(CONFIG).map -Wl,-T,$(CONFIG)/linker.cmd -L$(TIVAWARE_DIR)/driverlib/gcc -L$(TIVAWARE_DIR)/grlib/gcc -L$(TIVAWARE_DIR)/usblib/gcc -lgr -lusb -ldriver -march=armv7e-m -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -nostartfiles -static -Wl,--gc-sections -L$(BIOS_DIR)/gnu/targets/arm/libs/install-native/arm-none-eabi/lib/armv7e-m/fpu -lgcc -lc -lm -lrdimon +LFLAGS = -nostartfiles -static -Wl,--gc-sections -Wl,-T,../OC_CONNECT1.cmd -Wl,-T,$(CONFIG)/linker.cmd .PRECIOUS: %/compiler.opt %/linker.cmd @@ -84,12 +70,10 @@ all: main.out $(CC) $(CFLAGS) -c $< %.out: $(CONFIG)/linker.cmd $(MAIN_OBJS) - $(LD) $(MAIN_OBJS) $(LFLAGS) -o $@ + $(LD) $(LFLAGS) -o $@ $(MAIN_OBJS) clean: - -rm -rf *.o *.out *.d *.map *.rov.xs $(CONFIG) $(MAIN_OBJS); \ - find . -name "*.d" -type f -delete; \ - find . -name "*.o" -type f -delete; + -rm -rf *.o *.out *.d *.rov.xs $(CONFIG) $(MAIN_OBJS) test: cd test && $(MAKE) diff --git a/firmware/ec/OC_CONNECT1.cmd b/firmware/ec/OC_CONNECT1.cmd new file mode 100644 index 0000000000..d7afdd4872 --- /dev/null +++ b/firmware/ec/OC_CONNECT1.cmd @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +/* Define the memory block start/length for the OC_CONNECT1 M4 */ + +MEMORY +{ + FLASH (RX) : origin = 0x00000000, length = 0x00100000 + SRAM (RWX) : origin = 0x20000000, length = 0x00040000 +} + +/* Section allocation in memory */ + +SECTIONS +{ + .text : > FLASH + .const : > FLASH + .cinit : > FLASH + .pinit : > FLASH + .init_array : > FLASH + + .data : > SRAM + .bss : > SRAM + .sysmem : > SRAM + .stack : > SRAM +} diff --git a/firmware/ec/OpenCellular.cmd b/firmware/ec/OpenCellular.cmd deleted file mode 100644 index 62a6e68e87..0000000000 --- a/firmware/ec/OpenCellular.cmd +++ /dev/null @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2016, Texas Instruments Incorporated -* All rights reserved. -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* * Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* * Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* * Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ -/* -* ======== DK_TM4C129X.lds ======== -* Define the memory block start/length for the TM4C129XNCZAD -*/ - -MEMORY -{ - FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 - SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 -} - -SECTIONS -{ - /* code */ - .text : - { - _text = .; - /* ensure ISR vectors are not removed by linker */ - KEEP(*(.isr_vector)) - *(.text*) - *(.rodata*) - _etext = .; - } > FLASH - - /* static data */ - .data : AT(ADDR(.text) + SIZEOF(.text)) - { - _data = .; - *(vtable) - *(.data*) - _edata = .; - } > SRAM - - /* static uninitialized data */ - .bss : - { - _bss = .; - *(.bss*) - *(COMMON) - _ebss = .; - } > SRAM -} diff --git a/firmware/ec/README b/firmware/ec/README deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/firmware/ec/coding_style_guide b/firmware/ec/coding_style_guide deleted file mode 100644 index ac6d9447fa..0000000000 --- a/firmware/ec/coding_style_guide +++ /dev/null @@ -1,369 +0,0 @@ - -OpenCellular Coding Style -========================= - -We follow Linux Kernel coding style with following exceptions. - -Exceptions: ----------- - -o 4-space indentation -o Typedef enums and structs -o indent case labels - switch (suffix) { - case 'G': - case 'g': - mem <<= 30; - break; - case 'M': - case 'm': - mem <<= 20; - break; - case 'K': - case 'k': - mem <<= 10; - /* fall through */ - default: - break; - } - -Additions: ---------- - -o Non-public functions (functions not exported in header for use by other - modules) should be static -o Unless absolutely necessary, global variables within a module should be static -o Avoid using forward declarations, just #include headers when possible -o Static variables of the form s_variableName -o Non-static functions of the form ModuleName_functionName() -o File names - o C and header files in same directory - o ModuleName.c/h - o All directory names should be lowercase, with underscores added as - needed to improve readability (e.g. my_complex_directory/Foo.h) -o Hex values are upper-case: 0xFB -o Unless size doesn't matter, use fixed-width types defined in - (uint32_t, int8_t, etc.) -o Enums - o ALL_CAPS, start with enum name (within reason) for namespacing/readability - typedef enum SbdFlowControl { - SBD_FLOW_CONTROL_DISABLED = 0, - SBD_FLOW_CONTROL_HW = 3, - SBD_FLOW_CONTROL_SW = 4, - SBD_FLOW_CONTROL_ALL = 6 - } SbdFlowControl; - typedef enum AtLineType { - AT_LINE_TYPE_RESPONSE = 0, - AT_LINE_TYPE_CMD_ECHO, - - COUNT_AT_LINE_TYPE - } AtLineType; - - o #includes should be in alphabetical order & logically separated: - /* Module header[s] */ - … - /* stdlib headers */ - … - /* TI includes */ - … - /* OC includes */ - o Wrap functions like this: - ReturnType ReallyLongFunctionName(Type par_name1, Type par_name2, - Type par_name3) - { - DoSomething(); - ... - } - - ReturnType ReallyReallyReallyLongFunctionNameThatJustWillNotFit( - Type par_name1, /* double indent */ - Type par_name2, - Type par_name3) - { - DoSomething(); /* regular indent */ - ... - } - -o No spaces after end of line -o No blank lines at the end of file -o Each file should have description of what it does, which function it contains - etc. -o Each function should describe what operation it execute on the parameters and - what it returns. If there are any parameter overloaded, specify it clearly. -o No dead code. -o Function shouldn't be more than one page. -o Central exiting of function -o Use /* */ for comments. Multiple lines: - /* - * - */ -o MACROS are NOT to define functions. MACROS shouldn't effect control or effect - registers or changes the system states. - - -Sample Code: ------------ - -ExampleModule.h -/* - * Copyright 2004-present Facebook. All Rights Reserved. - * - * See Canonical Style Documents at: - * - * TODO: reference style document - * - * Example header that demonstrates our current C style. The goal of this - * code, while nonsensical, is to show a visual example of as many of our - * style rules/guidelines as possible. - * - * Note the #include order: stdlib includes, TI includes, then OpenCellular - * includes in quotes (""). Each group should be in alphabetical order. - * Additionally, we only want to include the headers necessary for the - * interfaces/structs/enums in the header, everything else should be in the - * source file - */ - -/* TODO: what do we want to do for #include guards? #pragma once doesn't have - * namespacing issues and is generally faster, but not guaranteed to be portable - */ -#ifndef EXAMPLEMODULE_H_ -#define EXAMPLEMODULE_H_ - -/* stdlib includes */ -#include -#include - -/* OC includes */ -#include "some_project_folder/SomeDependency.h" - -/* - * Initializes the module and stuff - */ -void ExampleModule_init(void); - -/* - * Takes lots of arguments, but doesn't do much that's useful with them. - * - * @param count an integer input (by value) - * @param value an enum input (by value) - * @param name a string input (by const-ref) - * @param outVal output integer arg (by pointer) - * - * @return true if function succeeds, false otherwise - */ -bool ExampleModule_funcWithManyArgs(int64_t count, - EnumType value, - const char *name, - uint32_t *outVal); - - -/* - * Another useless function - * - * @param param1 first example integer (by value) - * @param param2 second example integer (by value) - * @param param3 third example integer (by const-ref) - */ -void ExampleModule_methodThatHasAReallyLongNameOhCrapImRunningOutOfSpace( - int param1, - bool param2, - const uint32_t *param3); - -#endif /* EXAMPLEMODULE_H_ */ -ExampleModule.c -/* - * Copyright 2004-present Facebook. All Rights Reserved. - * - * See additional comments in: ExampleModule.h - * - * Note the #include order: First our related .h file, then the same - * order as we'd do elsewhere (see ExampleModule.h). - * - * This file is formatted with clang-format -i - */ - -#include "ExampleModule.h" - -/* stdlib includes */ -#include -#include -#include - -/* TI includes */ -#include -#include - -/* OC includes */ -#include "drivers/Power.h" -#include "drivers/Rf.h" -#include "helpers/Memory.h" -#include "helpers/Array.h" - -#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) - -typedef enum SampleState { - SAMPLE_STATE_INIT, - SAMPLE_STATE_RUN, - SAMPLE_STATE_IDK, - - COUNT_SAMPLE_STATE -} SampleState; - -typedef struct UselessConfig { - uint32_t someInt; /*!< Sample comment on member */ - int8_t otherValue; /*!< This looks important */ - SampleState state; /*!< All your base are belong to us */ - struct UselessConfig *next; /*!< Pointer to next item in list */ -} UselessConfig; - -static SampleState s_myUselessConfig = { - .someInt = 5, - .state = SAMPLE_STATE_INIT -}; - -static SampleState s_simpleInitSample = { .otherValue = 2 }; - -static uint32_t s_someStaticVariable; - -/* Array Initializer List Example */ -static const uint32_t sampleTable[COUNT_SAMPLE_STATE] = { - [SAMPLE_STATE_INIT] = 6, - [SAMPLE_STATE_RUN] = 42, - [SAMPLE_STATE_IDK ] = 0xFACEB00C -}; - -static const uint8_t anotherArray[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 - 0x07, 0x08, 0x09, 0x0A, 0x0B }; - -/* TODO: How do we want to comment on functions? Having a full header block - * might be a bit overkill since we're planning on doing doxygen comments in - * the header. Some sort of comment to make it easier to see the beginning of - * new functions might be nice though. Not sure how we want to document static - * functions either - probably don't need to be as strict as for public - * functions - */ -void ExampleModule_init(void) -{ - s_myUselessConfig.state = SAMPLE_STATE_RUN; -} - -/******************************************************************************* - * This additional comment is not in the javadoc style, as it's supposed to - * describe more concrete implementation details. Any comments that may be - * useful to the class API "customer" (as opposed to someone who might modify - * this class) should instead be in JavaDoc style in ExampleCode.h. - ******************************************************************************/ -/* TODO: should this be MapLookup instead? */ -static uint32_t mapLookup(SampleState state, bool uselessParam) -{ - if (state < COUNT_SAMPLE_STATE) { - return sampleTable[state]; - } - return -1; -} - -const uin32_t ExampleModule_methodThatHasALongNameOhCrapImRunningOutOfSpace( - int param1, - bool param2, - const uint32_t *param3) -{ - return; -} - -/* TODO: not sure for sure how we want to do wrapping parameters. I'm on the - * fence between this style (FB & Google) vs. what I wrote above in the document - */ -bool ExampleModule_funcWithManyArgs(int64_t count, - EnumType value, - const char *name, - uint32_t *outVal) -{ - /* - * The body of this function is used to demonstrate common code constructs - * so that the indentation, braces, and spacing styles for them are - * immediately apparent. - */ - - /* - * This section demonstrates different kinds of if() blocks, including - * long/short if() blocks, complicated if() expressions, and validity - * checks on pointer/handle variables. - */ - if (count < 0) { - ++count; - } else if (count == 0) { - --count; - } else { - count *= 2; - } - - if (strlen(name) < 20 && - !strcmp(name, "some string that I made up") && - (count < 0 || count > 5)) { - *outVal += count; - } - - if (name) { - count += strlen(name); - } - - int64_t *realPtr = NULL; - if (!realPtr) { - realPtr = malloc(sizeof(*realPtr)); - } - - /* This section demonstrates looping constructs. */ - for (int64_t i = 0; i < count; ++i) { - *outVal *= 2; - } - - int i = 10; - while (i > 0) { - --i; - } - - do { - ++i; - } while (i <= 10); - - /* - * This section demonstrates formatting for switch statments - */ - switch (s_myUselessConfig.state) { - case SAMPLE_STATE_INIT: - s_myUselessConfig.state = SAMPLE_STATE_RUN; - break; - case SAMPLE_STATE_RUN: { - uint32_t i = s_someStaticVariable - 1; - printf("Doing stuff %d", i); - break; - } - case SAMPLE_STATE_IDK: - default: - break; - } - - /* - * This section demonstrates formatting for basic expressions, operators, - * and initializations. - */ - char s[] = "startValue"; - size_t someSize = sizeof(*realPtr); - int val = count / 2; - count = (count + val) & ((val << 3) + count * val); - uint32_t *samplePtr = &s_someStaticVariable; - SampleState zeroInitializedStruct = {}; - - /* Multiple variables of same type */ - /* TODO: allow multiple vars on one line? eg. int var1, var2, var3 */ - int var1; - int *var2; - int *var3; - - var1 = 2; - var2 = &var1; - var3 = var2; - - return true; -} - diff --git a/firmware/ec/src/registry/Framework.h b/firmware/ec/common/inc/global/Framework.h similarity index 68% rename from firmware/ec/src/registry/Framework.h rename to firmware/ec/common/inc/global/Framework.h index 92f9756c8f..274aecf1ba 100644 --- a/firmware/ec/src/registry/Framework.h +++ b/firmware/ec/common/inc/global/Framework.h @@ -10,12 +10,28 @@ #ifndef _SYS_CFG_FRAMEWORK_H #define _SYS_CFG_FRAMEWORK_H -#include "SSRegistry.h" /* Temporary - for ss registry structs */ -#include "inc/common/post_frame.h" /* Just for post code */ +#include "common/inc/global/ocmp_frame.h" +#include "common/inc/global/post_frame.h" /* Just for post code */ #include #include +#define POST_ENABLED 0 +#define POST_DISABLED 1 + +/* For enabling schema sharing between host and firmware we need to import the + * factory config and driver config to schema.c as weak attribute from + * OC_CONNECT1.C. This helps host compilation as it doesn't need to know symbol definition for the configs + * and schema sharing can be achived with limited common files. + */ +#define SCHEMA_IMPORT extern __attribute__((weak)) + +/* DriverStruct acts as a generic datatype. + * In schema we are more intreseted in the address of structure so we use this datatype DriverStruct + * to avoid the include header for the devices in the system. + */ +typedef char DriverStruct; + /* TODO: move these to common header file */ typedef enum DataType { TYPE_NULL = 0, /* No data is passed (used for simple GPIO-based alerts) */ @@ -30,7 +46,6 @@ typedef enum DataType { TYPE_STR, TYPE_BOOL, TYPE_ENUM, - COUNT_TYPE, } DataType; @@ -56,6 +71,13 @@ typedef struct Command { const CB_Command cb_cmd; } Command; +typedef bool (*CB_POST) (void **params); + +typedef struct Post { + const char *name; + const CB_POST cb_postCmd; +}Post; + // To avoid the awkward situation of not knowing how much to allocate for the return value (think // string returns), we instead rely on the 'get' and 'set' functions to allocate and return a // pointer to the value it wants to return via OCMP @@ -66,11 +88,21 @@ typedef bool (*ConfigGet_Cb) (void *driver, unsigned int param_id, typedef bool (*ConfigSet_Cb) (void *driver, unsigned int param_id, const void *data); -typedef ePostCode (*CB_Probe) (void *driver); +typedef ePostCode (*CB_Probe) (void *driver, POSTData* postData); typedef ePostCode (*CB_Init) (void *driver, const void *config, const void *alert_token); -typedef bool (*ssHook_Cb) (void *return_buf); +typedef bool (*ssHook_Cb) (void *driver, void *return_buf); + +typedef struct Driver_fxnTable { + // TODO: These callbacks are a bit rough. They'll get the job done, but we should revisit other + // options (per-parameter callbacks for example) + StatusGet_Cb cb_get_status; + ConfigGet_Cb cb_get_config; + ConfigSet_Cb cb_set_config; + CB_Probe cb_probe; + CB_Init cb_init; +} Driver_fxnTable; typedef struct Driver { const char *name; @@ -78,16 +110,9 @@ typedef struct Driver { const Parameter *config; const Parameter *alerts; const Parameter *argList; - const Command *commands[OCMP_NUM_ACTIONS]; - - // TODO: These callbacks are a bit rough. They'll get the job done, but we should revisit other - // options (per-parameter callbacks for example) - StatusGet_Cb cb_get_status; - ConfigGet_Cb cb_get_config; - ConfigSet_Cb cb_set_config; - CB_Probe cb_probe; - CB_Init cb_init; - + const Command *commands; + const Driver_fxnTable* fxnTable; + const Post *post; bool payload_fmt_union; /* TODO: hack to account for OBC/Testmodule payload being packed as a union instead of a struct */ } Driver; @@ -106,9 +131,10 @@ typedef struct Component { void *driver_cfg; // TODO: this could be turned into a standard polymorphism struct to hold the // driver, hw config & driver object data (like we did for GPIO) const void *factory_config; /* Factory defaults for the device */ - const Command *commands[OCMP_NUM_ACTIONS]; /* TODO: super gross hack to fit into current CLI */ + const Command *commands; /* TODO: super gross hack to fit into current CLI */ const SSHookSet *ssHookSet; - OCSubsystem *ss; + bool postDisabled; //Flag for POST execution. + void *ss; } Component; /* TODO: consider moving struct into c file - only need pointer externally */ diff --git a/firmware/ec/src/OC_CONNECT1.h b/firmware/ec/common/inc/global/OC_CONNECT1.h similarity index 81% rename from firmware/ec/src/OC_CONNECT1.h rename to firmware/ec/common/inc/global/OC_CONNECT1.h index 168e32a819..9de84e0a6f 100644 --- a/firmware/ec/src/OC_CONNECT1.h +++ b/firmware/ec/common/inc/global/OC_CONNECT1.h @@ -33,6 +33,21 @@ extern "C" { #define OC_HCI_LED_DISABLE (0) #define OC_ETH_SW_ENABLE (1) #define OC_ETH_SW_DISABLE (0) +#define CAT24C256 { .page_size = 64, .mem_size = (256 / 8) } + +/* GBC IO expander Slave address */ +#define BIGBROTHER_IOEXP0_ADDRESS 0x71 +#define BIGBROTHER_IOEXP1_ADDRESS 0x70 +/* SYNC IO expander Slave address */ +#define SYNC_IO_DEVICE_ADDR 0x71 +/* SDR IO expander Slave address */ +#define SDR_FX3_IOEXP_ADDRESS 0x1E +/* RFFE IO expander Slave address */ +#define RFFE_CHANNEL1_IO_TX_ATTEN_ADDR 0x18 +#define RFFE_CHANNEL1_IO_RX_ATTEN_ADDR 0x1A +#define RFFE_CHANNEL2_IO_TX_ATTEN_ADDR 0x1C +#define RFFE_CHANNEL2_IO_RX_ATTEN_ADDR 0x1D +#define RFFE_IO_REVPOWER_ALERT_ADDR 0x1B /*! * @def OC_CONNECT1_EMACName @@ -67,7 +82,7 @@ typedef enum OC_EC_PORTGroupName { }OC_EC_PORTGroupName; typedef enum OC_CONNECT1_GPIOName { - /* PA */ + //PA OC_EC_DEBUG_UART_RX = 0, OC_EC_DEBUG_UART_TX, OC_EC_PSE_I2C6_SCLK, @@ -76,12 +91,12 @@ typedef enum OC_CONNECT1_GPIOName { OC_EC_SOC_UART3_TX, OC_EC_PWRMNTR_I2C6_SCLK, OC_EC_PWRMNTR_I2C6_SDA, - /* PB */ + //PB OC_EC_LT4015_I2C0_SCLK = 8, OC_EC_LT40515I2C0_SDA, OC_EC_FLASH_nCS, OC_EC_FLASH_CLK, - /* PC */ + //PC OC_EC_JTAG_TCK = 16, OC_EC_JTAG_TMS, OC_EC_JTAG_TDI, @@ -90,7 +105,7 @@ typedef enum OC_CONNECT1_GPIOName { OC_EC_SYNCCONN_UART_TX, OC_EC_ETHSW_MDC, OC_EC_ETHSW_MDIO, - /* PD */ + //PD OC_EC_SYNCCONN_I2C7_SCLK = 24, OC_EC_SYNCCONN_I2C7_SDA, OC_EC_SDR_INA_ALERT, @@ -99,31 +114,31 @@ typedef enum OC_CONNECT1_GPIOName { OC_NOC_2, OC_EC_PWR_PRSNT_SOLAR_AUX, OC_EC_SYNC_IOEXP_ALERT, - /* PE */ + //PE OC_EC_GBC_IOEXP71_ALERT = 32, - OC_EC_FE_CONTROL, /* OC_CONNECT1_GBC_TEMP_ALERT2, */ + OC_EC_FE_CONTROL,//OC_CONNECT1_GBC_TEMP_ALERT2, OC_EC_AP_GPIO1, OC_EC_GPP_AP_BM_1, OC_EC_FLASH_MOSI, OC_EC_FLASH_MISO, - /* PF */ + //PF OC_EC_JTAG_TRD2 = 40, OC_EC_JTAG_TRD1, OC_EC_JTAG_TRD0, OC_EC_JTAG_TRCLK, OC_EC_JTAG_TRD3, - /* PG */ + //PG OC_EC_TEMPSEN_I2C1_SCLK = 48, OC_EC_TEMPSEN_I2C1_SDA, - /* PH */ + //PH OC_EC_GPP_PMIC_CORE_PWR = 56, - OC_EC_GPP_SOC_PLTRST, /* OC_CONNECT1_PLT_RST_STATUS, OC_GPP_SOC_PLTRST,OC_CONNECT1_PLT_RST_STATUS */ + OC_EC_GPP_SOC_PLTRST, //OC_CONNECT1_PLT_RST_STATUS,//OC_GPP_SOC_PLTRST,OC_CONNECT1_PLT_RST_STATUS OC_EC_GPP_PMIC_CTRL, OC_EC_GBC_INA_ALERT, - /* PJ */ + //PJ OC_EC_PWR_PD_NT2P = 64, OC_EC_GBC_AP_INA_ALERT, - /* PK */ + //PK OC_EC_UART4_RXD = 72, OC_EC_UART4_CTS, OC_EC_UART4_RTS, @@ -132,7 +147,7 @@ typedef enum OC_CONNECT1_GPIOName { OC_EC_TRXFECONN_I2C3_SDA, OC_EC_TRXFECONN_I2C4_SCLK, OC_EC_TRXFECONN_I2C4_SDA, - /* PL */ + //PL OC_EC_TRXFECONN_I2C2_SCLK = 80, OC_EC_TRXFECONN_I2C2_SDA, OC_EC_GBC_PSE_ALERT, @@ -141,7 +156,7 @@ typedef enum OC_CONNECT1_GPIOName { OC_EC_PWR_PRSNT_POE, OC_EC_USB_DP3, OC_EC_USB_DN3, - /* PM */ + //PM OC_EC_PWR_LION_ALERT = 88, OC_EC_HCI_LED_RESET, OC_EC_PWR_MPPT_LION, @@ -150,21 +165,21 @@ typedef enum OC_CONNECT1_GPIOName { OC_EC_ETH_SW_RESET, OC_EC_GBC_IOEXP70_INT, OC_EC_PWR_BATT_SELECT, - /* PN */ + //PN OC_EC_PD_PWRGD_ALERT = 96, OC_EC_SDR_FPGA_TEMP_INA_ALERT, OC_EC_SDR_DEVICE_CONTROL, OC_EC_SDR_PWR_GD, OC_EC_FE_PWR_GD, OC_EC_MODULE_UART1_RIN, - /* PP */ - OC_EC_SDR_FE_IO_RESET_CTRL = 104,/*OC_EC_MPPT_LACID = 104,*/ /* OC_SDR_FE_IO_RESET_CTRL */ + //PP + OC_EC_SDR_FE_IO_RESET_CTRL = 104,//OC_EC_MPPT_LACID = 104, //OC_SDR_FE_IO_RESET_CTRL OC_EC_FE_RESET_OUT, OC_EC_SDR_PWR_CNTRL, OC_EC_GPP_PWRGD_PROTECTION, OC_EC_RFFE_RESET, OC_EC_GBC_DEBUG, - /* PQ */ + //PQ OC_EC_FE_TRXFE_CONN_RESET = 112, OC_EC_GPP_MSATA_DAS, OC_EC_POE_OVERRIDE, @@ -189,6 +204,28 @@ typedef enum OC_CONNECT1_I2CName { OC_CONNECT1_I2CCOUNT } OC_CONNECT1_I2CName; +/*! + * @def OC_CONNECT1_debugMdioName + * @brief Enum of debug MDIO names for Ethernet components + */ +typedef enum OC_CONNECT1_debugMdioName { + OC_CONNECT1_PHYPORT0 = 0, + OC_CONNECT1_PHYPORT1, + OC_CONNECT1_PHYPORT2, + OC_CONNECT1_PHYPORT3, + OC_CONNECT1_PHYPORT4, + OC_CONNECT1_GLOBAL2 = 7, + OC_CONNECT1_SWPORT0, + OC_CONNECT1_SWPORT1, + OC_CONNECT1_SWPORT2, + OC_CONNECT1_SWPORT3, + OC_CONNECT1_SWPORT4, + OC_CONNECT1_SWPORT5, + OC_CONNECT1_SWPORT6, + OC_CONNECT1_GLOBAL1, + OC_CONNECT1_MDIOCOUNT +} OC_CONNECT1_debugMdioName; + /*! * @def OC_CONNECT1_UARTName * @brief Enum of UARTs on the OC_CONNECT1 board diff --git a/firmware/ec/inc/common/ocmp_frame.h b/firmware/ec/common/inc/global/ocmp_frame.h similarity index 63% rename from firmware/ec/inc/common/ocmp_frame.h rename to firmware/ec/common/inc/global/ocmp_frame.h index b721ef507b..fbb4720474 100644 --- a/firmware/ec/inc/common/ocmp_frame.h +++ b/firmware/ec/common/inc/global/ocmp_frame.h @@ -21,14 +21,15 @@ #define OCMP_MSG_SOF 0x55 #define OCMP_FRAME_TOTAL_LENGTH 64 #define OCMP_FRAME_HEADER_LENGTH 17 -#define OCMP_FRAME_MSG_LENGTH OCMP_FRAME_TOTAL_LENGTH-OCMP_FRAME_HEADER_LENGTH +#define OCMP_FRAME_MSG_LENGTH (OCMP_FRAME_TOTAL_LENGTH - OCMP_FRAME_HEADER_LENGTH) /***************************************************************************** * STRUCT/ENUM DEFINITIONS *****************************************************************************/ + typedef enum { - OC_SS_BB = -1, /* Hack around the fact that IPC reuses OCMP to allow us - to split BB (internal) and SYS (CLI) message handling */ + OC_SS_BB = -1, //Hack around the fact that IPC reuses OCMP to allow us + // to split BB (internal) and SYS (CLI) message handling OC_SS_SYS = 0, OC_SS_PWR, OC_SS_BMS, @@ -41,35 +42,29 @@ typedef enum { OC_SS_SYNC, OC_SS_TEST_MODULE, OC_SS_DEBUG, - OC_SS_MAX_LIMIT, /* TODO:REV C Change */ - OC_SS_WD, - OC_SS_ALERT_MNGR/*, - OC_SS_MAX_LIMIT*/ + OC_SS_MAX_LIMIT,//TODO:REV C Change + OC_SS_WD + //OC_SS_ALERT_MNGR, + //OC_SS_MAX_LIMIT } OCMPSubsystem; + typedef enum { - OCMP_COMM_IFACE_UART = 1, /* Uart - 1 */ - OCMP_COMM_IFACE_ETHERNET, /* Ethernet - 2 */ - OCMP_COMM_IFACE_SBD, /* SBD(Satellite) - 3 */ - OCMP_COMM_IFACE_USB /* Usb - 4 */ + OCMP_COMM_IFACE_UART = 1, // Uart - 1 + OCMP_COMM_IFACE_ETHERNET, // Ethernet - 2 + OCMP_COMM_IFACE_SBD, // SBD(Satellite) - 3 + OCMP_COMM_IFACE_USB // Usb - 4 } OCMPInterface; /* * OCMPMsgType - msg type specifies what is the communication all about. * It can be Configuration, Status, Alert, Command, Watchdog, Debug + * OCMPMsgType 1 byte message. + * ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| + * || 7 || 6 || 5 || 4 || 3 || 2 || 1 || 0 || + * ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| + || Message Type || + * ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| */ - -/* OCMPMsgType 1 byte message. - * IFC Message means this message is recived over interface like - * UART/USB/Ethernet. Reperesented by bit 0 - * ITC Message measn this message is for Inter task communication within the - * EC Firmaware. Represneted by bit 1 - * ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| - * || 7 || 6 || 5 || 4 || 3 || 2 || 1 || 0 || - * ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| - * || IFC/ITC || Message Type || - * ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| - * */ - typedef enum { OCMP_MSG_TYPE_CONFIG = 1, OCMP_MSG_TYPE_STATUS, @@ -107,7 +102,6 @@ typedef enum { OCMP_AXN_DIAL_NUMBER, OCMP_AXN_ANSWER, OCMP_AXN_HANGUP, - OCMP_NUM_ACTIONS } OCMPActionType; @@ -133,28 +127,43 @@ typedef enum { OCMP_DEBUG_WRITE } eOCMPDebugOperation; +/* TODO::This OCWARE_HOST has to be removed with OCMP cleanUp*/ +#ifndef OCWARE_HOST + #define OC_SS OCMPSubsystem + #define OC_MSG_TYP OCMPMsgType + #define OC_AXN_TYP OCMPActionType +#else + #define OC_SS uint8_t + #define OC_MSG_TYP uint8_t + #define OC_AXN_TYP uint8_t + #define OC_IFACE_TYP uint8_t +#endif /* * Header is the field which will be containing SOF, Framelen, * Source Interface, Sequence number, and timestamp. */ typedef struct __attribute__((packed, aligned(1))) { - uint8_t ocmp_sof; /* SOF - It must be 0x55 */ - uint8_t ocmp_frameLen; /* Framelen - tells about the configuration size ONLY. */ - OCMPInterface ocmp_interface; /* Interface - UART/Ethernet/SBD */ - uint32_t ocmp_seqNumber; /* SeqNo - Don't know!!! */ - uint32_t ocmp_timestamp; /* Timestamp - When AP sent the command? */ + uint8_t ocmpSof; // SOF - It must be 0x55 + uint8_t ocmpFrameLen; // Framelen - tells about the configuration size ONLY. + OCMPInterface ocmpInterface; // Interface - UART/Ethernet/SBD + uint32_t ocmpSeqNumber; // SeqNo - Don't know!!! + uint32_t ocmpTimestamp; // Timestamp - When AP sent the command? } OCMPHeader; /* * This is the Message structure for Subsystem level information */ typedef struct __attribute__((packed, aligned(1))) { - OCMPSubsystem subsystem; /* RF/GPP/BMS/Watchdog etc.. */ - uint8_t componentID; /* Compononent ID. Different for different subsystem. */ - OCMPMsgType msgtype; /* Msg type is Config/Status/Alert/Command/Watchdog/Debug */ - OCMPActionType action; /* Action is - Get/Set/Reply. */ - uint16_t parameters; /* List of Parameters to be set or get. */ - uint8_t ocmp_data[]; /* The data payload. */ + OC_SS subsystem; // RF/GPP/BMS/Watchdog etc.. + uint8_t componentID; // Compononent ID. Different for different subsystem. + OCMPMsgType msgtype; // Msg type is Config/Status/Alert/Command/Watchdog/Debug + uint8_t action; // Action is - Get/Set/Reply. + uint16_t parameters; // List of Parameters to be set or get. +#ifndef OCWARE_HOST + uint8_t ocmp_data[]; // The data payload. +#else + int8_t* info; +#endif } OCMPMessage; /* diff --git a/firmware/ec/inc/common/post_frame.h b/firmware/ec/common/inc/global/post_frame.h similarity index 89% rename from firmware/ec/inc/common/post_frame.h rename to firmware/ec/common/inc/global/post_frame.h index e35b33e179..d904208161 100644 --- a/firmware/ec/inc/common/post_frame.h +++ b/firmware/ec/common/inc/global/post_frame.h @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef POST_FRAME_H_ #define POST_FRAME_H_ @@ -19,13 +18,16 @@ * STRUCT/ENUM DEFINITIONS *****************************************************************************/ typedef enum { - POST_DEV_FOUND = 0, + POST_DEV_NOSTATUS = 0, POST_DEV_MISSING, POST_DEV_ID_MISMATCH, + POST_DEV_FOUND, POST_DEV_CFG_DONE, + POST_DEV_NO_CFG_REQ, POST_DEV_CFG_FAIL, POST_DEV_FAULTY, - POST_DEV_CRITICAL_FAULT + POST_DEV_CRITICAL_FAULT, + POST_DEV_NO_DRIVER_EXIST, } ePostCode; typedef struct __attribute__((packed, aligned(1))) { diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_adt7481.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_adt7481.h new file mode 100644 index 0000000000..c78852a595 --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_adt7481.h @@ -0,0 +1,50 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef _OCMP_ADT7481_H +#define _OCMP_ADT7481_H + +#include "common/inc/global/Framework.h" + +typedef union ADT7481_Config { + struct { + int8_t lowlimit; + int8_t highlimit; + int8_t critlimit; + }; + int8_t limits[3]; +} ADT7481_Config; + +#ifdef UT_FRAMEWORK +extern const Driver_fxnTable ADT7481_fxnTable; +#else +SCHEMA_IMPORT const Driver_fxnTable ADT7481_fxnTable; +#endif + +static const Driver ADT7481 = { + .name = "ADT7481", + .status = (Parameter[]){ + { .name = "temperature", .type = TYPE_UINT8 }, + {} + }, + .config = (Parameter[]){ + { .name = "lowlimit", .type = TYPE_INT8 }, + { .name = "highlimit", .type = TYPE_UINT8 }, + { .name = "critlimit", .type = TYPE_UINT8 }, + {} + }, + .alerts = (Parameter[]){ + { .name = "BAW", .type = TYPE_UINT8 }, + { .name = "AAW", .type = TYPE_UINT8 }, + { .name = "ACW", .type = TYPE_UINT8 }, + {} + }, + .fxnTable = &ADT7481_fxnTable, +}; + +#endif /* _OCMP_ADT7481_H */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_dat-xxr5a-pp.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_dat-xxr5a-pp.h new file mode 100644 index 0000000000..1b343d443a --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_dat-xxr5a-pp.h @@ -0,0 +1,27 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef _OCMP_DATXXR5APP_H +#define _OCMP_DATXXR5APP_H + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable DATXXR5APP_fxnTable; + +static const Driver DATXXR5APP = { + .name = "DAT-XXR5A-PP+", + .status = NULL, + .config = (Parameter[]){ + { .name = "atten", .type = TYPE_INT16 }, + {} + }, + .alerts = NULL, + .fxnTable = &DATXXR5APP_fxnTable, +}; + +#endif /* _OCMP_DATXXR5APP_H */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_debugi2c.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_debugi2c.h new file mode 100644 index 0000000000..01c4005721 --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_debugi2c.h @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef OCMP_I2C_H_ +#define OCMP_I2C_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT bool i2c_read(void *driver, void *data); +SCHEMA_IMPORT bool i2c_write(void *driver, void *data); + +static const Driver OC_I2C = { + .name = "OC_I2C", + .argList = (Parameter[]){ + { .name = "slave_address", .type = TYPE_UINT8 }, + { .name = "no_of_bytes", .type = TYPE_UINT8 }, + { .name = "reg_address", .type = TYPE_UINT8 }, + { .name = "reg_values", .type = TYPE_UINT16 }, + {} + }, + .commands = (Command[]){ + { + .name = "get", + .cb_cmd = i2c_read, + }, + { + .name = "set", + .cb_cmd = i2c_write, + }, + {} + }, +}; + +#endif /* INC_DEVICES_OCMP_WRAPPERS_OCMP_I2C_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_debugmdio.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_debugmdio.h new file mode 100644 index 0000000000..83019f7b8a --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_debugmdio.h @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2018-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef OCMP_MDIO_H_ +#define OCMP_MDIO_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT bool mdio_read(void *driver, void *data); +SCHEMA_IMPORT bool mdio_write(void *driver, void *data); + +static const Driver OC_MDIO = { + .name = "OC_MDIO", + .argList = (Parameter[]){ + { .name = "reg_address", .type = TYPE_UINT16 }, + { .name = "reg_values", .type = TYPE_UINT16 }, + {} + }, + .commands = (Command[]){ + { + .name = "get", + .cb_cmd = mdio_read, + }, + { + .name = "set", + .cb_cmd = mdio_write, + }, + {} + }, +}; + +#endif /* INC_DEVICES_OCMP_WRAPPERS_OCMP_MDIO_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_debugocgpio.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_debugocgpio.h new file mode 100644 index 0000000000..10dd21eafb --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_debugocgpio.h @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef OCMP_OCGPIO_H_ +#define OCMP_OCGPIO_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT bool ocgpio_get(void *driver, void *data); +SCHEMA_IMPORT bool ocgpio_set(void *driver, void *data); + +SCHEMA_IMPORT const Driver_fxnTable DEBUG_OCGPIO_fxnTable; + +static const Driver OC_GPIO = { + .name = "OC_GPIO", + .argList = (Parameter[]){ + { .name = "pin", .type = TYPE_UINT8 }, + { .name = "value", .type = TYPE_UINT8 }, + {} + }, + .commands = (Command[]){ + { + .name = "get", + .cb_cmd = ocgpio_get, + }, + { + .name = "set", + .cb_cmd = ocgpio_set, + }, + {} + }, + .fxnTable = &DEBUG_OCGPIO_fxnTable, +}; + +#endif /* OCMP_OCGPIO_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_eeprom_cat24c04.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_eeprom_cat24c04.h new file mode 100644 index 0000000000..ddc36d3fd0 --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_eeprom_cat24c04.h @@ -0,0 +1,78 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef INC_DEVICES_OCMP_EEPROM_H_ +#define INC_DEVICES_OCMP_EEPROM_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT bool SYS_post_get_results(void **getpostResult); +SCHEMA_IMPORT bool SYS_post_enable(void **postActivate); +SCHEMA_IMPORT const Driver_fxnTable CAT24C04_gbc_sid_fxnTable; +SCHEMA_IMPORT const Driver_fxnTable CAT24C04_gbc_inv_fxnTable; +SCHEMA_IMPORT const Driver_fxnTable CAT24C04_sdr_inv_fxnTable; +SCHEMA_IMPORT const Driver_fxnTable CAT24C04_fe_inv_fxnTable; + +static const Driver CAT24C04_gbc_sid = { + .name = "EEPROM", + .status = (Parameter[]){ + { .name = "ocserialinfo", .type = TYPE_STR, .size = 21 }, + { .name = "gbcboardinfo", .type = TYPE_STR, .size = 21 }, + }, + .fxnTable = &CAT24C04_gbc_sid_fxnTable, +}; + +static const Driver CAT24C04_gbc_inv = { + .name = "Inventory", + .fxnTable = &CAT24C04_gbc_inv_fxnTable, +}; +static const Driver CAT24C04_sdr_inv = { + .name = "Inventory", + .status = (Parameter[]){ + { .name = "dev_id", .type = TYPE_STR, + .size = 19 }, + {} + }, + .fxnTable = &CAT24C04_sdr_inv_fxnTable, +}; + +static const Driver CAT24C04_fe_inv = { + .name = "Inventory", + .status = (Parameter[]){ + { .name = "dev_id", .type = TYPE_STR, + .size = 18 }, + {} + }, + .fxnTable = &CAT24C04_fe_inv_fxnTable, +}; + +static const Driver SYSTEMDRV = { + .name = "SYSTEMDRV", + .status = (Parameter[]){ + {} + }, + .config = (Parameter[]){ + {} + }, + .alerts = (Parameter[]){ + {} + }, + .post = (Post[]){ + { + .name = "results", + .cb_postCmd = SYS_post_get_results, + }, + { + .name = "enable", + .cb_postCmd = SYS_post_enable, + }, + {} + } +}; + +#endif /* INC_DEVICES_OCMP_EEPROM_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_eth_sw.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_eth_sw.h new file mode 100644 index 0000000000..374fc5eb5f --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_eth_sw.h @@ -0,0 +1,82 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef OCMP_ETH_SW_H_ +#define OCMP_ETH_SW_H_ +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable eth_fxnTable; +SCHEMA_IMPORT bool ETHERNET_reset(void *driver, void *params); +SCHEMA_IMPORT bool ETHERNET_enLoopBk(void *driver, void *params); +SCHEMA_IMPORT bool ETHERNET_disLoopBk(void *driver, void *params); +SCHEMA_IMPORT bool ETHERNET_enPktGen(void *driver, void *params); +SCHEMA_IMPORT bool ETHERNET_disPktGen(void *driver, void *params); +SCHEMA_IMPORT bool ETHERNET_tivaClient(void *driver, void *params); + +static const Driver ETH_SW = { + .name = "Marvel_88E6071", + .status = (Parameter[]){ + { .name = "speed", .type = TYPE_UINT8 }, + { .name = "duplex", .type = TYPE_UINT8 }, + { .name = "autoneg_on", .type = TYPE_UINT8 }, + { .name = "sleep_mode_en", .type = TYPE_UINT8 }, + { .name = "autoneg_complete", .type = TYPE_UINT8 }, + { .name = "link_up", .type = TYPE_UINT8 }, + {} + }, + .config = (Parameter[]){ + { .name = "speed", .type = TYPE_UINT8 }, + { .name = "duplex", .type = TYPE_UINT8 }, + { .name = "powerDown", .type = TYPE_UINT8 }, + { .name = "enable_sleepMode", .type = TYPE_UINT8 }, + { .name = "enable_interrupt", .type = TYPE_UINT8 }, + { .name = "switch_reset", .type = TYPE_UINT8 }, + { .name = "restart_autoneg", .type = TYPE_UINT8 }, + {} + }, + .alerts = (Parameter[]){ + { .name = "speed", .type = TYPE_UINT8 }, + { .name = "duplex", .type = TYPE_UINT8 }, + { .name = "autoneg_complete", .type = TYPE_UINT8 }, + { .name = "crossover_det", .type = TYPE_UINT8 }, + { .name = "energy_det", .type = TYPE_UINT8 }, + { .name = "polarity_change", .type = TYPE_UINT8 }, + { .name = "jabber_det", .type = TYPE_UINT8 }, + {} + }, + .commands = (Command[]){ + { + .name = "reset", + .cb_cmd = ETHERNET_reset, + }, + { + .name = "en_loopBk", + .cb_cmd = ETHERNET_enLoopBk, + }, + { + .name = "dis_loopBk", + .cb_cmd = ETHERNET_disLoopBk, + }, + { + .name = "en_pktGen", + .cb_cmd = ETHERNET_enPktGen, + }, + { + .name = "dis_pktGen", + .cb_cmd = ETHERNET_disPktGen, + }, + { + .name = "en_tivaClient", + .cb_cmd = ETHERNET_tivaClient, + }, + {} + }, + .fxnTable = ð_fxnTable, +}; + +#endif /* OCMP_ETH_SW_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_fe-param.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_fe-param.h new file mode 100644 index 0000000000..6478d3faaf --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_fe-param.h @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef OCMP_FE_PARAM_H_ +#define OCMP_FE_PARAM_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable FE_PARAM_fxnTable; + +static const Driver FE_Param = { + .name = "FE_parametrs", + .config = (Parameter[]){ + { .name = "band", .type = TYPE_UINT16 }, + { .name = "arfcn", .type = TYPE_UINT16 }, + {} + }, + .fxnTable = &FE_PARAM_fxnTable, +}; + +#endif /* OCMP_FE_PARAM_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_ina226.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_ina226.h new file mode 100644 index 0000000000..6b554f0852 --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_ina226.h @@ -0,0 +1,40 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef _OCMP_INA226_H +#define _OCMP_INA226_H + +#include "common/inc/global/Framework.h" + +typedef struct INA226_Config { + uint16_t current_lim; +} INA226_Config; + +SCHEMA_IMPORT const Driver_fxnTable INA226_fxnTable; + +static const Driver INA226 = { + .name = "INA226", + .status = (Parameter[]){ + { .name = "busvoltage", .type = TYPE_UINT16 }, + { .name = "shuntvoltage", .type = TYPE_UINT16 }, + { .name = "current", .type = TYPE_UINT16 }, + { .name = "power", .type = TYPE_UINT16 }, + {} + }, + .config = (Parameter[]){ + { .name = "currlimit", .type = TYPE_UINT16 }, + {} + }, + .alerts = (Parameter[]){ + { .name = "Overcurrent", .type = TYPE_UINT16 }, + {} + }, + .fxnTable = &INA226_fxnTable, +}; + +#endif /* _OCMP_INA226_H */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_iridium.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_iridium.h new file mode 100644 index 0000000000..2841b1ebca --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_iridium.h @@ -0,0 +1,48 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef OCMP_IRIDIUM_H_ +#define OCMP_IRIDIUM_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable OBC_fxnTable; +SCHEMA_IMPORT bool IRIDIUM_reset(void *driver, void *params); + +static const Driver OBC_Iridium = { + .name = "Iridium 96xx", + .status = (Parameter[]){ + { .name = "imei", .type = TYPE_UINT64 }, + { .name = "mfg", .type = TYPE_STR, .size = 10 }, + { .name = "model", .type = TYPE_STR, .size = 4 }, + { .name = "signal_quality", .type = TYPE_UINT8 }, + { .name = "registration", .type = TYPE_ENUM, + .values = (Enum_Map[]){ + { 0, "Detached" }, + { 1, "None" }, + { 2, "Registered" }, + { 3, "Registration Denied" }, + {} + }, + }, + { .name = "numberofoutgoingmessage", .type = TYPE_UINT8 }, + { .name = "lasterror", .type = TYPE_UINT8, .size = 3 }, /* TODO: this is a complex type */ + {} + }, + .commands = (Command[]){ + { + .name = "reset", + .cb_cmd = IRIDIUM_reset, + }, + {} + }, + .fxnTable = &OBC_fxnTable, + .payload_fmt_union = true, /* OBC breaks serialization pattern :( */ +}; + +#endif /* OCMP_IRIDIUM_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_led.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_led.h new file mode 100644 index 0000000000..24c436450b --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_led.h @@ -0,0 +1,31 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef _OCMP_LED_H +#define _OCMP_LED_H + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable LED_fxnTable; +SCHEMA_IMPORT bool led_testpattern_control(void *driver, void *param); +static const Driver HCI_LED = { + .name = "HCI_LED", + .status = NULL, + .config = NULL, + .alerts = NULL, + .commands = (Command[]){ + { + .name = "set", + .cb_cmd = led_testpattern_control, + }, + {} + }, + .fxnTable = &LED_fxnTable, +}; + +#endif /* _OCMP_LED_H */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_ltc4015.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_ltc4015.h new file mode 100644 index 0000000000..b1b935ae41 --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_ltc4015.h @@ -0,0 +1,63 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef _OCMP_LTC4015_H +#define _OCMP_LTC4015_H + +#include "common/inc/global/Framework.h" + +typedef struct LTC4015_Config { + int16_t batteryVoltageLow; + int16_t batteryVoltageHigh; + int16_t batteryCurrentLow; + int16_t inputVoltageLow; + int16_t inputCurrentHigh; + uint16_t inputCurrentLimit; + uint16_t icharge; + uint16_t vcharge; +} LTC4015_Config; + +SCHEMA_IMPORT const Driver_fxnTable LTC4015_fxnTable; + +static const Driver LTC4015 = { + .name = "LTC4015", + .status = (Parameter[]){ + { .name = "batteryVoltage", .type = TYPE_INT16 }, + { .name = "batteryCurrent", .type = TYPE_INT16 }, + { .name = "systemVoltage", .type = TYPE_INT16 }, + { .name = "inputVoltage", .type = TYPE_INT16 }, + { .name = "inputCurrent", .type = TYPE_INT16 }, + { .name = "dieTemperature", .type = TYPE_INT16 }, + { .name = "ichargeDAC", .type = TYPE_INT16 }, + {} + }, + .config = (Parameter[]){ + { .name = "batteryVoltageLow", .type = TYPE_INT16 }, + { .name = "batteryVoltageHigh", .type = TYPE_INT16 }, + { .name = "batteryCurrentLow", .type = TYPE_INT16 }, + { .name = "inputVoltageLow", .type = TYPE_INT16 }, + { .name = "inputCurrentHigh", .type = TYPE_INT16 }, + { .name = "inputCurrentLimit", .type = TYPE_UINT16 }, + { .name = "icharge", .type = TYPE_UINT16 }, + { .name = "vcharge", .type = TYPE_UINT16 }, + { .name = "dieTemperature", .type = TYPE_INT16 }, + {} + }, + .alerts = (Parameter[]){ + { .name = "BVL", .type = TYPE_INT16 }, + { .name = "BVH", .type = TYPE_INT16 }, + { .name = "BCL", .type = TYPE_INT16 }, + { .name = "IVL", .type = TYPE_INT16 }, + { .name = "ICH", .type = TYPE_INT16 }, + { .name = "DTH", .type = TYPE_INT16 }, + {} + }, + .fxnTable = <C4015_fxnTable, +}; + +#endif /* _OCMP_LTC4015_H */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_ltc4274.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_ltc4274.h new file mode 100644 index 0000000000..ce762b56aa --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_ltc4274.h @@ -0,0 +1,69 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef _OCMP_LTC4274_H_ +#define _OCMP_LTC4274_H_ + +#include "common/inc/global/Framework.h" + +typedef union LTC4274_Config { + struct { + int8_t operatingMode; + int8_t detectEnable; + int8_t interruptMask; + bool interruptEnable; + int8_t pseHpEnable; + }; +} LTC4274_Config; + +#ifdef UT_FRAMEWORK +extern const Driver_fxnTable LTC4274_fxnTable; +#else +SCHEMA_IMPORT const Driver_fxnTable LTC4274_fxnTable; +#endif +SCHEMA_IMPORT bool LTC4274_reset(void *driver, void *params); + +static const Driver LTC4274 = { + .name = "PSE", + .status = (Parameter[]){ + { .name = "detection", .type = TYPE_UINT16 }, + { .name = "class", .type = TYPE_UINT16 }, + { .name = "powerGood", .type = TYPE_UINT16 }, + {} + }, + .config = (Parameter[]){ + { .name = "operatingMode", .type = TYPE_UINT16 }, + { .name = "detectEnable", .type = TYPE_UINT16 }, + { .name = "interruptMask", .type = TYPE_UINT16 }, + { .name = "interruptEnable", .type = TYPE_UINT16 }, + { .name = "enableHighpower", .type = TYPE_UINT16 }, + {} + }, + .alerts = (Parameter[]){ + { .name = "NoAlert", .type = TYPE_UINT8 }, + { .name = "PowerEnable", .type = TYPE_UINT8 }, + { .name = "PowerGood", .type = TYPE_UINT8 }, + { .name = "DiconnectAlert", .type = TYPE_UINT8 }, + { .name = "DetectionAlert", .type = TYPE_UINT8 }, + { .name = "ClassAlert", .type = TYPE_UINT8 }, + { .name = "TCUTAler", .type = TYPE_UINT8 }, + { .name = "TStartAlert", .type = TYPE_UINT8 }, + { .name = "SupplyAlert", .type = TYPE_UINT8 }, + {} + }, + .commands = (Command[]){ + { + .name = "reset", + .cb_cmd = LTC4274_reset, + }, + {} + }, + .fxnTable = <C4274_fxnTable, +}; + +#endif /* _OCMP_LTC4274_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_ltc4275.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_ltc4275.h new file mode 100644 index 0000000000..e5ae3da530 --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_ltc4275.h @@ -0,0 +1,32 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef COMMON_INC_OCMP_WRAPPERS_OCMP_LTC4275_H_ +#define COMMON_INC_OCMP_WRAPPERS_OCMP_LTC4275_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable LTC4275_fxnTable; + +static const Driver LTC4275 = { + .name = "LTC4275", + .status = (Parameter[]){ + { .name = "class", .type = TYPE_ENUM }, + { .name = "powerGoodState", .type = TYPE_ENUM }, + {} + }, + .alerts = (Parameter[]){ + { .name = "INCOMPATIBLE", .type = TYPE_ENUM }, + { .name = "DISCONNECT", .type = TYPE_ENUM }, + { .name = "CONNECT", .type = TYPE_ENUM }, + {} + }, + .fxnTable = <C4275_fxnTable, +}; + +#endif /* COMMON_INC_OCMP_WRAPPERS_OCMP_LTC4275_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_mac.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_mac.h new file mode 100644 index 0000000000..a56f93e3f5 --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_mac.h @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef COMMON_INC_OCMP_WRAPPERS_OCMP_MAC_H_ +#define COMMON_INC_OCMP_WRAPPERS_OCMP_MAC_H_ + +#include "common/inc/global/Framework.h" + +#define OC_MAC_ADDRESS_SIZE 13 + +SCHEMA_IMPORT const Driver_fxnTable MAC_fxnTable; + +static const Driver Driver_MAC = { + .name = "MAC", + .config = (Parameter[]){ + { .name = "address", .type = TYPE_STR, + .size = OC_MAC_ADDRESS_SIZE + 1 } + }, + .fxnTable = &MAC_fxnTable, +}; + +#endif /* COMMON_INC_OCMP_WRAPPERS_OCMP_MAC_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_powersource.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_powersource.h new file mode 100644 index 0000000000..2cec0bb4bd --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_powersource.h @@ -0,0 +1,31 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef _OCMP_POWERSOURCE_H_ +#define _OCMP_POWERSOURCE_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable PWRSRC_fxnTable; + +static const Driver PWRSRC = { + .name = "powerSource", + .status = (Parameter[]){ + { .name = "poeAvailability", .type = TYPE_UINT8 }, + { .name = "poeAccessebility", .type = TYPE_UINT8 }, + { .name = "solarAvailability", .type = TYPE_UINT8 }, + { .name = "solarAccessebility", .type = TYPE_UINT8 }, + { .name = "extBattAvailability", .type = TYPE_UINT8 }, + { .name = "extBattAccessebility", .type = TYPE_UINT8 }, + { .name = "intBattAvailability", .type = TYPE_UINT8 }, + { .name = "intBattAccessebility", .type = TYPE_UINT8 }, + {} + }, + .fxnTable = &PWRSRC_fxnTable, +}; +#endif /* _OCMP_POWERSOURCE_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_rfpowermonitor.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_rfpowermonitor.h new file mode 100644 index 0000000000..3c32773e72 --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_rfpowermonitor.h @@ -0,0 +1,25 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef OCMP_RFPOWERMONITOR_H_ +#define OCMP_RFPOWERMONITOR_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable RFPowerMonitor_fxnTable; + +static const Driver RFPowerMonitor = { + .status = (Parameter[]){ + { .name = "forward", .type = TYPE_UINT16 }, + { .name = "reverse", .type = TYPE_UINT16 }, + {} + }, + .fxnTable = &RFPowerMonitor_fxnTable, +}; + +#endif /* OCMP_RFPOWERMONITOR_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_rfwatchdog.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_rfwatchdog.h new file mode 100644 index 0000000000..bc7a16cb6e --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_rfwatchdog.h @@ -0,0 +1,26 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef OCMP_RFWATCHDOG_H_ +#define OCMP_RFWATCHDOG_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable RFFEWatchdogP_fxnTable; + +static const Driver RFFEWatchdog = { + .name = "RFFE Watchdog", + .alerts = (Parameter[]){ + { .name = "LB_R_PWR" }, + { .name = "HB_R_PWR" }, + {} + }, + .fxnTable = &RFFEWatchdogP_fxnTable, +}; + +#endif /* OCMP_RFWATCHDOG_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_se98a.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_se98a.h new file mode 100644 index 0000000000..ae2ce80d0f --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_se98a.h @@ -0,0 +1,46 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef _OCMP_SE98A_H +#define _OCMP_SE98A_H + +#include "common/inc/global/Framework.h" + +typedef union SE98A_Config { + struct { + int8_t lowlimit; + int8_t highlimit; + int8_t critlimit; + }; + int8_t limits[3]; +} SE98A_Config; + +SCHEMA_IMPORT const Driver_fxnTable SE98_fxnTable; + +static const Driver SE98A = { + .name = "SE98A", + .status = (Parameter[]){ + { .name = "temperature", .type = TYPE_UINT8 }, + {} + }, + .config = (Parameter[]){ + { .name = "lowlimit", .type = TYPE_INT8 }, + { .name = "highlimit", .type = TYPE_UINT8 }, + { .name = "critlimit", .type = TYPE_UINT8 }, + {} + }, + .alerts = (Parameter[]){ + { .name = "BAW", .type = TYPE_UINT8 }, + { .name = "AAW", .type = TYPE_UINT8 }, + { .name = "ACW", .type = TYPE_UINT8 }, + {} + }, + .fxnTable = &SE98_fxnTable, +}; + +#endif /* _OCMP_SE98A_H */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_syncio.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_syncio.h new file mode 100644 index 0000000000..7c9afb85b6 --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_syncio.h @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef OCMP_SYNCIO_H_ +#define OCMP_SYNCIO_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable SYNC_fxnTable; +static const Driver Sync_IO = { + .name = "sync_ioexp", + .status = (Parameter[]){ + { + .name = "gps_lock", + .type = TYPE_ENUM, + .values = (Enum_Map[]){ + {0, "Gps Not Locked" }, + {1, "Gps Locked" }, + {} + }, + }, + {} + }, + .fxnTable = &SYNC_fxnTable, +}; + +#endif /* OCMP_SYNCIO_H_ */ diff --git a/firmware/ec/common/inc/ocmp_wrappers/ocmp_testmodule.h b/firmware/ec/common/inc/ocmp_wrappers/ocmp_testmodule.h new file mode 100644 index 0000000000..eb66864f6d --- /dev/null +++ b/firmware/ec/common/inc/ocmp_wrappers/ocmp_testmodule.h @@ -0,0 +1,102 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef OCMP_TESTMODULE_H_ +#define OCMP_TESTMODULE_H_ + +#include "common/inc/global/Framework.h" + +SCHEMA_IMPORT const Driver_fxnTable G510_fxnTable; +SCHEMA_IMPORT bool TestMod_cmdEnable(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdDisable(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdDisconnect(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdConnect(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdSendSms(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdDial(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdAnswer(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdHangup(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdReset(void *driver, void *params); + +static const Driver Testmod_G510 = { + .name = "Fibocom G510", + .status = (Parameter[]){ + { .name = "imei", .type = TYPE_UINT64 }, + { .name = "imsi", .type = TYPE_UINT64 }, + { .name = "mfg", .type = TYPE_STR, .size = 10 }, + { .name = "model", .type = TYPE_STR, .size = 5 }, + { .name = "rssi", .type = TYPE_UINT8 }, + { .name = "ber", .type = TYPE_UINT8 }, + { .name = "registration", .type = TYPE_ENUM, + .values = (Enum_Map[]){ + { 0, "Not Registered, Not Searching" }, + { 1, "Registered, Home Network" }, + { 2, "Not Registered, Searching" }, + { 3, "Registration Denied" }, + { 4, "Status Unknown" }, + { 5, "Registered, Roaming" }, + {} + }, + }, + { .name = "network_operatorinfo", .type = TYPE_UINT8, .size = 3 }, /* TODO: this is a complex type */ + { .name = "cellid", .type = TYPE_UINT32 }, + { .name = "bsic", .type = TYPE_UINT8 }, + { .name = "lasterror",.type = TYPE_UINT8, .size = 3 }, /* TODO: this is a complex type */ + {} + }, + .alerts = (Parameter[]){ + { .name = "Call State Changed", .type = TYPE_ENUM, + .values = (Enum_Map[]){ + { 0, "Ringing" }, + { 1, "Call End" }, + {} + }, + }, + /* TODO: var len str */ + { .name = "Incoming SMS", .type = TYPE_STR, .size = 20 }, + {} + }, + .commands = (Command[]){ + { + .name = "disconnect_nw", + .cb_cmd = TestMod_cmdDisconnect + }, + { + .name = "connect_nw", + .cb_cmd = TestMod_cmdConnect + }, + { + .name = "send", + .cb_cmd = TestMod_cmdSendSms + }, + { + .name = "dial", + .cb_cmd = TestMod_cmdDial + }, + { + .name = "answer", + .cb_cmd = TestMod_cmdAnswer, + }, + { + .name = "hangup", + .cb_cmd = TestMod_cmdHangup, + }, + { + .name = "enable", + .cb_cmd = TestMod_cmdEnable, + }, + { + .name = "disable", + .cb_cmd = TestMod_cmdDisable, + }, + {} + }, + .fxnTable = &G510_fxnTable, + .payload_fmt_union = true, /* Testmodule breaks serialization pattern :( */ +}; + +#endif /* OCMP_TESTMODULE_H_ */ diff --git a/firmware/ec/inc/common/i2cbus.h b/firmware/ec/inc/common/i2cbus.h index d8c71923a3..33c196e883 100644 --- a/firmware/ec/inc/common/i2cbus.h +++ b/firmware/ec/inc/common/i2cbus.h @@ -21,8 +21,8 @@ * STRUCT DEFINITIONS *****************************************************************************/ typedef struct I2C_Dev { - const unsigned int bus; - const uint8_t slave_addr; + unsigned int bus; + uint8_t slave_addr; } I2C_Dev; /***************************************************************************** diff --git a/firmware/ec/inc/common/post.h b/firmware/ec/inc/common/post.h index 7ba565b6e2..36b1605ee8 100644 --- a/firmware/ec/inc/common/post.h +++ b/firmware/ec/inc/common/post.h @@ -6,16 +6,15 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef POST_H_ #define POST_H_ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/ocmp_frame.h" +#include "common/inc/global/post_frame.h" #include "inc/common/global_header.h" -#include "inc/common/ocmp_frame.h" -#include "inc/common/post_frame.h" #include #include @@ -23,9 +22,9 @@ /***************************************************************************** * MACRO DEFINITIONS *****************************************************************************/ -#define POST_RECORDS 35 +#define POST_RECORDS 55 -#define OC_POST_TASKPRIORITY 2 +#define OC_POST_TASKPRIORITY 3 #define POST_TASK_STACK_SIZE 4096 @@ -39,5 +38,4 @@ extern Queue_Handle postRxMsgQueue; * FUNCTION DECLARATIONS *****************************************************************************/ void post_createtask(void); - #endif /* POST_H_ */ diff --git a/firmware/ec/inc/common/post_util.h b/firmware/ec/inc/common/post_util.h new file mode 100644 index 0000000000..69b6427577 --- /dev/null +++ b/firmware/ec/inc/common/post_util.h @@ -0,0 +1,18 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef INC_COMMON_POST_UTIL_H_ +#define INC_COMMON_POST_UTIL_H_ + +#include "common/inc/global/Framework.h" +#include "inc/common/post.h" + +ReturnStatus _execPost(OCMPMessageFrame *pMsg, + unsigned int subsystem_id); + +#endif /* INC_COMMON_POST_UTIL_H_ */ diff --git a/firmware/ec/inc/common/system_states.h b/firmware/ec/inc/common/system_states.h index d38859d3a2..9ee41569f1 100644 --- a/firmware/ec/inc/common/system_states.h +++ b/firmware/ec/inc/common/system_states.h @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef SYSTEM_STATES_H_ #define SYSTEM_STATES_H_ diff --git a/firmware/ec/inc/devices/88E6071_registers.h b/firmware/ec/inc/devices/88E6071_registers.h index 0406e5eb45..a29703c180 100644 --- a/firmware/ec/inc/devices/88E6071_registers.h +++ b/firmware/ec/inc/devices/88E6071_registers.h @@ -212,4 +212,12 @@ #define PHY_1_INT_EN (1 << 1) #define PHY_0_INT_EN (1 << 0) +//REG_C45_PACKET_GEN 0x8030 +#define CRC_ENABLE (1 << 6) +#define FRAME_COUNT_EN (1 << 5) +#define FORCE_BURST_STOP (1 << 4) +#define PACKET_GEN_EN (1 << 3) +#define PAYLOAD_TYPE (1 << 2) +#define PACKET_LENGTH (1 << 1) +#define ERROR_PACKET_INJECTION (1 << 0) #endif /* _88E6071_REGISTERS_H_ */ diff --git a/firmware/ec/inc/devices/adt7481.h b/firmware/ec/inc/devices/adt7481.h index 67ebc92dfd..041a6b2b10 100644 --- a/firmware/ec/inc/devices/adt7481.h +++ b/firmware/ec/inc/devices/adt7481.h @@ -12,9 +12,9 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/post_frame.h" #include "inc/common/global_header.h" #include "inc/common/i2cbus.h" - #include /***************************************************************************** @@ -164,4 +164,5 @@ ReturnStatus adt7481_get_therm_hysteresis(const I2C_Dev *i2c_dev, int8_t* tempHysteresisValue); ReturnStatus adt7481_set_therm_hysteresis(const I2C_Dev *i2c_dev, int8_t tempHysteresisValue); + #endif /* ADT7481_H_ */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_dat-xxr5a-pp.h b/firmware/ec/inc/devices/dat-xxr5a-pp.h similarity index 57% rename from firmware/ec/inc/devices/ocmp_wrappers/ocmp_dat-xxr5a-pp.h rename to firmware/ec/inc/devices/dat-xxr5a-pp.h index ed9740f3de..f6d455636d 100644 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_dat-xxr5a-pp.h +++ b/firmware/ec/inc/devices/dat-xxr5a-pp.h @@ -1,14 +1,13 @@ /** -* Copyright (c) 2017-present, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -*/ -#ifndef _OCMP_DATXXR5APP_H -#define _OCMP_DATXXR5APP_H - + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef DAT_XXR5A_PP_H_ +#define DAT_XXR5A_PP_H_ #include "drivers/OcGpio.h" #include @@ -28,12 +27,10 @@ typedef struct DATR5APP_Cfg { OcGpio_Pin pin_4db; OcGpio_Pin pin_8db; OcGpio_Pin pin_16db; /* Optional */ + //OcGpio_Pin pin_tx_attn_enb; }; OcGpio_Pin pin_group[DATR5APP_PIN_COUNT]; }; OcGpio_Pin pin_le; } DATR5APP_Cfg; - -extern const Driver DATXXR5APP; - -#endif /* _OCMP_DATXXR5APP_H */ +#endif /* DAT_XXR5A_PP_H_ */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ocgpio.h b/firmware/ec/inc/devices/debug_ocgpio.h similarity index 79% rename from firmware/ec/inc/devices/ocmp_wrappers/ocmp_ocgpio.h rename to firmware/ec/inc/devices/debug_ocgpio.h index 993a863f9f..cbc18a848c 100644 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ocgpio.h +++ b/firmware/ec/inc/devices/debug_ocgpio.h @@ -6,9 +6,10 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ -#ifndef OCMP_OCGPIO_H_ -#define OCMP_OCGPIO_H_ -#include "src/drivers/OcGpio.h" +#ifndef _OC_GPIO_H_ +#define _OC_GPIO_H_ + +#include "drivers/OcGpio.h" typedef struct __attribute__ ((packed, aligned(1))) { uint8_t pin; @@ -19,6 +20,5 @@ typedef struct S_OCGPIO_Cfg { OcGpio_Port* port; unsigned int group; }S_OCGPIO_Cfg; -extern const Driver OC_GPIO; -#endif /* OCMP_OCGPIO_H_ */ +#endif /* _OC_GPIO_H_ */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_i2c.h b/firmware/ec/inc/devices/debug_oci2c.h similarity index 82% rename from firmware/ec/inc/devices/ocmp_wrappers/ocmp_i2c.h rename to firmware/ec/inc/devices/debug_oci2c.h index af121039b3..af8b686efc 100644 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_i2c.h +++ b/firmware/ec/inc/devices/debug_oci2c.h @@ -6,8 +6,10 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ -#ifndef OCMP_I2C_H_ -#define OCMP_I2C_H_ +#ifndef OC_I2C_H_ +#define OC_I2C_H_ + +#include typedef struct __attribute__ ((packed, aligned(1))){ uint8_t slaveAddress; @@ -19,6 +21,5 @@ typedef struct __attribute__ ((packed, aligned(1))){ typedef struct S_I2C_Cfg { unsigned int bus; }S_I2C_Cfg; -extern const Driver OC_I2C; -#endif /* INC_DEVICES_OCMP_WRAPPERS_OCMP_I2C_H_ */ +#endif /* INC_DEVICES_OC_I2C_H_ */ diff --git a/firmware/ec/inc/devices/debug_ocmdio.h b/firmware/ec/inc/devices/debug_ocmdio.h new file mode 100644 index 0000000000..acd1af7c3a --- /dev/null +++ b/firmware/ec/inc/devices/debug_ocmdio.h @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2018-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef OC_MDIO_H_ +#define OC_MDIO_H_ + +#include + +typedef struct __attribute__ ((packed, aligned(1))){ + uint16_t reg_address; + uint16_t reg_value; +}S_OCMDIO; + +typedef struct S_MDIO_Cfg { + unsigned int port; +}S_MDIO_Cfg; + +#endif /* INC_DEVICES_OC_MDIO_H_ */ diff --git a/firmware/ec/inc/devices/eeprom.h b/firmware/ec/inc/devices/eeprom.h index 410e9fe698..ae9733534d 100644 --- a/firmware/ec/inc/devices/eeprom.h +++ b/firmware/ec/inc/devices/eeprom.h @@ -6,16 +6,15 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef EEPROM_H_ #define EEPROM_H_ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/ocmp_frame.h" /* Temporary, just for OCMPSubsystem def */ #include "drivers/OcGpio.h" #include "inc/common/i2cbus.h" -#include "inc/common/ocmp_frame.h" /* Temporary, just for OCMPSubsystem def */ /***************************************************************************** * MACRO DEFINITIONS @@ -48,8 +47,16 @@ typedef struct Eeprom_Cfg { I2C_Dev i2c_dev; OcGpio_Pin *pin_wp; EepromDev_Cfg type; /*!< Device specific config (page size, etc) */ + OCMPSubsystem ss; /* TODO: The HW config need not know about the subsytem + to be fixed later */ } Eeprom_Cfg, *Eeprom_Handle; +typedef enum { + OC_STAT_SYS_SERIAL_ID = 0, + OC_STAT_SYS_GBC_BOARD_ID, + OC_STAT_SYS_STATE +} eOCStatusParamId; + /***************************************************************************** * FUNCTION DECLARATIONS *****************************************************************************/ @@ -60,7 +67,7 @@ ReturnStatus eeprom_read(Eeprom_Cfg *cfg, void *buffer, size_t size); -ReturnStatus eeprom_write(Eeprom_Cfg *cfg, +ReturnStatus eeprom_write(const Eeprom_Cfg *cfg, uint16_t address, const void *buffer, size_t size); @@ -71,14 +78,14 @@ ReturnStatus eeprom_enable_write(Eeprom_Cfg *cfg); ReturnStatus eeprom_read_oc_info(uint8_t * oc_serial); -ReturnStatus eeprom_read_board_info(OCMPSubsystem subSystem, +ReturnStatus eeprom_read_board_info(const Eeprom_Cfg *cfg, uint8_t * rom_info); -ReturnStatus eeprom_read_device_info_record(OCMPSubsystem subSystem, +ReturnStatus eeprom_read_device_info_record(const Eeprom_Cfg *cfg, uint8_t recordNo, char * device_info); -ReturnStatus eeprom_write_device_info_record(OCMPSubsystem subSystem, +ReturnStatus eeprom_write_device_info_record(Eeprom_Cfg *cfg, uint8_t recordNo, char * device_info); diff --git a/firmware/ec/inc/devices/eth_sw.h b/firmware/ec/inc/devices/eth_sw.h index 1c2ac884ec..8c3b4b893d 100644 --- a/firmware/ec/inc/devices/eth_sw.h +++ b/firmware/ec/inc/devices/eth_sw.h @@ -39,7 +39,7 @@ #define LAN_MUX_SELECT_PIN GPIO_PIN_1 #define ETH_SW_DEV_SERIAL_NO 1 - +#define IPPARAMS 4 /* * Ethernet Components ID. This is the part of the OCMPMsg in componentID field. */ @@ -141,6 +141,20 @@ typedef struct Eth_cfg { Eth_Sw_Port eth_sw_port; } Eth_cfg; +typedef struct Eth_LoopBack_Params { + uint8_t loopBackType; +}Eth_LoopBack_Params; + +typedef struct Eth_PacketGen_Params { + uint16_t reg_value; +}Eth_PacketGen_Params; + +typedef struct Eth_TcpClient_Params { + uint8_t ipAddress[IPPARAMS]; + uint16_t tcpPort; + uint8_t repeat; +}Eth_TcpClient_Params; + ePostCode eth_sw_probe(); ePostCode eth_sw_init(); void eth_enable_interrupt(); @@ -152,7 +166,7 @@ ReturnStatus eth_sw_get_status_sleep_mode(uint8_t port, port_duplex *sleep_mode_ ReturnStatus eth_sw_get_status_auto_neg_complete(uint8_t port, port_duplex *autoneg_complete); ReturnStatus eth_sw_get_status_link_up(uint8_t port, port_duplex *link_up); ReturnStatus restart_autoneg(uint8_t port); -ReturnStatus eth_sw_set_config_speed(uint8_t port, port_duplex speed); +ReturnStatus eth_sw_set_config_speed(uint8_t port, port_speed speed); ReturnStatus eth_sw_set_config_duplex(uint8_t port, port_duplex duplex); ReturnStatus eth_sw_set_config_power_down(uint8_t port,uint8_t power_down); ReturnStatus eth_sw_set_config_sleep_mode_enable(uint8_t port,uint8_t sleep_mode_en); @@ -164,5 +178,12 @@ ReturnStatus eth_sw_get_config_duplex(uint8_t port, port_duplex* duplex); ReturnStatus eth_sw_get_config_power_down(uint8_t port, uint8_t* power_dwn); ReturnStatus eth_sw_get_config_sleep_mode(uint8_t port, uint8_t* sleep_mode); ReturnStatus eth_sw_get_config_interrupt_enable(uint8_t port, uint8_t* interrupt_enb); +ReturnStatus eth_sw_enable_loopback(void *driver, void *params); +ReturnStatus eth_sw_disable_loopback(void *driver, void *params); +ReturnStatus eth_sw_enable_macloopback(uint8_t port); +ReturnStatus eth_sw_disable_macloopback(uint8_t port); +ReturnStatus eth_sw_enable_packet_gen(void *driver, void *params); +ReturnStatus eth_sw_disable_packet_gen(void *driver); void eth_sw_setAlertHandler(Eth_cfg *ethCfg, Eth_Sw_CallbackFn alert_cb, void *cb_context); + #endif /* INC_DEVICES_ETH_SW_H_ */ diff --git a/firmware/ec/inc/devices/ext_battery.h b/firmware/ec/inc/devices/ext_battery.h index 76f90f3b96..6dd6a6781f 100644 --- a/firmware/ec/inc/devices/ext_battery.h +++ b/firmware/ec/inc/devices/ext_battery.h @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef EXT_BATTERY_H_ #define EXT_BATTERY_H_ diff --git a/firmware/ec/inc/devices/fe_param.h b/firmware/ec/inc/devices/fe_param.h new file mode 100644 index 0000000000..b73e81def0 --- /dev/null +++ b/firmware/ec/inc/devices/fe_param.h @@ -0,0 +1,14 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#ifndef FE_PARAM_H_ +#define FE_PARAM_H_ + +//TODO: As of now no declarations are present here + +#endif /* INC_DEVICES_FE_PARAM_H_ */ diff --git a/firmware/ec/inc/devices/ina226.h b/firmware/ec/inc/devices/ina226.h index 60271778f7..13c03be6fe 100644 --- a/firmware/ec/inc/devices/ina226.h +++ b/firmware/ec/inc/devices/ina226.h @@ -6,16 +6,15 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef INA226_H_ #define INA226_H_ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/post_frame.h" #include "drivers/OcGpio.h" #include "inc/common/i2cbus.h" -#include "inc/common/post_frame.h" /***************************************************************************** * MACRO DEFINITIONS @@ -86,12 +85,9 @@ ReturnStatus ina226_readShuntVoltage(INA226_Dev *dev, uint16_t* shuntVoltValue); ReturnStatus ina226_readCurrent(INA226_Dev *dev, uint16_t* currValue); ReturnStatus ina226_readPower(INA226_Dev *dev, uint16_t* powValue); - ReturnStatus ina226_init(INA226_Dev *dev); void ina226_setAlertHandler(INA226_Dev *dev, INA226_CallbackFn alert_cb, void *cb_context); ReturnStatus ina226_enableAlert(INA226_Dev *dev, INA226_Event evt); - -ePostCode ina226_probe(INA226_Dev *dev); - +ePostCode ina226_probe(INA226_Dev *dev, POSTData *postData); #endif /* INA226_H_ */ diff --git a/firmware/ec/inc/devices/int_battery.h b/firmware/ec/inc/devices/int_battery.h index 1e4990d52f..16926ebc29 100644 --- a/firmware/ec/inc/devices/int_battery.h +++ b/firmware/ec/inc/devices/int_battery.h @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef INT_BATTERY_H_ #define INT_BATTERY_H_ diff --git a/firmware/ec/inc/devices/led.h b/firmware/ec/inc/devices/led.h index e7d2aec1a0..91fa76c151 100644 --- a/firmware/ec/inc/devices/led.h +++ b/firmware/ec/inc/devices/led.h @@ -6,18 +6,17 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef INA226_H_ #define INA226_H_ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/Framework.h" +#include "common/inc/global/post_frame.h" #include "drivers/OcGpio.h" #include "inc/common/i2cbus.h" -#include "inc/common/post_frame.h" #include "inc/devices/sx1509.h" - #include "inc/subsystem/hci/hci_led.h" /***************************************************************************** @@ -82,13 +81,11 @@ typedef struct { /***************************************************************************** * FUNCTION DECLARATIONS *****************************************************************************/ -ReturnStatus hci_led_turnon_green(void); -ReturnStatus hci_led_turnon_red(void); -ReturnStatus hci_led_turnoff_all(void); - -ReturnStatus hci_led_system_boot(void); - -ReturnStatus led_init(void); -ePostCode led_probe(void); +ReturnStatus hci_led_turnon_green(const HciLedCfg *driver); +ReturnStatus hci_led_turnon_red(const HciLedCfg *driver); +ReturnStatus hci_led_turnoff_all(const HciLedCfg *driver); +ReturnStatus hci_led_system_boot(const HciLedCfg *driver); +ReturnStatus led_init(const HciLedCfg *driver); +ePostCode led_probe(const HciLedCfg *driver,POSTData* postData); #endif /* INA226_H_ */ diff --git a/firmware/ec/inc/devices/ltc4015.h b/firmware/ec/inc/devices/ltc4015.h index e54b0f4fc9..ba41416402 100644 --- a/firmware/ec/inc/devices/ltc4015.h +++ b/firmware/ec/inc/devices/ltc4015.h @@ -7,16 +7,15 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef LTC4015_H_ #define LTC4015_H_ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/post_frame.h" #include "drivers/OcGpio.h" #include "inc/common/i2cbus.h" -#include "inc/common/post_frame.h" /***************************************************************************** * MACRO DEFINITIONS @@ -197,6 +196,6 @@ ReturnStatus LTC4015_enableLimitAlerts(LTC4015_Dev *dev, uint16_t alert_mask); ReturnStatus LTC4015_enableChargerStateAlerts(LTC4015_Dev *dev, uint16_t alert_mask); -ePostCode LTC4015_probe(LTC4015_Dev *dev); +ePostCode LTC4015_probe(LTC4015_Dev *dev, POSTData *postData); #endif /* LTC4015_H_ */ diff --git a/firmware/ec/inc/devices/ltc4274.h b/firmware/ec/inc/devices/ltc4274.h index f0c377980b..8362918e61 100644 --- a/firmware/ec/inc/devices/ltc4274.h +++ b/firmware/ec/inc/devices/ltc4274.h @@ -6,17 +6,16 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef LTC4274_H_ #define LTC4274_H_ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/post_frame.h" #include "drivers/OcGpio.h" #include "inc/common/global_header.h" #include "inc/common/i2cbus.h" -#include "inc/common/post_frame.h" #include @@ -119,6 +118,7 @@ typedef void (*LTC4274_CallbackFn) (LTC4274_Event evt, typedef struct LTC4274_Cfg { I2C_Dev i2c_dev; OcGpio_Pin *pin_evt; + OcGpio_Pin reset_pin; } LTC4274_Cfg; typedef struct LTC4274_Obj { @@ -155,13 +155,15 @@ ReturnStatus ltc4274_debug_write(const I2C_Dev *i2c_dev, uint8_t reg_address, uint8_t value); ReturnStatus ltc4274_debug_read(const I2C_Dev *i2c_dev, uint8_t reg_address, uint8_t *value); -void ltc4274_enable(uint8_t enableVal); +void ltc4274_enable(LTC4274_Dev *dev, uint8_t enableVal); ReturnStatus ltc4274_get_devid(const I2C_Dev *i2c_dev, uint8_t *devID); ReturnStatus ltc4274_detect(const I2C_Dev *i2c_dev, uint8_t *detect, uint8_t *val); -ePostCode ltc4274_probe(const I2C_Dev *i2c_dev); +ePostCode ltc4274_probe(const LTC4274_Dev *i2c_dev, POSTData *postData); void ltc4274_init(LTC4274_Dev *dev); void ltc4274_initPSEStateInfo(); void ltc4274_update_stateInfo(const I2C_Dev *i2c_dev); +ReturnStatus ltc4274_reset(); + #endif /* LTC4274_H_ */ diff --git a/firmware/ec/inc/devices/ltc4275.h b/firmware/ec/inc/devices/ltc4275.h index bee15d55fe..f6e1ccfde2 100644 --- a/firmware/ec/inc/devices/ltc4275.h +++ b/firmware/ec/inc/devices/ltc4275.h @@ -6,15 +6,16 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef LTC4275_H_ #define LTC4275_H_ /***************************************************************************** * HEADER FILES *****************************************************************************/ -#include "inc/common/global_header.h" +#include "common/inc/global/post_frame.h" #include "drivers/OcGpio.h" +#include "inc/common/global_header.h" + #include typedef enum { @@ -84,10 +85,12 @@ typedef struct LTC4275A_Dev { /***************************************************************************** * FUNCTION DECLARATIONS *****************************************************************************/ +void ltc4275_config(const LTC4275_Dev *dev); +ePostCode ltc4275_probe(const LTC4275_Dev *dev, POSTData *postData); ReturnStatus ltc4275_init(LTC4275_Dev *dev); void ltc4275_set_alert_handler(LTC4275_Dev *dev, LTC4275_CallbackFn alert_cb, void *cb_context); -ReturnStatus ltc4275_get_power_good(ePDPowerState *val); -ReturnStatus pwr_pd_check_class(ePDClassType *val); -ReturnStatus ltc4275_get_class(ePDClassType *val); -void ltc4275_update_status(); +ReturnStatus ltc4275_get_power_good(const LTC4275_Dev *dev, ePDPowerState *val); +ReturnStatus ltc4275_get_class(const LTC4275_Dev *dev, ePDClassType *val); +void ltc4275_update_status(const LTC4275_Dev *dev); + #endif /* LTC4275_H_ */ diff --git a/firmware/ec/inc/devices/mdio_bb.h b/firmware/ec/inc/devices/mdio_bb.h index cf71f0839b..cf36216f8b 100644 --- a/firmware/ec/inc/devices/mdio_bb.h +++ b/firmware/ec/inc/devices/mdio_bb.h @@ -19,8 +19,8 @@ *****************************************************************************/ void mdiobb_set_bits(int smi_device, int reg_addr, int datamask); void mdiobb_clear_bits(int smi_device, int reg_addr, int datamask); -int mdiobb_read_data(int smi_device, int reg_addr); -void mdiobb_write_data(int smi_device, int reg_addr, int data); +int mdiobb_read_by_paging(int smi_device, int reg_addr); +void mdiobb_write_by_paging(int smi_device, int reg_addr, int data); int mdiobb_write(int phy, int reg, uint16_t val); int mdiobb_read(int phy, unsigned int reg); diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_adt7481.h b/firmware/ec/inc/devices/ocmp_wrappers/ocmp_adt7481.h deleted file mode 100644 index db9e68dd6f..0000000000 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_adt7481.h +++ /dev/null @@ -1,23 +0,0 @@ -/** -* Copyright (c) 2017-present, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -*/ -#ifndef _OCMP_ADT7481_H -#define _OCMP_ADT7481_H - -typedef union ADT7481_Config { - struct { - int8_t lowlimit; - int8_t highlimit; - int8_t critlimit; - }; - int8_t limits[3]; -} ADT7481_Config; - -extern const Driver ADT7481; - -#endif /* _OCMP_ADT7481_H */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_eth_sw.h b/firmware/ec/inc/devices/ocmp_wrappers/ocmp_eth_sw.h deleted file mode 100644 index 80355e459c..0000000000 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_eth_sw.h +++ /dev/null @@ -1,14 +0,0 @@ -/** -* Copyright (c) 2017-present, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -*/ -#ifndef OCMP_ETH_SW_H_ -#define OCMP_ETH_SW_H_ - -extern const Driver ETH_SW; - -#endif /* INC_DEVICES_OCMP_WRAPPERS_OCMP_ETH_SW_H_ */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ina226.h b/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ina226.h deleted file mode 100644 index 5d6cbaf380..0000000000 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ina226.h +++ /dev/null @@ -1,18 +0,0 @@ -/** -* Copyright (c) 2017-present, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -*/ -#ifndef _OCMP_INA226_H -#define _OCMP_INA226_H - -typedef struct INA226_Config { - uint16_t current_lim; -} INA226_Config; - -extern const Driver INA226; - -#endif /* _OCMP_INA226_H */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_led.h b/firmware/ec/inc/devices/ocmp_wrappers/ocmp_led.h deleted file mode 100644 index 638f1c8633..0000000000 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_led.h +++ /dev/null @@ -1,16 +0,0 @@ -/** -* Copyright (c) 2017-present, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -*/ -#ifndef _OCMP_LED_H -#define _OCMP_LED_H - -extern const Driver HCI_LED; - -bool led_testpattern_control(void *driver, void *params); - -#endif /* _OCMP_LED_H */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ltc4015.h b/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ltc4015.h deleted file mode 100644 index 59e88d8adc..0000000000 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ltc4015.h +++ /dev/null @@ -1,25 +0,0 @@ -/** -* Copyright (c) 2017-present, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -*/ -#ifndef _OCMP_LTC4015_H -#define _OCMP_LTC4015_H - -typedef struct LTC4015_Config { - int16_t batteryVoltageLow; - int16_t batteryVoltageHigh; - int16_t batteryCurrentLow; - int16_t inputVoltageLow; - int16_t inputCurrentHigh; - uint16_t inputCurrentLimit; - uint16_t icharge; - uint16_t vcharge; -} LTC4015_Config; - -extern const Driver LTC4015; - -#endif /* _OCMP_LTC4015_H */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ltc4274.h b/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ltc4274.h deleted file mode 100644 index f5ff23161c..0000000000 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ltc4274.h +++ /dev/null @@ -1,25 +0,0 @@ -/** -* Copyright (c) 2017-present, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -*/ - -#ifndef _OCMP_LTC4274_H_ -#define _OCMP_LTC4274_H_ - -typedef union LTC4274_Config { - struct { - int8_t operatingMode; - int8_t detectEnable; - int8_t interruptMask; - bool interruptEnable; - int8_t pseHpEnable; - }; - -} LTC4274_Config; - -extern const Driver LTC4274; -#endif /* _OCMP_LTC4274_H_ */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ltc4275.h b/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ltc4275.h deleted file mode 100644 index fc86692081..0000000000 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_ltc4275.h +++ /dev/null @@ -1,14 +0,0 @@ -/** -* Copyright (c) 2017-present, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -*/ - -#ifndef INC_DEVICES_OCMP_WRAPPERS_OCMP_LTC4275_H_ -#define INC_DEVICES_OCMP_WRAPPERS_OCMP_LTC4275_H_ - -extern const Driver LTC4275; -#endif /* INC_DEVICES_OCMP_WRAPPERS_OCMP_LTC4275_H_ */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_powerSource.h b/firmware/ec/inc/devices/ocmp_wrappers/ocmp_powerSource.h deleted file mode 100644 index 9b65a05d94..0000000000 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_powerSource.h +++ /dev/null @@ -1,14 +0,0 @@ -/** -* Copyright (c) 2017-present, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -*/ - -#ifndef _OCMP_POWERSOURCE_H_ -#define _OCMP_POWERSOURCE_H_ - -extern const Driver PWRSRC; -#endif /* _OCMP_POWERSOURCE_H_ */ diff --git a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_se98a.h b/firmware/ec/inc/devices/ocmp_wrappers/ocmp_se98a.h deleted file mode 100644 index d0337ff29d..0000000000 --- a/firmware/ec/inc/devices/ocmp_wrappers/ocmp_se98a.h +++ /dev/null @@ -1,23 +0,0 @@ -/** -* Copyright (c) 2017-present, Facebook, Inc. -* All rights reserved. -* -* This source code is licensed under the BSD-style license found in the -* LICENSE file in the root directory of this source tree. An additional grant -* of patent rights can be found in the PATENTS file in the same directory. -*/ -#ifndef _OCMP_SE98A_H -#define _OCMP_SE98A_H - -typedef union SE98A_Config { - struct { - int8_t lowlimit; - int8_t highlimit; - int8_t critlimit; - }; - int8_t limits[3]; -} SE98A_Config; - -extern const Driver SE98A; - -#endif /* _OCMP_SE98A_H */ diff --git a/firmware/ec/inc/devices/pca9557.h b/firmware/ec/inc/devices/pca9557.h index fe443e080a..f7504b2ec7 100644 --- a/firmware/ec/inc/devices/pca9557.h +++ b/firmware/ec/inc/devices/pca9557.h @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef PCA9557_H_ #define PCA9557_H_ diff --git a/firmware/ec/inc/devices/powerSource.h b/firmware/ec/inc/devices/powerSource.h index 67a19633dc..898c63d419 100644 --- a/firmware/ec/inc/devices/powerSource.h +++ b/firmware/ec/inc/devices/powerSource.h @@ -6,15 +6,15 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef POWERSOURCE_H_ #define POWERSOURCE_H_ -#include "inc/common/global_header.h" -#include "inc/common/ocmp_frame.h" -#include "inc/common/post_frame.h" -#include "inc/common/i2cbus.h" +#include "common/inc/global/post_frame.h" +#include "common/inc/global/ocmp_frame.h" +#include "common/inc/global/Framework.h" #include "drivers/OcGpio.h" +#include "inc/common/global_header.h" +#include "inc/common/i2cbus.h" #include @@ -72,7 +72,10 @@ typedef struct __attribute__((packed, aligned(1))) { } tPower_Status_Data; typedef struct PWRSRC_Cfg { - OcGpio_Pin *pin_evt; + OcGpio_Pin pin_solar_aux_prsnt_n; + OcGpio_Pin pin_poe_prsnt_n; + OcGpio_Pin pin_int_bat_prsnt; + OcGpio_Pin pin_ext_bat_prsnt; } PWRSRC_Cfg; typedef struct PWRSRC_Cfg_Obj { @@ -80,12 +83,13 @@ typedef struct PWRSRC_Cfg_Obj { } PWRSRC_Obj; typedef struct PWRSRC_Dev { - PWRSRC_Cfg cfg; + const PWRSRC_Cfg cfg; PWRSRC_Obj obj; } PWRSRC_Dev; void pwr_source_init(void); -void pwr_get_source_info(void); +void pwr_get_source_info(PWRSRC_Dev *pwrSrcDev); ReturnStatus pwr_process_get_status_parameters_data( ePower_StatusParamId paramIndex, uint8_t *pPowerStatusData); + #endif /* POWERSOURCE_H_ */ diff --git a/firmware/ec/inc/devices/sbd.h b/firmware/ec/inc/devices/sbd.h new file mode 100644 index 0000000000..7ff9a293e0 --- /dev/null +++ b/firmware/ec/inc/devices/sbd.h @@ -0,0 +1,36 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#ifndef INC_DEVICES_SBD_H_ +#define INC_DEVICES_SBD_H_ + +#include + +typedef enum { + IRIDIUM_IMEI = 0, + IRIDIUM_MFG = 1, + IRIDIUM_MODEL = 2, + IRIDIUM_SIG_QUALITY = 3, + IRIDIUM_REGSTATUS = 4, + IRIDIUM_NO_OUT_MSG = 5, + IRIDIUM_LASTERR = 6, + IRIDIUM_PARAM_MAX /* Limiter */ +} eOBC_StatusParam; + +typedef enum { + ERR_RC_INTERNAL = 0, + ERR_SRC_CMS = 1, + ERR_SRC_CME = 2 +} eOBC_ErrorSource; + +typedef struct OBC_lastError { + eOBC_ErrorSource src; + uint16_t code; +} OBC_lastError; + +#endif /* INC_DEVICES_SBD_H_ */ diff --git a/firmware/ec/inc/devices/se98a.h b/firmware/ec/inc/devices/se98a.h index 9b74db66f1..3b3be07741 100644 --- a/firmware/ec/inc/devices/se98a.h +++ b/firmware/ec/inc/devices/se98a.h @@ -12,9 +12,10 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/post_frame.h" +#include "common/inc/global/Framework.h" #include "drivers/OcGpio.h" #include "inc/common/i2cbus.h" -#include "inc/common/post_frame.h" #include @@ -38,7 +39,7 @@ typedef void (*SE98A_CallbackFn) (SE98A_Event evt, int8_t temperature, void *context); typedef struct SE98A_Cfg { - const I2C_Dev dev; + I2C_Dev dev; OcGpio_Pin *pin_evt; } SE98A_Cfg; @@ -80,10 +81,10 @@ ReturnStatus se98a_enable_alerts(SE98A_Dev *dev); * POST (probe device, then init) - I propose that this should all be * in a single function */ /*! Tests the SE98A device and verifies that the driver supports it - * @param dev Device struct pointer + * @param dev Device struct pointer, Post data struct * @return POST_DEV_FOUND on success, error code on failure */ -ePostCode se98a_probe(SE98A_Dev *dev); +ePostCode se98a_probe(SE98A_Dev *dev, POSTData *postData); /*! Sets one of the 3 alert thresholds on the device * @param dev Device struct pointer diff --git a/firmware/ec/inc/devices/sx1509.h b/firmware/ec/inc/devices/sx1509.h index 88a41d4dcc..09741bd63c 100644 --- a/firmware/ec/inc/devices/sx1509.h +++ b/firmware/ec/inc/devices/sx1509.h @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef SX1509_H_ #define SX1509_H_ diff --git a/firmware/ec/inc/subsystem/ethernet/ethernetSS.h b/firmware/ec/inc/subsystem/ethernet/ethernetSS.h index d45a53dddf..a1fb4dd4a9 100644 --- a/firmware/ec/inc/subsystem/ethernet/ethernetSS.h +++ b/firmware/ec/inc/subsystem/ethernet/ethernetSS.h @@ -6,13 +6,12 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef ETHERNETSS_H_ #define ETHERNETSS_H_ #include void ethernet_switch_setup(); -bool eth_sw_pre_init(void *unused); +bool eth_sw_pre_init(void** driver, void *returnValue); #endif /* ETHERNETSS_H_ */ diff --git a/firmware/ec/inc/subsystem/gpp/ebmp.h b/firmware/ec/inc/subsystem/gpp/ebmp.h index 92cd4d3c3c..05091fcc51 100644 --- a/firmware/ec/inc/subsystem/gpp/ebmp.h +++ b/firmware/ec/inc/subsystem/gpp/ebmp.h @@ -9,6 +9,8 @@ #ifndef EBMP_H_ #define EBMP_H_ +#include "inc/subsystem/gpp/gpp.h" + /***************************************************************************** * MACRO DEFINITIONS *****************************************************************************/ @@ -52,6 +54,6 @@ typedef enum { /***************************************************************************** * FUNCTION DECLARATIONS *****************************************************************************/ -void ebmp_init(void); +void ebmp_init(Gpp_gpioCfg* driver); #endif /* EBMP_H_ */ diff --git a/firmware/ec/inc/subsystem/gpp/gpp.h b/firmware/ec/inc/subsystem/gpp/gpp.h index 1e4ecc15b3..5d15cb804a 100644 --- a/firmware/ec/inc/subsystem/gpp/gpp.h +++ b/firmware/ec/inc/subsystem/gpp/gpp.h @@ -12,10 +12,10 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "drivers/OcGpio.h" #include "inc/devices/ina226.h" #include "inc/devices/se98a.h" #include "inc/common/system_states.h" -#include "drivers/OcGpio.h" /***************************************************************************** * MACRO DEFINITIONS @@ -51,9 +51,7 @@ typedef struct mSATA_Cfg { INA226_Dev current_sensor; } mSATA_Cfg; -typedef struct Gpp_Cfg { - AP_Cfg ap; - mSATA_Cfg msata; +typedef struct Gpp_gpioCfg { OcGpio_Pin pin_soc_pltrst_n; OcGpio_Pin pin_soc_corepwr_ok; OcGpio_Pin pin_msata_ec_das; @@ -62,10 +60,10 @@ typedef struct Gpp_Cfg { OcGpio_Pin pin_ec_reset_to_proc; OcGpio_Pin pin_ap_boot_alert1; OcGpio_Pin pin_ap_boot_alert2; -} Gpp_Cfg; +} Gpp_gpioCfg; -bool gpp_pre_init(void *returnValue); -bool gpp_post_init(eSubSystemStates *returnValue); +bool gpp_pre_init(void *driver, void *returnValue); +bool gpp_post_init(void *driver, void *returnValue); bool GPP_ap_Reset(void *driver, void *params); #endif /* GPP_H_ */ diff --git a/firmware/ec/inc/subsystem/hci/hci.h b/firmware/ec/inc/subsystem/hci/hci.h index 67a6dcebc3..d2b8c41723 100644 --- a/firmware/ec/inc/subsystem/hci/hci.h +++ b/firmware/ec/inc/subsystem/hci/hci.h @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef HCI_H_ #define HCI_H_ @@ -31,12 +30,12 @@ /* Subsystem config */ typedef struct Hci_Cfg { HciBuzzer_Cfg buzzer; - HciLed_Cfg led; + HciLedCfg led; } Hci_Cfg; /***************************************************************************** * FUNCTION DECLARATIONS *****************************************************************************/ -bool HCI_Init(void *return_buf); +bool HCI_Init(void *driver, void *return_buf); #endif /* HCI_H_ */ diff --git a/firmware/ec/inc/subsystem/hci/hci_buzzer.h b/firmware/ec/inc/subsystem/hci/hci_buzzer.h index 848a4508bb..04476b962b 100644 --- a/firmware/ec/inc/subsystem/hci/hci_buzzer.h +++ b/firmware/ec/inc/subsystem/hci/hci_buzzer.h @@ -6,15 +6,14 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef _HCI_BUZZER_H #define _HCI_BUZZER_H /***************************************************************************** * HEADER FILES *****************************************************************************/ -#include "inc/common/global_header.h" #include "drivers/OcGpio.h" +#include "inc/common/global_header.h" #include diff --git a/firmware/ec/inc/subsystem/hci/hci_led.h b/firmware/ec/inc/subsystem/hci/hci_led.h index 2cfee2d367..4994b47954 100644 --- a/firmware/ec/inc/subsystem/hci/hci_led.h +++ b/firmware/ec/inc/subsystem/hci/hci_led.h @@ -6,15 +6,14 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef HCI_LED_H_ #define HCI_LED_H_ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/ocmp_frame.h" #include "inc/common/global_header.h" -#include "inc/common/ocmp_frame.h" #include "inc/devices/se98a.h" #include "inc/devices/sx1509.h" @@ -35,11 +34,10 @@ typedef enum { } HciLed_DriverId; /* Subsystem config */ -typedef struct HciLed_Cfg { - SE98A_Dev temp_sensor; +typedef struct HciLedCfg { I2C_Dev sx1509_dev[HCI_LED_DRIVER_COUNT]; OcGpio_Pin pin_ec_gpio; -} HciLed_Cfg; +} HciLedCfg; /* LED System States */ typedef enum { diff --git a/firmware/ec/inc/subsystem/obc/obc.h b/firmware/ec/inc/subsystem/obc/obc.h index 285a6218c6..1554b387d7 100644 --- a/firmware/ec/inc/subsystem/obc/obc.h +++ b/firmware/ec/inc/subsystem/obc/obc.h @@ -12,11 +12,11 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/Framework.h" #include "devices/uart/sbd.h" #include "drivers/OcGpio.h" #include "helpers/attribute.h" - -#include "src/registry/Framework.h" +#include "inc/devices/sbd.h" /***************************************************************************** * STRUCT/ENUM DEFINITIONS @@ -30,32 +30,9 @@ typedef struct Iridium_Cfg { } Iridium_Cfg; /* Subsystem config */ -typedef struct Obc_Cfg { - Iridium_Cfg iridium_cfg; +typedef struct Obc_gpioCfg { OcGpio_Pin *pin_pwr_en; -} Obc_Cfg; - -typedef enum { - IRIDIUM_IMEI = 0, - IRIDIUM_MFG = 1, - IRIDIUM_MODEL = 2, - IRIDIUM_SIG_QUALITY = 3, - IRIDIUM_REGSTATUS = 4, - IRIDIUM_NO_OUT_MSG = 5, - IRIDIUM_LASTERR = 6, - IRIDIUM_PARAM_MAX /* Limiter */ -} eOBC_StatusParam; - -typedef enum { - ERR_RC_INTERNAL = 0, - ERR_SRC_CMS = 1, - ERR_SRC_CME = 2 -} eOBC_ErrorSource; - -typedef struct OBC_lastError { - eOBC_ErrorSource src; - uint16_t code; -} OBC_lastError; +} Obc_gpioCfg; typedef union PACKED { uint64_t imei; @@ -67,7 +44,7 @@ typedef union PACKED { OBC_lastError lastErr; } OBC_Iridium_Status_Data; -bool obc_pre_init(void *returnValue); +bool obc_pre_init(void *driver, void *returnValue); extern const Driver OBC_Iridium; #endif /* OBC_OBC_H_ */ diff --git a/firmware/ec/inc/subsystem/power/power.h b/firmware/ec/inc/subsystem/power/power.h index 023fbb238d..13572dcd42 100644 --- a/firmware/ec/inc/subsystem/power/power.h +++ b/firmware/ec/inc/subsystem/power/power.h @@ -12,38 +12,10 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ -#include "drivers/OcGpio.h" #include "inc/devices/ltc4015.h" #include "inc/devices/ltc4274.h" #include "inc/devices/ltc4275.h" #include "inc/devices/powerSource.h" #include "inc/devices/se98a.h" -/***************************************************************************** - * STRUCT/ENUM DEFINITIONS - *****************************************************************************/ -/* Subsystem config */ -typedef struct Power_Cfg { - OcGpio_Pin pin_ec_pd_pwrgd_ok; - OcGpio_Pin pin_solar_aux_prsnt_n; - OcGpio_Pin pin_poe_prsnt_n; - OcGpio_Pin pin_lt4275_ec_nt2p; - OcGpio_Pin pin_necpse_rst; - OcGpio_Pin pin_lt4015_i2c_sel; - OcGpio_Pin pin_int_bat_prsnt; - OcGpio_Pin pin_ext_bat_prsnt; - SE98A_Dev lead_acid_temp_sens; - LTC4015_Dev ext_bat_charger; - LTC4015_Dev int_bat_charger; - LTC4274_Dev pse; - LTC4275_Dev pd; - PWRSRC_Dev powerSource; -} Power_Cfg; - -/***************************************************************************** - * FUNCTION DECLARATIONS - *****************************************************************************/ -bool pwr_pre_init(); -bool pwr_post_init(); - #endif diff --git a/firmware/ec/inc/subsystem/rffe/rffe.h b/firmware/ec/inc/subsystem/rffe/rffe.h index a3ac8a3392..45c65bf6ee 100644 --- a/firmware/ec/inc/subsystem/rffe/rffe.h +++ b/firmware/ec/inc/subsystem/rffe/rffe.h @@ -50,21 +50,21 @@ typedef struct Fe_Lna_Cfg { } Fe_Lna_Cfg; typedef struct Fe_Ch1_Gain_Cfg { - Fe_Gain_Cfg fe_gain_cfg; + Fe_Gain_Cfg* fe_gain_cfg; } Fe_Ch1_Gain_Cfg; typedef struct Fe_Ch2_Gain_Cfg { OcGpio_Pin pin_ch1_2g_lb_band_sel_l; - Fe_Gain_Cfg fe_gain_cfg; + Fe_Gain_Cfg* fe_gain_cfg; } Fe_Ch2_Gain_Cfg; typedef struct Fe_Ch1_Lna_Cfg { - Fe_Lna_Cfg fe_lna_cfg; + Fe_Lna_Cfg* fe_lna_cfg; } Fe_Ch1_Lna_Cfg; typedef struct Fe_Ch2_Lna_Cfg { OcGpio_Pin pin_ch1_rf_pwr_off; - Fe_Lna_Cfg fe_lna_cfg; + Fe_Lna_Cfg* fe_lna_cfg; } Fe_Ch2_Lna_Cfg; typedef struct Fe_Watchdog_Cfg { @@ -78,24 +78,19 @@ typedef struct Fe_Watchdog_Cfg { OcGpio_Pin pin_copol_fpga; } Fe_Watchdog_Cfg; -typedef struct Fe_Cfg { +typedef struct Fe_gpioCfg { OcGpio_Pin pin_rf_pgood_ldo; OcGpio_Pin pin_fe_12v_ctrl; OcGpio_Pin pin_trxfe_conn_reset; +}Fe_gpioCfg; - Fe_Ch1_Gain_Cfg fe_ch1_gain_cfg; - Fe_Ch2_Gain_Cfg fe_ch2_gain_cfg; - Fe_Ch1_Lna_Cfg fe_ch1_lna_cfg; - Fe_Ch2_Lna_Cfg fe_ch2_lna_cfg; - Fe_Watchdog_Cfg fe_watchdog_cfg; - - INA226_Dev ina226_ch1_5_7v; /* CH1 5.7V Power Sensor */ - INA226_Dev ina226_ch2_5_7v; /* CH2 5.7V Power Sensor */ - I2C_Dev adt7481_ch1; /* CH1 Temperature Sensor */ - I2C_Dev adt7481_ch2; /* CH2 Temperature Sensor */ - Eeprom_Cfg *eeprom_inventory; - I2C_Dev ads7830_ch1; /* CH1 Power Monitor */ - I2C_Dev ads7830_ch2; /* CH2 Power Monitor */ +typedef struct Fe_Cfg { + Fe_gpioCfg* fe_gpio_cfg; + Fe_Ch1_Gain_Cfg* fe_ch1_gain_cfg; + Fe_Ch2_Gain_Cfg* fe_ch2_gain_cfg; + Fe_Ch1_Lna_Cfg* fe_ch1_lna_cfg; + Fe_Ch2_Lna_Cfg* fe_ch2_lna_cfg; + Fe_Watchdog_Cfg* fe_watchdog_cfg; } Fe_Cfg; typedef struct __attribute__((packed, aligned(1))) { @@ -106,8 +101,8 @@ typedef struct __attribute__((packed, aligned(1))) { /***************************************************************************** * FUNCTION DECLARATIONS *****************************************************************************/ -bool rffe_pre_init(void *returnValue); -bool rffe_post_init(eSubSystemStates *ssState); +bool rffe_pre_init(void *driver, void *returnValue); +bool rffe_post_init(void *driver, void *ssState); bool RFFE_reset(void *driver, void *params); bool RFFE_InventoryGetStatus(void *driver, unsigned int param_id, diff --git a/firmware/ec/inc/subsystem/rffe/rffe_ctrl.h b/firmware/ec/inc/subsystem/rffe/rffe_ctrl.h index dd6afcc019..8889d91d1f 100644 --- a/firmware/ec/inc/subsystem/rffe/rffe_ctrl.h +++ b/firmware/ec/inc/subsystem/rffe/rffe_ctrl.h @@ -12,23 +12,29 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/Framework.h" #include "inc/common/global_header.h" #include "inc/subsystem/rffe/rffe.h" -#include "src/registry/Framework.h" /***************************************************************************** * MACRO DEFINITIONS *****************************************************************************/ -#define RFFE_CHANNEL1_IO_TX_ATTEN_ADDR 0x18 -#define RFFE_CHANNEL1_IO_RX_ATTEN_ADDR 0x1A -#define RFFE_CHANNEL2_IO_TX_ATTEN_ADDR 0x1C -#define RFFE_CHANNEL2_IO_RX_ATTEN_ADDR 0x1D -#define RFFE_IO_REVPOWER_ALERT_ADDR 0x1B #define RFFE_IO_BOARD_CFG_ADDR 0x19 /***************************************************************************** * STRUCT/ENUM DEFINITIONS *****************************************************************************/ +/* RF Channel Type */ +typedef enum rfChannel { + RFFE_CHANNEL1 = 0, + RFFE_CHANNEL2, + RFFE_MAX_CHANNEL +} rffeChannel; + +typedef struct FE_Ch_Band_cfg { + rffeChannel channel; +}FE_Ch_Band_cfg; + /* RFFE Band Type */ typedef enum { RFFE_BAND2_1900 = 1, @@ -41,11 +47,9 @@ typedef enum { RFFE_SHUTDOWN } rffeBand; -/* RF Channel Type */ -typedef enum rfChannel { - RFFE_CHANNEL1 = 0, - RFFE_CHANNEL2 -} rffeChannel; +typedef struct FE_Band_Cfg { + rffeBand band; +}FE_Band_Cfg; /* Power Amplifier Control Type */ typedef enum rfPACtrl { @@ -60,16 +64,19 @@ typedef struct RfWatchdog_Cfg { OcGpio_Pin *pin_interrupt; } RfWatchdog_Cfg; +typedef struct Fe_Ch_Pwr_Cfg { + rffeChannel channel; + Fe_Cfg *fe_Rffecfg; +} Fe_Ch_Pwr_Cfg; /***************************************************************************** * FUNCTION DECLARATIONS *****************************************************************************/ -ReturnStatus rffe_ctrl_get_band(rffeChannel channel, rffeBand *band); -ReturnStatus rffe_ctrl_configure_power_amplifier(rffeChannel channel, +bool rffe_ctrl_set_band(rffeChannel channel, rffeBand band); +bool rffe_ctrl_get_band(rffeChannel channel, rffeBand *band); +ReturnStatus rffe_ctrl_configure_power_amplifier(Fe_Ch_Pwr_Cfg *channel, rffePaCtrlType rfPACtrl); - bool RFFE_enablePA(void *driver, void *params); bool RFFE_disablePA(void *driver, void *params); - -extern Driver RFFEWatchdog; +void _rffe_watchdog_handler(void *context); #endif /* RFFE_CTRL_H_ */ diff --git a/firmware/ec/inc/subsystem/rffe/rffe_powermonitor.h b/firmware/ec/inc/subsystem/rffe/rffe_powermonitor.h index 402520bec0..147d630c02 100644 --- a/firmware/ec/inc/subsystem/rffe/rffe_powermonitor.h +++ b/firmware/ec/inc/subsystem/rffe/rffe_powermonitor.h @@ -12,8 +12,8 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/Framework.h" #include "rffe_ctrl.h" /* Temporary, for channel # enum */ -#include "src/registry/Framework.h" /***************************************************************************** * MACRO DEFINITIONS @@ -62,11 +62,17 @@ typedef struct __attribute__((packed, aligned(1))) { rffeStatus rffeStatus; } rffeStatusData; +typedef enum FePowerStatus { + FE_POWER_STATUS_FORWARD = 0, + FE_POWER_STATUS_REVERSE, +} FePowerStatus; + /***************************************************************************** * FUNCTION DECLARATIONS *****************************************************************************/ +ReturnStatus rffe_powermonitor_read_power(const I2C_Dev *i2c_dev, + eRffeStatusParamId rfPowerSelect, + uint16_t *rfpower); void rffe_powermonitor_createtask(void); -extern Driver RFPowerMonitor; - #endif /* RFFE_POWERMONITOR_H_ */ diff --git a/firmware/ec/inc/subsystem/sdr/sdr.h b/firmware/ec/inc/subsystem/sdr/sdr.h index d2821d021a..3cc985545e 100644 --- a/firmware/ec/inc/subsystem/sdr/sdr.h +++ b/firmware/ec/inc/subsystem/sdr/sdr.h @@ -12,10 +12,11 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "drivers/OcGpio.h" #include "inc/devices/adt7481.h" #include "inc/devices/eeprom.h" #include "inc/devices/ina226.h" -#include "drivers/OcGpio.h" + #include @@ -38,7 +39,6 @@ #define SDR_CURRENT_SENSOR_ADDR 0x41 /* FX3 IO Expander Device Address */ -#define SDR_FX3_IOEXP_ADDRESS 0x1E #define SDR_EEPROM_IOEXP_ADDRESS 0x1F /***************************************************************************** @@ -50,26 +50,22 @@ typedef struct Sdr_FpgaCfg { const I2C_Dev temp_sensor; } Sdr_FpgaCfg; -typedef struct Sdr_Cfg { - Sdr_FpgaCfg fpga; - Eeprom_Cfg *eeprom_inventory; - INA226_Dev current_sensor; - +typedef struct Sdr_gpioCfg { OcGpio_Pin pin_sdr_reg_ldo_pgood; OcGpio_Pin pin_trxfe_12v_onoff; OcGpio_Pin pin_rf_fe_io_reset; OcGpio_Pin pin_sdr_reset_in; OcGpio_Pin pin_ec_trxfe_reset; OcGpio_Pin pin_fx3_reset; -} Sdr_Cfg; +}Sdr_gpioCfg; /***************************************************************************** * FUNCTION DECLARATIONS *****************************************************************************/ -void sdr_pwr_control(uint8_t control); /* TODO: hack to let OBC work */ +void sdr_pwr_control(Sdr_gpioCfg *driver, uint8_t control); /* TODO: hack to let OBC work */ /* Schema hooks */ -bool SDR_Init(void *return_buf); +bool SDR_Init(void *driver, void *return_buf); bool Sdr_InventoryGetStatus(void *driver, unsigned int param_id, void *return_buf); bool SDR_fx3Reset(void *driver, void *params); diff --git a/firmware/ec/inc/subsystem/sync/sync.h b/firmware/ec/inc/subsystem/sync/sync.h index 6df3e86b1f..5acd29ab81 100644 --- a/firmware/ec/inc/subsystem/sync/sync.h +++ b/firmware/ec/inc/subsystem/sync/sync.h @@ -12,9 +12,9 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "drivers/OcGpio.h" #include "inc/devices/adt7481.h" #include "inc/devices/sx1509.h" /* Just for POST check - remove for 0.2 */ -#include "drivers/OcGpio.h" #include @@ -28,19 +28,13 @@ #define SYNC_GPS_TASK_PRIORITY 2 #define SYNC_GPS_TASK_STACK_SIZE 1024 -#define SYNC_IO_DEVICE_ADDR 0x71 #define SYNC_TEMP_SENSOR_ADDR 0x4C /***************************************************************************** * STRUCT/ENUM DEFINITIONS *****************************************************************************/ /* Subsystem config */ -typedef struct Sync_Cfg { - const I2C_Dev temp_sens; - const I2C_Dev io_exp; /* Temporary - for POST */ - - /* TODO: this pins are just lumped together, they'll be broken into their - * respective drivers in time */ +typedef struct Sync_gpioCfg { OcGpio_Pin pin_spdt_cntrl_lvl; OcGpio_Pin pin_warmup_survey_init_sel; OcGpio_Pin pin_r_phase_lock_ioexp; @@ -50,9 +44,8 @@ typedef struct Sync_Cfg { OcGpio_Pin pin_temp_alert; OcGpio_Pin pin_spdt_cntrl_lte_cpu_gps_lvl; OcGpio_Pin pin_init_survey_sel; - OcGpio_Pin pin_ec_sync_reset; -} Sync_Cfg; +} Sync_gpioCfg; typedef enum gpsStatus { GPS_NOTLOCKED = 0, @@ -63,7 +56,7 @@ typedef enum gpsStatus { * FUNCTION DECLARATIONS *****************************************************************************/ /* Schema hooks */ -bool SYNC_Init(void *return_buf); +bool SYNC_Init(void *driver, void *return_buf); bool SYNC_reset(void *driver, void *params); bool SYNC_GpsStatus(void *driver, unsigned int param_id, void *return_buf); diff --git a/firmware/ec/inc/subsystem/sys/sys.h b/firmware/ec/inc/subsystem/sys/sys.h index d7a33257e8..e014d5b82b 100644 --- a/firmware/ec/inc/subsystem/sys/sys.h +++ b/firmware/ec/inc/subsystem/sys/sys.h @@ -8,12 +8,15 @@ */ #ifndef _SYS_H #define _SYS_H +#include "common/inc/global/Framework.h" -#include "src/registry/Framework.h" +#include +#include bool SYS_cmdReset(void *driver, void *params); bool SYS_cmdEcho(void *driver, void *params); - +bool SYS_post_enable(void **postActivate); +bool SYS_post_get_results(void **getpostResultMsg); extern const Driver Driver_EepromSID; extern const Driver Driver_EepromInv; extern const Driver Driver_MAC; diff --git a/firmware/ec/inc/subsystem/testModule/testModule.h b/firmware/ec/inc/subsystem/testModule/testModule.h index 6e1397dc39..cb1f71ea93 100644 --- a/firmware/ec/inc/subsystem/testModule/testModule.h +++ b/firmware/ec/inc/subsystem/testModule/testModule.h @@ -12,10 +12,10 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ +#include "common/inc/global/Framework.h" #include "drivers/OcGpio.h" #include "helpers/attribute.h" -#include "src/registry/Framework.h" /***************************************************************************** * STRUCT/ENUM DEFINITIONS diff --git a/firmware/ec/inc/subsystem/watchdog/watchdog.h b/firmware/ec/inc/subsystem/watchdog/watchdog.h index 3e70a00752..a8b704bd46 100644 --- a/firmware/ec/inc/subsystem/watchdog/watchdog.h +++ b/firmware/ec/inc/subsystem/watchdog/watchdog.h @@ -12,7 +12,7 @@ /***************************************************************************** * MACRO DEFINITIONS *****************************************************************************/ -#define WATCHDOG_TASK_STACK_SIZE 512 +#define WATCHDOG_TASK_STACK_SIZE 1024 #define WATCHDOG_TASK_PRIORITY 2 #endif /* WATCHDOG_H_ */ diff --git a/firmware/ec/inc/utils/ocmp_util.h b/firmware/ec/inc/utils/ocmp_util.h index 8aa9339749..9aae16ebc4 100644 --- a/firmware/ec/inc/utils/ocmp_util.h +++ b/firmware/ec/inc/utils/ocmp_util.h @@ -6,14 +6,14 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef INC_UTILS_OCMP_UTIL_H_ #define INC_UTILS_OCMP_UTIL_H_ +#include "common/inc/global/ocmp_frame.h" + #include #include #include -#include "inc/common/ocmp_frame.h" /***************************************************************************** ** FUNCTION NAME : OCMP_mallocFrame diff --git a/firmware/ec/libs/.exclude b/firmware/ec/libs/.exclude deleted file mode 100644 index 8c863310d8..0000000000 --- a/firmware/ec/libs/.exclude +++ /dev/null @@ -1 +0,0 @@ -This file exists to prevent Eclipse/CDT from adding the C sources contained in this directory (or below) to any enclosing project. diff --git a/firmware/ec/libs/makefile.libs b/firmware/ec/libs/makefile.libs deleted file mode 100644 index 1b134a306f..0000000000 --- a/firmware/ec/libs/makefile.libs +++ /dev/null @@ -1,62 +0,0 @@ -# -# This file was generated based on the configuration script: -# /Users/kashi/work/OpenCellular/review/firmware/OpenCellular.cfg -# -# This makefile may be included in other makefiles that need to build -# the libraries containing the compiled source files generated as -# part of the configuration step. - -# -# ======== GEN_SRC_DIR ========= -# The path to the sources generated during configuration -# -# This path must be either absolute or relative to the build directory. -# -# The absolute path to the generated source directory (at the time the -# sources were generated) is: -# /Users/kashi/work/OpenCellular/review/firmware/libs -# -GEN_SRC_DIR ?= libs - -ifeq (,$(wildcard $(GEN_SRC_DIR))) -$(error "ERROR: GEN_SRC_DIR must be set to the directory containing the generated sources") -endif - -# -# ======== .force ======== -# The .force goal is used to force the build of any goal that names it as -# a prerequisite -# -.PHONY: .force - -# -# ======== library macros ======== -# -sysbios_SRC = $(GEN_SRC_DIR)/sysbios -sysbios_LIB = $(GEN_SRC_DIR)/sysbios/sysbios.am4fg - -# -# ======== dependencies ======== -# -all: $(sysbios_LIB) -clean: .sysbios_clean - - -# ======== convenient build goals ======== -.PHONY: sysbios -sysbios: $(GEN_SRC_DIR)/sysbios/sysbios.am4fg - -# CDT managed make executables depend on $(OBJS) -OBJS += $(sysbios_LIB) - -# -# ======== rules ======== -# -$(sysbios_LIB): .force - @echo making $@ ... - @$(MAKE) -C $(sysbios_SRC) - -.sysbios_clean: - @echo cleaning $(sysbios_SRC) ... - -@$(MAKE) --no-print-directory -C $(sysbios_SRC) clean - diff --git a/firmware/ec/libs/sysbios/_BIOS.o.dep b/firmware/ec/libs/sysbios/_BIOS.o.dep deleted file mode 100644 index 77bbeae42d..0000000000 --- a/firmware/ec/libs/sysbios/_BIOS.o.dep +++ /dev/null @@ -1,58 +0,0 @@ -_BIOS.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/System.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/ISystemSupport.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/System_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/System_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ICore.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Core_CoreProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/internal/BIOS.xdc.h diff --git a/firmware/ec/libs/sysbios/gates_GateHwi.o.dep b/firmware/ec/libs/sysbios/gates_GateHwi.o.dep deleted file mode 100644 index 09fbb3287f..0000000000 --- a/firmware/ec/libs/sysbios/gates_GateHwi.o.dep +++ /dev/null @@ -1,55 +0,0 @@ -gates_GateHwi.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/gates/GateHwi.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/gates/package/internal/GateHwi.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/gates/GateHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/gates/package/package.defs.h diff --git a/firmware/ec/libs/sysbios/gates_GateMutex.o.dep b/firmware/ec/libs/sysbios/gates_GateMutex.o.dep deleted file mode 100644 index 1f1d6433cd..0000000000 --- a/firmware/ec/libs/sysbios/gates_GateMutex.o.dep +++ /dev/null @@ -1,59 +0,0 @@ -gates_GateMutex.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/gates/GateMutex.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Semaphore.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/gates/package/internal/GateMutex.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/gates/GateMutex.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/gates/package/package.defs.h diff --git a/firmware/ec/libs/sysbios/gnu_ReentSupport.o.dep b/firmware/ec/libs/sysbios/gnu_ReentSupport.o.dep deleted file mode 100644 index 4dc8cb55b8..0000000000 --- a/firmware/ec/libs/sysbios/gnu_ReentSupport.o.dep +++ /dev/null @@ -1,85 +0,0 @@ -gnu_ReentSupport.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/rts/gnu/ReentSupport.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/rts/gnu/package/internal/ReentSupport.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/rts/gnu/ReentSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/rts/gnu/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Semaphore.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/reent.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/reent.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/_ansi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/newlib.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/config.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/machine/ieeefp.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/features.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/_types.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/machine/_types.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/machine/_default_types.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/lock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/machine/types.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/string.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/_ansi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/string.h diff --git a/firmware/ec/libs/sysbios/gnu_SemiHostSupport.o.dep b/firmware/ec/libs/sysbios/gnu_SemiHostSupport.o.dep deleted file mode 100644 index ceafd3a196..0000000000 --- a/firmware/ec/libs/sysbios/gnu_SemiHostSupport.o.dep +++ /dev/null @@ -1,28 +0,0 @@ -gnu_SemiHostSupport.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/rts/gnu/SemiHostSupport.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/rts/gnu/package/internal/SemiHostSupport.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/rts/gnu/SemiHostSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/rts/gnu/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h diff --git a/firmware/ec/libs/sysbios/hal_Cache.o.dep b/firmware/ec/libs/sysbios/hal_Cache.o.dep deleted file mode 100644 index 9743ac98b2..0000000000 --- a/firmware/ec/libs/sysbios/hal_Cache.o.dep +++ /dev/null @@ -1,31 +0,0 @@ -hal_Cache.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Cache.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/internal/Cache.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Cache.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ICache.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Cache_CacheProxy.h diff --git a/firmware/ec/libs/sysbios/hal_CacheNull.o.dep b/firmware/ec/libs/sysbios/hal_CacheNull.o.dep deleted file mode 100644 index fed8214d73..0000000000 --- a/firmware/ec/libs/sysbios/hal_CacheNull.o.dep +++ /dev/null @@ -1,30 +0,0 @@ -hal_CacheNull.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/CacheNull.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/internal/CacheNull.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/CacheNull.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ICache.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h diff --git a/firmware/ec/libs/sysbios/hal_Hwi.o.dep b/firmware/ec/libs/sysbios/hal_Hwi.o.dep deleted file mode 100644 index e41180bc8c..0000000000 --- a/firmware/ec/libs/sysbios/hal_Hwi.o.dep +++ /dev/null @@ -1,53 +0,0 @@ -hal_Hwi.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/internal/Hwi.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h diff --git a/firmware/ec/libs/sysbios/hal_Hwi_stack.o.dep b/firmware/ec/libs/sysbios/hal_Hwi_stack.o.dep deleted file mode 100644 index c3b2401b68..0000000000 --- a/firmware/ec/libs/sysbios/hal_Hwi_stack.o.dep +++ /dev/null @@ -1,57 +0,0 @@ -hal_Hwi_stack.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi_stack.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ICore.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Core_CoreProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/internal/Hwi.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h diff --git a/firmware/ec/libs/sysbios/hal_Hwi_startup.o.dep b/firmware/ec/libs/sysbios/hal_Hwi_startup.o.dep deleted file mode 100644 index 4acddecb23..0000000000 --- a/firmware/ec/libs/sysbios/hal_Hwi_startup.o.dep +++ /dev/null @@ -1,52 +0,0 @@ -hal_Hwi_startup.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi_startup.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/internal/Hwi.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h diff --git a/firmware/ec/libs/sysbios/hal_Timer.o.dep b/firmware/ec/libs/sysbios/hal_Timer.o.dep deleted file mode 100644 index 6d4f3276ac..0000000000 --- a/firmware/ec/libs/sysbios/hal_Timer.o.dep +++ /dev/null @@ -1,37 +0,0 @@ -hal_Timer.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Timer.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/internal/Timer.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Timer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Timer_TimerProxy.h diff --git a/firmware/ec/libs/sysbios/heaps_HeapMem.o.dep b/firmware/ec/libs/sysbios/heaps_HeapMem.o.dep deleted file mode 100644 index cef949f46d..0000000000 --- a/firmware/ec/libs/sysbios/heaps_HeapMem.o.dep +++ /dev/null @@ -1,39 +0,0 @@ -heaps_HeapMem.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/heaps/HeapMem.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Gate.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Gate__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Gate__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/heaps/package/internal/HeapMem.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/heaps/HeapMem.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/heaps/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/heaps/package/HeapMem_Module_GateProxy.h diff --git a/firmware/ec/libs/sysbios/knl_Clock.o.dep b/firmware/ec/libs/sysbios/knl_Clock.o.dep deleted file mode 100644 index 7dbf866ef4..0000000000 --- a/firmware/ec/libs/sysbios/knl_Clock.o.dep +++ /dev/null @@ -1,59 +0,0 @@ -knl_Clock.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/internal/Clock.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h diff --git a/firmware/ec/libs/sysbios/knl_Event.o.dep b/firmware/ec/libs/sysbios/knl_Event.o.dep deleted file mode 100644 index 32369b3641..0000000000 --- a/firmware/ec/libs/sysbios/knl_Event.o.dep +++ /dev/null @@ -1,66 +0,0 @@ -knl_Event.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/internal/Event.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__epilogue.h diff --git a/firmware/ec/libs/sysbios/knl_Idle.o.dep b/firmware/ec/libs/sysbios/knl_Idle.o.dep deleted file mode 100644 index f12d3d1864..0000000000 --- a/firmware/ec/libs/sysbios/knl_Idle.o.dep +++ /dev/null @@ -1,59 +0,0 @@ -knl_Idle.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Idle.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ICore.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Core_CoreProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/internal/Idle.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Idle.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h diff --git a/firmware/ec/libs/sysbios/knl_Intrinsics.o.dep b/firmware/ec/libs/sysbios/knl_Intrinsics.o.dep deleted file mode 100644 index e39582687d..0000000000 --- a/firmware/ec/libs/sysbios/knl_Intrinsics.o.dep +++ /dev/null @@ -1,39 +0,0 @@ -knl_Intrinsics.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Intrinsics.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/internal/Intrinsics.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Intrinsics.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Intrinsics__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IIntrinsicsSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Intrinsics_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Intrinsics__epilogue.h diff --git a/firmware/ec/libs/sysbios/knl_Mailbox.o.dep b/firmware/ec/libs/sysbios/knl_Mailbox.o.dep deleted file mode 100644 index d4f704ff36..0000000000 --- a/firmware/ec/libs/sysbios/knl_Mailbox.o.dep +++ /dev/null @@ -1,82 +0,0 @@ -knl_Mailbox.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Mailbox.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/string.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/_ansi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/newlib.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/config.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/machine/ieeefp.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/features.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/reent.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/_ansi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/_types.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/machine/_types.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/machine/_default_types.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/lock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/sys/string.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Semaphore.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/internal/Mailbox.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Mailbox.h diff --git a/firmware/ec/libs/sysbios/knl_Queue.o.dep b/firmware/ec/libs/sysbios/knl_Queue.o.dep deleted file mode 100644 index c444028ba8..0000000000 --- a/firmware/ec/libs/sysbios/knl_Queue.o.dep +++ /dev/null @@ -1,54 +0,0 @@ -knl_Queue.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/internal/Queue.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h diff --git a/firmware/ec/libs/sysbios/knl_Semaphore.o.dep b/firmware/ec/libs/sysbios/knl_Semaphore.o.dep deleted file mode 100644 index 1e6191652e..0000000000 --- a/firmware/ec/libs/sysbios/knl_Semaphore.o.dep +++ /dev/null @@ -1,68 +0,0 @@ -knl_Semaphore.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Semaphore.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/internal/Semaphore.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Semaphore.h diff --git a/firmware/ec/libs/sysbios/knl_Swi.o.dep b/firmware/ec/libs/sysbios/knl_Swi.o.dep deleted file mode 100644 index e7a6ee73a3..0000000000 --- a/firmware/ec/libs/sysbios/knl_Swi.o.dep +++ /dev/null @@ -1,73 +0,0 @@ -knl_Swi.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/System.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/ISystemSupport.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/System_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/System_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Intrinsics.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Intrinsics__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IIntrinsicsSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Intrinsics_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Intrinsics__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/internal/Swi.xdc.h diff --git a/firmware/ec/libs/sysbios/knl_Swi_andn.o.dep b/firmware/ec/libs/sysbios/knl_Swi_andn.o.dep deleted file mode 100644 index c05a700240..0000000000 --- a/firmware/ec/libs/sysbios/knl_Swi_andn.o.dep +++ /dev/null @@ -1,55 +0,0 @@ -knl_Swi_andn.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi_andn.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/internal/Swi.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h diff --git a/firmware/ec/libs/sysbios/knl_Task.o.dep b/firmware/ec/libs/sysbios/knl_Task.o.dep deleted file mode 100644 index 79df6fb31c..0000000000 --- a/firmware/ec/libs/sysbios/knl_Task.o.dep +++ /dev/null @@ -1,70 +0,0 @@ -knl_Task.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Idle.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Intrinsics.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Intrinsics__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IIntrinsicsSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Intrinsics_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Intrinsics__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/internal/Task.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h diff --git a/firmware/ec/libs/sysbios/lm4_Timer.o.dep b/firmware/ec/libs/sysbios/lm4_Timer.o.dep deleted file mode 100644 index 819c080ba4..0000000000 --- a/firmware/ec/libs/sysbios/lm4_Timer.o.dep +++ /dev/null @@ -1,52 +0,0 @@ -lm4_Timer.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/lm4/Timer.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/catalog/arm/peripherals/timers/timer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/lm4/package/internal/Timer.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/lm4/Timer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/lm4/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h diff --git a/firmware/ec/libs/sysbios/lm4_TimestampProvider.o.dep b/firmware/ec/libs/sysbios/lm4_TimestampProvider.o.dep deleted file mode 100644 index 3af8d1df31..0000000000 --- a/firmware/ec/libs/sysbios/lm4_TimestampProvider.o.dep +++ /dev/null @@ -1,60 +0,0 @@ -lm4_TimestampProvider.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/lm4/TimestampProvider.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/lm4/Timer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/lm4/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/lm4/package/internal/TimestampProvider.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/lm4/TimestampProvider.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimestamp.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/ITimestampProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/ITimestampClient.h diff --git a/firmware/ec/libs/sysbios/m3_Hwi.o.dep b/firmware/ec/libs/sysbios/m3_Hwi.o.dep deleted file mode 100644 index 1bf6c1027b..0000000000 --- a/firmware/ec/libs/sysbios/m3_Hwi.o.dep +++ /dev/null @@ -1,63 +0,0 @@ -m3_Hwi.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/System.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/ISystemSupport.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/System_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/System_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/internal/Hwi.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h diff --git a/firmware/ec/libs/sysbios/m3_TaskSupport.o.dep b/firmware/ec/libs/sysbios/m3_TaskSupport.o.dep deleted file mode 100644 index 5c8393f9f8..0000000000 --- a/firmware/ec/libs/sysbios/m3_TaskSupport.o.dep +++ /dev/null @@ -1,50 +0,0 @@ -m3_TaskSupport.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/TaskSupport.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/internal/TaskSupport.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/TaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h diff --git a/firmware/ec/libs/sysbios/makefile b/firmware/ec/libs/sysbios/makefile deleted file mode 100644 index 89097c853c..0000000000 --- a/firmware/ec/libs/sysbios/makefile +++ /dev/null @@ -1,155 +0,0 @@ -vpath % /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/ -vpath %.c /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/ - -CCOPTS = -Wunused -Wunknown-pragmas -ffunction-sections -fdata-sections -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mabi=aapcs -g -O3 -I/Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/$(GCCTARG)/include -Dfar= -D__DYNAMIC_REENT__ -Dti_sysbios_knl_Task_minimizeLatency__D=FALSE -Dti_sysbios_knl_Clock_stopCheckNext__D=FALSE -Dti_sysbios_family_arm_m3_Hwi_enableException__D=TRUE -Dti_sysbios_family_arm_m3_Hwi_disablePriority__D=32U -Dti_sysbios_family_arm_m3_Hwi_numSparseInterrupts__D=0U - -XDC_ROOT = /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/ - -BIOS_ROOT = /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/ - -BIOS_DEFS = -Dti_sysbios_BIOS_swiEnabled__D=TRUE -Dti_sysbios_BIOS_taskEnabled__D=TRUE -Dti_sysbios_BIOS_clockEnabled__D=TRUE -Dti_sysbios_BIOS_runtimeCreatesEnabled__D=TRUE -Dti_sysbios_hal_Hwi_DISABLE_ALL_HOOKS -Dti_sysbios_knl_Swi_DISABLE_ALL_HOOKS -Dti_sysbios_BIOS_smpEnabled__D=FALSE -Dti_sysbios_Build_useHwiMacros -Dti_sysbios_knl_Swi_numPriorities__D=16 -Dti_sysbios_knl_Task_deleteTerminatedTasks__D=TRUE -Dti_sysbios_knl_Task_numPriorities__D=16 -Dti_sysbios_knl_Task_checkStackFlag__D=TRUE -Dti_sysbios_knl_Task_initStackFlag__D=TRUE -Dti_sysbios_knl_Clock_TICK_SOURCE=ti_sysbios_knl_Clock_TickSource_TIMER -Dti_sysbios_knl_Clock_TICK_MODE=ti_sysbios_knl_Clock_TickMode_PERIODIC -Dti_sysbios_hal_Core_delegate_getId=ti_sysbios_hal_CoreNull_getId__E -Dti_sysbios_hal_Core_delegate_interruptCore=ti_sysbios_hal_CoreNull_interruptCore__E -Dti_sysbios_hal_Core_delegate_lock=ti_sysbios_hal_CoreNull_lock__E -Dti_sysbios_hal_Core_delegate_unlock=ti_sysbios_hal_CoreNull_unlock__E -Dti_sysbios_hal_Core_numCores__D=1 -Dti_sysbios_hal_CoreNull_numCores__D=1 -Dti_sysbios_utils_Load_taskEnabled__D=FALSE -Dti_sysbios_utils_Load_swiEnabled__D=FALSE -Dti_sysbios_utils_Load_hwiEnabled__D=FALSE -Dti_sysbios_family_arm_m3_Hwi_dispatcherSwiSupport__D=TRUE -Dti_sysbios_family_arm_m3_Hwi_dispatcherTaskSupport__D=TRUE -Dti_sysbios_family_arm_m3_Hwi_dispatcherAutoNestingSupport__D=TRUE -Dti_sysbios_family_arm_m3_Hwi_dispatcherIrpTrackingSupport__D=TRUE -Dti_sysbios_knl_Semaphore_supportsEvents__D=FALSE -Dti_sysbios_knl_Semaphore_supportsPriority__D=FALSE - -BIOS_INC = -I"/Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/" - -TARGET_INC = -I"/Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/" - -INCS = $(BIOS_INC) $(TARGET_INC) - -GCCTARG = arm-none-eabi - -CC = /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/arm-none-eabi-gcc -c -MD -MF $@.dep $(CCOPTS) -ASM = /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/arm-none-eabi-gcc -c -x assembler-with-cpp $(CCOPTS) -AR = /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/arm-none-eabi-ar cr - -DEL = rm -f -CP = cp -f - -define RM - $(if $(wildcard $1),$(DEL) $1,:) -endef - -define ASSEMBLE - @echo asmm4fg $< ... - @$(ASM) $(BIOS_DEFS) -I "/Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/" -Dxdc_target_types__=/Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h -Dxdc_target_name__=M4F $(INCS) $< -endef - -define COMPILE - @echo clm4fg $< ... - @$(CC) $(BIOS_DEFS) -I "/Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/" -Dxdc_target_types__=/Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h -Dxdc_target_name__=M4F $(INCS) $< -endef - - -all: sysbios.am4fg - -m3_Hwi_asm_gnu.o: family/arm/m3/Hwi_asm_gnu.sv7M makefile - @-$(call RM, $@) - $(ASSEMBLE) -o m3_Hwi_asm_gnu.o - -m3_Hwi_asm_switch_gnu.o: family/arm/m3/Hwi_asm_switch_gnu.sv7M makefile - @-$(call RM, $@) - $(ASSEMBLE) -o m3_Hwi_asm_switch_gnu.o - -m3_IntrinsicsSupport_asm_gnu.o: family/arm/m3/IntrinsicsSupport_asm_gnu.sv7M makefile - @-$(call RM, $@) - $(ASSEMBLE) -o m3_IntrinsicsSupport_asm_gnu.o - -m3_TaskSupport_asm_gnu.o: family/arm/m3/TaskSupport_asm_gnu.sv7M makefile - @-$(call RM, $@) - $(ASSEMBLE) -o m3_TaskSupport_asm_gnu.o - - -_BIOS.o: BIOS.c makefile - @-$(call RM, _BIOS.o) - $(COMPILE) -o _BIOS.o -knl_Clock.o: knl/Clock.c makefile - @-$(call RM, knl_Clock.o) - $(COMPILE) -o knl_Clock.o -knl_Idle.o: knl/Idle.c makefile - @-$(call RM, knl_Idle.o) - $(COMPILE) -o knl_Idle.o -knl_Intrinsics.o: knl/Intrinsics.c makefile - @-$(call RM, knl_Intrinsics.o) - $(COMPILE) -o knl_Intrinsics.o -knl_Event.o: knl/Event.c makefile - @-$(call RM, knl_Event.o) - $(COMPILE) -o knl_Event.o -knl_Mailbox.o: knl/Mailbox.c makefile - @-$(call RM, knl_Mailbox.o) - $(COMPILE) -o knl_Mailbox.o -knl_Queue.o: knl/Queue.c makefile - @-$(call RM, knl_Queue.o) - $(COMPILE) -o knl_Queue.o -knl_Semaphore.o: knl/Semaphore.c makefile - @-$(call RM, knl_Semaphore.o) - $(COMPILE) -o knl_Semaphore.o -knl_Swi.o: knl/Swi.c makefile - @-$(call RM, knl_Swi.o) - $(COMPILE) -o knl_Swi.o -knl_Swi_andn.o: knl/Swi_andn.c makefile - @-$(call RM, knl_Swi_andn.o) - $(COMPILE) -o knl_Swi_andn.o -knl_Task.o: knl/Task.c makefile - @-$(call RM, knl_Task.o) - $(COMPILE) -o knl_Task.o -hal_Cache.o: hal/Cache.c makefile - @-$(call RM, hal_Cache.o) - $(COMPILE) -o hal_Cache.o -hal_CacheNull.o: hal/CacheNull.c makefile - @-$(call RM, hal_CacheNull.o) - $(COMPILE) -o hal_CacheNull.o -hal_Hwi.o: hal/Hwi.c makefile - @-$(call RM, hal_Hwi.o) - $(COMPILE) -o hal_Hwi.o -hal_Hwi_stack.o: hal/Hwi_stack.c makefile - @-$(call RM, hal_Hwi_stack.o) - $(COMPILE) -o hal_Hwi_stack.o -hal_Hwi_startup.o: hal/Hwi_startup.c makefile - @-$(call RM, hal_Hwi_startup.o) - $(COMPILE) -o hal_Hwi_startup.o -hal_Timer.o: hal/Timer.c makefile - @-$(call RM, hal_Timer.o) - $(COMPILE) -o hal_Timer.o -m3_Hwi.o: family/arm/m3/Hwi.c makefile - @-$(call RM, m3_Hwi.o) - $(COMPILE) -o m3_Hwi.o -m3_TaskSupport.o: family/arm/m3/TaskSupport.c makefile - @-$(call RM, m3_TaskSupport.o) - $(COMPILE) -o m3_TaskSupport.o -gnu_ReentSupport.o: rts/gnu/ReentSupport.c makefile - @-$(call RM, gnu_ReentSupport.o) - $(COMPILE) -o gnu_ReentSupport.o -gnu_SemiHostSupport.o: rts/gnu/SemiHostSupport.c makefile - @-$(call RM, gnu_SemiHostSupport.o) - $(COMPILE) -o gnu_SemiHostSupport.o -gates_GateHwi.o: gates/GateHwi.c makefile - @-$(call RM, gates_GateHwi.o) - $(COMPILE) -o gates_GateHwi.o -gates_GateMutex.o: gates/GateMutex.c makefile - @-$(call RM, gates_GateMutex.o) - $(COMPILE) -o gates_GateMutex.o -heaps_HeapMem.o: heaps/HeapMem.c makefile - @-$(call RM, heaps_HeapMem.o) - $(COMPILE) -o heaps_HeapMem.o -utils_Load.o: utils/Load.c makefile - @-$(call RM, utils_Load.o) - $(COMPILE) -o utils_Load.o -utils_Load_CPU.o: utils/Load_CPU.c makefile - @-$(call RM, utils_Load_CPU.o) - $(COMPILE) -o utils_Load_CPU.o -lm4_TimestampProvider.o: family/arm/lm4/TimestampProvider.c makefile - @-$(call RM, lm4_TimestampProvider.o) - $(COMPILE) -o lm4_TimestampProvider.o -lm4_Timer.o: family/arm/lm4/Timer.c makefile - @-$(call RM, lm4_Timer.o) - $(COMPILE) -o lm4_Timer.o - -sysbios.am4fg: m3_Hwi_asm_gnu.o m3_Hwi_asm_switch_gnu.o m3_IntrinsicsSupport_asm_gnu.o m3_TaskSupport_asm_gnu.o _BIOS.o knl_Clock.o knl_Idle.o knl_Intrinsics.o knl_Event.o knl_Mailbox.o knl_Queue.o knl_Semaphore.o knl_Swi.o knl_Swi_andn.o knl_Task.o hal_Cache.o hal_CacheNull.o hal_Hwi.o hal_Hwi_stack.o hal_Hwi_startup.o hal_Timer.o m3_Hwi.o m3_TaskSupport.o gnu_ReentSupport.o gnu_SemiHostSupport.o gates_GateHwi.o gates_GateMutex.o heaps_HeapMem.o utils_Load.o utils_Load_CPU.o lm4_TimestampProvider.o lm4_Timer.o - @echo arm4fg $^ ... - @-$(call RM, $@) - @$(AR) $@ $^ - - -clean: - @$(DEL) ../makefile.libs - @-$(call RM, *) - diff --git a/firmware/ec/libs/sysbios/sysbios.am4fg b/firmware/ec/libs/sysbios/sysbios.am4fg deleted file mode 100644 index 3011b59781..0000000000 Binary files a/firmware/ec/libs/sysbios/sysbios.am4fg and /dev/null differ diff --git a/firmware/ec/libs/sysbios/utils_Load.o.dep b/firmware/ec/libs/sysbios/utils_Load.o.dep deleted file mode 100644 index 25562569f3..0000000000 --- a/firmware/ec/libs/sysbios/utils_Load.o.dep +++ /dev/null @@ -1,81 +0,0 @@ -utils_Load.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/utils/Load.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Timestamp.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/ITimestampClient.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/ITimestampProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Timestamp_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ICore.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Core_CoreProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/gates/GateMutex.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/gates/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Semaphore.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Event__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/utils/package/internal/Load.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/utils/Load.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/utils/package/package.defs.h diff --git a/firmware/ec/libs/sysbios/utils_Load_CPU.o.dep b/firmware/ec/libs/sysbios/utils_Load_CPU.o.dep deleted file mode 100644 index 4635a6baf8..0000000000 --- a/firmware/ec/libs/sysbios/utils_Load_CPU.o.dep +++ /dev/null @@ -1,76 +0,0 @@ -utils_Load_CPU.o: \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/utils/Load_CPU.c \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/std.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stdarg.h \ - /Users/kashi/work/tools/gcc-arm-none-eabi-4_7-2013q3/bin/../lib/gcc/arm-none-eabi/4.7.4/include/stddef.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm/M4F.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/std.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/gnu/targets/arm//libs/install-native/arm-none-eabi/include/stdint.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Startup.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/xdc.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Types__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IModule.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IHeap.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IInstance.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Main.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/IGateProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Main_Module_GateProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Error__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Memory.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Memory_HeapProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Timestamp.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/ITimestampClient.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/ITimestampProvider.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/package/Timestamp_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Diags__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Text.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Log__epilogue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__prologue.h \ - /Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/xdc/runtime/Assert__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/package/BIOS_RtsGateProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/BIOS__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ICore.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Core_CoreProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Core__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/IHwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/family/arm/m3/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/package/Hwi_HwiProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/hal/Hwi__epilogue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Idle.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/utils/package/internal/Load.xdc.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/utils/Load.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/utils/package/package.defs.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Queue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__prologue.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITaskSupport.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Clock.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/interfaces/ITimer.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Swi.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Clock_TimerProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/package/Task_SupportProxy.h \ - /Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ti/sysbios/knl/Task__epilogue.h diff --git a/firmware/ec/src/OC_CONNECT1.c b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT1.c similarity index 61% rename from firmware/ec/src/OC_CONNECT1.c rename to firmware/ec/platform/oc-sdr/cfg/OC_CONNECT1.c index af74335c23..414e63c2dd 100644 --- a/firmware/ec/src/OC_CONNECT1.c +++ b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT1.c @@ -1,3 +1,40 @@ +/******************************************************************************* + Filename: OC_CONNECT1.c + Revised: $Date: 2015-06-02 11:18:40 -0700 (Tue, 02 Jun 2015) $ + Revision: $Revision: 43957 $ + + Description: This file contains utility functions. + + Copyright 2014 Texas Instruments Incorporated. All rights reserved. + + IMPORTANT: Your use of this Software is limited to those specific rights + granted under the terms of a software license agreement between the user + who downloaded the software, his/her employer (which must be your employer) + and Texas Instruments Incorporated (the "License"). You may not use this + Software unless you agree to abide by the terms of the License. The License + limits your use, and you acknowledge, that the Software may not be modified, + copied or distributed unless embedded on a Texas Instruments microcontroller + or used solely and exclusively in conjunction with a Texas Instruments radio + frequency transceiver, which is integrated into your product. Other than for + the foregoing purpose, you may not use, reproduce, copy, prepare derivative + works of, modify, distribute, perform, display or sell this Software and/or + its documentation for any purpose. + + YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE + PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, + INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE, + NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL + TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT, + NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER + LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES + INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE + OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT + OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES + (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS. + + Should you have any questions regarding your right to use this Software, + contact Texas Instruments Incorporated at www.TI.com. +*******************************************************************************/ /** * Copyright (c) 2017-present, Facebook, Inc. * All rights reserved. @@ -18,6 +55,7 @@ #include #include #include +#include #include #include @@ -27,8 +65,6 @@ #include #include -#include "OC_CONNECT1.h" - #ifndef TI_DRIVERS_UART_DMA #define TI_DRIVERS_UART_DMA 0 #endif @@ -339,30 +375,14 @@ const GPIOTiva_Config GPIOTiva_config = { * subsystems. It will effectively replace board.h. I've kept the header * includes here since I'm thinking we'll want to move this out at some point */ - -#include "drivers/GpioNative.h" +#include "common/inc/global/ocmp_frame.h" #include "drivers/GpioSX1509.h" #include "drivers/GpioPCA9557.h" -#include "inc/common/ocmp_frame.h" -#include "inc/devices/eeprom.h" -#include "inc/devices/eth_sw.h" -#include "inc/devices/ext_battery.h" /* Just for battery resistor configs */ -#include "inc/devices/int_battery.h" -#include "inc/subsystem/bms/bms.h" -#include "inc/subsystem/gpp/gpp.h" -#include "inc/subsystem/hci/hci.h" -#include "inc/subsystem/obc/obc.h" -#include "inc/subsystem/power/power.h" -#include "inc/subsystem/rffe/rffe_ctrl.h" -#include "inc/subsystem/rffe/rffe_powermonitor.h" -#include "inc/subsystem/rffe/rffe_sensor.h" -#include "inc/subsystem/sdr/sdr.h" -#include "inc/subsystem/sync/sync.h" -#include "inc/subsystem/testModule/testModule.h" +#include "drivers/GpioNative.h" OcGpio_Port ec_io; -OcGpio_Port gbc_io_0; OcGpio_Port gbc_io_1; +OcGpio_Port gbc_io_0; OcGpio_Port sdr_fx3_io; //OcGpio_Port sdr_eeprom_wp_io; OcGpio_Port fe_ch1_gain_io; @@ -376,7 +396,6 @@ OcGpio_Port ec_io = { .fn_table = &GpioNative_fnTable, }; -#define BIGBROTHER_IOEXP0_ADDRESS 0x71 OcGpio_Port gbc_io_0 = { .fn_table = &GpioSX1509_fnTable, .cfg = &(SX1509_Cfg) { @@ -386,7 +405,6 @@ OcGpio_Port gbc_io_0 = { .object_data = &(SX1509_Obj){}, }; -#define BIGBROTHER_IOEXP1_ADDRESS 0x70 OcGpio_Port gbc_io_1 = { .fn_table = &GpioSX1509_fnTable, .cfg = &(SX1509_Cfg) { @@ -462,535 +480,6 @@ OcGpio_Port sync_io = { .object_data = &(SX1509_Obj){}, }; -/* These are terrible pin names, but they match the net names... */ -OcGpio_Pin pin_inven_eeprom_wp = { &gbc_io_0, 1, OCGPIO_CFG_OUT_OD_NOPULL }; -OcGpio_Pin pin_s_id_eeprom_wp = { &gbc_io_0, 2, OCGPIO_CFG_OUT_OD_NOPULL }; -OcGpio_Pin pin_tempsen_evt1 = { &gbc_io_0, 4 }; -OcGpio_Pin pin_tempsen_evt2 = { &gbc_io_0, 5 }; -OcGpio_Pin pin_tempsen_evt3 = { &gbc_io_0, 6 }; -OcGpio_Pin pin_tempsen_evt4 = { &gbc_io_0, 7 }; -OcGpio_Pin pin_tempsen_evt5 = { &gbc_io_0, 8 }; -OcGpio_Pin eth_sw_tiva_intn = { &gbc_io_0, 11 }; - -/***************************************************************************** - * EEPROM CONFIG - *****************************************************************************/ -#define CAT24C256 { .page_size = 64, .mem_size = (256 / 8) } - -Eeprom_Cfg eeprom_gbc_sid = { - .i2c_dev = { OC_CONNECT1_I2C7, 0x51 }, - .pin_wp = &pin_s_id_eeprom_wp, - .type = CAT24C256, -}; - -Eeprom_Cfg eeprom_gbc_inv = { - .i2c_dev = { OC_CONNECT1_I2C7, 0x50 }, - .pin_wp = &pin_inven_eeprom_wp, - .type = CAT24C256, -}; - -Eeprom_Cfg eeprom_sdr_inv = { - .i2c_dev = { OC_CONNECT1_I2C3, 0x50 }, - /* .pin_wp = &(OcGpio_Pin){ &sdr_eeprom_wp_io, 0 }, */ - .pin_wp = NULL, /* IO Expander disabled on rev c */ - .type = CAT24C256, -}; - -Eeprom_Cfg eeprom_fe_inv = { - .i2c_dev = { OC_CONNECT1_I2C4, 0x50 }, - .pin_wp = &(OcGpio_Pin){ &fe_ch1_lna_io, 0 }, - .type = CAT24C256, -}; - -/***************************************************************************** - * SYSTEM CONFIG - *****************************************************************************/ -Power_Cfg g_power_cfg = { - /* EC_PD_PWRGD_OK */ - .pin_ec_pd_pwrgd_ok = { &ec_io, OC_EC_PD_PWRGD_ALERT }, - /* SOLAR_AUX_PRSNT_N */ - .pin_solar_aux_prsnt_n = { &ec_io, OC_EC_PWR_PRSNT_SOLAR_AUX }, - /* POE_PRSNT_N */ - .pin_poe_prsnt_n = { &ec_io, OC_EC_PWR_PRSNT_POE }, - /* LT4275_EC_nT2P */ - .pin_lt4275_ec_nt2p = { &ec_io, OC_EC_PWR_PD_NT2P }, - /* nECPSE_RST */ - .pin_necpse_rst = { &ec_io, OC_EC_PWR_PSE_RESET }, - /* EC_LT4015_I2C_SEL */ - .pin_lt4015_i2c_sel = { &gbc_io_1, 4, OCGPIO_CFG_OUT_STD }, - /* INT_BAT_PRSNT */ - .pin_int_bat_prsnt = { &gbc_io_0, 11 }, - /* EXT_BAT_PRSNT */ - .pin_ext_bat_prsnt = { &gbc_io_0, 12 }, - /* TODO: consider inverting int/ext_bat_prsnt since the opto-isolator - * basically inverts the line */ - .lead_acid_temp_sens = { - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C1, - .slave_addr = PWR_LEAD_ACID_BATT_DEV_TEMP_SENS_ADDR - }, - .pin_evt = &pin_tempsen_evt1, - }, - .obj = {NULL}, - }, - .ext_bat_charger = { - .cfg = { - .i2c_dev = { - .bus = OC_CONNECT1_I2C0, - .slave_addr = 0x68, /* LTC4015 I2C address in 7-bit format */ - }, - .chem = LTC4015_CHEM_LEAD_ACID, - .r_snsb = PWR_EXT_BATT_RSNSB, - .r_snsi = PWR_EXT_BATT_RSNSI, - .cellcount = 6, - .pin_lt4015_i2c_sel = { &gbc_io_1, 4, OCGPIO_CFG_OUT_OD_NOPULL }, - .pin_alert = &(OcGpio_Pin){ &ec_io, - OC_EC_PWR_LACID_ALERT }, - }, - .obj = {}, - }, - .int_bat_charger = { - .cfg = { - .i2c_dev = { - .bus = OC_CONNECT1_I2C0, - .slave_addr = 0x68, /* LTC4015 I2C address in 7-bit format */ - }, - .chem = LTC4015_CHEM_LI_ION, - .r_snsb = PWR_INT_BATT_RSNSB, - .r_snsi = PWR_INT_BATT_RSNSI, - .cellcount = 3, - .pin_lt4015_i2c_sel = { &gbc_io_1, 4, OCGPIO_CFG_OUT_OD_NOPULL }, - .pin_alert = &(OcGpio_Pin){ &ec_io, - OC_EC_PWR_LION_ALERT }, - }, - .obj = {}, - }, - .pse = { - .cfg = { - .i2c_dev = { - .bus = OC_CONNECT1_I2C8, - .slave_addr = 0x2F, /* LTC4274 I2C address in 7-bit format */ - }, - .pin_evt = &(OcGpio_Pin){ &ec_io, - OC_EC_GBC_PSE_ALERT }, - }, - .obj = {}, - }, - .pd = { - .cfg = { - .pin_evt = &(OcGpio_Pin){ &ec_io, - OC_EC_PD_PWRGD_ALERT }, - .pin_detect = &(OcGpio_Pin){ &ec_io, - OC_EC_PWR_PD_NT2P }, - - }, - .obj = {}, - }, - .powerSource = { /*Added as a place holder for now.*/ - .cfg = { - - }, - .obj = {}, - }, -}; - -Bms_Cfg g_bms_cfg = { - .ec_current_sensor_12v = { - /* 12V Power Sensor */ - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C6, - .slave_addr = BMS_EC_CURRENT_SENSOR_12V_ADDR, - }, - .pin_alert = &(OcGpio_Pin){ &ec_io, - OC_EC_GBC_INA_ALERT }, - }, - }, - .ec_current_sensor_3p3v = { - /* 3.3V Power Sensor */ - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C7, - .slave_addr = BMS_EC_CURRENT_SENSOR_3P3V_ADDR, - }, - .pin_alert = &(OcGpio_Pin){ &ec_io, - OC_EC_GBC_INA_ALERT }, - }, - }, - .ec_temp_sensor = { - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C1, - .slave_addr = BMS_EC_TEMP_SENSOR_ADDR - }, - .pin_evt = &pin_tempsen_evt2, - }, - .obj = {}, - }, -}; - -Hci_Cfg g_hci_cfg = { - .buzzer = { - .pin_en = { &gbc_io_0, 10, OCGPIO_CFG_OUT_OD_NOPULL }, - }, - .led = { - .temp_sensor = { - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C8, - .slave_addr = HCI_LED_TEMP_SENSOR_ADDR - }, - .pin_evt = NULL, - }, - .obj = {}, - }, - .sx1509_dev[HCI_LED_DRIVER_LEFT] = { - .bus = OC_CONNECT1_I2C8, - .slave_addr = LED_SX1509_LEFT_ADDRESS, - }, - .sx1509_dev[HCI_LED_DRIVER_RIGHT] = { - .bus = OC_CONNECT1_I2C8, - .slave_addr = LED_SX1509_RIGHT_ADDRESS, - }, - /* EC_GPIO */ - .pin_ec_gpio = { &ec_io, OC_EC_HCI_LED_RESET }, - }, -}; - -Gpp_Cfg g_gpp_cfg = { - .ap = { - .current_sensor = { - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C6, - .slave_addr = GPP_AP_CURRENT_SENSOR_ADDR, - }, - .pin_alert = &(OcGpio_Pin){ &ec_io, - OC_EC_GBC_AP_INA_ALERT }, - }, - }, - .temp_sensor = { - { - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C1, - .slave_addr = GPP_AP_TEMPSENS1_ADDR - }, - .pin_evt = &pin_tempsen_evt3, - }, - .obj = {}, - }, - { - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C1, - .slave_addr = GPP_AP_TEMPSENS2_ADDR - }, - .pin_evt = &pin_tempsen_evt5, - }, - .obj = {}, - }, - { - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C1, - .slave_addr = GPP_AP_TEMPSENS3_ADDR - }, - .pin_evt = &pin_tempsen_evt4, - }, - .obj = {}, - }, - }, - }, - .msata = { - .current_sensor = { - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C6, - .slave_addr = GPP_MSATA_CURRENT_SENSOR_ADDR, - }, - .pin_alert = &(OcGpio_Pin){ &ec_io, - OC_EC_GBC_AP_INA_ALERT }, - }, - }, - }, - - /* SOC_PLTRST_N */ - .pin_soc_pltrst_n = { &ec_io, OC_EC_GPP_SOC_PLTRST }, - /* TIVA_SOC_GPIO2 */ - .pin_ap_boot_alert1 = { &ec_io, OC_EC_GPP_AP_BM_1 }, - /* TIVA_SOC_GPIO3 */ - .pin_ap_boot_alert2 = { &ec_io, OC_EC_GPP_AP_BM_2 }, - /* SOC_COREPWROK */ - .pin_soc_corepwr_ok = { &ec_io, OC_EC_GPP_PMIC_CORE_PWR }, - /* MSATA_EC_DAS */ - .pin_msata_ec_das = { &ec_io, OC_EC_GPP_MSATA_DAS }, - /* LT4256_EC_PWRGD */ - .pin_lt4256_ec_pwrgd = { &ec_io, OC_EC_GPP_PWRGD_PROTECTION }, - /* AP_12V_ONOFF */ - .pin_ap_12v_onoff = { &ec_io, OC_EC_GPP_PMIC_CTRL }, - /* EC_RESET_TO_PROC */ - .pin_ec_reset_to_proc = { &ec_io, OC_EC_GPP_RST_TO_PROC }, -}; - -Sdr_Cfg g_sdr_cfg = { - .fpga = { - .current_sensor = { - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C3, - .slave_addr = SDR_FPGA_CURRENT_SENSOR_ADDR, - }, - .pin_alert = &(OcGpio_Pin){ &ec_io, - OC_EC_SDR_FPGA_TEMP_INA_ALERT }, - }, - }, - .temp_sensor = { - .bus = OC_CONNECT1_I2C3, - .slave_addr = SDR_FPGA_TEMP_SENSOR_ADDR - }, - }, - .eeprom_inventory = &eeprom_sdr_inv, - .current_sensor = { - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C6, - .slave_addr = SDR_CURRENT_SENSOR_ADDR, - }, - .pin_alert = &(OcGpio_Pin){ &ec_io, - OC_EC_SDR_INA_ALERT }, - }, - }, - /* FX3_RESET */ - .pin_fx3_reset = { &sdr_fx3_io, 0 }, - /* EC_TRXFECONN_GPIO2/SDR_REG_LDO_PGOOD */ - .pin_sdr_reg_ldo_pgood = { &ec_io, OC_EC_SDR_PWR_GD }, - /* TRXFE_12V_ONOFF */ - .pin_trxfe_12v_onoff = { &ec_io, OC_EC_SDR_PWR_CNTRL }, - /* EC_FE_RESET_OUT/RF_FE_IO_RESET */ - .pin_rf_fe_io_reset = { &ec_io, OC_EC_SDR_FE_IO_RESET_CTRL }, - /* EC_TRXFECONN_GPIO1/SDR_RESET_IN */ - .pin_sdr_reset_in = { &ec_io, OC_EC_SDR_DEVICE_CONTROL }, - /* EC_TRXFE_RESET */ - .pin_ec_trxfe_reset = { &ec_io, OC_EC_RFFE_RESET }, - /* FX3_RESET */ - .pin_fx3_reset = { &sdr_fx3_io, 0 }, -}; - -Fe_Cfg g_fe_cfg = { - /* EC_TRXFECONN_GPIO3/RF_PGOOD_LDO */ - .pin_rf_pgood_ldo = { &ec_io, OC_EC_FE_PWR_GD }, - /* FE_12V_CTRL */ - .pin_fe_12v_ctrl = { &ec_io, OC_EC_FE_CONTROL }, - .fe_ch1_gain_cfg = { - .fe_gain_cfg = { - /* CH1_TX_ATTN_16DB */ - .pin_tx_attn_16db = { &fe_ch1_gain_io, 1 }, - /* CH1_TX_ATTN_P5DB */ - .pin_tx_attn_p5db = { &fe_ch1_gain_io, 2 }, - /* CH1_TX_ATTN_1DB */ - .pin_tx_attn_1db = { &fe_ch1_gain_io, 3 }, - /* CH1_TX_ATTN_2DB */ - .pin_tx_attn_2db = { &fe_ch1_gain_io, 4 }, - /* CH1_TX_ATTN_4DB */ - .pin_tx_attn_4db = { &fe_ch1_gain_io, 5 }, - /* CH1_TX_ATTN_8DB */ - .pin_tx_attn_8db = { &fe_ch1_gain_io, 6 }, - /* CH1_TX_ATTN_ENB */ - .pin_tx_attn_enb = { &fe_ch1_gain_io, 7 }, - }, - }, - .fe_ch2_gain_cfg = { - /* CH1_2G_LB_BAND_SEL_L */ - .pin_ch1_2g_lb_band_sel_l = { &fe_ch2_gain_io, 0 }, - .fe_gain_cfg = { - /* CH2_TX_ATTN_16DB */ - .pin_tx_attn_16db = { &fe_ch2_gain_io, 1 }, - /* CH2_TX_ATTN_P5DB */ - .pin_tx_attn_p5db = { &fe_ch2_gain_io, 2 }, - /* CH2_TX_ATTN_1DB */ - .pin_tx_attn_1db = { &fe_ch2_gain_io, 3 }, - /* CH2_TX_ATTN_2DB */ - .pin_tx_attn_2db = { &fe_ch2_gain_io, 4 }, - /* CH2_TX_ATTN_4DB */ - .pin_tx_attn_4db = { &fe_ch2_gain_io, 5 }, - /* CH2_TX_ATTN_8DB */ - .pin_tx_attn_8db = { &fe_ch2_gain_io, 6 }, - /* CH2_TX_ATTN_ENB */ - .pin_tx_attn_enb = { &fe_ch2_gain_io, 7 }, - }, - }, - .fe_ch1_lna_cfg = { - .fe_lna_cfg = { - /* CH1_RX_ATTN_P5DB */ - .pin_rx_attn_p5db = { &fe_ch1_lna_io, 2 }, - /* CH1_RX_ATTN_1DB */ - .pin_rx_attn_1db = { &fe_ch1_lna_io, 3 }, - /* CH1_RX_ATTN_2DB */ - .pin_rx_attn_2db = { &fe_ch1_lna_io, 4 }, - /* CH1_RX_ATTN_4DB */ - .pin_rx_attn_4db = { &fe_ch1_lna_io, 5 }, - /* CH1_RX_ATTN_8DB */ - .pin_rx_attn_8db = { &fe_ch1_lna_io, 6 }, - /* CH1_RX_ATTN_ENB */ - .pin_rx_attn_enb = { &fe_ch1_lna_io, 7 }, - }, - }, - .fe_ch2_lna_cfg = { - /* CH1_RF_PWR_OFF */ - .pin_ch1_rf_pwr_off = { &fe_ch2_lna_io, 1 }, - .fe_lna_cfg = { - /* CH2_RX_ATTN_P5DB */ - .pin_rx_attn_p5db = { &fe_ch2_lna_io, 2 }, - /* CH2_RX_ATTN_1DB */ - .pin_rx_attn_1db = { &fe_ch2_lna_io, 3 }, - /* CH2_RX_ATTN_2DB */ - .pin_rx_attn_2db = { &fe_ch2_lna_io, 4 }, - /* CH2_RX_ATTN_4DB */ - .pin_rx_attn_4db = { &fe_ch2_lna_io, 5 }, - /* CH2_RX_ATTN_8DB */ - .pin_rx_attn_8db = { &fe_ch2_lna_io, 6 }, - /* CH2_RX_ATTN_ENB */ - .pin_rx_attn_enb = { &fe_ch2_lna_io, 7 }, - }, - }, - .pin_trxfe_conn_reset = { &ec_io, OC_EC_FE_TRXFE_CONN_RESET }, - .fe_watchdog_cfg = { - /* AOSEL_FPGA */ - .pin_aosel_fpga = { &fe_watchdog_io, 0 }, - /* CH2_RF_PWR_OFF */ - .pin_ch2_rf_pwr_off = { &fe_watchdog_io, 1 }, - /* CO6_WD */ - .pin_co6_wd = { &fe_watchdog_io, 2 }, - /* CO5_WD */ - .pin_co5_wd = { &fe_watchdog_io, 3 }, - /* CO4_WD */ - .pin_co4_wd = { &fe_watchdog_io, 4 }, - /* CO3_WD */ - .pin_co3_wd = { &fe_watchdog_io, 5 }, - /* CO2_WD */ - .pin_co2_wd = { &fe_watchdog_io, 6 }, - /* COPOL_FPGA */ - .pin_copol_fpga = { &fe_watchdog_io, 7 }, - }, - .ina226_ch1_5_7v = { - /* CH1 5.7V Sensor */ - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C4, - .slave_addr = RFFE_INA226_CH1_5_7V_ADDR, - }, - .pin_alert = &(OcGpio_Pin){ &ec_io, - OC_EC_RFFE_TEMP_INA_ALERT }, - }, - }, - .ina226_ch2_5_7v = { - /* CH2 5.7V Sensor */ - .cfg = { - .dev = { - .bus = OC_CONNECT1_I2C4, - .slave_addr = RFFE_INA226_CH2_5_7V_ADDR, - }, - .pin_alert = &(OcGpio_Pin){ &ec_io, - OC_EC_RFFE_TEMP_INA_ALERT }, - }, - }, - .adt7481_ch1 = { - .bus = OC_CONNECT1_I2C4, - .slave_addr = RFFE_CH1_TEMP_SENSOR_ADDR, - }, - .adt7481_ch2 = { - .bus = OC_CONNECT1_I2C4, - .slave_addr = RFFE_CH2_TEMP_SENSOR_ADDR, - }, - .eeprom_inventory = &eeprom_fe_inv, - .ads7830_ch1 = { - .bus = OC_CONNECT1_I2C4, - .slave_addr = RFFE_CHANNEL1_ADC_ADDR, - }, - .ads7830_ch2 = { - .bus = OC_CONNECT1_I2C4, - .slave_addr = RFFE_CHANNEL2_ADC_ADDR, - }, -}; - -Sync_Cfg g_sync_cfg = { - .temp_sens = { - .bus = OC_CONNECT1_I2C7, - .slave_addr = SYNC_TEMP_SENSOR_ADDR, - }, - .io_exp = { - .bus = OC_CONNECT1_I2C7, - .slave_addr = SYNC_IO_DEVICE_ADDR, - }, - /* SPDT_CNTRL_LVL */ - .pin_spdt_cntrl_lvl = { &sync_io, 0, OCGPIO_CFG_OUT_OD_NOPULL }, - /* WARMUP_SURVEY_INIT_SEL */ - .pin_warmup_survey_init_sel = { &sync_io, 1, OCGPIO_CFG_OUT_OD_NOPULL }, - /* R_PHASE_LOCK_IOEXP */ - .pin_r_phase_lock_ioexp = { &sync_io, 4, OCGPIO_CFG_IN_PU }, - /* R_LOCK_OK_IOEXP */ - .pin_r_lock_ok_ioexp = { &sync_io, 5, OCGPIO_CFG_IN_PU }, - /* R_ALARM_IOEXP */ - .pin_r_alarm_ioexp = { &sync_io, 6, OCGPIO_CFG_IN_PU }, - /* 12V_REG_ENB */ - .pin_12v_reg_enb = { &sync_io, 7, OCGPIO_CFG_OUT_STD }, - /* TEMP_ALERT */ - .pin_temp_alert = { &sync_io, 8, OCGPIO_CFG_IN_PU }, - /* SPDT_CNTRL_LTE_CPU_GPS_LVL */ - .pin_spdt_cntrl_lte_cpu_gps_lvl = { &sync_io, 9, OCGPIO_CFG_OUT_OD_NOPULL }, - /* INIT_SURVEY_SEL */ - .pin_init_survey_sel = { &sync_io, 10, OCGPIO_CFG_OUT_OD_NOPULL }, - /* EC_SYNC_RESET */ - .pin_ec_sync_reset = { &ec_io, OC_EC_SYNC_RESET }, -}; - -Obc_Cfg g_obc_cfg = { - .iridium_cfg = { - .uart = OC_CONNECT1_UARTXR0, - /* IRIDIUM_RSTIOEXP */ - .pin_enable = { &sync_io, 2, OCGPIO_CFG_OUT_STD }, - /* R_NW_AVAIL */ - .pin_nw_avail = { &sync_io, 3, OCGPIO_CFG_IN_PU }, - }, - /* 12V_REG_ENB */ - .pin_pwr_en = &(OcGpio_Pin){ &sync_io, 7, OCGPIO_CFG_OUT_STD }, -}; - -Eth_Sw_Cfg g_eth_cfg = { - .pin_evt = NULL, - .pin_ec_ethsw_reset = { &ec_io, OC_EC_ETH_SW_RESET }, - .eth_switch = {}, -}; - -void *sys_config[] = { - [OC_SS_SYS] = NULL, - [OC_SS_PWR] = &g_power_cfg, - [OC_SS_BMS] = &g_bms_cfg, - [OC_SS_HCI] = &g_hci_cfg, - [OC_SS_ETH_SWT] = &g_eth_cfg, - [OC_SS_OBC] = &g_obc_cfg, - [OC_SS_GPP] = &g_gpp_cfg, - [OC_SS_SDR] = &g_sdr_cfg, - [OC_SS_RF] = &g_fe_cfg, - [OC_SS_SYNC] = &g_sync_cfg, - [OC_SS_TEST_MODULE] = &(TestMod_Cfg){ - .g510_cfg = { - .uart = OC_CONNECT1_UART4, - /* 2G_SIM_PRESENCE */ - .pin_sim_present = { &gbc_io_1, 0, OCGPIO_CFG_IN_PU }, - - /* NOTE: enable & power go through MOSFETs, inverting them */ - /* 2GMODULE_POWEROFF */ - .pin_enable = { &gbc_io_1, 2, OCGPIO_CFG_INVERT }, - /* EC_2GMODULE_PWR_ON */ - .pin_pwr_en = { &gbc_io_1, 1, OCGPIO_CFG_INVERT }, - }, - .pin_ant_sw = {}, - }, -}; - /* * ======== OC_CONNECT1_initGPIO ======== */ @@ -1362,7 +851,6 @@ void OC_CONNECT1_initUART(void) /* * =============================== USB =============================== */ - /* * ======== OC_CONNECT1_usbBusFaultHwi ======== */ @@ -1477,4 +965,4 @@ void OC_CONNECT1_initWatchdog(void) SysCtlPeripheralEnable(SYSCTL_PERIPH_WDOG0); Watchdog_init(); -} +} \ No newline at end of file diff --git a/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_FE.c b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_FE.c new file mode 100644 index 0000000000..5945373ba4 --- /dev/null +++ b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_FE.c @@ -0,0 +1,333 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/global/OC_CONNECT1.h" +#include "common/inc/ocmp_wrappers/ocmp_adt7481.h" +#include "common/inc/ocmp_wrappers/ocmp_dat-xxr5a-pp.h" +#include "common/inc/ocmp_wrappers/ocmp_ina226.h" +#include "inc/subsystem/rffe/rffe_ctrl.h" +#include "inc/subsystem/rffe/rffe_powermonitor.h" +#include "inc/subsystem/rffe/rffe_sensor.h" +#include "inc/subsystem/testModule/testModule.h" +#include "inc/devices/debug_ocgpio.h" +#include "inc/devices/dat-xxr5a-pp.h" + +extern Fe_Cfg g_fe_cfg; +SCHEMA_IMPORT OcGpio_Port ec_io; +SCHEMA_IMPORT OcGpio_Port gbc_io_1; +SCHEMA_IMPORT OcGpio_Port fe_ch1_gain_io; +SCHEMA_IMPORT OcGpio_Port fe_ch1_lna_io; +SCHEMA_IMPORT OcGpio_Port fe_ch2_gain_io; +SCHEMA_IMPORT OcGpio_Port fe_ch2_lna_io; +SCHEMA_IMPORT OcGpio_Port fe_watchdog_io; + +/***************************************************************************** + * EEPROM CONFIG + *****************************************************************************/ +Eeprom_Cfg eeprom_fe_inv = { + .i2c_dev = { OC_CONNECT1_I2C4, 0x50 }, + .pin_wp = &(OcGpio_Pin){ &fe_ch1_lna_io, 0 }, + .type = CAT24C256, + .ss = OC_SS_RF, +}; +/***************************************************************************** + * SYSTEM CONFIG + *****************************************************************************/ +/* RFFE Subsystem Config.*/ +// FE Channel 1 Power sensor. +INA226_Dev fe_ch1_ps_5_7v = { + /* CH1 5.7V Sensor */ + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C4, + .slave_addr = RFFE_INA226_CH1_5_7V_ADDR, + }, + .pin_alert = &(OcGpio_Pin){ &ec_io, + OC_EC_RFFE_TEMP_INA_ALERT }, + }, +}; + +//FE Channel 2 Power sensor. +INA226_Dev fe_ch2_ps_5_7v = { + /* CH2 5.7V Sensor */ + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C4, + .slave_addr = RFFE_INA226_CH2_5_7V_ADDR, + }, + .pin_alert = &(OcGpio_Pin){ &ec_io, + OC_EC_RFFE_TEMP_INA_ALERT }, + }, +}; + +//FE Channel 1 temperature sensor. +I2C_Dev fe_ch1_ts = { + .bus = OC_CONNECT1_I2C4, + .slave_addr = RFFE_CH1_TEMP_SENSOR_ADDR, +}; + +//FE Channel 2 temperature sensor. +I2C_Dev fe_ch2_ts = (I2C_Dev){ + .bus = OC_CONNECT1_I2C4, + .slave_addr = RFFE_CH2_TEMP_SENSOR_ADDR, +}; + +//FE EEPROM inventory +void* fe_eeprom_inventory = &eeprom_fe_inv; + +//FE Channel 1 ADC +I2C_Dev fe_ch1_ads7830 = { + .bus = OC_CONNECT1_I2C4, + .slave_addr = RFFE_CHANNEL1_ADC_ADDR, +}; + +//FE Channel 2 ADC +I2C_Dev fe_ch2_ads7830 = { + .bus = OC_CONNECT1_I2C4, + .slave_addr = RFFE_CHANNEL2_ADC_ADDR, +}; + +Fe_Gain_Cfg fe_ch1_gain = { + /* CH1_TX_ATTN_16DB */ + .pin_tx_attn_16db = { &fe_ch1_gain_io, 1 }, + /* CH1_TX_ATTN_P5DB */ + .pin_tx_attn_p5db = { &fe_ch1_gain_io, 2 }, + /* CH1_TX_ATTN_1DB */ + .pin_tx_attn_1db = { &fe_ch1_gain_io, 3 }, + /* CH1_TX_ATTN_2DB */ + .pin_tx_attn_2db = { &fe_ch1_gain_io, 4 }, + /* CH1_TX_ATTN_4DB */ + .pin_tx_attn_4db = { &fe_ch1_gain_io, 5 }, + /* CH1_TX_ATTN_8DB */ + .pin_tx_attn_8db = { &fe_ch1_gain_io, 6 }, + /* CH1_TX_ATTN_ENB */ + .pin_tx_attn_enb = { &fe_ch1_gain_io, 7 }, +}; + +Fe_Gain_Cfg fe_ch2_gain = { + /* CH2_TX_ATTN_16DB */ + .pin_tx_attn_16db = { &fe_ch2_gain_io, 1 }, + /* CH2_TX_ATTN_P5DB */ + .pin_tx_attn_p5db = { &fe_ch2_gain_io, 2 }, + /* CH2_TX_ATTN_1DB */ + .pin_tx_attn_1db = { &fe_ch2_gain_io, 3 }, + /* CH2_TX_ATTN_2DB */ + .pin_tx_attn_2db = { &fe_ch2_gain_io, 4 }, + /* CH2_TX_ATTN_4DB */ + .pin_tx_attn_4db = { &fe_ch2_gain_io, 5 }, + /* CH2_TX_ATTN_8DB */ + .pin_tx_attn_8db = { &fe_ch2_gain_io, 6 }, + /* CH2_TX_ATTN_ENB */ + .pin_tx_attn_enb = { &fe_ch2_gain_io, 7 }, +}; + +Fe_Lna_Cfg fe_ch1_lna = { + /* CH1_RX_ATTN_P5DB */ + .pin_rx_attn_p5db = { &fe_ch1_lna_io, 2 }, + /* CH1_RX_ATTN_1DB */ + .pin_rx_attn_1db = { &fe_ch1_lna_io, 3 }, + /* CH1_RX_ATTN_2DB */ + .pin_rx_attn_2db = { &fe_ch1_lna_io, 4 }, + /* CH1_RX_ATTN_4DB */ + .pin_rx_attn_4db = { &fe_ch1_lna_io, 5 }, + /* CH1_RX_ATTN_8DB */ + .pin_rx_attn_8db = { &fe_ch1_lna_io, 6 }, + /* CH1_RX_ATTN_ENB */ + .pin_rx_attn_enb = { &fe_ch1_lna_io, 7 }, +}; + +Fe_Lna_Cfg fe_ch2_lna = { + /* CH2_RX_ATTN_P5DB */ + .pin_rx_attn_p5db = { &fe_ch2_lna_io, 2 }, + /* CH2_RX_ATTN_1DB */ + .pin_rx_attn_1db = { &fe_ch2_lna_io, 3 }, + /* CH2_RX_ATTN_2DB */ + .pin_rx_attn_2db = { &fe_ch2_lna_io, 4 }, + /* CH2_RX_ATTN_4DB */ + .pin_rx_attn_4db = { &fe_ch2_lna_io, 5 }, + /* CH2_RX_ATTN_8DB */ + .pin_rx_attn_8db = { &fe_ch2_lna_io, 6 }, + /* CH2_RX_ATTN_ENB */ + .pin_rx_attn_enb = { &fe_ch2_lna_io, 7 }, +}; + +//FE watch dog +Fe_Watchdog_Cfg fe_watchdog_cfg = { + /* AOSEL_FPGA */ + .pin_aosel_fpga = { &fe_watchdog_io, 0 }, + /* CH2_RF_PWR_OFF */ + .pin_ch2_rf_pwr_off = { &fe_watchdog_io, 1 }, + /* CO6_WD */ + .pin_co6_wd = { &fe_watchdog_io, 2 }, + /* CO5_WD */ + .pin_co5_wd = { &fe_watchdog_io, 3 }, + /* CO4_WD */ + .pin_co4_wd = { &fe_watchdog_io, 4 }, + /* CO3_WD */ + .pin_co3_wd = { &fe_watchdog_io, 5 }, + /* CO2_WD */ + .pin_co2_wd = { &fe_watchdog_io, 6 }, + /* COPOL_FPGA */ + .pin_copol_fpga = { &fe_watchdog_io, 7 }, +}; + +Fe_gpioCfg fe_gpiocfg = { + /* EC_TRXFECONN_GPIO3/RF_PGOOD_LDO */ + .pin_rf_pgood_ldo = { &ec_io, OC_EC_FE_PWR_GD }, + /* FE_12V_CTRL */ + .pin_fe_12v_ctrl = { &ec_io, OC_EC_FE_CONTROL }, + .pin_trxfe_conn_reset = { &ec_io, OC_EC_FE_TRXFE_CONN_RESET }, +}; + +//FE Ch1 TX Gain control +Fe_Ch1_Gain_Cfg fe_ch1_tx_gain_cfg = (Fe_Ch1_Gain_Cfg) { + .fe_gain_cfg = &fe_ch1_gain, +}; + +//FE Ch2 TX Gain control +Fe_Ch2_Gain_Cfg fe_ch2_tx_gain_cfg = (Fe_Ch2_Gain_Cfg) { + /* CH1_2G_LB_BAND_SEL_L */ + .pin_ch1_2g_lb_band_sel_l = { &fe_ch2_gain_io, 0 }, + .fe_gain_cfg = &fe_ch2_gain, +}; + +//FE Ch1 LNA config +Fe_Ch1_Lna_Cfg fe_ch1_rx_gain_cfg = (Fe_Ch1_Lna_Cfg) { + .fe_lna_cfg = &fe_ch1_lna, +}; + +//FE Ch2 LNA config +Fe_Ch2_Lna_Cfg fe_ch2_rx_gain_cfg = (Fe_Ch2_Lna_Cfg) { + /* CH1_RF_PWR_OFF */ + .pin_ch1_rf_pwr_off = { &fe_ch2_lna_io, 1 }, + .fe_lna_cfg = &fe_ch2_lna, +}; + +/* FE CH watch dog */ +RfWatchdog_Cfg fe_ch1_watchdog = { + .pin_alert_lb = &fe_watchdog_cfg.pin_co6_wd, + .pin_alert_hb = &fe_watchdog_cfg.pin_co5_wd, + .pin_interrupt = &fe_gpiocfg.pin_trxfe_conn_reset, +}; + +/* FE CH watch dog */ +RfWatchdog_Cfg fe_ch2_watchdog = { + .pin_alert_lb = &fe_watchdog_cfg.pin_co3_wd, + .pin_alert_hb = &fe_watchdog_cfg.pin_co4_wd, + .pin_interrupt = &fe_gpiocfg.pin_trxfe_conn_reset, +}; + +/* FE GPIO's */ +Fe_Cfg fe_rffecfg = { + .fe_gpio_cfg = &fe_gpiocfg, + .fe_ch1_gain_cfg = (Fe_Ch1_Gain_Cfg*)&fe_ch1_tx_gain_cfg, + .fe_ch2_gain_cfg = (Fe_Ch2_Gain_Cfg*)&fe_ch2_tx_gain_cfg, + .fe_ch1_lna_cfg = (Fe_Ch1_Lna_Cfg*)&fe_ch1_rx_gain_cfg, + .fe_ch2_lna_cfg = (Fe_Ch2_Lna_Cfg*)&fe_ch2_rx_gain_cfg, + .fe_watchdog_cfg = (Fe_Watchdog_Cfg*)&fe_watchdog_cfg, +}; + +FE_Ch_Band_cfg fe_ch1_bandcfg = { + .channel = RFFE_CHANNEL1, +}; + +FE_Ch_Band_cfg fe_ch2_bandcfg = { + .channel = RFFE_CHANNEL2, +}; + +Fe_Ch_Pwr_Cfg fe_ch1_pwrcfg = { + .channel = RFFE_CHANNEL1, + .fe_Rffecfg = (Fe_Cfg*)&fe_rffecfg +}; + +Fe_Ch_Pwr_Cfg fe_ch2_pwrcfg = { + .channel = RFFE_CHANNEL2, + .fe_Rffecfg = (Fe_Cfg*)&fe_rffecfg +}; + +// TestModule +TestMod_Cfg testModuleCfg = (TestMod_Cfg){ + .g510_cfg = { + .uart = OC_CONNECT1_UART4, + /* 2G_SIM_PRESENCE */ + .pin_sim_present = { &gbc_io_1, 0, OCGPIO_CFG_IN_PU }, + + /* NOTE: enable & power go through MOSFETs, inverting them */ + /* 2GMODULE_POWEROFF */ + .pin_enable = { &gbc_io_1, 2, OCGPIO_CFG_INVERT }, + /* EC_2GMODULE_PWR_ON */ + .pin_pwr_en = { &gbc_io_1, 1, OCGPIO_CFG_INVERT }, + }, + .pin_ant_sw = {}, +}; + +// RFFE IO EXPANDERS +S_OCGPIO_Cfg debug_fe_ioexpanderx18 = { + .port = &fe_ch1_gain_io, +}; + +S_OCGPIO_Cfg debug_fe_ioexpanderx1C = { + .port = &fe_ch2_gain_io, +}; + +S_OCGPIO_Cfg debug_fe_ioexpanderx1B = { + .port = &fe_watchdog_io, +}; + +S_OCGPIO_Cfg debug_fe_ioexpanderx1A = { + .port = &fe_ch1_lna_io, +}; + +S_OCGPIO_Cfg debug_fe_ioexpanderx1D = { + .port = &fe_ch2_lna_io, +}; + +//FE Factory config +const ADT7481_Config fact_fe_ch1_adt7481_cfg = { + .lowlimit = -20, + .highlimit = 80, + .critlimit = 85, +}; + +const INA226_Config fact_fe_ch1_ps_cfg = { + .current_lim = 2000, +}; + +const ADT7481_Config fact_fe_ch2_adt7481_cfg = { + .lowlimit = -20, + .highlimit = 80, + .critlimit = 85, +}; + +const INA226_Config fact_fe_ch2_ps_cfg = { + .current_lim = 2000, +}; + +const DATR5APP_Config fact_ch1_tx_gain_cfg = { + .attenuation = INT16_MAX, /* Default to max attenuation */ +}; + +const DATR5APP_Config fact_ch1_rx_gain_cfg = { + .attenuation = INT16_MAX, /* Default to max attenuation */ +}; + +const DATR5APP_Config fact_ch2_tx_gain_cfg = { + .attenuation = INT16_MAX, /* Default to max attenuation */ +}; + +const DATR5APP_Config fact_ch2_rx_gain_cfg = { + .attenuation = INT16_MAX, /* Default to max attenuation */ +}; + +const FE_Band_Cfg fact_ch1_band_cfg = { + .band = RFFE_BAND8_900, +}; + +const FE_Band_Cfg fact_ch2_band_cfg = { + .band = RFFE_BAND8_900, +}; \ No newline at end of file diff --git a/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_GBC.c b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_GBC.c new file mode 100644 index 0000000000..02a4c1dcda --- /dev/null +++ b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_GBC.c @@ -0,0 +1,568 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/global/ocmp_frame.h" +#include "common/inc/ocmp_wrappers/ocmp_ina226.h" +#include "common/inc/ocmp_wrappers/ocmp_ltc4015.h" +#include "common/inc/ocmp_wrappers/ocmp_ltc4274.h" +#include "common/inc/ocmp_wrappers/ocmp_se98a.h" +#include "common/inc/ocmp_wrappers/ocmp_debugi2c.h" +#include "common/inc/global/OC_CONNECT1.h" +#include "drivers/GpioSX1509.h" +#include "inc/devices/debug_ocgpio.h" +#include "inc/devices/debug_oci2c.h" +#include "inc/devices/debug_ocmdio.h" +#include "inc/devices/ext_battery.h" /* Just for battery resistor configs */ +#include "inc/devices/int_battery.h" +#include "inc/subsystem/hci/hci.h" +#include "inc/subsystem/bms/bms.h" +#include "inc/subsystem/gpp/gpp.h" +#include "inc/subsystem/power/power.h" +#include "inc/devices/eth_sw.h" +#include "inc/devices/eeprom.h" +#include +#include + +SCHEMA_IMPORT OcGpio_Port ec_io; +SCHEMA_IMPORT OcGpio_Port gbc_io_0; +SCHEMA_IMPORT OcGpio_Port gbc_io_1; +SCHEMA_IMPORT const Driver_fxnTable LTC4274_fxnTable; + +/* These are terrible pin names, but they match the net names... */ +OcGpio_Pin pin_inven_eeprom_wp = { &gbc_io_0, 1, OCGPIO_CFG_OUT_OD_NOPULL }; +OcGpio_Pin pin_s_id_eeprom_wp = { &gbc_io_0, 2, OCGPIO_CFG_OUT_OD_NOPULL }; +OcGpio_Pin pin_tempsen_evt1 = { &gbc_io_0, 4 }; +OcGpio_Pin pin_tempsen_evt2 = { &gbc_io_0, 5 }; +OcGpio_Pin pin_tempsen_evt3 = { &gbc_io_0, 6 }; +OcGpio_Pin pin_tempsen_evt4 = { &gbc_io_0, 7 }; +OcGpio_Pin pin_tempsen_evt5 = { &gbc_io_0, 8 }; +OcGpio_Pin eth_sw_tiva_intn = { &gbc_io_0, 11 }; + +/***************************************************************************** + * EEPROM CONFIG + *****************************************************************************/ +Eeprom_Cfg eeprom_gbc_sid = { + .i2c_dev = { OC_CONNECT1_I2C7, 0x51 }, + .pin_wp = &pin_s_id_eeprom_wp, + .type = CAT24C256, + .ss = OC_SS_SYS, +}; + +Eeprom_Cfg eeprom_gbc_inv = { + .i2c_dev = { OC_CONNECT1_I2C7, 0x50 }, + .pin_wp = &pin_inven_eeprom_wp, + .type = CAT24C256, + .ss = OC_SS_SYS, +}; + +/***************************************************************************** + * SYSTEM CONFIG + *****************************************************************************/ +/* Power SubSystem Config */ +//Lead Acid Temperature sensor. +SE98A_Dev gbc_pwr_lead_acid_ts = { + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C1, + .slave_addr = PWR_LEAD_ACID_BATT_DEV_TEMP_SENS_ADDR + }, + .pin_evt = &pin_tempsen_evt1, + }, + .obj = {}, +}; + +//Lead acid battery charge controller. +LTC4015_Dev gbc_pwr_ext_bat_charger = { + .cfg = { + .i2c_dev = { + .bus = OC_CONNECT1_I2C0, + .slave_addr = 0x68, /* LTC4015 I2C address in 7-bit format */ + }, + .chem = LTC4015_CHEM_LEAD_ACID, + .r_snsb = PWR_EXT_BATT_RSNSB, + .r_snsi = PWR_EXT_BATT_RSNSI, + .cellcount = 6, + .pin_lt4015_i2c_sel = { &gbc_io_1, 4, OCGPIO_CFG_OUT_OD_NOPULL }, + .pin_alert = &(OcGpio_Pin){ &ec_io, + OC_EC_PWR_LACID_ALERT }, + }, + .obj = {}, + }; + +//Lithium ion battery charge controller. +LTC4015_Dev gbc_pwr_int_bat_charger = { + .cfg = { + .i2c_dev = { + .bus = OC_CONNECT1_I2C0, + .slave_addr = 0x68, /* LTC4015 I2C address in 7-bit format */ + }, + .chem = LTC4015_CHEM_LI_ION, + .r_snsb = PWR_INT_BATT_RSNSB, + .r_snsi = PWR_INT_BATT_RSNSI, + .cellcount = 3, + .pin_lt4015_i2c_sel = { &gbc_io_1, 4, OCGPIO_CFG_OUT_OD_NOPULL }, + .pin_alert = &(OcGpio_Pin){ &ec_io, OC_EC_PWR_LION_ALERT }, + }, + .obj = {}, +}; + +//Power Source Equipment +LTC4274_Dev gbc_pwr_pse = { + .cfg = { + .i2c_dev = { + .bus = OC_CONNECT1_I2C8, + .slave_addr = 0x2F, /* LTC4274 I2C address in 7-bit format */ + }, + .pin_evt = &(OcGpio_Pin){ &ec_io, + OC_EC_GBC_PSE_ALERT }, + .reset_pin ={ &ec_io, OC_EC_PWR_PSE_RESET }, + }, + .obj = {}, +}; + +//Power Device +LTC4275_Dev gbc_pwr_pd = { + .cfg = { + .pin_evt = &(OcGpio_Pin){ &ec_io, + OC_EC_PD_PWRGD_ALERT }, + .pin_detect = &(OcGpio_Pin){ &ec_io, + OC_EC_PWR_PD_NT2P }, + + }, + .obj = {}, + }; + +//Power Source +PWRSRC_Dev gbc_pwr_powerSource = { /*Added as a place holder for now.*/ + .cfg = { + /* SOLAR_AUX_PRSNT_N */ + .pin_solar_aux_prsnt_n = { &ec_io, OC_EC_PWR_PRSNT_SOLAR_AUX }, + /* POE_PRSNT_N */ + .pin_poe_prsnt_n = { &ec_io, OC_EC_PWR_PRSNT_POE }, + /* INT_BAT_PRSNT */ + .pin_int_bat_prsnt = { &gbc_io_0, 11 }, + /* EXT_BAT_PRSNT */ + .pin_ext_bat_prsnt = { &gbc_io_0, 12 }, + }, + .obj = {}, +}; + +/* BMS SubSystem Config */ +//EC Power sensor for 12V rail. +INA226_Dev gbc_bms_ec_ps_12v = { + /* 12V Power Sensor */ + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C6, + .slave_addr = BMS_EC_CURRENT_SENSOR_12V_ADDR, + }, + .pin_alert = &(OcGpio_Pin){ &ec_io, + OC_EC_GBC_INA_ALERT }, + }, +}; + +//EC Power sensor for 3.3V rail. +INA226_Dev gbc_bms_ec_ps_3p3v = { + /* 3.3V Power Sensor */ + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C7, + .slave_addr = BMS_EC_CURRENT_SENSOR_3P3V_ADDR, + }, + .pin_alert = &(OcGpio_Pin){ &ec_io, + OC_EC_GBC_INA_ALERT }, + }, +}; + +// EC Temperature sensor. +SE98A_Dev gbc_bms_ec_ts = { + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C1, + .slave_addr = BMS_EC_TEMP_SENSOR_ADDR + }, + .pin_evt = &pin_tempsen_evt2, + }, + .obj = {}, +}; + +/* HCI SubSystem Config */ +// Buzzer +HciBuzzer_Cfg gbc_hci_buzzer = { + .pin_en = { &gbc_io_0, 10, OCGPIO_CFG_OUT_OD_NOPULL }, +}; + +/* Ethernet Subsystem Config */ +Eth_Sw_Cfg g_eth_cfg = { + .pin_evt = NULL, + .pin_ec_ethsw_reset = { &ec_io, OC_EC_ETH_SW_RESET }, + .eth_switch = {}, +}; + +//PORT 0 +Eth_cfg gbc_eth_port0 = { + .eth_sw_cfg = &g_eth_cfg, + .eth_sw_port = PORT0, +}; + +//PORT 1 +Eth_cfg gbc_eth_port1 = { + .eth_sw_cfg = &g_eth_cfg, + .eth_sw_port = PORT1, +}; + +//PORT 2 +Eth_cfg gbc_eth_port2 = { + .eth_sw_cfg = &g_eth_cfg, + .eth_sw_port = PORT2, +}; + +//PORT 3 +Eth_cfg gbc_eth_port3 = { + .eth_sw_cfg = &g_eth_cfg, + .eth_sw_port = PORT3, +}; + +//PORT 4 +Eth_cfg gbc_eth_port4 = { + .eth_sw_cfg = &g_eth_cfg, + .eth_sw_port = PORT4, +}; + +/* GPP Subsystem Config*/ +//EC Power sensor for 12V rail. +INA226_Dev gbc_gpp_ap_ps = { + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C6, + .slave_addr = GPP_AP_CURRENT_SENSOR_ADDR, + }, + .pin_alert = &(OcGpio_Pin){ &ec_io, + OC_EC_GBC_AP_INA_ALERT }, + }, +}; + +// AP Temperature sensor +SE98A_Dev gbc_gpp_ap_ts1 = { + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C1, + .slave_addr = GPP_AP_TEMPSENS1_ADDR + }, + .pin_evt = &pin_tempsen_evt3, + }, + .obj = {}, +}; + +SE98A_Dev gbc_gpp_ap_ts2 = { + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C1, + .slave_addr = GPP_AP_TEMPSENS2_ADDR + }, + .pin_evt = &pin_tempsen_evt5, + }, + .obj = {}, +}; + +SE98A_Dev gbc_gpp_ap_ts3 = { + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C1, + .slave_addr = GPP_AP_TEMPSENS3_ADDR + }, + .pin_evt = &pin_tempsen_evt4, + }, + .obj = {}, +}; + +//mSATA power sensor +INA226_Dev gbc_gpp_msata_ps = { + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C6, + .slave_addr = GPP_MSATA_CURRENT_SENSOR_ADDR, + }, + .pin_alert = &(OcGpio_Pin){ &ec_io, + OC_EC_GBC_AP_INA_ALERT }, + }, +}; + +Gpp_gpioCfg gbc_gpp_gpioCfg = (Gpp_gpioCfg){ + /* SOC_PLTRST_N */ + .pin_soc_pltrst_n = { &ec_io, OC_EC_GPP_SOC_PLTRST }, + /* TIVA_SOC_GPIO2 */ + .pin_ap_boot_alert1 = { &ec_io, OC_EC_GPP_AP_BM_1 }, + /* TIVA_SOC_GPIO3 */ + .pin_ap_boot_alert2 = { &ec_io, OC_EC_GPP_AP_BM_2 }, + /* SOC_COREPWROK */ + .pin_soc_corepwr_ok = { &ec_io, OC_EC_GPP_PMIC_CORE_PWR }, + /* MSATA_EC_DAS */ + .pin_msata_ec_das = { &ec_io, OC_EC_GPP_MSATA_DAS }, + /* LT4256_EC_PWRGD */ + .pin_lt4256_ec_pwrgd = { &ec_io, OC_EC_GPP_PWRGD_PROTECTION }, + /* AP_12V_ONOFF */ + .pin_ap_12v_onoff = { &ec_io, OC_EC_GPP_PMIC_CTRL }, + /* EC_RESET_TO_PROC */ + .pin_ec_reset_to_proc = { &ec_io, OC_EC_GPP_RST_TO_PROC }, +}; + +/* Debug Subsystem Config.*/ +//I2C Bus +S_I2C_Cfg debug_I2C0 = { + .bus = OC_CONNECT1_I2C0, +}; + +S_I2C_Cfg debug_I2C1 = { + .bus = OC_CONNECT1_I2C1, +}; + +S_I2C_Cfg debug_I2C2 = { + .bus = OC_CONNECT1_I2C2, +}; + +S_I2C_Cfg debug_I2C3 = { + .bus = OC_CONNECT1_I2C3, +}; + +S_I2C_Cfg debug_I2C4 = { + .bus = OC_CONNECT1_I2C4, +}; + +S_I2C_Cfg debug_I2C6 = { + .bus = OC_CONNECT1_I2C6, +}; + +S_I2C_Cfg debug_I2C7 = { + .bus = OC_CONNECT1_I2C7, +}; + +S_I2C_Cfg debug_I2C8 = { + .bus = OC_CONNECT1_I2C8, +}; + +// MDIO PORTS +S_MDIO_Cfg debug_mdio_phyport0 = { + .port = OC_CONNECT1_PHYPORT0, +}; + +S_MDIO_Cfg debug_mdio_phyport1 = { + .port = OC_CONNECT1_PHYPORT1, +}; + +S_MDIO_Cfg debug_mdio_phyport2 = { + .port = OC_CONNECT1_PHYPORT2, +}; + +S_MDIO_Cfg debug_mdio_phyport3 = { + .port = OC_CONNECT1_PHYPORT3, +}; + +S_MDIO_Cfg debug_mdio_phyport4 = { + .port = OC_CONNECT1_PHYPORT4, +}; + +S_MDIO_Cfg debug_mdio_global2 = { + .port = OC_CONNECT1_GLOBAL2, +}; + +S_MDIO_Cfg debug_mdio_swport0 = { + .port = OC_CONNECT1_SWPORT0, +}; + +S_MDIO_Cfg debug_mdio_swport1 = { + .port = OC_CONNECT1_SWPORT1, +}; + +S_MDIO_Cfg debug_mdio_swport2 = { + .port = OC_CONNECT1_SWPORT2, +}; + +S_MDIO_Cfg debug_mdio_swport3 = { + .port = OC_CONNECT1_SWPORT3, +}; + +S_MDIO_Cfg debug_mdio_swport4 = { + .port = OC_CONNECT1_SWPORT4, +}; + +S_MDIO_Cfg debug_mdio_swport5 = { + .port = OC_CONNECT1_SWPORT5, +}; + +S_MDIO_Cfg debug_mdio_swport6 = { + .port = OC_CONNECT1_SWPORT0, +}; + +S_MDIO_Cfg debug_mdio_global1 = { + .port = OC_CONNECT1_GLOBAL1, +}; + +//Native GPIO +S_OCGPIO_Cfg debug_ec_gpio_pa = { + .port = &ec_io, + .group = PA, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pb = { + .port = &ec_io, + .group = PB, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pc = { + .port = &ec_io, + .group = PC, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pd = { + .port = &ec_io, + .group = PD, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pe = { + .port = &ec_io, + .group = PE, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pf = { + .port = &ec_io, + .group = PF, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pg = { + .port = &ec_io, + .group = PG, +}; + +S_OCGPIO_Cfg debug_ec_gpio_ph = { + .port = &ec_io, + .group = PH, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pj = { + .port = &ec_io, + .group = PJ, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pk = { + .port = &ec_io, + .group = PK, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pl = { + .port = &ec_io, + .group = PL, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pm = { + .port = &ec_io, + .group = PM, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pn = { + .port = &ec_io, + .group = PN, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pp = { + .port = &ec_io, + .group = PP, +}; + +S_OCGPIO_Cfg debug_ec_gpio_pq = { + .port = &ec_io, + .group = PQ, +}; + +// GBC IO EXPANDERS +S_OCGPIO_Cfg debug_gbc_ioexpanderx70 = { + .port = &gbc_io_1, +}; + +S_OCGPIO_Cfg debug_gbc_ioexpanderx71 = { + .port = &gbc_io_0, +}; + + +/* Factory Configuration for the Devices*/ +//Power Factory Config. +const SE98A_Config fact_bc_se98a = { + .lowlimit = -20, + .highlimit = 75, + .critlimit = 80, +}; + +const LTC4015_Config fact_leadAcid_cfg = { + .batteryVoltageLow = 9500, + .batteryVoltageHigh = 13800, + .batteryCurrentLow = 100, + .inputVoltageLow = 16200, + .inputCurrentHigh = 17000, + .inputCurrentLimit = 16500, + .icharge = 10660, + .vcharge = 12000, +}; + +const LTC4015_Config fact_lithiumIon_cfg = { + .batteryVoltageLow = 9500, + .batteryVoltageHigh = 12600, + .batteryCurrentLow = 100, + .inputVoltageLow = 16200, + .inputCurrentHigh = 5000, + .inputCurrentLimit = 5570, +}; + +const LTC4274_Config fact_ltc4274_cfg = { + .operatingMode = LTC4274_AUTO_MODE, + .detectEnable = LTC4274_DETECT_ENABLE, + .interruptMask = LTC4274_INTERRUPT_MASK, + .interruptEnable = true, + .pseHpEnable = LTC4274_HP_ENABLE, +}; + +//BMS factory config. +const SE98A_Config fact_ec_se98a_cfg = { + .lowlimit = -20, + .highlimit = 75, + .critlimit = 80, +}; + +const INA226_Config fact_ec_12v_ps_cfg = { + .current_lim = 1000, +}; + +const INA226_Config fact_ec_3v_ps_cfg = { + .current_lim = 1000, +}; + +//GPP fact config +const SE98A_Config fact_ap_se98a_ts1_cfg = { + .lowlimit = -20, + .highlimit = 75, + .critlimit = 80, +}; + +const SE98A_Config fact_ap_se98a_ts2_cfg = { + .lowlimit = -20, + .highlimit = 75, + .critlimit = 80, +}; + +const SE98A_Config fact_ap_se98a_ts3_cfg = { + .lowlimit = -20, + .highlimit = 75, + .critlimit = 80, +}; + +const INA226_Config fact_ap_3v_ps_cfg = { + .current_lim = 1500, +}; + +const INA226_Config fact_msata_3v_ps_cfg = { + .current_lim = 1500, +}; \ No newline at end of file diff --git a/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_LED.c b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_LED.c new file mode 100644 index 0000000000..42071d7f07 --- /dev/null +++ b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_LED.c @@ -0,0 +1,49 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/global/OC_CONNECT1.h" +#include "common/inc/ocmp_wrappers/ocmp_se98a.h" +#include "inc/subsystem/hci/hci.h" + +SCHEMA_IMPORT OcGpio_Port ec_io; +SCHEMA_IMPORT OcGpio_Port sync_io; +/***************************************************************************** + * SYSTEM CONFIG + *****************************************************************************/ +//LED Temperature sensor +SE98A_Dev led_hci_ts = { + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C8, + .slave_addr = HCI_LED_TEMP_SENSOR_ADDR + }, + .pin_evt = NULL, + }, + .obj = {}, +}; + +//LED IO Expander +HciLedCfg led_hci_ioexp ={ + .sx1509_dev[HCI_LED_DRIVER_LEFT] = { + .bus = OC_CONNECT1_I2C8, + .slave_addr = LED_SX1509_LEFT_ADDRESS, + }, + .sx1509_dev[HCI_LED_DRIVER_RIGHT] = { + .bus = OC_CONNECT1_I2C8, + .slave_addr = LED_SX1509_RIGHT_ADDRESS, + }, + /* EC_GPIO */ + .pin_ec_gpio = { &ec_io, OC_EC_HCI_LED_RESET }, +}; + +//HCI factory Config +const SE98A_Config fact_led_se98a_cfg = { + .lowlimit = -20, + .highlimit = 75, + .critlimit = 80, +}; \ No newline at end of file diff --git a/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_SDR.c b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_SDR.c new file mode 100644 index 0000000000..77a338d3ec --- /dev/null +++ b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_SDR.c @@ -0,0 +1,97 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_adt7481.h" +#include "common/inc/ocmp_wrappers/ocmp_ina226.h" +#include "common/inc/global/OC_CONNECT1.h" +#include "inc/subsystem/sdr/sdr.h" +#include "inc/devices/debug_ocgpio.h" + +SCHEMA_IMPORT OcGpio_Port ec_io; +SCHEMA_IMPORT OcGpio_Port sdr_fx3_io; +/***************************************************************************** + * EEPROM CONFIG + *****************************************************************************/ +Eeprom_Cfg eeprom_sdr_inv = { + .i2c_dev = { OC_CONNECT1_I2C3, 0x50 }, + /* .pin_wp = &(OcGpio_Pin){ &sdr_eeprom_wp_io, 0 }, */ + .pin_wp = NULL, /* IO Expander disabled on rev c */ + .type = CAT24C256, + .ss = OC_SS_SDR, +}; +/***************************************************************************** + * SYSTEM CONFIG + *****************************************************************************/ +/* SDR Subsystem Config.*/ +// SDR FPGA power sensor. +INA226_Dev sdr_fpga_ps = { + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C3, + .slave_addr = SDR_FPGA_CURRENT_SENSOR_ADDR, + }, + .pin_alert = &(OcGpio_Pin){ &ec_io, + OC_EC_SDR_FPGA_TEMP_INA_ALERT }, + }, +}; + +//SDR FPGA temperature sensor +I2C_Dev sdr_fpga_ts = { + .bus = OC_CONNECT1_I2C3, + .slave_addr = SDR_FPGA_TEMP_SENSOR_ADDR, +}; + +//SDR EEPROM +void* sdr_eeprom_inventory = &eeprom_sdr_inv; + +//SDR Power sensor +INA226_Dev sdr_ps = { + .cfg = { + .dev = { + .bus = OC_CONNECT1_I2C6, + .slave_addr = SDR_CURRENT_SENSOR_ADDR, + }, + .pin_alert = &(OcGpio_Pin){ &ec_io, + OC_EC_SDR_INA_ALERT }, + }, +}; + +// SDR IO EXPANDERS +S_OCGPIO_Cfg debug_sdr_ioexpanderx1E = { + .port = &sdr_fx3_io, +}; + +//SDR Factory config +const INA226_Config fact_sdr_3v_ps_cfg = { + .current_lim = 3000, +}; + +const ADT7481_Config fact_sdr_fpga_adt7481_cfg = { + .lowlimit = -20, + .highlimit = 75, + .critlimit = 85, +}; + +const INA226_Config fact_sdr_fpga_ps_cfg = { + .current_lim = 500, +}; + +Sdr_gpioCfg sdr_gpioCfg = (Sdr_gpioCfg) { + /* EC_TRXFECONN_GPIO2/SDR_REG_LDO_PGOOD */ + .pin_sdr_reg_ldo_pgood = { &ec_io, OC_EC_SDR_PWR_GD }, + /* TRXFE_12V_ONOFF */ + .pin_trxfe_12v_onoff = { &ec_io, OC_EC_SDR_PWR_CNTRL }, + /* EC_FE_RESET_OUT/RF_FE_IO_RESET */ + .pin_rf_fe_io_reset = { &ec_io, OC_EC_SDR_FE_IO_RESET_CTRL }, + /* EC_TRXFECONN_GPIO1/SDR_RESET_IN */ + .pin_sdr_reset_in = { &ec_io, OC_EC_SDR_DEVICE_CONTROL }, + /* EC_TRXFE_RESET */ + .pin_ec_trxfe_reset = { &ec_io, OC_EC_RFFE_RESET }, + /* FX3_RESET */ + .pin_fx3_reset = { &sdr_fx3_io, 0 }, +}; diff --git a/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_SYNC.c b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_SYNC.c new file mode 100644 index 0000000000..dd10ab4141 --- /dev/null +++ b/firmware/ec/platform/oc-sdr/cfg/OC_CONNECT_SYNC.c @@ -0,0 +1,80 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/global/OC_CONNECT1.h" +#include "common/inc/ocmp_wrappers/ocmp_adt7481.h" +#include "inc/subsystem/obc/obc.h" +#include "inc/subsystem/sync/sync.h" +#include "inc/devices/debug_ocgpio.h" + +SCHEMA_IMPORT OcGpio_Port ec_io; +SCHEMA_IMPORT OcGpio_Port sync_io; +/***************************************************************************** + * SYSTEM CONFIG + *****************************************************************************/ +/* OBC Subsystem Config.*/ +//Irridium +Iridium_Cfg obc_irridium = { + .uart = OC_CONNECT1_UARTXR0, + /* IRIDIUM_RSTIOEXP */ + .pin_enable = { &sync_io, 2, OCGPIO_CFG_OUT_STD }, + /* R_NW_AVAIL */ + .pin_nw_avail = { &sync_io, 3, OCGPIO_CFG_IN_PU }, +}; + +/* Sync Subsystem Config.*/ +//Temperature sensor. +I2C_Dev sync_gps_ts = { + .bus = OC_CONNECT1_I2C7, + .slave_addr = SYNC_TEMP_SENSOR_ADDR, +}; + +I2C_Dev sync_gps_io = { + .bus = OC_CONNECT1_I2C7, + .slave_addr = SYNC_IO_DEVICE_ADDR, +}; + +// SYNC IO EXPANDERS +S_OCGPIO_Cfg debug_sync_ioexpanderx71 = { + .port = &sync_io, +}; + +//Sync Factory config +const ADT7481_Config fact_sync_ts_cfg = { + .lowlimit = -20, + .highlimit = 80, + .critlimit = 85, +}; + +Sync_gpioCfg sync_gpiocfg = (Sync_gpioCfg){ + /* SPDT_CNTRL_LVL */ + .pin_spdt_cntrl_lvl = { &sync_io, 0, OCGPIO_CFG_OUT_OD_NOPULL }, + /* WARMUP_SURVEY_INIT_SEL */ + .pin_warmup_survey_init_sel = { &sync_io, 1, OCGPIO_CFG_OUT_OD_NOPULL }, + /* R_PHASE_LOCK_IOEXP */ + .pin_r_phase_lock_ioexp = { &sync_io, 4, OCGPIO_CFG_IN_PU }, + /* R_LOCK_OK_IOEXP */ + .pin_r_lock_ok_ioexp = { &sync_io, 5, OCGPIO_CFG_IN_PU }, + /* R_ALARM_IOEXP */ + .pin_r_alarm_ioexp = { &sync_io, 6, OCGPIO_CFG_IN_PU }, + /* 12V_REG_ENB */ + .pin_12v_reg_enb = { &sync_io, 7, OCGPIO_CFG_OUT_STD }, + /* TEMP_ALERT */ + .pin_temp_alert = { &sync_io, 8, OCGPIO_CFG_IN_PU }, + /* SPDT_CNTRL_LTE_CPU_GPS_LVL */ + .pin_spdt_cntrl_lte_cpu_gps_lvl = { &sync_io, 9, OCGPIO_CFG_OUT_OD_NOPULL }, + /* INIT_SURVEY_SEL */ + .pin_init_survey_sel = { &sync_io, 10, OCGPIO_CFG_OUT_OD_NOPULL }, + /* EC_SYNC_RESET */ + .pin_ec_sync_reset = { &ec_io, OC_EC_SYNC_RESET }, +}; + +Obc_gpioCfg sync_obc_gpiocfg = { + /* 12V_REG_ENB */ + .pin_pwr_en = &(OcGpio_Pin){ &sync_io, 7, OCGPIO_CFG_OUT_STD }, +}; \ No newline at end of file diff --git a/firmware/ec/platform/oc-sdr/schema.c b/firmware/ec/platform/oc-sdr/schema.c deleted file mode 100644 index 27f15ff4a9..0000000000 --- a/firmware/ec/platform/oc-sdr/schema.c +++ /dev/null @@ -1,1209 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ -#include "OC_CONNECT1.h" -#include "schema.h" -#include "src/registry/Framework.h" - -/* Framework-provided drivers */ -#include "inc/devices/eth_sw.h" -#include "inc/devices/ocmp_wrappers/ocmp_adt7481.h" -#include "inc/devices/ocmp_wrappers/ocmp_dat-xxr5a-pp.h" -#include "inc/devices/ocmp_wrappers/ocmp_eth_sw.h" -#include "inc/devices/ocmp_wrappers/ocmp_ina226.h" -#include "inc/devices/ocmp_wrappers/ocmp_i2c.h" -#include "inc/devices/ocmp_wrappers/ocmp_led.h" -#include "inc/devices/ocmp_wrappers/ocmp_ltc4015.h" -#include "inc/devices/ocmp_wrappers/ocmp_ltc4274.h" -#include "inc/devices/ocmp_wrappers/ocmp_ltc4275.h" -#include "inc/devices/ocmp_wrappers/ocmp_ocgpio.h" -#include "inc/devices/ocmp_wrappers/ocmp_powerSource.h" -#include "inc/devices/ocmp_wrappers/ocmp_se98a.h" -#include "inc/devices/ltc4274.h" - -#include "inc/subsystem/bms/bms.h" /* Temporary - for sharing bms config */ -#include "inc/subsystem/ethernet/ethernetSS.h" -#include "inc/subsystem/hci/hci.h" /* Temporary - for sharing hci config */ -#include "inc/subsystem/gpp/gpp.h" /* Temporary - for sharing gpp config */ -#include "inc/subsystem/obc/obc.h" -#include "inc/subsystem/power/power.h" /* Temporary - for sharing power config */ -#include "inc/subsystem/sdr/sdr.h" /* Temporary - for sharing sdr config */ -#include "inc/subsystem/rffe/rffe.h" /* Temporary - for sharing fe config */ -#include "inc/subsystem/rffe/rffe_powermonitor.h" /* For driver export */ -#include "inc/subsystem/sync/sync.h" /* Temporary - for sharing sdr config */ -#include "inc/subsystem/sys/sys.h" -#include "inc/subsystem/testModule/testModule.h" - -extern OcGpio_Port ec_io; -extern OcGpio_Port gbc_io_0; -extern OcGpio_Port gbc_io_1; -extern OcGpio_Port sdr_fx3_io; -extern OcGpio_Port fe_ch1_gain_io; -extern OcGpio_Port fe_ch2_gain_io ; -extern OcGpio_Port fe_ch1_lna_io; -extern OcGpio_Port fe_ch2_lna_io; -extern OcGpio_Port fe_watchdog_io; -extern OcGpio_Port sync_io; - -extern OCSubsystem ssSystem; -extern OCSubsystem ssPower; -extern OCSubsystem ssBms; -extern OCSubsystem ssHci; -extern OCSubsystem ssEth; -extern OCSubsystem ssObc; -extern OCSubsystem ssGpp; -extern OCSubsystem ssSdr; -extern OCSubsystem ssRf; -extern OCSubsystem ssSync; -extern OCSubsystem ssTestmod; -extern OCSubsystem ssDbg; - -extern Power_Cfg g_power_cfg; -extern Bms_Cfg g_bms_cfg; -extern Hci_Cfg g_hci_cfg; -extern Gpp_Cfg g_gpp_cfg; -extern Obc_Cfg g_obc_cfg; -extern Sdr_Cfg g_sdr_cfg; -extern Fe_Cfg g_fe_cfg; -extern Sync_Cfg g_sync_cfg; -extern Eth_Sw_Cfg g_eth_cfg; - -extern Eeprom_Cfg eeprom_gbc_sid; -extern Eeprom_Cfg eeprom_gbc_inv; - -const Component sys_schema[SUBSYSTEM_COUNT] = { - [OC_SS_SYS] = { - .name = "system", - .ss = &ssSystem, - .components = (Component[]){ - { - .name = "comp_all", - .driver_cfg = &g_gpp_cfg, /* For reset pin, will revise */ - .components = (Component[]){ - { - .name = "", - .driver = &Driver_EepromSID, - .driver_cfg = &eeprom_gbc_sid, - }, - { - .name = "", - .driver = &Driver_EepromInv, - .driver_cfg = &eeprom_gbc_inv, - }, - { - .name = "", - .driver = &Driver_MAC, - }, - {} - }, - .commands = { - [OCMP_AXN_TYPE_RESET] = &(Command){ - .name = "reset", - .cb_cmd = SYS_cmdReset, - }, - [OCMP_AXN_TYPE_ECHO] = &(Command){ - .name = "echo", - .cb_cmd = SYS_cmdEcho, - }, - &(Command){} - }, - }, - {} - }, - }, - [OC_SS_PWR] = { - .name = "power", - .ss = &ssPower, - .components = (Component[]){ - { - .name = "comp_all", - .components = (Component[]){ - { - .name = "powerSource", - .driver = &PWRSRC, - .driver_cfg = (void *)&g_power_cfg.powerSource, - }, - {} - }, - - }, - { - .name = "leadacid_tempsensor", - .components = (Component[]){ - { - .name = "ts", - .driver = &SE98A, - .driver_cfg = (void *)&g_power_cfg.lead_acid_temp_sens, - .factory_config = &(SE98A_Config){ - .lowlimit = -20, - .highlimit = 75, - .critlimit = 80, - } - }, - {} - } - }, - { - .name = "leadacid_battery_charger", - .components = (Component[]){ - { - .name = "bc", - .driver = <C4015, - .driver_cfg = (void *)&g_power_cfg.ext_bat_charger, - .factory_config = &(LTC4015_Config){ - .batteryVoltageLow = 9500, - .batteryVoltageHigh = 13800, - .batteryCurrentLow = 100, - .inputVoltageLow = 16200, - .inputCurrentHigh = 17000, - .inputCurrentLimit = 16500, - .icharge = 10660, - .vcharge = 12000, - } - }, - {} - } - }, - { - .name = "lion_battery_charger", - .components = (Component[]){ - { - .name = "bc", - .driver = <C4015, - .driver_cfg = (void *)&g_power_cfg.int_bat_charger, - .factory_config = &(LTC4015_Config){ - .batteryVoltageLow = 9500, - .batteryVoltageHigh = 12600, - .batteryCurrentLow = 100, - .inputVoltageLow = 16200, - .inputCurrentHigh = 5000, - .inputCurrentLimit = 5570, - } - }, - {} - } - }, - { - .name = "PSE", - .driver = <C4274, - .driver_cfg = (void *)&g_power_cfg.pse, - .factory_config = &(LTC4274_Config){ - .operatingMode = LTC4274_AUTO_MODE, - .detectEnable = LTC4274_DETECT_ENABLE, - .interruptMask = LTC4274_INTERRUPT_MASK, - .interruptEnable = true, - .pseHpEnable = LTC4274_HP_ENABLE, - } - }, - { - .name = "PD", - .driver = <C4275, - .driver_cfg = (void *)&g_power_cfg.pd, - }, - {} - }, - .ssHookSet = &(SSHookSet){ - .preInitFxn = pwr_pre_init, - .postInitFxn = pwr_post_init, - }, - }, - [OC_SS_BMS] = { - .name = "bms", - .ss = &ssBms, - .components = (Component[]){ - { - .name = "comp_all" - }, - { - .name = "ec", - .components = (Component[]){ - { - .name = "ts", - .driver = &SE98A, - .driver_cfg = &g_bms_cfg.ec_temp_sensor, - .factory_config = &(SE98A_Config){ - .lowlimit = -20, - .highlimit = 75, - .critlimit = 80, - }, - }, - { - .name = "12v", - .driver = &INA226, - .driver_cfg = &g_bms_cfg.ec_current_sensor_12v, - .factory_config = &(INA226_Config){ - .current_lim = 1000, - }, - }, - { - .name = "3v", - .driver = &INA226, - .driver_cfg = &g_bms_cfg.ec_current_sensor_3p3v, - .factory_config = &(INA226_Config){ - .current_lim = 1500, - }, - }, - {} - } - }, - {} - }, - }, - [OC_SS_HCI] = { - .name = "hci", - .ss = &ssHci, - .ssHookSet = &(SSHookSet){ - .preInitFxn = HCI_Init, - .postInitFxn = NULL, - }, - .components = (Component[]){ - { - .name = "comp_all" - }, - { - .name = "led", - .components = (Component[]){ - { - .name = "ts", - .driver = &SE98A, - .driver_cfg = &g_hci_cfg.led.temp_sensor, - .factory_config = &(SE98A_Config){ - .lowlimit = -20, - .highlimit = 75, - .critlimit = 80, - }, - }, - { - .name = "", - .driver = &HCI_LED, - }, - {} - }, - .commands = { - [OCMP_AXN_TYPE_SET] = &(Command){ - .name = "set", - .cb_cmd = led_testpattern_control, - }, - &(Command){} - }, - }, - { - /* TODO: Remove buzzer component if there is no OCMP message - * required */ - .name = "buzzer", - }, - {} - }, - }, - [OC_SS_ETH_SWT] = { - .name = "Ethernet", - .ss = &ssEth, - .components = (Component[]){ - { - .name = "comp_all", - }, - { - .name = "port0", - .driver = Ð_SW, - .driver_cfg = &(Eth_cfg){ - .eth_sw_cfg = &g_eth_cfg, - .eth_sw_port = PORT0, - } - }, - { - .name = "port1", - .driver = Ð_SW, - .driver_cfg = &(Eth_cfg){ - .eth_sw_cfg = &g_eth_cfg, - .eth_sw_port = PORT1, - } - }, - { - .name = "port2", - .driver = Ð_SW, - .driver_cfg = &(Eth_cfg){ - .eth_sw_cfg = &g_eth_cfg, - .eth_sw_port = PORT2, - } - }, - { - .name = "port3", - .driver = Ð_SW, - .driver_cfg = &(Eth_cfg){ - .eth_sw_cfg = &g_eth_cfg, - .eth_sw_port = PORT3, - } - }, - { - .name = "port4", - .driver = Ð_SW, - .driver_cfg = &(Eth_cfg){ - .eth_sw_cfg = &g_eth_cfg, - .eth_sw_port = PORT4, - } - }, - {} - }, - .ssHookSet = &(SSHookSet){ - .preInitFxn = eth_sw_pre_init, - }, - }, - [OC_SS_OBC] = { - .name = "obc", - .ss = &ssObc, - .ssHookSet = &(SSHookSet){ - .preInitFxn = obc_pre_init, - }, - .components = (Component[]){ - { - .name = "comp_all", - .commands = { - [OCMP_AXN_TYPE_RESET] = &(Command){ - .name = "reset", - //.cb_cmd = GPP_ap_Reset, - }, - &(Command){} - }, - }, - { - .name = "iridium", - .driver = &OBC_Iridium, - .driver_cfg = &g_obc_cfg.iridium_cfg, - }, - {} - }, - }, - [OC_SS_GPP] = { - .name = "gpp", - .ss = &ssGpp, - .components = (Component[]){ - { - .name = "comp_all", - .commands = { - [OCMP_AXN_TYPE_RESET] = &(Command){ - .name = "reset", - .cb_cmd = GPP_ap_Reset, - }, - &(Command){} - }, - }, - { - .name = "ap", - .components = (Component[]){ - { - .name = "ts1", - .driver = &SE98A, - .driver_cfg = &g_gpp_cfg.ap.temp_sensor[0], - .factory_config = &(SE98A_Config){ - .lowlimit = -20, - .highlimit = 75, - .critlimit = 80, - }, - }, - { - .name = "ts2", - .driver = &SE98A, - .driver_cfg = &g_gpp_cfg.ap.temp_sensor[1], - .factory_config = &(SE98A_Config){ - .lowlimit = -20, - .highlimit = 75, - .critlimit = 80, - }, - }, - { - .name = "ts3", - .driver = &SE98A, - .driver_cfg = &g_gpp_cfg.ap.temp_sensor[2], - .factory_config = &(SE98A_Config){ - .lowlimit = -20, - .highlimit = 75, - .critlimit = 80, - }, - }, - { - .name = "3v", - .driver = &INA226, - .driver_cfg = &g_bms_cfg.ec_current_sensor_3p3v, - .factory_config = &(INA226_Config){ - .current_lim = 1500, - }, - }, - {} - } - }, - { - .name = "msata", - .components = (Component[]){ - { - .name = "3v", - .driver = &INA226, - .driver_cfg = &g_bms_cfg.ec_current_sensor_3p3v, - .factory_config = &(INA226_Config){ - .current_lim = 1500, - }, - }, - {} - } - }, - {} - }, - .ssHookSet = &(SSHookSet){ - .preInitFxn = gpp_pre_init, - .postInitFxn = gpp_post_init, - }, - }, - [OC_SS_SDR] = { - .name = "sdr", - .ss = &ssSdr, - .components = (Component[]){ - { - .name = "comp_all", - .components = (Component[]){ - { - .name = "ps", - .driver = &INA226, - .driver_cfg = &g_sdr_cfg.current_sensor, - .factory_config = &(INA226_Config){ - .current_lim = 3000, - }, - }, - { - /* TODO: this is pretty hw-specific, I think we can - * dedupe for the other boards, but I don't think - * a framework level driver is appropriate (although, - * a proper OC-DB driver might have us revisit this) */ - /* TODO: "eeprom" makes the CLI command pretty verbose, - * maybe see about a way of making this better: - * sdr.comp_all.eeprom.dev_id is kind of long */ - .name = "eeprom", - .driver_cfg = (void *)OC_SS_SDR, - .driver = &(Driver){ - .name = "Inventory", - .status = (Parameter[]){ - { .name = "dev_id", .type = TYPE_STR, - .size = (OC_SDR_BOARD_INFO_SIZE + 1) }, - {} - }, - .cb_get_status = Sdr_InventoryGetStatus, - } - }, - {} - }, - .commands = { - [OCMP_AXN_TYPE_RESET] = &(Command){ - .name = "reset", - .cb_cmd = SDR_reset, - }, - &(Command){} - }, - }, - { - .name = "fpga", - .components = (Component[]){ - { - .name = "ts", - .driver = &ADT7481, - .driver_cfg = (void *)&g_sdr_cfg.fpga.temp_sensor, - .factory_config = &(ADT7481_Config){ - .lowlimit = -20, - .highlimit = 80, - .critlimit = 85, - } - }, - { - .name = "ps", - .driver = &INA226, - .driver_cfg = &g_sdr_cfg.fpga.current_sensor, - .factory_config = &(INA226_Config){ - .current_lim = 500, - }, - }, - {} - } - }, - { - .name = "fx3", - .commands = { - [OCMP_AXN_TYPE_RESET] = &(Command){ - .name = "reset", - .cb_cmd = SDR_fx3Reset, - }, - &(Command){} - }, - }, - {} - }, - .ssHookSet = &(SSHookSet){ - .preInitFxn = SDR_Init, - .postInitFxn = NULL, - }, - }, - [OC_SS_RF] = { - .name = "rffe", - .ss = &ssRf, - .components = (Component[]){ - { - .name = "comp_all", - .components = (Component[]){ - { - .name = "eeprom", - .driver_cfg = (void *)OC_SS_RF, - .driver = &(Driver){ - .name = "Inventory", - .status = (Parameter[]){ - { .name = "dev_id", .type = TYPE_STR, - .size = (OC_RFFE_BOARD_INFO_SIZE + 1) }, - {} - }, - .cb_get_status = RFFE_InventoryGetStatus, - } - }, - {} - }, - .commands = { - [OCMP_AXN_TYPE_RESET] = &(Command){ - .name = "reset", - .cb_cmd = RFFE_reset, - }, - &(Command){} - }, - }, - { - .name = "ch1_sensor", - .components = (Component[]){ - { - .name = "ts", - .driver = &ADT7481, - .driver_cfg = (void *)&g_fe_cfg.adt7481_ch1, - .factory_config = &(ADT7481_Config){ - .lowlimit = -20, - .highlimit = 80, - .critlimit = 85, - } - }, - { - .name = "ps", - .driver = &INA226, - .driver_cfg = &g_fe_cfg.ina226_ch1_5_7v, - .factory_config = &(INA226_Config){ - .current_lim = 2000, - }, - }, - {} - } - }, - { - .name = "ch2_sensor", - .components = (Component[]){ - { - .name = "ts", - .driver = &ADT7481, - .driver_cfg = (void *)&g_fe_cfg.adt7481_ch2, - .factory_config = &(ADT7481_Config){ - .lowlimit = -20, - .highlimit = 80, - .critlimit = 85, - } - }, - { - .name = "ps", - .driver = &INA226, - .driver_cfg = &g_fe_cfg.ina226_ch2_5_7v, - .factory_config = &(INA226_Config){ - .current_lim = 2000, - }, - }, - {} - } - }, - { - .name = "ch1_fe", - .driver_cfg = (void *)RFFE_CHANNEL1, /* For en/dis context */ - .components = (Component[]){ - { - .name = "", - /* Placeholder driver to let us test the DAT driver */ - .driver = &(Driver){ - .config = (Parameter[]){ - { .name = "band", .type = TYPE_UINT16 }, - { .name = "arfcn", .type = TYPE_UINT16 }, - {} - }, - }, - }, - { - .name = "watchdog", - .driver = &RFFEWatchdog, - .driver_cfg = &(RfWatchdog_Cfg){ - .pin_alert_lb = &g_fe_cfg.fe_watchdog_cfg.pin_co6_wd, - .pin_alert_hb = &g_fe_cfg.fe_watchdog_cfg.pin_co5_wd, - .pin_interrupt = &g_fe_cfg.pin_trxfe_conn_reset, - } - }, - { - .name = "power", - .driver = &RFPowerMonitor, - .driver_cfg = &g_fe_cfg.ads7830_ch1, - }, - { - .name = "tx", - .driver = &DATXXR5APP, - /* this struct should be compatible with the DAT cfg struct */ - .driver_cfg = &g_fe_cfg.fe_ch1_gain_cfg.fe_gain_cfg, - .factory_config = &(DATR5APP_Config){ - .attenuation = INT16_MAX, /* Default to max attenuation */ - } - }, - { - .name = "rx", - .driver = &DATXXR5APP, - /* this struct should be compatible with the DAT cfg struct */ - .driver_cfg = &g_fe_cfg.fe_ch1_lna_cfg.fe_lna_cfg, - .factory_config = &(DATR5APP_Config){ - .attenuation = INT16_MAX, /* Default to max attenuation */ - } - }, - {} - }, - .commands = { - [OCMP_AXN_TYPE_ENABLE] = &(Command){ - .name = "enable", - .cb_cmd = RFFE_enablePA, - }, - [OCMP_AXN_TYPE_DISABLE] = &(Command){ - .name = "disable", - .cb_cmd = RFFE_disablePA, - }, - &(Command){} - }, - }, - { - .name = "ch2_fe", - .driver_cfg = (void *)RFFE_CHANNEL2, /* For en/dis context */ - .components = (Component[]){ - { - .name = "", - /* Placeholder driver to let us test the DAT driver */ - .driver = &(Driver){ - .config = (Parameter[]){ - { .name = "band", .type = TYPE_UINT16 }, - { .name = "arfcn", .type = TYPE_UINT16 }, - {} - }, - } - }, - { - .name = "watchdog", - .driver = &RFFEWatchdog, - .driver_cfg = &(RfWatchdog_Cfg){ - .pin_alert_lb = &g_fe_cfg.fe_watchdog_cfg.pin_co3_wd, - .pin_alert_hb = &g_fe_cfg.fe_watchdog_cfg.pin_co4_wd, - .pin_interrupt = &g_fe_cfg.pin_trxfe_conn_reset, - } - }, - { - .name = "power", - .driver = &RFPowerMonitor, - .driver_cfg = &g_fe_cfg.ads7830_ch2, - }, - { - .name = "tx", - .driver = &DATXXR5APP, - /* this struct should be compatible with the DAT cfg struct */ - .driver_cfg = &g_fe_cfg.fe_ch2_gain_cfg.fe_gain_cfg, - .factory_config = &(DATR5APP_Config){ - .attenuation = INT16_MAX, /* Default to max attenuation */ - } - }, - { - .name = "rx", - .driver = &DATXXR5APP, - /* this struct should be compatible with the DAT cfg struct */ - .driver_cfg = &g_fe_cfg.fe_ch2_lna_cfg.fe_lna_cfg, - .factory_config = &(DATR5APP_Config){ - .attenuation = INT16_MAX, /* Default to max attenuation */ - } - }, - {} - }, - .commands = { - [OCMP_AXN_TYPE_ENABLE] = &(Command){ - .name = "enable", - .cb_cmd = RFFE_enablePA, - }, - [OCMP_AXN_TYPE_DISABLE] = &(Command){ - .name = "disable", - .cb_cmd = RFFE_disablePA, - }, - &(Command){} - }, - }, - {} - }, - .ssHookSet = &(SSHookSet){ - .preInitFxn = rffe_pre_init, - .postInitFxn = rffe_post_init, - }, - }, - [OC_SS_SYNC] = { - .name = "sync", - .ss = &ssSync, - .ssHookSet = &(SSHookSet){ - .preInitFxn = SYNC_Init, - .postInitFxn = NULL, - }, - .components = (Component[]){ - { - .name = "comp_all", - .commands = { - [OCMP_AXN_TYPE_RESET] = &(Command){ - .name = "reset", - .cb_cmd = SYNC_reset, - }, - &(Command){} - }, - }, - { - .name = "gps", - .driver_cfg = (void *)OC_SS_SYNC, - .driver = &(Driver){ - .name = "sync_ioexp", - .status = (Parameter[]){ - { - .name = "gps_lock", - .type = TYPE_ENUM, - .values = (Enum_Map[]){ - {0, "Gps Not Locked" }, - {1, "Gps Locked" }, - {} - }, - }, - {} - }, - .cb_get_status = SYNC_GpsStatus, - } - }, - { - .name = "temp_sensor", - .components = (Component[]){ - { - .name = "ts", - .driver = &ADT7481, - .driver_cfg = (void *)&g_sync_cfg.temp_sens, - .factory_config = &(ADT7481_Config){ - .lowlimit = -20, - .highlimit = 80, - .critlimit = 85, - } - }, - {} - } - }, - {} - } - }, - [OC_SS_TEST_MODULE] = { - .name = "testmodule", - .ss = &ssTestmod, - .components = (Component[]){ - { - .name = "comp_all", - .commands = { - [OCMP_AXN_TYPE_RESET] = &(Command){ - .name = "reset", - .cb_cmd = TestMod_cmdReset, - }, - &(Command){} - }, - }, - { - .name = "2gsim", - .driver = &Testmod_G510, - .commands = { - [OCMP_AXN_DIS_NETWORK] = &(Command){ - .name = "disconnect", - .cb_cmd = TestMod_cmdDisconnect, - }, - [OCMP_AXN_CONN_NETWORK] = &(Command){ - .name = "connect", - .cb_cmd = TestMod_cmdConnect, - }, - [OCMP_AXN_SEND_SMS] = &(Command){ - .name = "send", - .cb_cmd = TestMod_cmdSendSms, - }, - [OCMP_AXN_DIAL_NUMBER] = &(Command){ - .name = "dial", - .cb_cmd = TestMod_cmdDial, - }, - [OCMP_AXN_ANSWER] = &(Command){ - .name = "answer", - .cb_cmd = TestMod_cmdAnswer, - }, - [OCMP_AXN_HANGUP] = &(Command){ - .name = "hangup", - .cb_cmd = TestMod_cmdHangup, - }, - [OCMP_AXN_TYPE_ENABLE] = &(Command){ - .name = "enable", - .cb_cmd = TestMod_cmdEnable, - }, - [OCMP_AXN_TYPE_DISABLE] = &(Command){ - .name = "disable", - .cb_cmd = TestMod_cmdDisable, - }, - &(Command){} - }, - }, - {} - } - }, - [OC_SS_DEBUG] = { - .name = "debug", - .ss = &ssDbg, - .components = (Component[]){ - { - .name = "comp_all", - }, - { - .name = "I2C_0", - .components = (Component[]){ - { - .name = "i2c_0", - .driver = &OC_I2C, - .driver_cfg = &(S_I2C_Cfg) { - .bus = OC_CONNECT1_I2C0, - } - }, - {} - }, - }, - { - .name = "I2C_1", - .components = (Component[]){ - { - .name = "i2c_1", - .driver = &OC_I2C, - .driver_cfg = &(S_I2C_Cfg) { - .bus = OC_CONNECT1_I2C1, - } - }, - {} - }, - }, - { - .name = "I2C_2", - .components = (Component[]){ - { - .name = "i2c_2", - .driver = &OC_I2C, - .driver_cfg = &(S_I2C_Cfg) { - .bus = OC_CONNECT1_I2C2, - } - }, - {} - }, - }, - { - .name = "I2C_3", - .components = (Component[]){ - { - .name = "i2c_3", - .driver = &OC_I2C, - .driver_cfg = &(S_I2C_Cfg) { - .bus = OC_CONNECT1_I2C3, - } - }, - {} - }, - }, - { - .name = "I2C_4", - .components = (Component[]){ - { - .name = "i2c_4", - .driver = &OC_I2C, - .driver_cfg = &(S_I2C_Cfg) { - .bus = OC_CONNECT1_I2C4, - } - }, - {} - }, - }, - { - .name = "I2C_6", - .components = (Component[]){ - { - .name = "i2c_6", - .driver = &OC_I2C, - .driver_cfg = &(S_I2C_Cfg) { - .bus = OC_CONNECT1_I2C6, - } - }, - {} - }, - }, - { - .name = "I2C_7", - .components = (Component[]){ - { - .name = "i2c_7", - .driver = &OC_I2C, - .driver_cfg = &(S_I2C_Cfg) { - .bus = OC_CONNECT1_I2C7, - } - }, - {} - }, - }, - { - .name = "I2C_8", - .components = (Component[]){ - { - .name = "i2c_8", - .driver = &OC_I2C, - .driver_cfg = &(S_I2C_Cfg) { - .bus = OC_CONNECT1_I2C8, - } - }, - {} - }, - }, - { - .name = "EC", - .components = (Component[]) { - { - .name = "comp_all", - }, - { - .name = "PA", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PA, - } - }, - { - .name = "PB", - .driver = &OC_GPIO, - .driver_cfg =&(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PB, - } - }, - { - .name = "PC", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PC, - } - }, - { - .name = "PD", - .driver = &OC_GPIO, - .driver_cfg =&(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PD, - } - }, - { - .name = "PE", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PE, - } - }, - { - .name = "PF", - .driver = &OC_GPIO, - .driver_cfg =&(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PF, - } - }, - { - .name = "PG", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PG, - } - }, - { - .name = "PH", - .driver = &OC_GPIO, - .driver_cfg =&(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PH, - } - }, - { - .name = "PJ", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PJ, - } - }, - { - .name = "PK", - .driver = &OC_GPIO, - .driver_cfg =&(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PK, - } - }, - { - .name = "PL", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PL, - } - }, - { - .name = "PM", - .driver = &OC_GPIO, - .driver_cfg =&(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PM, - } - }, - { - .name = "PN", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PN, - } - }, - { - .name = "PP", - .driver = &OC_GPIO, - .driver_cfg =&(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PP, - } - }, - { - .name = "PQ", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &ec_io, - .group = PQ, - } - }, - {} - }, - }, - { - .name = "GBC", - .components = (Component[]) { - { - .name = "comp_all", - }, - { - .name = "ioexpanderx70", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &gbc_io_1, - } - }, - { - .name = "ioexpanderx71", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &gbc_io_0, - } - }, - {} - }, - }, - { - .name = "SDR", - .components = (Component[]) { - { - .name = "comp_all", - }, - { - .name = "ioexpanderx1E", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &sdr_fx3_io, - } - }, - {} - } - }, - { - .name = "FE", - .components = (Component[]) { - { - .name = "comp_all", - }, - { - .name = "ioexpanderx18", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &fe_ch1_gain_io, - } - }, - { - .name = "ioexpanderx1C", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &fe_ch2_gain_io, - } - }, - { - .name = "ioexpanderx1B", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &fe_watchdog_io, - } - }, - { - .name = "ioexpanderx1A", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &fe_ch1_lna_io, - } - }, - { - .name = "ioexpanderx1D", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &fe_ch2_lna_io, - } - }, - {} - - } - }, - { - .name = "SYNC", - .components = (Component[]) { - { - .name = "comp_all", - }, - { - .name = "ioexpanderx71", - .driver = &OC_GPIO, - .driver_cfg = &(S_OCGPIO_Cfg) { - .port = &sync_io, - } - }, - {} - } - }, - {} - }, - } -}; diff --git a/firmware/ec/platform/oc-sdr/schema/schema.c b/firmware/ec/platform/oc-sdr/schema/schema.c new file mode 100644 index 0000000000..d877f1b26a --- /dev/null +++ b/firmware/ec/platform/oc-sdr/schema/schema.c @@ -0,0 +1,1178 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#include "common/inc/global/Framework.h" +#include "common/inc/ocmp_wrappers/ocmp_adt7481.h" +#include "common/inc/ocmp_wrappers/ocmp_dat-xxr5a-pp.h" +#include "common/inc/ocmp_wrappers/ocmp_debugi2c.h" +#include "common/inc/ocmp_wrappers/ocmp_debugmdio.h" +#include "common/inc/ocmp_wrappers/ocmp_debugocgpio.h" +#include "common/inc/ocmp_wrappers/ocmp_debugmdio.h" +#include "common/inc/ocmp_wrappers/ocmp_eeprom_cat24c04.h" +#include "common/inc/ocmp_wrappers/ocmp_eth_sw.h" +#include "common/inc/ocmp_wrappers/ocmp_fe-param.h" +#include "common/inc/ocmp_wrappers/ocmp_ina226.h" +#include "common/inc/ocmp_wrappers/ocmp_iridium.h" +#include "common/inc/ocmp_wrappers/ocmp_led.h" +#include "common/inc/ocmp_wrappers/ocmp_ltc4015.h" +#include "common/inc/ocmp_wrappers/ocmp_ltc4274.h" +#include "common/inc/ocmp_wrappers/ocmp_ltc4275.h" +#include "common/inc/ocmp_wrappers/ocmp_mac.h" +#include "common/inc/ocmp_wrappers/ocmp_powersource.h" +#include "common/inc/ocmp_wrappers/ocmp_rfpowermonitor.h" +#include "common/inc/ocmp_wrappers/ocmp_rfwatchdog.h" +#include "common/inc/ocmp_wrappers/ocmp_se98a.h" +#include "common/inc/ocmp_wrappers/ocmp_syncio.h" +#include "common/inc/ocmp_wrappers/ocmp_testmodule.h" +#include "common/inc/global/OC_CONNECT1.h" +#include "schema.h" + +/* SYS Configs*/ +SCHEMA_IMPORT DriverStruct eeprom_gbc_sid; +SCHEMA_IMPORT DriverStruct eeprom_gbc_inv; +SCHEMA_IMPORT DriverStruct eeprom_sdr_inv; +SCHEMA_IMPORT DriverStruct eeprom_fe_inv; +/* Power SubSystem Configs */ +SCHEMA_IMPORT DriverStruct gbc_pwr_lead_acid_ts; +SCHEMA_IMPORT DriverStruct gbc_pwr_ext_bat_charger; +SCHEMA_IMPORT DriverStruct gbc_pwr_int_bat_charger; +SCHEMA_IMPORT DriverStruct gbc_pwr_pse; +SCHEMA_IMPORT DriverStruct gbc_pwr_pd ; +SCHEMA_IMPORT DriverStruct gbc_pwr_powerSource; + +/* BMS SubSystem Configs */ +SCHEMA_IMPORT DriverStruct gbc_bms_ec_ps_12v; +SCHEMA_IMPORT DriverStruct gbc_bms_ec_ps_3p3v; +SCHEMA_IMPORT DriverStruct gbc_bms_ec_ts; + +/*HCI SubSystem Configs*/ +SCHEMA_IMPORT DriverStruct gbc_hci_buzzer; +SCHEMA_IMPORT DriverStruct led_hci_ts; +SCHEMA_IMPORT DriverStruct led_hci_ioexp; + +/*Ethernet SubSystem Configs*/ +SCHEMA_IMPORT DriverStruct gbc_eth_port0; +SCHEMA_IMPORT DriverStruct gbc_eth_port1; +SCHEMA_IMPORT DriverStruct gbc_eth_port2; +SCHEMA_IMPORT DriverStruct gbc_eth_port3; +SCHEMA_IMPORT DriverStruct gbc_eth_port4; + +/*OBC SubSystem Configs*/ +SCHEMA_IMPORT DriverStruct obc_irridium; +SCHEMA_IMPORT DriverStruct sync_obc_gpiocfg; + +/*GPP SubSystem Configs*/ +SCHEMA_IMPORT DriverStruct gbc_gpp_ap_ps; +SCHEMA_IMPORT DriverStruct gbc_gpp_ap_ts1; +SCHEMA_IMPORT DriverStruct gbc_gpp_ap_ts2; +SCHEMA_IMPORT DriverStruct gbc_gpp_ap_ts3; +SCHEMA_IMPORT DriverStruct gbc_gpp_msata_ps; +SCHEMA_IMPORT DriverStruct gbc_gpp_gpioCfg; + +/*SDR SubSystem Configs*/ +SCHEMA_IMPORT DriverStruct sdr_fpga_ps; +SCHEMA_IMPORT DriverStruct sdr_fpga_ts; +SCHEMA_IMPORT DriverStruct sdr_eeprom_inventory; +SCHEMA_IMPORT DriverStruct sdr_ps; +SCHEMA_IMPORT DriverStruct sdr_gpioCfg; +SCHEMA_IMPORT DriverStruct sdr_fx3_gpiocfg; + +/*FE SubSystem Configs*/ +SCHEMA_IMPORT DriverStruct fe_rffecfg; +SCHEMA_IMPORT DriverStruct fe_ch1_ps_5_7v; +SCHEMA_IMPORT DriverStruct fe_ch2_ps_5_7v; +SCHEMA_IMPORT DriverStruct fe_ch1_ts; +SCHEMA_IMPORT DriverStruct fe_ch2_ts; +SCHEMA_IMPORT DriverStruct fe_eeprom_inventory; +SCHEMA_IMPORT DriverStruct fe_ch1_ads7830; +SCHEMA_IMPORT DriverStruct fe_ch2_ads7830; +SCHEMA_IMPORT DriverStruct fe_ch1_gain; +SCHEMA_IMPORT DriverStruct fe_ch2_gain; +SCHEMA_IMPORT DriverStruct fe_ch1_lna; +SCHEMA_IMPORT DriverStruct fe_ch2_lna; +SCHEMA_IMPORT DriverStruct fe_ch1_watchdog; +SCHEMA_IMPORT DriverStruct fe_ch2_watchdog; +SCHEMA_IMPORT DriverStruct fe_ch1_tx_gain_cfg; +SCHEMA_IMPORT DriverStruct fe_ch2_tx_gain_cfg; +SCHEMA_IMPORT DriverStruct fe_ch1_rx_gain_cfg; +SCHEMA_IMPORT DriverStruct fe_ch2_rx_gain_cfg; +SCHEMA_IMPORT DriverStruct fe_ch1_bandcfg; +SCHEMA_IMPORT DriverStruct fe_ch2_bandcfg; +SCHEMA_IMPORT DriverStruct fe_ch1_pwrcfg; +SCHEMA_IMPORT DriverStruct fe_ch2_pwrcfg; + +/*Sync SubSystem Configs*/ +SCHEMA_IMPORT DriverStruct sync_gps_ts; +SCHEMA_IMPORT DriverStruct sync_gps_io; +SCHEMA_IMPORT DriverStruct sync_gpiocfg; + +/*TestModule Subsystem Configd*/ +SCHEMA_IMPORT DriverStruct testModuleCfg; + +/*Debug SubSystem Configs*/ +SCHEMA_IMPORT DriverStruct debug_I2C0; +SCHEMA_IMPORT DriverStruct debug_I2C1; +SCHEMA_IMPORT DriverStruct debug_I2C2; +SCHEMA_IMPORT DriverStruct debug_I2C3; +SCHEMA_IMPORT DriverStruct debug_I2C4; +SCHEMA_IMPORT DriverStruct debug_I2C6; +SCHEMA_IMPORT DriverStruct debug_I2C7; +SCHEMA_IMPORT DriverStruct debug_I2C8; + +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pa; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pb; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pc; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pd; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pe; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pf; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pg; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_ph; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pj; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pk; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pl; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pm; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pn; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pp; +SCHEMA_IMPORT DriverStruct debug_ec_gpio_pq; + +SCHEMA_IMPORT DriverStruct debug_gbc_ioexpanderx70; +SCHEMA_IMPORT DriverStruct debug_gbc_ioexpanderx71; + +SCHEMA_IMPORT DriverStruct debug_sdr_ioexpanderx1E; + +SCHEMA_IMPORT DriverStruct debug_fe_ioexpanderx18; +SCHEMA_IMPORT DriverStruct debug_fe_ioexpanderx1C; +SCHEMA_IMPORT DriverStruct debug_fe_ioexpanderx1B; +SCHEMA_IMPORT DriverStruct debug_fe_ioexpanderx1A; +SCHEMA_IMPORT DriverStruct debug_fe_ioexpanderx1D; + +SCHEMA_IMPORT DriverStruct debug_sync_ioexpanderx71; + +SCHEMA_IMPORT DriverStruct debug_mdio_phyport0; +SCHEMA_IMPORT DriverStruct debug_mdio_phyport1; +SCHEMA_IMPORT DriverStruct debug_mdio_phyport2; +SCHEMA_IMPORT DriverStruct debug_mdio_phyport3; +SCHEMA_IMPORT DriverStruct debug_mdio_phyport4; +SCHEMA_IMPORT DriverStruct debug_mdio_global1; +SCHEMA_IMPORT DriverStruct debug_mdio_global2; +SCHEMA_IMPORT DriverStruct debug_mdio_swport0; +SCHEMA_IMPORT DriverStruct debug_mdio_swport1; +SCHEMA_IMPORT DriverStruct debug_mdio_swport2; +SCHEMA_IMPORT DriverStruct debug_mdio_swport3; +SCHEMA_IMPORT DriverStruct debug_mdio_swport4; +SCHEMA_IMPORT DriverStruct debug_mdio_swport5; +SCHEMA_IMPORT DriverStruct debug_mdio_swport6; + +SCHEMA_IMPORT const DriverStruct fact_bc_se98a; +SCHEMA_IMPORT const DriverStruct fact_leadAcid_cfg; +SCHEMA_IMPORT const DriverStruct fact_lithiumIon_cfg; +SCHEMA_IMPORT const DriverStruct fact_ltc4274_cfg; +SCHEMA_IMPORT const DriverStruct fact_ec_se98a_cfg; +SCHEMA_IMPORT const DriverStruct fact_ec_12v_ps_cfg; +SCHEMA_IMPORT const DriverStruct fact_ec_3v_ps_cfg; +SCHEMA_IMPORT const DriverStruct fact_led_se98a_cfg; +SCHEMA_IMPORT const DriverStruct fact_ap_se98a_ts1_cfg; +SCHEMA_IMPORT const DriverStruct fact_ap_se98a_ts2_cfg; +SCHEMA_IMPORT const DriverStruct fact_ap_se98a_ts3_cfg; +SCHEMA_IMPORT const DriverStruct fact_ap_3v_ps_cfg; +SCHEMA_IMPORT const DriverStruct fact_msata_3v_ps_cfg; +SCHEMA_IMPORT const DriverStruct fact_sdr_3v_ps_cfg; +SCHEMA_IMPORT const DriverStruct fact_sdr_fpga_adt7481_cfg; +SCHEMA_IMPORT const DriverStruct fact_sdr_fpga_ps_cfg; +SCHEMA_IMPORT const DriverStruct fact_fe_ch1_adt7481_cfg; +SCHEMA_IMPORT const DriverStruct fact_fe_ch1_ps_cfg; +SCHEMA_IMPORT const DriverStruct fact_fe_ch2_adt7481_cfg; +SCHEMA_IMPORT const DriverStruct fact_fe_ch2_ps_cfg; +SCHEMA_IMPORT const DriverStruct fact_ch1_tx_gain_cfg; +SCHEMA_IMPORT const DriverStruct fact_ch1_rx_gain_cfg; +SCHEMA_IMPORT const DriverStruct fact_ch2_tx_gain_cfg; +SCHEMA_IMPORT const DriverStruct fact_ch2_rx_gain_cfg; +SCHEMA_IMPORT const DriverStruct fact_ch1_band_cfg; +SCHEMA_IMPORT const DriverStruct fact_ch2_band_cfg; +SCHEMA_IMPORT const DriverStruct fact_sync_ts_cfg; + +//Function Type +SCHEMA_IMPORT bool gpp_pre_init(void *driver, void *returnValue); +SCHEMA_IMPORT bool gpp_post_init(void *driver, void *returnValue); +SCHEMA_IMPORT bool GPP_ap_Reset(void *driver, void *params); +SCHEMA_IMPORT bool HCI_Init(void *driver, void *returnValue); +SCHEMA_IMPORT bool RFFE_enablePA(void *driver, void *params); +SCHEMA_IMPORT bool RFFE_disablePA(void *driver, void *params); +SCHEMA_IMPORT bool rffe_pre_init(void *driver, void *returnValue); +SCHEMA_IMPORT bool rffe_post_init(void *driver, void *returnValue); +SCHEMA_IMPORT bool RFFE_reset(void *driver, void *params); +SCHEMA_IMPORT bool SDR_Init(void *driver, void *returnValue); +SCHEMA_IMPORT bool SDR_fx3Reset(void *driver, void *params); +SCHEMA_IMPORT bool SDR_reset(void *driver, void *returnValue); +SCHEMA_IMPORT bool SYNC_Init(void *driver, void *returnValue); +SCHEMA_IMPORT bool SYNC_reset(void *driver, void *params); +SCHEMA_IMPORT bool SYS_cmdReset(void *driver, void *params); +SCHEMA_IMPORT bool SYS_cmdEcho(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdEnable(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdDisable(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdDisconnect(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdConnect(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdSendSms(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdDial(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdAnswer(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdHangup(void *driver, void *params); +SCHEMA_IMPORT bool TestMod_cmdReset(void *driver, void *params); +SCHEMA_IMPORT bool obc_pre_init(void *driver, void *returnValue); +SCHEMA_IMPORT bool SYS_post_get_results(void **getpostResult); +SCHEMA_IMPORT bool SYS_post_enable(void **postActivate); + +const Component sys_schema[] = { + { + .name = "system", + .components = (Component[]){ + { + .name = "comp_all", + .driver = &SYSTEMDRV, + .driver_cfg = &gbc_gpp_gpioCfg, /* For reset pin, will revise */ + .components = (Component[]){ + { + .name = "eeprom_sid", + .driver = &CAT24C04_gbc_sid, + .driver_cfg = &eeprom_gbc_sid, + }, + { + .name = "eeprom_inv", + .driver = &CAT24C04_gbc_inv, + .driver_cfg = &eeprom_gbc_inv, + }, + { + .name = "eeprom_mac", + .driver = &Driver_MAC, + }, + {} + }, + .commands = (Command[]){ + { + .name = "reset", + .cb_cmd = SYS_cmdReset, + }, + { + .name = "echo", + .cb_cmd = SYS_cmdEcho, + }, + {} + }, + }, + {} + }, + }, + { + .name = "power", + .components = (Component[]){ + { + .name = "comp_all", + .components = (Component[]){ + { + .name = "powerSource", + .driver = &PWRSRC, + .driver_cfg = &gbc_pwr_powerSource, + .postDisabled = POST_DISABLED, + }, + {} + }, + }, + { + .name = "leadacid_sensor", + .components = (Component[]){ + { + .name = "temp_sensor1", + .driver = &SE98A, + .driver_cfg = &gbc_pwr_lead_acid_ts, + .factory_config = &fact_bc_se98a, + }, + {} + } + }, + { + .name = "leadacid", + .components = (Component[]){ + { + .name = "battery", + .driver = <C4015, + .driver_cfg = &gbc_pwr_ext_bat_charger, + .factory_config = &fact_leadAcid_cfg, + }, + {} + } + }, + { + .name = "lion", + .components = (Component[]){ + { + .name = "battery", + .driver = <C4015, + .driver_cfg = &gbc_pwr_int_bat_charger, + .factory_config = &fact_lithiumIon_cfg, + }, + {} + } + }, + { + .name = "pse", + .driver = <C4274, + .driver_cfg = &gbc_pwr_pse, + .factory_config = &fact_ltc4274_cfg, + }, + { + .name = "pd", + .driver = <C4275, + .driver_cfg = &gbc_pwr_pd, + }, + {} + }, + }, + { + .name = "bms", + .components = (Component[]){ + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "ec", + .components = (Component[]){ + { + .name = "temp_sensor1", + .driver = &SE98A, + .driver_cfg = &gbc_bms_ec_ts, + .factory_config = &fact_ec_se98a_cfg, + }, + { + .name = "current_sensor1", + .driver = &INA226, + .driver_cfg = &gbc_bms_ec_ps_12v, + .factory_config = &fact_ec_12v_ps_cfg, + }, + { + .name = "current_sensor2", + .driver = &INA226, + .driver_cfg = &gbc_bms_ec_ps_3p3v, + .factory_config = &fact_ec_3v_ps_cfg, + }, + {} + } + }, + {} + }, + }, + { + .name = "hci", + .ssHookSet = &(SSHookSet){ + .preInitFxn = (ssHook_Cb)HCI_Init, + .postInitFxn = NULL, + }, + .components = (Component[]){ + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "led", + .components = (Component[]){ + { + .name = "temp_sensor1", + .driver = &SE98A, + .driver_cfg = &led_hci_ts, + .factory_config = &fact_led_se98a_cfg, + .postDisabled = POST_DISABLED, + }, + { + .name = "fw", + .driver = &HCI_LED, + .driver_cfg = &led_hci_ioexp, + }, + {} + }, + }, + { + /* TODO: Remove buzzer component if there is no OCMP message + * required */ + .name = "buzzer", + .driver_cfg = &gbc_hci_buzzer, + .postDisabled = POST_DISABLED, + }, + {} + }, + }, + { + .name = "ethernet", + .components = (Component[]){ + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "port0", + .driver = Ð_SW, + .driver_cfg = &gbc_eth_port0, + }, + { + .name = "port1", + .driver = Ð_SW, + .driver_cfg = &gbc_eth_port1, + }, + { + .name = "port2", + .driver = Ð_SW, + .driver_cfg = &gbc_eth_port2, + }, + { + .name = "port3", + .driver = Ð_SW, + .driver_cfg = &gbc_eth_port3, + }, + { + .name = "port4", + .driver = Ð_SW, + .driver_cfg = &gbc_eth_port4, + }, + {} + }, + }, + { + .name = "obc", + .ssHookSet = &(SSHookSet){ + .preInitFxn = (ssHook_Cb)obc_pre_init, + .postInitFxn = NULL, + }, + .driver_cfg = &sync_obc_gpiocfg, + .components = (Component[]){ + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "iridium", + .driver = &OBC_Iridium, + .driver_cfg = &obc_irridium, + }, + {} + }, + }, + { + .name = "gpp", + .components = (Component[]){ + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + + { + .name = "ap", + .components = (Component[]){ + { + .name = "temp_sensor1", + .driver = &SE98A, + .driver_cfg = &gbc_gpp_ap_ts1, + .factory_config = &fact_ap_se98a_ts1_cfg, + }, + { + .name = "temp_sensor2", + .driver = &SE98A, + .driver_cfg = &gbc_gpp_ap_ts2, + .factory_config = &fact_ap_se98a_ts2_cfg, + }, + { + .name = "temp_sensor3", + .driver = &SE98A, + .driver_cfg = &gbc_gpp_ap_ts3, + .factory_config = &fact_ap_se98a_ts3_cfg, + }, + { + .name = "current_sensor1", + .driver = &INA226, + .driver_cfg = &gbc_gpp_ap_ps, + .factory_config = &fact_ap_3v_ps_cfg, + }, + {} + }, + .driver_cfg = &gbc_gpp_gpioCfg, + .commands = (Command[]){ + { + .name = "reset", + .cb_cmd = GPP_ap_Reset, + }, + {} + }, + }, + { + .name = "msata", + .components = (Component[]){ + { + .name = "current_sensor1", + .driver = &INA226, + .driver_cfg = &gbc_gpp_msata_ps, + .factory_config = &fact_msata_3v_ps_cfg, + }, + {} + } + }, + {} + }, + .driver_cfg = &gbc_gpp_gpioCfg, + .ssHookSet = &(SSHookSet){ + .preInitFxn = (ssHook_Cb)gpp_pre_init, + .postInitFxn = (ssHook_Cb)gpp_post_init, + }, + }, + { + .name = "sdr", + .components = (Component[]){ + { + .name = "comp_all", + .components = (Component[]){ + { + .name = "current_sensor1", + .driver = &INA226, + .driver_cfg = &sdr_ps, + .factory_config = &fact_sdr_3v_ps_cfg, + }, + { + /* TODO: this is pretty hw-specific, I think we can + * dedupe for the other boards, but I don't think + * a framework level driver is appropriate (although, + * a proper OC-DB driver might have us revisit this) */ + /* TODO: "eeprom" makes the CLI command pretty verbose, + * maybe see about a way of making this better: + * sdr.comp_all.eeprom.dev_id is kind of long */ + .name = "eeprom", + .driver_cfg = &eeprom_sdr_inv, + .driver = &CAT24C04_sdr_inv, + }, + {} + }, + .driver_cfg =&sdr_gpioCfg, + .commands = (Command[]){ + { + .name = "reset", + .cb_cmd = SDR_reset, + }, + {} + }, + }, + { + .name = "fpga", + .components = (Component[]){ + { + .name = "temp_sensor1", + .driver = &ADT7481, + .driver_cfg = &sdr_fpga_ts, + .factory_config = &fact_sdr_fpga_adt7481_cfg, + }, + { + .name = "current_sensor1", + .driver = &INA226, + .driver_cfg = &sdr_fpga_ps, + .factory_config = &fact_sdr_fpga_ps_cfg, + }, + {} + } + }, + { + .name = "fx3", + .driver_cfg = &sdr_gpioCfg, + .commands = (Command[]){ + { + .name = "reset", + .cb_cmd = SDR_fx3Reset, + }, + {} + }, + .postDisabled = POST_DISABLED, + }, + {} + }, + .driver_cfg = &sdr_gpioCfg, + .ssHookSet = &(SSHookSet){ + .preInitFxn = (ssHook_Cb)SDR_Init, + .postInitFxn = NULL, + }, + }, + { + .name = "rffe", + .driver_cfg = &fe_rffecfg, + .components = (Component[]){ + { + .name = "comp_all", + .components = (Component[]){ + { + .name = "eeprom", + .driver = &CAT24C04_fe_inv, + .driver_cfg = &eeprom_fe_inv, + }, + {} + }, + .driver_cfg = &sdr_gpioCfg, + .commands =(Command[]){ + { + .name = "reset", + .cb_cmd = RFFE_reset, + }, + {} + }, + }, + { + .name = "ch1_sensor", + .components = (Component[]){ + { + .name = "temp_sensor1", + .driver = &ADT7481, + .driver_cfg = &fe_ch1_ts, + .factory_config = &fact_fe_ch1_adt7481_cfg, + }, + { + .name = "current_sensor1", + .driver = &INA226, + .driver_cfg = &fe_ch1_ps_5_7v, + .factory_config = &fact_fe_ch1_ps_cfg, + }, + {} + } + }, + { + .name = "ch2_sensor", + .components = (Component[]){ + { + .name = "temp_sensor1", + .driver = &ADT7481, + .driver_cfg = &fe_ch2_ts, + .factory_config = &fact_fe_ch2_adt7481_cfg, + }, + { + .name = "current_sensor1", + .driver = &INA226, + .driver_cfg = &fe_ch2_ps_5_7v, + .factory_config = &fact_fe_ch2_ps_cfg, + }, + {} + } + }, + { + .name = "ch1_fe", + .driver_cfg = &fe_ch1_pwrcfg, /* For en/dis context */ + .components = (Component[]){ + { + .name = "ch1_band", + /* Placeholder driver to let us test the DAT driver */ + .driver = &FE_Param, + .driver_cfg = &fe_ch1_bandcfg, + .factory_config = &fact_ch1_band_cfg, + }, + { + .name = "watchdog", + .driver = &RFFEWatchdog, + .driver_cfg = &fe_ch1_watchdog, + }, + { + .name = "power", + .driver = &RFPowerMonitor, + .driver_cfg = &fe_ch1_ads7830, + }, + { + .name = "tx", + .driver = &DATXXR5APP, + /* this struct should be compatible with the DAT cfg struct */ + .driver_cfg = &fe_ch1_gain, + .factory_config = &fact_ch1_tx_gain_cfg, + }, + { + .name = "rx", + .driver = &DATXXR5APP, + /* this struct should be compatible with the DAT cfg struct */ + .driver_cfg = &fe_ch1_lna, + .factory_config = &fact_ch1_rx_gain_cfg, + }, + {} + }, + .commands = (Command[]){ + { + .name = "enable", + .cb_cmd = RFFE_enablePA, + }, + { + .name = "disable", + .cb_cmd = RFFE_disablePA, + }, + {} + }, + }, + { + .name = "ch2_fe", + .driver_cfg = &fe_ch2_pwrcfg, /* For en/dis context */ + .components = (Component[]){ + { + .name = "ch2_band", + /* Placeholder driver to let us test the DAT driver */ + .driver = &FE_Param, + .driver_cfg = &fe_ch2_bandcfg, + .factory_config = &fact_ch2_band_cfg, + }, + { + .name = "watchdog", + .driver = &RFFEWatchdog, + .driver_cfg = &fe_ch2_watchdog, + }, + { + .name = "power", + .driver = &RFPowerMonitor, + .driver_cfg = &fe_ch2_ads7830, + }, + { + .name = "tx", + .driver = &DATXXR5APP, + /* this struct should be compatible with the DAT cfg struct */ + .driver_cfg = &fe_ch2_gain, + .factory_config = &fact_ch2_tx_gain_cfg, + }, + { + .name = "rx", + .driver = &DATXXR5APP, + /* this struct should be compatible with the DAT cfg struct */ + .driver_cfg = &fe_ch2_lna, + .factory_config = &fact_ch2_rx_gain_cfg, + }, + {} + }, + .commands = (Command[]){ + { + .name = "enable", + .cb_cmd = RFFE_enablePA, + }, + { + .name = "disable", + .cb_cmd = RFFE_disablePA, + }, + {} + }, + }, + {} + }, + .driver_cfg = &fe_rffecfg, + .ssHookSet = &(SSHookSet){ + .preInitFxn = (ssHook_Cb)rffe_pre_init, + .postInitFxn = (ssHook_Cb)rffe_post_init, + }, + }, + { + .name = "sync", + .driver_cfg = &sync_gpiocfg, + .ssHookSet = &(SSHookSet){ + .preInitFxn = (ssHook_Cb)SYNC_Init, + .postInitFxn = NULL, + }, + .components = (Component[]){ + { + .name = "comp_all", + .driver_cfg = &sync_gpiocfg, + .commands = (Command[]){ + { + .name = "reset", + .cb_cmd = SYNC_reset, + }, + {} + }, + .postDisabled = POST_DISABLED, + }, + { + .name = "gps", + .driver_cfg = &sync_gpiocfg, + .driver = &Sync_IO, + }, + { + .name = "sensor", + .components = (Component[]){ + { + .name = "temp_sensor1", + .driver = &ADT7481, + .driver_cfg = &sync_gps_ts, + .factory_config = &fact_sync_ts_cfg, + }, + {} + } + }, + {} + } + }, + { + .name = "testmodule", + .components = (Component[]){ + { + .name = "comp_all", + .commands = (Command[]){ + { + .name = "reset", + .cb_cmd = TestMod_cmdReset, + }, + {} + }, + .postDisabled = POST_DISABLED, + }, + { + .name = "2gsim", + .driver = &Testmod_G510, + .driver_cfg = &testModuleCfg, + }, + {} + } + }, + { + .name = "debug", + .components = (Component[]){ + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "I2C", + .components = (Component[]){ + { + .name = "comp_all", + .postDisabled = POST_DISABLED + }, + { + .name = "bus0", + .driver = &OC_I2C, + .driver_cfg = &debug_I2C0, + .postDisabled = POST_DISABLED + }, + { + .name = "bus1", + .driver = &OC_I2C, + .driver_cfg = &debug_I2C1, + .postDisabled = POST_DISABLED + }, + { + .name = "bus2", + .driver = &OC_I2C, + .driver_cfg = &debug_I2C2, + .postDisabled = POST_DISABLED + }, + { + .name = "bus3", + .driver = &OC_I2C, + .driver_cfg = &debug_I2C3, + .postDisabled = POST_DISABLED + }, + { + .name = "bus4", + .driver = &OC_I2C, + .driver_cfg = &debug_I2C4, + .postDisabled = POST_DISABLED + }, + { + .name = "bus6", + .driver = &OC_I2C, + .driver_cfg = &debug_I2C6, + .postDisabled = POST_DISABLED + }, + { + .name = "bus7", + .driver = &OC_I2C, + .driver_cfg = &debug_I2C7, + .postDisabled = POST_DISABLED + }, + { + .name = "bus8", + .driver = &OC_I2C, + .driver_cfg = &debug_I2C8, + .postDisabled = POST_DISABLED + }, + {} + }, + }, + { + .name = "ec", + .components = (Component[]){ + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "PA", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pa, + .postDisabled = POST_DISABLED, + }, + { + .name = "PB", + .driver = &OC_GPIO, + .driver_cfg =&debug_ec_gpio_pb, + .postDisabled = POST_DISABLED, + }, + { + .name = "PC", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pc, + .postDisabled = POST_DISABLED, + }, + { + .name = "PD", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pd, + .postDisabled = POST_DISABLED, + }, + { + .name = "PE", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pe, + .postDisabled = POST_DISABLED, + }, + { + .name = "PF", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pf, + .postDisabled = POST_DISABLED, + }, + { + .name = "PG", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pg, + .postDisabled = POST_DISABLED, + }, + { + .name = "PH", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_ph, + .postDisabled = POST_DISABLED, + }, + { + .name = "PJ", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pj, + .postDisabled = POST_DISABLED, + }, + { + .name = "PK", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pk, + .postDisabled = POST_DISABLED, + }, + { + .name = "PL", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pl, + .postDisabled = POST_DISABLED, + }, + { + .name = "PM", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pm, + .postDisabled = POST_DISABLED, + }, + { + .name = "PN", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pn, + .postDisabled = POST_DISABLED, + }, + { + .name = "PP", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pn, + .postDisabled = POST_DISABLED, + }, + { + .name = "PQ", + .driver = &OC_GPIO, + .driver_cfg = &debug_ec_gpio_pq, + .postDisabled = POST_DISABLED, + }, + {} + }, + }, + { + .name = "gbc", + .components = (Component[]) { + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "ioexpanderx70", + .driver = &OC_GPIO, + .driver_cfg = &debug_gbc_ioexpanderx70, + }, + { + .name = "ioexpanderx71", + .driver = &OC_GPIO, + .driver_cfg = &debug_gbc_ioexpanderx71, + }, + {} + }, + }, + { + .name = "sdr", + .components = (Component[]) { + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "ioexpanderx1E", + .driver = &OC_GPIO, + .driver_cfg = &debug_sdr_ioexpanderx1E, + }, + {} + } + }, + { + .name = "fe", + .components = (Component[]) { + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "ioexpanderx18", + .driver = &OC_GPIO, + .driver_cfg = &debug_sdr_ioexpanderx1E, + }, + { + .name = "ioexpanderx1C", + .driver = &OC_GPIO, + .driver_cfg = &debug_fe_ioexpanderx1C, + }, + { + .name = "ioexpanderx1B", + .driver = &OC_GPIO, + .driver_cfg = &debug_fe_ioexpanderx1B, + }, + { + .name = "ioexpanderx1A", + .driver = &OC_GPIO, + .driver_cfg = &debug_fe_ioexpanderx1A, + }, + { + .name = "ioexpanderx1D", + .driver = &OC_GPIO, + .driver_cfg = &debug_fe_ioexpanderx1D, + }, + {} + + } + }, + { + .name = "sync", + .components = (Component[]) { + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "ioexpanderx71", + .driver = &OC_GPIO, + .driver_cfg = &debug_sync_ioexpanderx71, + }, + {} + } + }, + { + .name = "ethernet", + .components = (Component[]) { + { + .name = "comp_all", + .postDisabled = POST_DISABLED, + }, + { + .name = "port0", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_phyport0, + .postDisabled = POST_DISABLED, + }, + { + .name = "port1", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_phyport1, + .postDisabled = POST_DISABLED, + }, + { + .name = "port2", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_phyport2, + .postDisabled = POST_DISABLED, + }, + { + .name = "port3", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_phyport3, + .postDisabled = POST_DISABLED, + }, + { + .name = "port4", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_phyport4, + .postDisabled = POST_DISABLED, + }, + { + .name = "global1", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_global1, + .postDisabled = POST_DISABLED, + }, + { + .name = "global2", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_global2, + .postDisabled = POST_DISABLED, + }, + { + .name = "swport0", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_swport0, + .postDisabled = POST_DISABLED, + }, + { + .name = "swport1", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_swport1, + .postDisabled = POST_DISABLED, + }, + { + .name = "swport2", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_swport2, + .postDisabled = POST_DISABLED, + }, + { + .name = "swport3", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_swport3, + .postDisabled = POST_DISABLED, + }, + { + .name = "swport4", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_swport4, + .postDisabled = POST_DISABLED, + }, + { + .name = "swport5", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_swport5, + .postDisabled = POST_DISABLED, + }, + { + .name = "swport6", + .driver = &OC_MDIO, + .driver_cfg = &debug_mdio_swport6, + .postDisabled = POST_DISABLED, + }, + {} + } + }, + {} + }, + }, + {} +}; diff --git a/firmware/ec/platform/oc-sdr/schema.h b/firmware/ec/platform/oc-sdr/schema/schema.h similarity index 76% rename from firmware/ec/platform/oc-sdr/schema.h rename to firmware/ec/platform/oc-sdr/schema/schema.h index b83aed6a04..e5f11ff9d5 100644 --- a/firmware/ec/platform/oc-sdr/schema.h +++ b/firmware/ec/platform/oc-sdr/schema/schema.h @@ -6,13 +6,9 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef _SCHEMA_H #define _SCHEMA_H -/* TODO: clean this up - this should dictate the subsystems, not the other way around */ -#include "inc/common/ocmp_frame.h" - #define SUBSYSTEM_COUNT OC_SS_MAX_LIMIT #endif /* _SCHEMA_H */ diff --git a/firmware/ec/src/.project b/firmware/ec/src/.project deleted file mode 100644 index f7d6de6781..0000000000 --- a/firmware/ec/src/.project +++ /dev/null @@ -1,11 +0,0 @@ - - - src - - - - - - - - diff --git a/firmware/ec/src/Board.h b/firmware/ec/src/Board.h index 699fcbbbcc..7a8842ee49 100644 --- a/firmware/ec/src/Board.h +++ b/firmware/ec/src/Board.h @@ -1,11 +1,40 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ +/******************************************************************************* + Filename: Board.h + Revised: $Date: 2015-06-02 11:18:40 -0700 (Tue, 02 Jun 2015) $ + Revision: $Revision: 43957 $ + + Description: This file contains utility functions. + + Copyright 2014 Texas Instruments Incorporated. All rights reserved. + + IMPORTANT: Your use of this Software is limited to those specific rights + granted under the terms of a software license agreement between the user + who downloaded the software, his/her employer (which must be your employer) + and Texas Instruments Incorporated (the "License"). You may not use this + Software unless you agree to abide by the terms of the License. The License + limits your use, and you acknowledge, that the Software may not be modified, + copied or distributed unless embedded on a Texas Instruments microcontroller + or used solely and exclusively in conjunction with a Texas Instruments radio + frequency transceiver, which is integrated into your product. Other than for + the foregoing purpose, you may not use, reproduce, copy, prepare derivative + works of, modify, distribute, perform, display or sell this Software and/or + its documentation for any purpose. + + YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE + PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, + INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE, + NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL + TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT, + NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER + LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES + INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE + OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT + OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES + (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS. + + Should you have any questions regarding your right to use this Software, + contact Texas Instruments Incorporated at www.TI.com. +*******************************************************************************/ #ifndef __BOARD_H #define __BOARD_H @@ -13,7 +42,7 @@ extern "C" { #endif -#include "OC_CONNECT1.h" +#include "common/inc/global/OC_CONNECT1.h" #define Board_initEMAC OC_CONNECT1_initEMAC #define Board_initGeneral OC_CONNECT1_initGeneral diff --git a/firmware/ec/src/Devices/adt7481.c b/firmware/ec/src/Devices/adt7481.c index c3ee54e6a8..2fac3e31fa 100644 --- a/firmware/ec/src/Devices/adt7481.c +++ b/firmware/ec/src/Devices/adt7481.c @@ -189,6 +189,38 @@ ReturnStatus adt7481_get_mfg_id(const I2C_Dev *i2c_dev, return status; } +/***************************************************************************** + ** FUNCTION NAME : adt7481_probe + ** + ** DESCRIPTION : Read the Manufacturer ID from Temperature sensor ADT7481. + ** + ** ARGUMENTS : I2C driver config and POST Data struct + ** id. + ** + ** RETURN TYPE : ePostCode + ** + *****************************************************************************/ +ePostCode adt7481_probe(const I2C_Dev *i2c_dev, + POSTData *postData) +{ + ePostCode postcode = POST_DEV_MISSING; + ReturnStatus status = RETURN_OK; + uint8_t devId = 0x0000; + uint8_t manfId = 0x0000; + status = adt7481_get_dev_id(i2c_dev, &devId); + status = adt7481_get_mfg_id(i2c_dev, &manfId); + if (status != RETURN_OK) { + postcode = POST_DEV_MISSING; + } else if ((devId == TEMP_ADT7481_DEV_ID) + && (manfId == TEMP_ADT7481_MANF_ID)) { + postcode = POST_DEV_FOUND; + } else { + postcode = POST_DEV_ID_MISMATCH; + } + post_update_POSTData(postData, i2c_dev->bus, i2c_dev->slave_addr,manfId, devId); + return postcode; +} + /****************************************************************************** * @fn adt7481_get_config1 * diff --git a/firmware/ec/src/Devices/eeprom.c b/firmware/ec/src/Devices/eeprom.c index 888bfefd18..86ca9c62d2 100644 --- a/firmware/ec/src/Devices/eeprom.c +++ b/firmware/ec/src/Devices/eeprom.c @@ -11,11 +11,15 @@ // HEADER FILES //***************************************************************************** #include "inc/devices/eeprom.h" + #include "Board.h" #include "inc/common/global_header.h" #include "inc/common/byteorder.h" + #include +#ifndef UT_FRAMEWORK #include /* TODO: for htons - clean up this random include */ +#endif #include #define WP_ASSERT 1 @@ -109,7 +113,7 @@ ReturnStatus eeprom_read(Eeprom_Cfg *cfg, ** RETURN TYPE : Success or failure ** *****************************************************************************/ -ReturnStatus eeprom_write(Eeprom_Cfg *cfg, +ReturnStatus eeprom_write(const Eeprom_Cfg *cfg, uint16_t address, const void *buffer, size_t size) @@ -272,10 +276,9 @@ ReturnStatus eeprom_read_oc_info(uint8_t * oc_serial) status = eeprom_read(&eeprom_gbc_sid, OC_CONNECT1_SERIAL_INFO, oc_serial, OC_CONNECT1_SERIAL_SIZE); if (status != RETURN_OK) { - LOGGER_ERROR("EEPROM:ERROR:: Failed to get I2C Bus for EEPROM device 0x%x.\n", - eeprom_gbc_sid.i2c_dev.slave_addr); + LOGGER_ERROR("EEPROM:ERROR:: Failed to get I2C Bus for GBC serial ID EEPROM.\n"); } else { - LOGGER_ERROR("EEPROM:Info:: OC Connect1 %s.\n", oc_serial); + LOGGER_ERROR("EEPROM:Info:: OC Connect1 %d.\n", *oc_serial); } return status; } @@ -291,32 +294,28 @@ ReturnStatus eeprom_read_oc_info(uint8_t * oc_serial) ** RETURN TYPE : Success or failure ** *****************************************************************************/ -ReturnStatus eeprom_read_board_info(OCMPSubsystem subSystem, uint8_t * rom_info) +ReturnStatus eeprom_read_board_info(const Eeprom_Cfg *cfg, uint8_t * rom_info) { ReturnStatus status = RETURN_NOTOK; uint8_t info_size = 0x00; uint16_t eepromOffset = 0x0000; - Eeprom_Cfg *cfg = NULL; - switch (subSystem) { + switch (cfg->ss) { case OC_SS_SYS: { info_size = OC_GBC_BOARD_INFO_SIZE; eepromOffset = OC_GBC_BOARD_INFO; - cfg = &eeprom_gbc_sid; break; } case OC_SS_SDR: { info_size = OC_SDR_BOARD_INFO_SIZE; eepromOffset = OC_SDR_BOARD_INFO; - cfg = &eeprom_sdr_inv; break; } case OC_SS_RF: { info_size = OC_RFFE_BOARD_INFO_SIZE; eepromOffset = OC_RFFE_BOARD_INFO; - cfg = &eeprom_fe_inv; break; } default: @@ -346,31 +345,27 @@ ReturnStatus eeprom_read_board_info(OCMPSubsystem subSystem, uint8_t * rom_info) ** RETURN TYPE : Success or failure ** *****************************************************************************/ -ReturnStatus eeprom_read_device_info_record(OCMPSubsystem subSystem, +ReturnStatus eeprom_read_device_info_record(const Eeprom_Cfg *cfg, uint8_t recordNo, char * device_info) { ReturnStatus status = RETURN_NOTOK; uint8_t info_size = OC_DEVICE_INFO_SIZE; uint16_t eepromOffset = 0x0000; - Eeprom_Cfg *cfg = NULL; - switch (subSystem) { + switch (cfg->ss) { case OC_SS_SYS: { eepromOffset = OC_GBC_DEVICE_INFO + (recordNo * info_size); - cfg = &eeprom_gbc_sid; break; } case OC_SS_SDR: { eepromOffset = OC_SDR_DEVICE_INFO + (recordNo * info_size); - cfg = &eeprom_sdr_inv; break; } case OC_SS_RF: { eepromOffset = OC_RFFE_DEVICE_INFO + (recordNo * info_size); - cfg = &eeprom_fe_inv; break; } default: @@ -401,31 +396,27 @@ ReturnStatus eeprom_read_device_info_record(OCMPSubsystem subSystem, ** RETURN TYPE : Success or failure ** *****************************************************************************/ -ReturnStatus eeprom_write_device_info_record(OCMPSubsystem subSystem, +ReturnStatus eeprom_write_device_info_record(Eeprom_Cfg *cfg, uint8_t recordNo, char * device_info) { ReturnStatus status = RETURN_NOTOK; uint8_t info_size = OC_DEVICE_INFO_SIZE; uint16_t eepromOffset = 0x0000; - Eeprom_Cfg *cfg = NULL; - switch (subSystem) { + switch (cfg->ss) { case OC_SS_SYS: { eepromOffset = OC_GBC_DEVICE_INFO + (recordNo * info_size); - cfg = &eeprom_gbc_sid; break; } case OC_SS_SDR: { eepromOffset = OC_SDR_DEVICE_INFO + (recordNo * info_size); - cfg = &eeprom_sdr_inv; break; } case OC_SS_RF: { eepromOffset = OC_RFFE_DEVICE_INFO + (recordNo * info_size); - cfg = &eeprom_fe_inv; break; } default: diff --git a/firmware/ec/src/Devices/eth_sw.c b/firmware/ec/src/Devices/eth_sw.c index a845c0a6db..3f325dfe5f 100644 --- a/firmware/ec/src/Devices/eth_sw.c +++ b/firmware/ec/src/Devices/eth_sw.c @@ -10,33 +10,69 @@ //***************************************************************************** // Standard Header files //***************************************************************************** - #include "inc/devices/eth_sw.h" + #include "inc/devices/88E6071_registers.h" #include "inc/common/global_header.h" #include "inc/devices/mdio_bb.h" #include "registry/SSRegistry.h" +#include "src/interfaces/Ethernet/tcp_tx_rx.h" + +#include +#include #define CLEAR_BIT(x, y) (y = (~x) & y) #define SET_BIT(x, y) (y = x | y) +#define MACLOOPBACK 0 +#define LINELOOPBACK 1 +#define EXTLOOPBACK 2 +#define TCPHANDLERSTACK 1024 +#define MAX 4 +#define IPSTRING_LENGTH 16 +#define ETHTIVACLEINT_TASK_PRIORITY 1 +char ethTivaClientTaskStack[TCPHANDLERSTACK]; -/* GPP device config */ -extern void *sys_config[]; -#define ETH ((Eth_Cfg *)sys_config[OC_SS_ETH_SWT]) +static bool s_eth_sw_linkup = false; +const char *destIp; +uint8_t numRepeat; +char convStr[IPSTRING_LENGTH]; +char temp[IPSTRING_LENGTH]; +char *tempBuf=temp; -ePostCode eth_sw_probe() +void eth_sw_configure(Eth_cfg* ethCfg) +{ + uint8_t link_up; + uint16_t read_val = 0; + if (!s_eth_sw_linkup) { + OcGpio_configure(ðCfg->eth_sw_cfg->pin_ec_ethsw_reset, OCGPIO_CFG_OUTPUT| OCGPIO_CFG_OUT_HIGH); + SysCtlDelay(16000000); //400ms delay + } + read_val = mdiobb_read_by_paging(PHY_PORT_0, REG_PHY_SPEC_STATUS); + link_up = (RT_LINK & read_val) ? 1 : 0; + DEBUG("ETHSW: Linkup: %d \n", link_up); + if (link_up == 1) { + s_eth_sw_linkup = true; + } else { + s_eth_sw_linkup = false; + } +} + +ePostCode eth_sw_probe( POSTData *postData) { ePostCode eth_sw_found = POST_DEV_MISSING; uint16_t switch_pid = 0; + uint16_t devId = 0x00; /*Switch idenifier*/ switch_pid = mdiobb_read(0x8, 3); switch_pid = (switch_pid >>4); if (switch_pid == ETH_SW_PRODUCT_ID) { /* Phy Identifier */ - if (mdiobb_read_data(0, REG_PHY_ID_1) == PHY_IDENTIFIER) { + devId = mdiobb_read_by_paging(0, REG_PHY_ID_1); + if ( devId == PHY_IDENTIFIER) { eth_sw_found = POST_DEV_FOUND; } } + post_update_POSTData(postData, 0xFF, 0xFF, 0xFF, devId); LOGGER_DEBUG("ETHSW::INFO:: Ethernet switch %s.\n", ((eth_sw_found == POST_DEV_FOUND) ? "found" : "not found")); return eth_sw_found; @@ -48,14 +84,14 @@ void eth_enable_interrupt() mdiobb_write(GLOBAL_1, REG_GLOBAL_CONTROL, DEV_INT_EN); mdiobb_write(GLOBAL_2, REG_INTERRUPT_MASK, DEFAULT_PHY_INTS); for (port = 0; port < 5; port++) { - mdiobb_write_data(port, REG_PHY_INTERRUPT_EN, DEFUALT_INT); + mdiobb_write_by_paging(port, REG_PHY_INTERRUPT_EN, DEFUALT_INT); } } uint16_t get_interrupt_status(uint8_t port) { /* read the register REG_PHY_INTERRUPT_EN */ - return mdiobb_read_data(port, REG_PHY_INTERRUPT_STATUS); + return mdiobb_read_by_paging(port, REG_PHY_INTERRUPT_STATUS); } /***************************************************************************** @@ -86,11 +122,11 @@ static void _ethernet_sw_isr(void *context) { switch (interrupt_status & (1 << i)) { case SPEED_INT_STATUS: { - if (mdiobb_read_data(port, REG_PHY_CONTROL) & AUTONEG_EN) { - value = (RES_SPEED & mdiobb_read_data(port, REG_PHY_SPEC_STATUS)) ? + if (mdiobb_read_by_paging(port, REG_PHY_CONTROL) & AUTONEG_EN) { + value = (RES_SPEED & mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS)) ? SPEED_100M : SPEED_10M; } else { - value = (SPEED & mdiobb_read_data(port, REG_PHY_CONTROL)) ? + value = (SPEED & mdiobb_read_by_paging(port, REG_PHY_CONTROL)) ? SPEED_100M : SPEED_10M; } eth_Evt = ETH_EVT_SPEED; @@ -98,11 +134,11 @@ static void _ethernet_sw_isr(void *context) { break; case DUPLEX_INT_STATUS: { - if (mdiobb_read_data(port, REG_PHY_CONTROL) & AUTONEG_EN) { - value = (RES_DUPLEX & mdiobb_read_data(port, REG_PHY_SPEC_STATUS)) ? + if (mdiobb_read_by_paging(port, REG_PHY_CONTROL) & AUTONEG_EN) { + value = (RES_DUPLEX & mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS)) ? FULL_DUPLEX : HALF_DUPLEX; } else { - value = (DUPLEX & mdiobb_read_data(port, REG_PHY_CONTROL)) ? + value = (DUPLEX & mdiobb_read_by_paging(port, REG_PHY_CONTROL)) ? FULL_DUPLEX : HALF_DUPLEX; } eth_Evt = ETH_EVT_DUPLEX; @@ -110,42 +146,42 @@ static void _ethernet_sw_isr(void *context) { break; case AUTONEG_COMPLETE_INT_STATUS: { - read_val = mdiobb_read_data(port, REG_PHY_STATUS); + read_val = mdiobb_read_by_paging(port, REG_PHY_STATUS); value = (AUTONEG_DONE & read_val) ? 1 : 0; eth_Evt = ETH_EVT_AUTONEG; } break; case LINK_CHANGE_INT_STATUS: { - read_val = mdiobb_read_data(port, REG_PHY_SPEC_STATUS); + read_val = mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS); value = (RT_LINK & read_val) ? 1 : 0; eth_Evt = ETH_EVT_LINK; } break; case MDI_CROSSOVER_INT_STATUS: { - read_val = mdiobb_read_data(port, REG_PHY_SPEC_STATUS); + read_val = mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS); value = (MDI_CROSSOVER_STATUS & read_val) ? 1 : 0; eth_Evt = ETH_EVT_CROSSOVER; } break; case ENERGY_DET_INT_STATUS: { - read_val = mdiobb_read_data(port, REG_PHY_SPEC_STATUS); + read_val = mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS); value = (SLEEP_MODE & read_val) ? 1 : 0; eth_Evt = ETH_EVT_ENERGY; } break; case POLARITY_INT_STATUS: { - read_val = mdiobb_read_data(port, REG_PHY_SPEC_STATUS); + read_val = mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS); value = (POLARITY & read_val) ? 1 : 0; eth_Evt = ETH_EVT_POLARITY; break; } case JABBER_INT_STATUS: { - read_val = mdiobb_read_data(port, REG_PHY_SPEC_STATUS); + read_val = mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS); value = (JABBER_DET & read_val) ? 1 : 0; eth_Evt = ETH_EVT_JABBER; } @@ -193,11 +229,11 @@ ePostCode eth_sw_init(Eth_cfg *ethCfg) ReturnStatus eth_sw_get_status_speed(uint8_t port, port_speed *speed) { ReturnStatus ret = RETURN_OK; - if (mdiobb_read_data(port, REG_PHY_CONTROL) & AUTONEG_EN) - *speed = (RES_SPEED & mdiobb_read_data(port, REG_PHY_SPEC_STATUS)) ? + if (mdiobb_read_by_paging(port, REG_PHY_CONTROL) & AUTONEG_EN) + *speed = (RES_SPEED & mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS)) ? SPEED_100M : SPEED_10M; else - *speed = (SPEED & mdiobb_read_data(port, REG_PHY_CONTROL)) ? + *speed = (SPEED & mdiobb_read_by_paging(port, REG_PHY_CONTROL)) ? SPEED_100M : SPEED_10M; return ret; } @@ -205,11 +241,11 @@ ReturnStatus eth_sw_get_status_speed(uint8_t port, port_speed *speed) ReturnStatus eth_sw_get_status_duplex(uint8_t port, port_duplex *duplex) { ReturnStatus ret = RETURN_OK; - if (mdiobb_read_data(port, REG_PHY_CONTROL) & AUTONEG_EN) - *duplex = (RES_DUPLEX & mdiobb_read_data(port, REG_PHY_SPEC_STATUS)) ? + if (mdiobb_read_by_paging(port, REG_PHY_CONTROL) & AUTONEG_EN) + *duplex = (RES_DUPLEX & mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS)) ? FULL_DUPLEX : HALF_DUPLEX; else - *duplex = (DUPLEX & mdiobb_read_data(port, REG_PHY_CONTROL)) ? + *duplex = (DUPLEX & mdiobb_read_by_paging(port, REG_PHY_CONTROL)) ? FULL_DUPLEX : HALF_DUPLEX; return ret; } @@ -217,7 +253,7 @@ ReturnStatus eth_sw_get_status_duplex(uint8_t port, port_duplex *duplex) ReturnStatus eth_sw_get_status_auto_neg(uint8_t port, uint8_t *autoneg_on) { ReturnStatus ret = RETURN_OK; - *autoneg_on = (AUTONEG_EN & mdiobb_read_data(port, REG_PHY_CONTROL)) ? + *autoneg_on = (AUTONEG_EN & mdiobb_read_by_paging(port, REG_PHY_CONTROL)) ? 1 : 0; return ret; } @@ -225,7 +261,7 @@ ReturnStatus eth_sw_get_status_auto_neg(uint8_t port, uint8_t *autoneg_on) ReturnStatus eth_sw_get_status_sleep_mode(uint8_t port, uint8_t *sleep_mode_en) { ReturnStatus ret = RETURN_OK; - *sleep_mode_en = (SLEEP_MODE & mdiobb_read_data(port, REG_PHY_SPEC_STATUS)) ? + *sleep_mode_en = (SLEEP_MODE & mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS)) ? 1 : 0; return ret; } @@ -233,7 +269,7 @@ ReturnStatus eth_sw_get_status_sleep_mode(uint8_t port, uint8_t *sleep_mode_en) ReturnStatus eth_sw_get_status_auto_neg_complete(uint8_t port, uint8_t *autoneg_complete) { ReturnStatus ret = RETURN_OK; - *autoneg_complete = (AUTONEG_DONE & mdiobb_read_data(port, REG_PHY_STATUS)) ? + *autoneg_complete = (AUTONEG_DONE & mdiobb_read_by_paging(port, REG_PHY_STATUS)) ? 1 : 0; return ret; } @@ -242,7 +278,7 @@ ReturnStatus eth_sw_get_status_link_up(uint8_t port, uint8_t *link_up) { ReturnStatus ret = RETURN_OK; uint16_t read_val = 0; - read_val = mdiobb_read_data(port, REG_PHY_SPEC_STATUS); + read_val = mdiobb_read_by_paging(port, REG_PHY_SPEC_STATUS); *link_up = (RT_LINK & read_val) ? 1 : 0; return ret; } @@ -257,22 +293,22 @@ ReturnStatus restart_autoneg(uint8_t port) return ret; } -ReturnStatus eth_sw_set_config_speed(uint8_t port, port_duplex speed) +ReturnStatus eth_sw_set_config_speed(uint8_t port, port_speed speed) { ReturnStatus ret = RETURN_OK; uint16_t read_val =0x0000; switch (speed) { case SPEED_10M: - read_val = mdiobb_read_data(port, REG_PHY_CONTROL); + read_val = mdiobb_read_by_paging(port, REG_PHY_CONTROL); CLEAR_BIT((AUTONEG_EN | SPEED), read_val); SET_BIT(SOFT_RESET, read_val); - mdiobb_write_data(port, REG_PHY_CONTROL, read_val); + mdiobb_write_by_paging(port, REG_PHY_CONTROL, read_val); break; case SPEED_100M: - read_val = mdiobb_read_data(port, REG_PHY_CONTROL); + read_val = mdiobb_read_by_paging(port, REG_PHY_CONTROL); CLEAR_BIT(AUTONEG_EN, read_val); SET_BIT((SOFT_RESET | SPEED), read_val); - mdiobb_write_data(port, REG_PHY_CONTROL, read_val); + mdiobb_write_by_paging(port, REG_PHY_CONTROL, read_val); break; case SPEED_AUTONEG: restart_autoneg(port); @@ -290,16 +326,16 @@ ReturnStatus eth_sw_set_config_duplex(uint8_t port, port_duplex duplex) uint16_t read_val =0x0000; switch (duplex) { case SPEED_10M: - read_val = mdiobb_read_data(port, REG_PHY_CONTROL); - CLEAR_BIT((AUTONEG_EN | SPEED), read_val); + read_val = mdiobb_read_by_paging(port, REG_PHY_CONTROL); + CLEAR_BIT((AUTONEG_EN | DUPLEX), read_val); SET_BIT(SOFT_RESET, read_val); - mdiobb_write_data(port, REG_PHY_CONTROL, read_val); + mdiobb_write_by_paging(port, REG_PHY_CONTROL, read_val); break; case SPEED_100M: - read_val = mdiobb_read_data(port, REG_PHY_CONTROL); + read_val = mdiobb_read_by_paging(port, REG_PHY_CONTROL); CLEAR_BIT(AUTONEG_EN, read_val); - SET_BIT((SOFT_RESET | SPEED), read_val); - mdiobb_write_data(port, REG_PHY_CONTROL, read_val); + SET_BIT((SOFT_RESET | DUPLEX), read_val); + mdiobb_write_by_paging(port, REG_PHY_CONTROL, read_val); break; case SPEED_AUTONEG: restart_autoneg(port); @@ -335,7 +371,7 @@ ReturnStatus eth_sw_set_config_sleep_mode_enable(uint8_t port,uint8_t sleep_mode ReturnStatus get_interrupt(uint8_t port) { /* read the register REG_PHY_INTERRUPT_EN */ - return mdiobb_read_data(port, REG_PHY_INTERRUPT_EN); + return mdiobb_read_by_paging(port, REG_PHY_INTERRUPT_EN); } ReturnStatus eth_sw_set_config_interrupt_enable(uint8_t port, uint8_t *interrupt_mask) @@ -387,7 +423,7 @@ ReturnStatus eth_sw_set_config_interrupt_enable(uint8_t port, uint8_t *interrupt return RETURN_NOTOK; } } - mdiobb_write_data(port, REG_PHY_INTERRUPT_EN, write_val); + mdiobb_write_by_paging(port, REG_PHY_INTERRUPT_EN, write_val); return ret; } @@ -399,6 +435,126 @@ ReturnStatus eth_sw_set_config_soft_reset(uint8_t port) return ret; } +ReturnStatus eth_sw_enable_loopback(void *driver, void *params){ + ReturnStatus status = RETURN_OK; + Eth_cfg* s_eth_cfg = (Eth_cfg*)driver; + Eth_LoopBack_Params* s_eth_lpback = (Eth_LoopBack_Params*)params; + switch (s_eth_lpback->loopBackType) + { + case MACLOOPBACK: + status = eth_sw_enable_macloopback(s_eth_cfg->eth_sw_port); + break; + /*TODO: Implementation to be done for Line and External Loopback*/ + case LINELOOPBACK: + case EXTLOOPBACK: + default: + break; + } + return status; +} + +ReturnStatus eth_sw_disable_loopback(void *driver, void *params){ + ReturnStatus status = RETURN_OK; + Eth_cfg* s_eth_cfg = (Eth_cfg*)driver; + Eth_LoopBack_Params* s_eth_lpback = (Eth_LoopBack_Params*)params; + switch (s_eth_lpback->loopBackType) + { + case MACLOOPBACK: + status = eth_sw_disable_macloopback(s_eth_cfg->eth_sw_port); + break; + /*TODO: Implementation to be done for Line and External Loopback*/ + case LINELOOPBACK: + case EXTLOOPBACK: + default: + break; + } + return status; +} + +ReturnStatus eth_sw_enable_macloopback(uint8_t port) +{ + ReturnStatus ret = RETURN_OK; + /*For MacLoopback, autonegotiation must be disabled*/ + mdiobb_clear_bits(port, REG_PHY_CONTROL, AUTONEG_EN); + /*Set Loopback bit in PHY control register*/ + mdiobb_set_bits(port, REG_PHY_CONTROL, LOOPBACK_EN); + return ret; +} + +ReturnStatus eth_sw_disable_macloopback(uint8_t port) +{ + ReturnStatus ret = RETURN_OK; + mdiobb_clear_bits(port, REG_PHY_CONTROL, LOOPBACK_EN); + return ret; +} + +ReturnStatus eth_sw_enable_packet_gen(void *driver, void *params) +{ + ReturnStatus ret = RETURN_OK; + Eth_cfg* s_eth_cfg = (Eth_cfg*)driver; + Eth_PacketGen_Params* s_eth_packetParams = (Eth_PacketGen_Params*)params; + /*Packet generator params such as packet length, payload type, frame count etc are set in REG_C45_PACKET_GEN*/ + mdiobb_write_by_paging_c45(s_eth_cfg->eth_sw_port, REG_C45_PACKET_GEN, s_eth_packetParams->reg_value); + return ret; +} + +ReturnStatus eth_sw_disable_packet_gen(void *driver) +{ + ReturnStatus ret = RETURN_OK; + Eth_cfg* s_eth_cfg = (Eth_cfg*)driver; + mdiobb_clear_bits_C45(s_eth_cfg->eth_sw_port, REG_C45_PACKET_GEN, PACKET_GEN_EN); + return ret; +} + +char *convString(int i, char *result) +{ + sprintf(result,"%d",i); + return result; +} + +ReturnStatus eth_sw_config_tiva_client(void *driver, void *params) { + ReturnStatus ret = RETURN_OK; + int count = 0; + Eth_cfg* s_eth_cfg = (Eth_cfg*)driver; + Eth_TcpClient_Params *s_eth_tcpParams = (Eth_TcpClient_Params*)params; + + Task_Handle taskHandle_client; + Task_Params taskParams; + Error_Block eb; + + /* Make sure Error_Block is initialized */ + Error_init(&eb); + + /*Convert 4 bytes received from host to a proper Ipv4 address*/ + memset(&convStr, '\0', IPSTRING_LENGTH); + do { + convString(s_eth_tcpParams->ipAddress[count], tempBuf); + strcat(convStr, tempBuf); + if((MAX - 1) != count) { + strcat(convStr, "."); + } + count++; + } while (count < MAX); + destIp = convStr; + numRepeat = s_eth_tcpParams->repeat; + /* + * Create the Task that farms outgoing TCP connection. + * arg0 will be the port that this task sends the test data to. + */ + Task_Params_init(&taskParams); + taskParams.stack = ethTivaClientTaskStack; + taskParams.stackSize = TCPHANDLERSTACK; + taskParams.priority = ETHTIVACLEINT_TASK_PRIORITY; + taskParams.arg0 = s_eth_tcpParams->tcpPort; + + taskHandle_client = Task_create((Task_FuncPtr) tcpHandler_client, &taskParams, &eb); + if (taskHandle_client == NULL) { + System_printf("Failed to create taskHandle_client Task\n"); + } + System_flush(); + return ret; +} + ReturnStatus eth_sw_set_config_restart_neg(uint8_t port) { ReturnStatus ret = RETURN_OK; @@ -411,10 +567,10 @@ ReturnStatus eth_sw_set_config_restart_neg(uint8_t port) ReturnStatus eth_sw_get_config_speed(uint8_t port, port_speed* speed) { ReturnStatus ret = RETURN_OK; - if (AUTONEG_EN & mdiobb_read_data(port, REG_PHY_CONTROL)) + if (AUTONEG_EN & mdiobb_read_by_paging(port, REG_PHY_CONTROL)) *speed = SPEED_AUTONEG; else - *speed = SPEED & mdiobb_read_data(port, REG_PHY_CONTROL) ? + *speed = SPEED & mdiobb_read_by_paging(port, REG_PHY_CONTROL) ? SPEED_100M : SPEED_10M; return ret; } @@ -422,10 +578,10 @@ ReturnStatus eth_sw_get_config_speed(uint8_t port, port_speed* speed) ReturnStatus eth_sw_get_config_duplex(uint8_t port, port_duplex* duplex) { ReturnStatus ret = RETURN_OK; - if (AUTONEG_EN & mdiobb_read_data(port, REG_PHY_CONTROL)) + if (AUTONEG_EN & mdiobb_read_by_paging(port, REG_PHY_CONTROL)) *duplex = DUPLEX_AUTONEG; else - *duplex = (DUPLEX & mdiobb_read_data(port, REG_PHY_CONTROL)) ? + *duplex = (DUPLEX & mdiobb_read_by_paging(port, REG_PHY_CONTROL)) ? FULL_DUPLEX : HALF_DUPLEX; return ret; } @@ -433,7 +589,7 @@ ReturnStatus eth_sw_get_config_duplex(uint8_t port, port_duplex* duplex) ReturnStatus eth_sw_get_config_power_down(uint8_t port, uint8_t* power_dwn) { ReturnStatus ret = RETURN_OK; - *power_dwn = (PWR_DOWN & mdiobb_read_data(port-1, REG_PHY_CONTROL)) ? + *power_dwn = (PWR_DOWN & mdiobb_read_by_paging(port, REG_PHY_CONTROL)) ? 1 : 0; return ret; } @@ -441,7 +597,7 @@ ReturnStatus eth_sw_get_config_power_down(uint8_t port, uint8_t* power_dwn) ReturnStatus eth_sw_get_config_sleep_mode(uint8_t port, uint8_t* sleep_mode) { ReturnStatus ret = RETURN_OK; - *sleep_mode = (ENERGY_DET & mdiobb_read_data(port, REG_PHY_SPEC_CONTROL)) ? + *sleep_mode = (ENERGY_DET & mdiobb_read_by_paging(port, REG_PHY_SPEC_CONTROL)) ? 1 : 0; return ret; } @@ -450,6 +606,6 @@ ReturnStatus eth_sw_get_config_interrupt_enable(uint8_t port, uint8_t* interrupt { ReturnStatus ret = RETURN_OK; /* read the register REG_PHY_INTERRUPT_EN */ - *interrupt_enb = mdiobb_read_data(port, REG_PHY_INTERRUPT_EN); + *interrupt_enb = mdiobb_read_by_paging(port, REG_PHY_INTERRUPT_EN); return ret; } diff --git a/firmware/ec/src/Devices/g510.c b/firmware/ec/src/Devices/g510.c new file mode 100644 index 0000000000..71fa7fbafc --- /dev/null +++ b/firmware/ec/src/Devices/g510.c @@ -0,0 +1,464 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "devices/uart/gsm.h" +#include "helpers/array.h" +#include "helpers/math.h" +#include "helpers/uart.h" +#include "inc/common/global_header.h" +#include "inc/subsystem/testModule/testModule.h" +#include "platform/oc-sdr/schema/schema.h" +#include "registry/SSRegistry.h" + +#include +#include +#include + +#include +#include + +/* TODO: move to helper? */ +#define STATIC_STRLEN(s) (ARRAY_SIZE(s) - 1) + +#define TESTMOD_TASK_PRIORITY 2 +#define TESTMOD_TASK_STACK_SIZE 2048 + +#define G510_WRITE_TIMEOUT 500 +#define G510_READ_TIMEOUT 5000 +/* G510 enable line is active-low */ +#define GSM_EN_ASSERT (0) +#define GSM_EN_DEASSERT (1) + +#define GSM_PWR_EN_ASSERT (1) +#define GSM_PWR_EN_DEASSERT (0) + +#define GSM_SHUTDOWN_TIME 200 +#define GSM_COOLDOWN_TIME 50 + +typedef enum { + TWOG_SIM_CALLSTATE_CHANGE = 0, + TWOG_SIM_INCOMING_MSG = 1, + TWOG_SIM_ALERT_PARAMS_MAX /* Limiter */ +} eTEST_MOD_ALERTParam; + +typedef enum { + TWOG_CALL_EVT_RING = 0, + TWOG_CALL_EVT_CALL_END = 1, +} eTEST_MODE_CallEvent; + +typedef enum { + TWOG_IMEI = 0, + TWOG_IMSI = 1, + TWOG_GETMFG = 2, + TWOG_GETMODEL = 3, + TWOG_RSSI = 4, + TWOG_BER = 5, + TWOG_REGSTATUS = 6, + TWOG_NETWORK_OP_INFO = 7, + TWOG_CELLID = 8, + TWOG_BSIC = 9, + TWOG_LASTERR = 10, + TWOG_PARAM_MAX /* Limiter */ +} eTestModule_StatusParam; + +static UART_Handle uartGsm; +static GSM_Handle s_hGsm = NULL; + +static Semaphore_Handle sem_simReady; +static Semaphore_Handle sem_sms; + +static Char testmodTaskStack[TESTMOD_TASK_STACK_SIZE]; + +static volatile int sms_idx = -1; + +static void simReady_cb(void *context) +{ + Semaphore_post(sem_simReady); +} + +static void cmti_cb(const GsmCmtiInfo *info, void *context) +{ + sms_idx = info->index; + Semaphore_post(sem_sms); +} + +static void call_state_cb(const GsmClccInfo *info, void *context) +{ + LOGGER("CLCC %u\n", info->call_state); + switch (info->call_state) { + case GSM_CALL_STATE_INCOMING: { + eTEST_MODE_CallEvent callState = TWOG_CALL_EVT_RING; + OCMP_GenerateAlert(context, TWOG_SIM_CALLSTATE_CHANGE, &callState); + break; + } + case GSM_CALL_STATE_RELEASED: { + eTEST_MODE_CallEvent callState = TWOG_CALL_EVT_CALL_END; + OCMP_GenerateAlert(context, TWOG_SIM_CALLSTATE_CHANGE, &callState); + break; + } + } +} + +/* Configures the various IO pins associated with this subsystem */ +static bool configure_io(TestMod_Cfg *testmod_cfg) { + //const TestMod_Cfg *testmod_cfg = (TestMod_Cfg *)testModuleCfg; + G510_Cfg *cfg = &testmod_cfg->g510_cfg; + + OcGpio_configure(&cfg->pin_sim_present, OCGPIO_CFG_INPUT); + OcGpio_configure(&cfg->pin_enable, OCGPIO_CFG_OUTPUT | + OCGPIO_CFG_OUT_LOW); + OcGpio_configure(&cfg->pin_pwr_en, OCGPIO_CFG_OUTPUT | + OCGPIO_CFG_OUT_LOW); + + return true; +} + +static UART_Handle open_comm(TestMod_Cfg * testmod_cfg) +{ + //const TestMod_Cfg *testmod_cfg = (TestMod_Cfg *)testModuleCfg; + + // Open GSM UART + UART_Params uartParams; + UART_Params_init(&uartParams); + uartParams.writeDataMode = UART_DATA_BINARY; + uartParams.readDataMode = UART_DATA_BINARY; + uartParams.readReturnMode = UART_RETURN_FULL; + uartParams.readEcho = UART_ECHO_OFF; + uartParams.baudRate = 115200; + uartParams.dataLength = UART_LEN_8; + uartParams.parityType = UART_PAR_NONE; + uartParams.stopBits = UART_STOP_ONE; + uartParams.writeTimeout = G510_WRITE_TIMEOUT; + uartParams.readTimeout = G510_READ_TIMEOUT; + return UART_open(testmod_cfg->g510_cfg.uart, &uartParams); +} + +static bool g510_reset(TestMod_Cfg * testmod_cfg) +{ + //const TestMod_Cfg *testmod_cfg = (TestMod_Cfg *)testModuleCfg; + const G510_Cfg *cfg = &testmod_cfg->g510_cfg; + + /* Ensure the enable line is high (deasserted) so the module doesn't + * restart itself */ + OcGpio_write(&cfg->pin_enable, GSM_EN_DEASSERT); + + /* Void any data already in modem, then send reset command */ + static const char CTRL_X = 0x18; + static const char resetCmd[] = "AT+CFUN=0\r\n"; + UART_write(uartGsm, &CTRL_X, sizeof(CTRL_X)); + UART_write(uartGsm, resetCmd, STATIC_STRLEN(resetCmd)); + + /* Wait for module to catch up */ + Task_sleep(GSM_SHUTDOWN_TIME); + + /* Kill power to be sure */ + OcGpio_write(&cfg->pin_pwr_en, GSM_PWR_EN_DEASSERT); + UART_flush(uartGsm); + Task_sleep(GSM_COOLDOWN_TIME); + + /* Enable the module. We can keep the line asserted - the module requires an + * edge before it will look at this line again */ + OcGpio_write(&cfg->pin_enable, GSM_EN_ASSERT); + OcGpio_write(&cfg->pin_pwr_en, GSM_PWR_EN_ASSERT); + + /* Wait for the module to be ready */ + const char bootStr[] = "AT command ready\r\n"; + char buf[STATIC_STRLEN(bootStr)]; + + if (UART_read(uartGsm, buf, sizeof(buf)) < sizeof(buf)) { + LOGGER_ERROR("Timeout waiting for G510\n"); + return false; + } + + if (memcmp(buf, bootStr, sizeof(buf)) != 0) { + LOGGER_ERROR("Unrecognized G510 boot str: %.*s\n", (int)sizeof(buf), + buf); + return false; + } + + return true; +} + + +ReturnStatus g510_init(TestMod_Cfg* testModuleCfg, const void *alert_token) +{ + if (!configure_io(testModuleCfg)) { + return RETURN_NOTOK; + } + + uartGsm = open_comm(testModuleCfg); + if (!uartGsm) { + return RETURN_NOTOK; + } + + LOGGER("Resetting GSM module\n"); + if (!g510_reset(testModuleCfg)) { + return RETURN_NOTOK; + } + Task_sleep(100); // FIXME: this lets things catch up when using the emulator + LOGGER("GSM module ready\n"); + + // Configure SBD module + const GsmCallbackList cbList = { + .creg = NULL, + .simReady = simReady_cb, + .cmti = cmti_cb, + .ring = NULL, /* We're using clcc, so ignore RING alerts */ + .clcc = call_state_cb, + }; + + GsmCgsnInfo cgsnInfo; + s_hGsm = GSM_init(uartGsm, &cbList, (void *)alert_token); + + if (!s_hGsm) { + return RETURN_NOTOK; + } + + GSM_cgsn(s_hGsm, &cgsnInfo); + LOGGER("IMEI: %s\n", cgsnInfo.imei); + + // TODO: call cfun to ensure radio is active (this setting is sticky) + + GSM_creg(s_hGsm, GSM_CREG_STATUS_ENABLE_LOC); + + LOGGER("Test module ready\n"); + + return RETURN_OK; +} + +static void testModule_task(UArg a0, UArg a1) +{ + const void *alert_token = (const void *)a0; + + /* Wait for our SIM card to be ready and then finish init */ + Semaphore_pend(sem_simReady, BIOS_WAIT_FOREVER); + LOGGER("TESTMOD::SIM Ready\n"); + + uint64_t imsi; + GSM_cimi(s_hGsm, &imsi); + /* TODO: hack because System_printf is crappy and doesn't support %llu */ + char imsiStr[16]; + snprintf(imsiStr, sizeof(imsiStr), "%"PRIu64, imsi); + LOGGER("IMSI: %s\n", imsiStr); + + /* NOTE: if the message storage fills up, the G510 will just + * reject any SMS from the network, so we need to make sure + * it's clear + */ + GSM_cmgd(s_hGsm, 1, GSM_CMGD_DELETE_ALL); + + GSM_clccSet(s_hGsm, true); /* Enable clcc (call state) msg */ + + /* Finish device configuration */ + if (!GSM_cnmi(s_hGsm, 2, 1, 0, 0 , 0) || /* enable sms arrival notif */ + !GSM_cmgf(s_hGsm, GSM_MSG_FMT_TEXT) || /* set to text mode */ + !GSM_csmp(s_hGsm, 17, 167, 0, 0) || /* text mode parameters */ + !GSM_csdh(s_hGsm, true)) { /* display extra info for cgmr */ + s_hGsm = NULL; /* TODO: proper teardown of handle */ + } + + while (Semaphore_pend(sem_sms, BIOS_WAIT_FOREVER)) { + if (sms_idx >= 0) { + GSM_cnma(s_hGsm); + static char sms[160]; + if (GSM_cmgr(s_hGsm, sms_idx, sms, NULL)) { + LOGGER("SMS: %.*s\n", 50, sms); // System_printf has a limited buffer + OCMP_GenerateAlert(alert_token, TWOG_SIM_INCOMING_MSG, sms); + } else { + LOGGER_ERROR("TESTMOD:Failed to read SMS\n"); + } + + GSM_cmgd(s_hGsm, sms_idx, GSM_CMGD_DELETE_AT_INDEX); + sms_idx = -1; + + //if (GSM_cmgs(s_hGsm, "29913", "Hello from GSM :)") < 0) { + // LOGGER_ERROR("TESTMOD:Error sending SMS\n"); + //} + } + } +} + +ePostCode g510_task_init(void *driver, const void **config, + const void *alert_token) +{ + /* TODO: there's probably a better way to wait on the sim card */ + sem_simReady = Semaphore_create(0, NULL, NULL); + sem_sms = Semaphore_create(0, NULL, NULL); + if (!sem_simReady || !sem_sms) { + LOGGER_ERROR("TESTMOD:ERROR:: Failed creating semaphores\n"); + Semaphore_delete(&sem_simReady); + Semaphore_delete(&sem_sms); + return POST_DEV_CFG_FAIL; + } + + /* TODO: it's less than ideal to have a dedicated task for this */ + /* Create a task */ + Task_Params taskParams; + Task_Params_init(&taskParams); + taskParams.stack = testmodTaskStack; + taskParams.stackSize = TESTMOD_TASK_STACK_SIZE; + taskParams.priority = TESTMOD_TASK_PRIORITY; + taskParams.arg0 = (intptr_t)alert_token; + Task_Handle task = Task_create(testModule_task, &taskParams, NULL); + if (!task) { + LOGGER("TESTMOD::FATAL: Unable to start G510 task\n"); + Semaphore_delete(&sem_simReady); + Semaphore_delete(&sem_sms); + return POST_DEV_CFG_FAIL; + } + + if (g510_init(driver,alert_token) != RETURN_OK) { + return POST_DEV_CFG_FAIL; + } + return POST_DEV_CFG_DONE; +} + +bool g510_get_imei( TestMod_2G_Status_Data *p2gStatusData) +{ + GsmCgsnInfo cgsnInfo; + if (!GSM_cgsn(s_hGsm, &cgsnInfo)) { + return false; + } + p2gStatusData->imei = strtoull(cgsnInfo.imei, NULL, 10); + return true; +} + +bool g510_get_imsi( TestMod_2G_Status_Data *p2gStatusData) +{ + uint64_t imsi; + if (!GSM_cimi(s_hGsm, &imsi)) { + return false; + } + p2gStatusData->imsi = imsi; + return true; +} + +bool g510_get_mfg( TestMod_2G_Status_Data *p2gStatusData) +{ + GsmCgmiInfo cgmiInfo; + if (!GSM_cgmi(s_hGsm, &cgmiInfo)) { + return false; + } + /* TODO: idea - make safe strncpy that always terminates str */ + strncpy(p2gStatusData->mfg, cgmiInfo.mfgId, + sizeof(p2gStatusData->mfg)); + return true; +} + +bool g510_get_model( TestMod_2G_Status_Data *p2gStatusData) +{ + GsmCgmmInfo cgmmInfo; + if (!GSM_cgmm(s_hGsm, &cgmmInfo)) { + return false; + } + strncpy(p2gStatusData->model, cgmmInfo.model, + sizeof(p2gStatusData->model)); + return true; +} + +bool g510_get_rssi( TestMod_2G_Status_Data *p2gStatusData) +{ + GsmCsqInfo csqInfo; + if (!GSM_csq(s_hGsm, &csqInfo)) { + return false; + } + p2gStatusData->rssi = csqInfo.rssi; + return true; +} + +bool g510_get_ber( TestMod_2G_Status_Data *p2gStatusData) +{ + GsmCsqInfo csqInfo; + if (!GSM_csq(s_hGsm, &csqInfo)) { + return false; + } + p2gStatusData->ber = csqInfo.ber; + return true; +} + +bool g510_get_regStatus( TestMod_2G_Status_Data *p2gStatusData) +{ + GsmCregInfo cregInfo; + if (!GSM_cregRead(s_hGsm, &cregInfo)) { + return false; + } + p2gStatusData->regStat = cregInfo.stat; + return true; +} + +bool g510_get_cellId( TestMod_2G_Status_Data *p2gStatusData) +{ + /* NOTE: requires CREG mode 2 (unsolicited + location info) */ + GsmCregInfo cregInfo; + if (!GSM_cregRead(s_hGsm, &cregInfo)) { + return false; + } + p2gStatusData->cid = cregInfo.cid; + return true; +} + +/* Command handling */ +bool TestMod_cmdEnable(void *driver, void *params) +{ + LOGGER("TESTMOD 2G Enable\n"); + return GSM_cfun(s_hGsm, GSM_CFUN_FULL); +} + +bool TestMod_cmdDisable(void *driver, void *params) +{ + LOGGER("TESTMOD 2G Disable\n"); + return GSM_cfun(s_hGsm, GSM_CFUN_AIRPLANE); +} + +bool TestMod_cmdDisconnect(void *driver, void *params) +{ + LOGGER("TESTMOD 2G Disconnect\n"); + return GSM_cops(s_hGsm, GSM_COPS_MODE_DEREG, GSM_COPS_FMT_NUMERIC, ""); +} + +bool TestMod_cmdConnect(void *driver, void *params) +{ + LOGGER("TESTMOD 2G Connect\n"); + return GSM_cops(s_hGsm, GSM_COPS_MODE_AUTO, GSM_COPS_FMT_NUMERIC, ""); +} + +bool TestMod_cmdSendSms(void *driver, void *params) +{ + LOGGER("TESTMOD 2G SMS\n"); + /* TODO: we assume number is null terminated, should have check */ + TestModule_sms *sms = params; + return GSM_cmgs(s_hGsm, sms->number, sms->msg); +} + +bool TestMod_cmdDial(void *driver, void *params) +{ + /* TODO: we assume number is null terminated, should have check */ + char *number = params; + /* TODO: watch for call state change to determine if successful */ + LOGGER("TESTMOD 2G Dial\n"); + return GSM_d(s_hGsm, number); +} + +bool TestMod_cmdAnswer(void *driver, void *params) +{ + LOGGER("TESTMOD 2G answer\n"); + return GSM_a(s_hGsm); +} + +bool TestMod_cmdHangup(void *driver, void *params) +{ + LOGGER("TESTMOD 2G hangup\n"); + return GSM_h(s_hGsm); +} + +bool TestMod_cmdReset(void *driver, void *params) +{ + LOGGER("TESTMOD Reset\n"); + return false; /* Not yet implemented */ +} + diff --git a/firmware/ec/src/Devices/i2c/threaded_int.c b/firmware/ec/src/Devices/i2c/threaded_int.c index 1d2de0abfa..c5ce2746de 100644 --- a/firmware/ec/src/Devices/i2c/threaded_int.c +++ b/firmware/ec/src/Devices/i2c/threaded_int.c @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ + #include "threaded_int.h" #include "inc/common/global_header.h" diff --git a/firmware/ec/src/Devices/i2c/threaded_int.h b/firmware/ec/src/Devices/i2c/threaded_int.h index a4f271fc55..891b77587e 100644 --- a/firmware/ec/src/Devices/i2c/threaded_int.h +++ b/firmware/ec/src/Devices/i2c/threaded_int.h @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ + #pragma once #ifndef DEVICES_I2C_THREADED_INT_H_ diff --git a/firmware/ec/src/Devices/i2cbus.c b/firmware/ec/src/Devices/i2cbus.c index ea3f68797b..96b5e5b9be 100644 --- a/firmware/ec/src/Devices/i2cbus.c +++ b/firmware/ec/src/Devices/i2cbus.c @@ -10,11 +10,10 @@ //***************************************************************************** // HEADER FILES //***************************************************************************** -#include "inc/common/i2cbus.h" - #include "Board.h" #include "helpers/array.h" #include "inc/common/global_header.h" +#include "inc/common/i2cbus.h" /* TI-RTOS driver files */ #include @@ -150,4 +149,3 @@ ReturnStatus i2c_reg_read( I2C_Handle i2cHandle, } return status; } - diff --git a/firmware/ec/src/Devices/ina226.c b/firmware/ec/src/Devices/ina226.c index 533fb0e6d9..c1b8f6463d 100644 --- a/firmware/ec/src/Devices/ina226.c +++ b/firmware/ec/src/Devices/ina226.c @@ -11,11 +11,11 @@ // HEADER FILES //***************************************************************************** #include "inc/devices/ina226.h" + #include "devices/i2c/threaded_int.h" +#include "inc/common/byteorder.h" #include "inc/common/global_header.h" #include "helpers/memory.h" -#include "inc/common/byteorder.h" - /***************************************************************************** * REGISTER DEFINITIONS @@ -558,7 +558,7 @@ ReturnStatus ina226_enableAlert(INA226_Dev *dev, INA226_Event evt) /***************************************************************************** *****************************************************************************/ -ePostCode ina226_probe(INA226_Dev *dev) +ePostCode ina226_probe(INA226_Dev *dev, POSTData *postData) { uint16_t devId = 0x00; uint16_t manfId = 0x0000; @@ -575,6 +575,6 @@ ePostCode ina226_probe(INA226_Dev *dev) if (manfId != INA226_MANFACTURE_ID) { return POST_DEV_ID_MISMATCH; } - + post_update_POSTData(postData, dev->cfg.dev.bus, dev->cfg.dev.slave_addr,manfId, devId); return POST_DEV_FOUND; } diff --git a/firmware/ec/src/Devices/led.c b/firmware/ec/src/Devices/led.c index 5604d06c3c..62be616e2d 100644 --- a/firmware/ec/src/Devices/led.c +++ b/firmware/ec/src/Devices/led.c @@ -11,8 +11,9 @@ // HEADER FILES //***************************************************************************** #include "inc/devices/led.h" -#include "inc/common/global_header.h" +#include "common/inc/global/post_frame.h" +#include "inc/common/global_header.h" #include "inc/subsystem/hci/hci.h" #include @@ -24,8 +25,6 @@ /***************************************************************************** * CONSTANTS DEFINITIONS *****************************************************************************/ -extern void *sys_config[]; -#define HCI ((Hci_Cfg *)sys_config[OC_SS_HCI]) /* List of LEDS on the LED board. ---------------------------------------------------------- @@ -175,16 +174,16 @@ static const hciLedData ledData[HCI_LED_TOTAL_NOS] = { ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus hci_led_turnon_green(void) +ReturnStatus hci_led_turnon_green(const HciLedCfg *driver) { ReturnStatus status = RETURN_OK; /* Turn On Left side Green LEDs */ - status = ioexp_led_set_data(&HCI->led.sx1509_dev[HCI_LED_DRIVER_LEFT], + status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_LEFT], SX1509_REG_AB, 0x55, 0x55); if (status == RETURN_OK) { /* Turn On Right side Green LEDs */ - status = ioexp_led_set_data(&HCI->led.sx1509_dev[HCI_LED_DRIVER_RIGHT], + status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_RIGHT], SX1509_REG_AB, 0x55, 0x55); } return status; @@ -200,16 +199,16 @@ ReturnStatus hci_led_turnon_green(void) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus hci_led_turnon_red(void) +ReturnStatus hci_led_turnon_red(const HciLedCfg *driver) { ReturnStatus status = RETURN_OK; /* Turn On Left side Red LEDs */ - status = ioexp_led_set_data(&HCI->led.sx1509_dev[HCI_LED_DRIVER_LEFT], + status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_LEFT], SX1509_REG_AB, 0xAA, 0xAA); if (status == RETURN_OK) { /* Turn On Right side Red LEDs */ - status = ioexp_led_set_data(&HCI->led.sx1509_dev[HCI_LED_DRIVER_RIGHT], + status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_RIGHT], SX1509_REG_AB, 0xAA, 0xAA); } return status; @@ -225,16 +224,16 @@ ReturnStatus hci_led_turnon_red(void) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus hci_led_turnoff_all(void) +ReturnStatus hci_led_turnoff_all(const HciLedCfg *driver) { ReturnStatus status = RETURN_OK; /* Turn Off Left side LEDs */ - status = ioexp_led_set_data(&HCI->led.sx1509_dev[HCI_LED_DRIVER_LEFT], + status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_LEFT], SX1509_REG_AB, LED_OFF, LED_OFF); if (status == RETURN_OK) { /* Turn Off Right side LEDs */ - status = ioexp_led_set_data(&HCI->led.sx1509_dev[HCI_LED_DRIVER_RIGHT], + status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_RIGHT], SX1509_REG_AB, LED_OFF, LED_OFF); } return status; @@ -281,17 +280,17 @@ static ReturnStatus hci_led_configure_sx1509_onofftime(const I2C_Dev *ioexpDev) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -static ReturnStatus hci_led_configure_onofftime(void) +static ReturnStatus hci_led_configure_onofftime(const HciLedCfg *driver) { ReturnStatus status = RETURN_OK; /* Configure LED driver parameters(RegTOn, RegOff) for Left side LEDs */ status = hci_led_configure_sx1509_onofftime( - &HCI->led.sx1509_dev[HCI_LED_DRIVER_LEFT]); + &driver->sx1509_dev[HCI_LED_DRIVER_LEFT]); if (status == RETURN_OK) { /* Configure LED driver parameters(RegTOn, RegOff) for Right side LEDs */ hci_led_configure_sx1509_onofftime( - &HCI->led.sx1509_dev[HCI_LED_DRIVER_RIGHT]); + &driver->sx1509_dev[HCI_LED_DRIVER_RIGHT]); } return status; } @@ -307,28 +306,28 @@ static ReturnStatus hci_led_configure_onofftime(void) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus hci_led_system_boot(void) +ReturnStatus hci_led_system_boot(const HciLedCfg *driver) { ReturnStatus status = RETURN_OK; uint8_t index = 0; uint8_t regValue = 0; /* Turn off all LEDs */ - status = hci_led_turnoff_all(); + status = hci_led_turnoff_all(driver); if (status != RETURN_OK) { return status; } /* Turn on the LEDs one by one from Left to Right of LED Board */ for (index = 0; index < HCI_LED_TOTAL_NOS; index++) { status = ioexp_led_get_data( - &HCI->led.sx1509_dev[ledData[index].ioexpDev], + &driver->sx1509_dev[ledData[index].ioexpDev], ledData[index].ledReg, ®Value); regValue &= ledData[index].ledGreen; status = ioexp_led_set_data( - &HCI->led.sx1509_dev[ledData[index].ioexpDev], + &driver->sx1509_dev[ledData[index].ioexpDev], ledData[index].ledReg, regValue, 0); if (status != RETURN_OK) { @@ -351,24 +350,24 @@ ReturnStatus hci_led_system_boot(void) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus hci_led_system_running(void) +ReturnStatus hci_led_system_running(const HciLedCfg *driver) { ReturnStatus status = RETURN_OK; /* Turn off all LEDs */ - status = hci_led_turnoff_all(); + status = hci_led_turnoff_all(driver); if (status != RETURN_OK) { return status; } /* Configure on and off time of LED GPIO pins */ - status = hci_led_configure_onofftime(); + status = hci_led_configure_onofftime(driver); if (status != RETURN_OK) { return status; } /* Turn on all the green LEDS */ - status = hci_led_turnon_green(); + status = hci_led_turnon_green(driver); return status; } @@ -384,24 +383,24 @@ ReturnStatus hci_led_system_running(void) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus hci_led_system_failure(void) +ReturnStatus hci_led_system_failure(const HciLedCfg *driver) { ReturnStatus status = RETURN_OK; /* Turn off all LEDs */ - status = hci_led_turnoff_all(); + status = hci_led_turnoff_all(driver); if (status != RETURN_OK) { return status; } /* Configure on and off time of LED GPIO pins */ - status = hci_led_configure_onofftime(); + status = hci_led_configure_onofftime(driver); if (status != RETURN_OK) { return status; } /* Turn on all the Red LEDS */ - status = hci_led_turnon_red(); + status = hci_led_turnon_red(driver); return status; } @@ -417,12 +416,12 @@ ReturnStatus hci_led_system_failure(void) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus hci_led_radio_failure(void) +ReturnStatus hci_led_radio_failure(const HciLedCfg *driver) { ReturnStatus status = RETURN_OK; /* Turn off all LEDs */ - status = hci_led_turnoff_all(); + status = hci_led_turnoff_all(driver); if (status == RETURN_OK) { /* Turn On Left side Red LEDs */ status = ioexp_led_set_data(HCI_LED_DRIVER_LEFT, SX1509_REG_AB, 0xAA, 0xAA); @@ -442,15 +441,15 @@ ReturnStatus hci_led_radio_failure(void) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus hci_led_backhaul_failure(void) +ReturnStatus hci_led_backhaul_failure(const HciLedCfg *driver) { ReturnStatus status = RETURN_OK; /* Turn off all LEDs */ - status = hci_led_turnoff_all(); + status = hci_led_turnoff_all(driver); if (status == RETURN_OK) { /* Turn On Right side Red LEDs */ - status = ioexp_led_set_data(&HCI->led.sx1509_dev[HCI_LED_DRIVER_RIGHT], + status = ioexp_led_set_data(&driver->sx1509_dev[HCI_LED_DRIVER_RIGHT], SX1509_REG_AB, 0xAA, 0xAA); } return status; @@ -467,7 +466,7 @@ ReturnStatus hci_led_backhaul_failure(void) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus led_init(void) +ReturnStatus led_init(const HciLedCfg *driver) { ReturnStatus status = RETURN_OK; uint8_t index; @@ -487,30 +486,30 @@ ReturnStatus led_init(void) /* Initilaize Left and Right LED driver SX1509 to turn on LED */ for (index = 0; index < HCI_LED_DRIVER_COUNT; index++) { DEBUG("HCILED:INFO:: Initilaizing LED driver SX1509 0x%x.\n",\ - HCI->led.sx1509_dev[index].slave_addr); + driver->sx1509_dev[index].slave_addr); /* Do software reset for LED driver */ - status = ioexp_led_software_reset(&HCI->led.sx1509_dev[index]); + status = ioexp_led_software_reset(&driver->sx1509_dev[index]); if (status != RETURN_OK) { return status; } /* Disable input buffer (RegInputDisable) */ - status = ioexp_led_config_inputbuffer(&HCI->led.sx1509_dev[index], + status = ioexp_led_config_inputbuffer(&driver->sx1509_dev[index], SX1509_REG_AB, 0xFF, 0xFF); if (status != RETURN_OK) { return status; } /* Disable pull-up (RegPullUp) */ - status = ioexp_led_config_pullup(&HCI->led.sx1509_dev[index], + status = ioexp_led_config_pullup(&driver->sx1509_dev[index], SX1509_REG_AB, 0x00, 0x00); if (status != RETURN_OK) { return status; } /* Enable open drain (RegOpenDrain) */ - status = ioexp_led_config_opendrain(&HCI->led.sx1509_dev[index], + status = ioexp_led_config_opendrain(&driver->sx1509_dev[index], SX1509_REG_AB, 0xFF, 0xFF); if (status != RETURN_OK) { return status; @@ -518,14 +517,14 @@ ReturnStatus led_init(void) /* Set direction to output (RegDir) – * by default RegData is set high => LED OFF */ - status = ioexp_led_config_data_direction(&HCI->led.sx1509_dev[index], + status = ioexp_led_config_data_direction(&driver->sx1509_dev[index], SX1509_REG_AB, 0x00, 0x00); if (status != RETURN_OK) { return status; } /* Configure internal clock oscillator frequency */ - status = ioexp_led_config_clock(&HCI->led.sx1509_dev[index], + status = ioexp_led_config_clock(&driver->sx1509_dev[index], SX1509_INTERNAL_CLOCK_2MHZ, SX1509_CLOCK_OSC_IN); if (status != RETURN_OK) { @@ -533,54 +532,59 @@ ReturnStatus led_init(void) } /* Configure LED driver clock and mode if relevant (RegMisc) */ - status = ioexp_led_config_misc(&HCI->led.sx1509_dev[index], + status = ioexp_led_config_misc(&driver->sx1509_dev[index], REG_MISC_VALUE); if (status != RETURN_OK) { return status; } /* Enable LED driver operation (RegLEDDriverEnable) */ - status = ioexp_led_enable_leddriver(&HCI->led.sx1509_dev[index], + status = ioexp_led_enable_leddriver(&driver->sx1509_dev[index], SX1509_REG_AB, 0xFF, 0xFF); if (status != RETURN_OK) { return status; } DEBUG("HCILED:INFO:: LED driver SX1509 0x%x is Initialized.\n", - HCI->led.sx1509_dev[index].slave_addr); + driver->sx1509_dev[index].slave_addr); } return status; } +void led_configure(HciLedCfg* driver) { + /* Initialize IO pins */ + OcGpio_configure(&driver->pin_ec_gpio, OCGPIO_CFG_OUTPUT | + OCGPIO_CFG_OUT_HIGH); +} /***************************************************************************** ** FUNCTION NAME : led_probe ** ** DESCRIPTION : Check LED module is present or not by reading Test ** register of LED driver(SX1509) on LED board. ** - ** ARGUMENTS : None + ** ARGUMENTS : HCI Config driver and Postdata pointer. ** ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ePostCode led_probe(void) +ePostCode led_probe(const HciLedCfg *driver, POSTData* postData) { ReturnStatus status = RETURN_NOTOK; uint8_t regValue = 0x00; /* Read Test Register 1 of LED driver SX1509 of Left LED Module(RegTest1) */ status = ioexp_led_read_testregister_1( - &HCI->led.sx1509_dev[HCI_LED_DRIVER_LEFT], ®Value); + &driver->sx1509_dev[HCI_LED_DRIVER_LEFT], ®Value); if (status != RETURN_OK) { return POST_DEV_MISSING; } /* Read Test Register 1 of LED driver SX1509 of Right LED Module(RegTest1) */ status |= ioexp_led_read_testregister_1( - &HCI->led.sx1509_dev[HCI_LED_DRIVER_RIGHT], ®Value); + &driver->sx1509_dev[HCI_LED_DRIVER_RIGHT], ®Value); if (status != RETURN_OK) { return POST_DEV_MISSING; } - + post_update_POSTData(postData, &driver->sx1509_dev[HCI_LED_DRIVER_LEFT].bus, &driver->sx1509_dev[HCI_LED_DRIVER_LEFT].slave_addr,0xFF, 0xFF); return POST_DEV_FOUND; } diff --git a/firmware/ec/src/Devices/ltc4015.c b/firmware/ec/src/Devices/ltc4015.c index bbb0637292..f519682cfa 100644 --- a/firmware/ec/src/Devices/ltc4015.c +++ b/firmware/ec/src/Devices/ltc4015.c @@ -11,11 +11,12 @@ // HEADER FILES //***************************************************************************** #include "inc/devices/ltc4015.h" -#include "ltc4015_registers.h" -#include "inc/common/byteorder.h" + #include "devices/i2c/threaded_int.h" +#include "inc/common/byteorder.h" #include "helpers/math.h" #include "helpers/memory.h" +#include "ltc4015_registers.h" #include #include /* For abort() */ @@ -583,7 +584,12 @@ ReturnStatus LTC4015_enableChargerStateAlerts(LTC4015_Dev *dev, return _enable_charger_state_alerts(dev, alert_reg); } -ePostCode LTC4015_probe(LTC4015_Dev *dev) +void LTC4015_configure(LTC4015_Dev *dev) +{ + OcGpio_configure(&dev->cfg.pin_lt4015_i2c_sel, OCGPIO_CFG_OUTPUT); +} + +ePostCode LTC4015_probe(LTC4015_Dev *dev, POSTData *postData) { uint16_t ltcStatusReg = 0; /* TODO: Check reading bits from System regsiter is enough to conclude @@ -594,5 +600,6 @@ ePostCode LTC4015_probe(LTC4015_Dev *dev) if (!(ltcStatusReg & LTC4015_CHARGER_ENABLED)) { return POST_DEV_MISSING; } + post_update_POSTData(postData, dev->cfg.i2c_dev.bus, dev->cfg.i2c_dev.slave_addr,0xFF, 0xFF); return POST_DEV_FOUND; } diff --git a/firmware/ec/src/Devices/ltc4274.c b/firmware/ec/src/Devices/ltc4274.c index f9ba6923a9..37a541855a 100644 --- a/firmware/ec/src/Devices/ltc4274.c +++ b/firmware/ec/src/Devices/ltc4274.c @@ -10,11 +10,11 @@ //***************************************************************************** // HEADER FILES //***************************************************************************** +#include "inc/devices/ltc4274.h" #include "Board.h" #include "inc/common/global_header.h" #include "inc/common/i2cbus.h" -#include "inc/devices/ltc4274.h" #include "inc/subsystem/power/power.h" #include @@ -124,9 +124,6 @@ typedef struct { static tPower_PSEStatus_Info PSEStatus_Info; -extern void *sys_config[]; -#define PWR ((Power_Cfg *)sys_config[OC_SS_PWR]) - /****************************************************************************** * @fn ltc4274_raw_write * @@ -569,7 +566,7 @@ ReturnStatus ltc4274_get_class_status(const I2C_Dev *i2c_dev, ePSEClassType *pse LOGGER("LTC4274:ERROR:: PSE class status read failed.\n"); } if (!(LTC4274_CLASSIFICATION_COMPLETE(val))) { - *pseClass =LTC4274_DETECT_ERROR; + *pseClass = LTC4274_CLASS_ERROR; } else { status = ltc4274_read( i2c_dev, LTC4274_REG_STATUS, &val); if (status != RETURN_OK) { @@ -801,12 +798,12 @@ ReturnStatus ltc4274_debug_read(const I2C_Dev *i2c_dev, * * @return void */ -void ltc4274_enable(uint8_t enableVal) +void ltc4274_enable(LTC4274_Dev* dev, uint8_t enableVal) { if (enableVal) { - OcGpio_write(&PWR->pin_necpse_rst, false); + OcGpio_write(&dev->cfg.reset_pin, false); } else { - OcGpio_write(&PWR->pin_necpse_rst, true); + OcGpio_write(&dev->cfg.reset_pin, true); } } @@ -862,6 +859,24 @@ ReturnStatus ltc4274_detect(const I2C_Dev *i2c_dev, return status; } +/***************************************************************************** + ** FUNCTION NAME : ltc4274_config + ** + ** DESCRIPTION : configure gpio and bring it out of reset . + ** + ** ARGUMENTS : None + ** + ** RETURN TYPE : ePostCode + ** + *****************************************************************************/ +void ltc4274_config(LTC4274_Dev *dev) +{ + OcGpio_configure(&dev->cfg.reset_pin, OCGPIO_CFG_OUTPUT | + OCGPIO_CFG_OUT_HIGH); + //Enable PSE device. + ltc4274_enable(dev,true); +} + /***************************************************************************** ** FUNCTION NAME : ltc4274_probe ** @@ -872,12 +887,12 @@ ReturnStatus ltc4274_detect(const I2C_Dev *i2c_dev, ** RETURN TYPE : ePostCode ** *****************************************************************************/ -ePostCode ltc4274_probe(const I2C_Dev *i2c_dev) +ePostCode ltc4274_probe(const LTC4274_Dev *dev, POSTData *postData) { ePostCode postcode = POST_DEV_MISSING; uint8_t devId = 0x00; ReturnStatus status = RETURN_NOTOK; - status = ltc4274_get_devid(i2c_dev, &devId); + status = ltc4274_get_devid(&dev->cfg.i2c_dev, &devId); if (status != RETURN_OK) { postcode = POST_DEV_MISSING; } else if (devId == LTC4274_DEV_ID){ @@ -885,6 +900,7 @@ ePostCode ltc4274_probe(const I2C_Dev *i2c_dev) } else { postcode = POST_DEV_ID_MISMATCH; } + post_update_POSTData(postData, dev->cfg.i2c_dev.bus, dev->cfg.i2c_dev.slave_addr,0xFF, devId); return postcode; } @@ -898,14 +914,14 @@ ePostCode ltc4274_probe(const I2C_Dev *i2c_dev) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus ltc4274_reset() +ReturnStatus ltc4274_reset(LTC4274_Dev *dev) { ReturnStatus status = RETURN_OK; - OcGpio_write(&PWR->pin_necpse_rst, true); + OcGpio_write(&dev->cfg.reset_pin, true); Task_sleep(100); - OcGpio_write(&PWR->pin_necpse_rst, false); + OcGpio_write(&dev->cfg.reset_pin, false); return status; @@ -976,7 +992,7 @@ void ltc4274_init(LTC4274_Dev *dev) dev->obj.mutex = GateMutex_create(NULL, NULL); if (!dev->obj.mutex) { - return RETURN_NOTOK; + return; } ltc4274_initPSEStateInfo(); @@ -984,7 +1000,7 @@ void ltc4274_init(LTC4274_Dev *dev) if (dev->cfg.pin_evt) { const uint32_t pin_evt_cfg = OCGPIO_CFG_INPUT | OCGPIO_CFG_INT_FALLING; if (OcGpio_configure(dev->cfg.pin_evt, pin_evt_cfg) < OCGPIO_SUCCESS) { - return RETURN_NOTOK; + return ; } /* Use a threaded interrupt to handle IRQ */ diff --git a/firmware/ec/src/Devices/ltc4275.c b/firmware/ec/src/Devices/ltc4275.c index 1eb81badca..96eea7ffc1 100644 --- a/firmware/ec/src/Devices/ltc4275.c +++ b/firmware/ec/src/Devices/ltc4275.c @@ -6,22 +6,22 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ + //***************************************************************************** // HEADER FILES //***************************************************************************** #include "inc/devices/ltc4275.h" -#include "inc/common/byteorder.h" + #include "devices/i2c/threaded_int.h" #include "helpers/math.h" #include "helpers/memory.h" +#include "inc/common/byteorder.h" #include "inc/subsystem/power/power.h" + #include #include -extern void *sys_config[]; -#define PWR ((Power_Cfg *)sys_config[OC_SS_PWR]) - tPower_PDStatus_Info PDStatus_Info; @@ -36,13 +36,9 @@ tPower_PDStatus_Info PDStatus_Info; */ static void ltc4275_handle_irq(void *context) { LTC4275_Dev *dev = context; - uint8_t class = 0; - uint8_t powerGood= 0; - ReturnStatus res = RETURN_NOTOK; + const IArg mutexKey = GateMutex_enter(dev->obj.mutex); { - - ltc4275_update_status(); - + ltc4275_update_status(dev); } GateMutex_leave(dev->obj.mutex, mutexKey); /* See if we have a callback assigned to handle alerts */ @@ -61,6 +57,21 @@ static void ltc4275_handle_irq(void *context) { } } +/****************************************************************************** + * @fn ltc4275_configure + * + * @brief configure GPIO's. + * + * @args None + * + * @return None + */ +void ltc4275_config(const LTC4275_Dev *dev) +{ + OcGpio_configure(dev->cfg.pin_evt, OCGPIO_CFG_INPUT); + OcGpio_configure(dev->cfg.pin_detect, OCGPIO_CFG_INPUT); +} + /****************************************************************************** * @fn ltc4275_probe * @@ -70,14 +81,14 @@ static void ltc4275_handle_irq(void *context) { * * @return None */ -ePostCode ltc4275_probe(LTC4275_Dev *dev) +ePostCode ltc4275_probe(const LTC4275_Dev *dev, POSTData *postData) { ePostCode postCode = POST_DEV_MISSING; ePDPowerState pdStatus = LTC4275_POWERGOOD_NOTOK; - ReturnStatus ret = ltc4275_get_power_good(&pdStatus); + ReturnStatus ret = ltc4275_get_power_good(dev, &pdStatus); if (ret != RETURN_OK) { LOGGER("LTC4275::ERROR: Power good signal read failed.\n"); - return ret; + return postCode; } if (pdStatus == LTC4275_POWERGOOD ) { PDStatus_Info.pdStatus.classStatus = LTC4275_CLASSTYPE_UNKOWN; @@ -91,6 +102,7 @@ ePostCode ltc4275_probe(LTC4275_Dev *dev) PDStatus_Info.state = LTC4275_STATE_NOTOK; PDStatus_Info.pdalert = LTC4275_DISCONNECT_ALERT; } + post_update_POSTData(postData, 0xFF,0xFF,0xFF,0xFF); return postCode; } @@ -113,13 +125,13 @@ ReturnStatus ltc4275_init(LTC4275_Dev *dev) return RETURN_NOTOK; } - ret = ltc4275_get_power_good(&PDStatus_Info.pdStatus.powerGoodStatus); + ret = ltc4275_get_power_good(dev, &PDStatus_Info.pdStatus.powerGoodStatus); if (ret != RETURN_OK) { LOGGER("LTC4275::ERROR: Power good signal read failed.\n"); return ret; } if (PDStatus_Info.pdStatus.powerGoodStatus == LTC4275_POWERGOOD) { - ret = ltc4275_get_class(&PDStatus_Info.pdStatus.classStatus); + ret = ltc4275_get_class(dev, &PDStatus_Info.pdStatus.classStatus); if (ret != RETURN_OK) { LOGGER("LTC4275::ERROR: Reading PD classification failed.\n"); return ret; @@ -166,14 +178,14 @@ void ltc4275_set_alert_handler(LTC4275_Dev *dev, LTC4275_CallbackFn alert_cb, * * @return ReturnStatus */ -ReturnStatus ltc4275_get_power_good(ePDPowerState *val) +ReturnStatus ltc4275_get_power_good(const LTC4275_Dev *dev, ePDPowerState *val) { ReturnStatus ret = RETURN_OK; /*set default to 1*/ *val = LTC4275_POWERGOOD_NOTOK; /* Check Power Good */ - *val = (ePDPowerState) OcGpio_read(&PWR->pin_ec_pd_pwrgd_ok); + *val = (ePDPowerState) OcGpio_read(dev->cfg.pin_evt); if(*val == 0) { *val = LTC4275_POWERGOOD; @@ -191,7 +203,7 @@ ReturnStatus ltc4275_get_power_good(ePDPowerState *val) * * @return ReturnStatus */ -ReturnStatus ltc4275_get_class(ePDClassType *val) +ReturnStatus ltc4275_get_class(const LTC4275_Dev *dev, ePDClassType *val) { ReturnStatus ret = RETURN_OK; uint8_t i = 0; @@ -200,7 +212,7 @@ ReturnStatus ltc4275_get_class(ePDClassType *val) uint8_t toggle = 0; for (i = 0; i < 15; i++) { - value = OcGpio_read(&PWR->pin_lt4275_ec_nt2p); + value = OcGpio_read(dev->cfg.pin_detect); LOGGER_DEBUG("LTC4275:INFO:: PD-nT2P activity status %d.\n", value); if (value == 1) { *val = LTC4275_CLASSTYPE_2; @@ -230,19 +242,19 @@ ReturnStatus ltc4275_get_class(ePDClassType *val) * * @return None */ -void ltc4275_update_status() +void ltc4275_update_status(const LTC4275_Dev *dev) { ReturnStatus ret = RETURN_NOTOK; - ret = ltc4275_get_power_good(&PDStatus_Info.pdStatus.powerGoodStatus); + ret = ltc4275_get_power_good(dev,&PDStatus_Info.pdStatus.powerGoodStatus); if (ret != RETURN_OK) { LOGGER("LTC4275::ERROR: Power good signal read failed.\n"); - return ret; + return; } if (PDStatus_Info.pdStatus.powerGoodStatus == LTC4275_POWERGOOD) { - ret = ltc4275_get_class(&PDStatus_Info.pdStatus.classStatus); + ret = ltc4275_get_class(dev, &PDStatus_Info.pdStatus.classStatus); if (ret != RETURN_OK) { LOGGER("LTC4275::ERROR: Reading PD classification failed.\n"); - return ret; + return; } if (PDStatus_Info.pdStatus.classStatus == LTC4275_CLASSTYPE_POEPP) { PDStatus_Info.state = LTC4275_STATE_OK; diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_adt7481.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_adt7481.c index c5c6b220b9..58aad286cd 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_adt7481.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_adt7481.c @@ -6,11 +6,10 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ -#include "src/registry/Framework.h" +#include "common/inc/ocmp_wrappers/ocmp_adt7481.h" #include "helpers/array.h" #include "inc/devices/adt7481.h" -#include "inc/devices/ocmp_wrappers/ocmp_adt7481.h" typedef enum Adt7481Status { ADT7481_STATUS_TEMPERATURE = 0, @@ -85,31 +84,18 @@ static bool _set_config(void *driver, unsigned int param_id, return false; } -static ePostCode _probe(void *driver) +static ePostCode _probe(void *driver, POSTData *postData) { - ReturnStatus status = RETURN_OK; - ePostCode postcode = POST_DEV_MISSING; - uint8_t devId = 0x0000; - uint8_t manfId = 0x0000; - - status = adt7481_get_dev_id(driver, &devId); - status = adt7481_get_mfg_id(driver, &manfId); - if (status != RETURN_OK) { - postcode = POST_DEV_MISSING; - } else if ((devId == TEMP_ADT7481_DEV_ID) - && (manfId == TEMP_ADT7481_MANF_ID)) { - postcode = POST_DEV_FOUND; - } else { - postcode = POST_DEV_ID_MISMATCH; - } - - return postcode; + return adt7481_probe(driver,postData); } static ePostCode _init(void *driver, const void *config, const void *alert_token) { const ADT7481_Config *adt7481_config = config; + if (adt7481_config == NULL) { + return POST_DEV_CFG_FAIL; + } for (int i = 0; i < ARRAY_SIZE(adt7481_config->limits); ++i) { if (adt7481_set_local_temp_limit( driver, i + 1, adt7481_config->limits[i]) != RETURN_OK || @@ -136,25 +122,7 @@ static ePostCode _init(void *driver, const void *config, /* TODO: dedup with SE98A driver */ /* TODO: enable alerts (requires major ADT driver changes) */ -const Driver ADT7481 = { - .name = "ADT7481", - .status = (Parameter[]){ - { .name = "temperature", .type = TYPE_UINT8 }, - {} - }, - .config = (Parameter[]){ - { .name = "lowlimit", .type = TYPE_UINT8 }, - { .name = "highlimit", .type = TYPE_UINT8 }, - { .name = "critlimit", .type = TYPE_UINT8 }, - {} - }, - .alerts = (Parameter[]){ - { .name = "BAW", .type = TYPE_UINT8 }, - { .name = "AAW", .type = TYPE_UINT8 }, - { .name = "ACW", .type = TYPE_UINT8 }, - {} - }, - +const Driver_fxnTable ADT7481_fxnTable = { /* Message handlers */ .cb_probe = _probe, .cb_init = _init, diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_cat24c04.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_cat24c04.c new file mode 100644 index 0000000000..68609e885e --- /dev/null +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_cat24c04.c @@ -0,0 +1,159 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_eeprom_cat24c04.h" + +#include "common/inc/global/Framework.h" +#include "inc/common/global_header.h" +#include "inc/devices/eeprom.h" + +#include + +static bool _sid_get_status_parameters_data(void *driver, + unsigned int param, + void *data); +/***************************************************************************** + ** FUNCTION NAME : _sid_get_status_parameters_data + ** + ** DESCRIPTION : Reading Serial Id's from the GBC EEPROM. + ** + ** ARGUMENTS : Pointer to OCMPMessageFrame structure + ** + ** RETURN TYPE : Success or Failure + ** + *****************************************************************************/ +static bool _sid_get_status_parameters_data(void *driver, + unsigned int param, + void *data) +{ + const eOCStatusParamId paramIndex = (eOCStatusParamId)param; + const Eeprom_Cfg *cfg = ( Eeprom_Cfg*)driver; + ReturnStatus status = RETURN_OK; + switch (paramIndex) { + case OC_STAT_SYS_SERIAL_ID: + { + memset(data, '\0', OC_CONNECT1_SERIAL_SIZE + 1); + status = eeprom_read_oc_info(data); + LOGGER_DEBUG("SYS:INFO:::: OC Connect1 serial id %s.\n", + data); + break; + } + case OC_STAT_SYS_GBC_BOARD_ID: + { + memset(data, '\0', OC_GBC_BOARD_INFO_SIZE + 1); + status = eeprom_read_board_info(cfg, data); + LOGGER_DEBUG("SYS:INFO:::: OC Connect1 GBC board is %s.\n", + data); + break; + } + default: + { + status = RETURN_NOTOK; + } + } + return (status == RETURN_OK); +} + +/***************************************************************************** + ** FUNCTION NAME : Sdr_InventoryGetStatus + ** + ** DESCRIPTION : Reading Serial Id's from the SDR EEPROM. + ** + ** ARGUMENTS : Pointer to OCMPMessageFrame structure + ** + ** RETURN TYPE : Success or Failure + ** + *****************************************************************************/ +bool Sdr_InventoryGetStatus(void *driver, unsigned int param_id, + void *return_buf) { + const Eeprom_Cfg *cfg = ( Eeprom_Cfg*)driver; + switch (param_id) { + case 0: /* TODO: gross magic number */ + memset(return_buf,'\0', OC_SDR_BOARD_INFO_SIZE + 1); + if (eeprom_read_board_info(cfg, return_buf) == RETURN_OK) { + return true; + } + LOGGER_DEBUG("SDR:INFO:: Board id: %s\n", return_buf); + break; + default: + LOGGER_ERROR("SDR:ERROR::Unknown param %u\n", param_id); + break; + } + return false; +} +/***************************************************************************** + ** FUNCTION NAME : RFFE_InventoryGetStatus + ** + ** DESCRIPTION : Reading Serial Id's from the RFFE EEPROM. + ** + ** ARGUMENTS : Pointer to OCMPMessageFrame structure + ** + ** RETURN TYPE : Success or Failure + ** + *****************************************************************************/ +bool RFFE_InventoryGetStatus(void *driver, unsigned int param_id, + void *return_buf) { + const Eeprom_Cfg *cfg = (Eeprom_Cfg *)driver; + switch (param_id) { + case 0: /* TODO: gross magic number */ + memset(return_buf, '\0', OC_RFFE_BOARD_INFO_SIZE + 1); + if (eeprom_read_board_info(cfg, return_buf) + == RETURN_OK) { + return true; + } + LOGGER_DEBUG("RFFE:INFO:: Board id: %s\n", return_buf); + break; + default: + LOGGER_ERROR("RFFE:ERROR::Unknown param %u\n", param_id); + break; + } + return false; +} + +static ePostCode _init_eeprom(void *driver, const void **config, + const void *alert_token) +{ + Eeprom_Cfg *eeprom = (Eeprom_Cfg *)driver; + uint8_t write = 0x01; + uint8_t read = 0x00; + + eeprom_init(eeprom); + eeprom_enable_write(eeprom); + eeprom_write(eeprom, OC_TEST_ADDRESS, &write, 1); + NOP_DELAY(); /* TODO: the eeprom driver should handle this */ + eeprom_disable_write(eeprom); + eeprom_read(eeprom, OC_TEST_ADDRESS, &read, 1); + + if (write == read) { + return POST_DEV_CFG_DONE; + } + return POST_DEV_CFG_FAIL; +} + +const Driver_fxnTable CAT24C04_gbc_sid_fxnTable = { + /* Message handlers */ + .cb_init = _init_eeprom, + .cb_get_status = _sid_get_status_parameters_data, +}; + +const Driver_fxnTable CAT24C04_gbc_inv_fxnTable= { + .cb_init = _init_eeprom, +}; + +const Driver_fxnTable CAT24C04_sdr_inv_fxnTable = { + /* Message handlers */ + .cb_init = _init_eeprom, + .cb_get_status = Sdr_InventoryGetStatus, +}; + +const Driver_fxnTable CAT24C04_fe_inv_fxnTable = { + /* Message handlers */ + .cb_init = _init_eeprom, + .cb_get_status = RFFE_InventoryGetStatus, +}; + diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_dat-xxr5a-pp.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_dat-xxr5a-pp.c index 25de42a3ef..e9826ae1ed 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_dat-xxr5a-pp.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_dat-xxr5a-pp.c @@ -1,9 +1,21 @@ -#include "src/registry/Framework.h" +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_dat-xxr5a-pp.h" +#include "common/inc/global/Framework.h" #include "drivers/PinGroup.h" #include "helpers/math.h" +#include "inc/subsystem/rffe/rffe.h" #include "inc/common/global_header.h" -#include "inc/devices/ocmp_wrappers/ocmp_dat-xxr5a-pp.h" +#include "inc/devices/dat-xxr5a-pp.h" + +#include typedef enum DatConfig { DAT_CONFIG_ATTENUATION = 0, @@ -11,6 +23,7 @@ typedef enum DatConfig { static bool _get_config(void *driver, unsigned int param_id, void *return_buf) { + bool ret = false; switch (param_id) { case DAT_CONFIG_ATTENUATION: { DATR5APP_Cfg *cfg = driver; @@ -20,18 +33,21 @@ static bool _get_config(void *driver, unsigned int param_id, .pins = cfg->pin_group }; if (PinGroup_read(&pin_group, &atten) != RETURN_OK) { - return false; + ret = false; + } else { + LOGGER_DEBUG("DAT-XXR5A-PP+:DEBUG:: Attenuation is %.1f\n", + (atten / 2.0)); + *(int16_t *)return_buf = atten; + ret = true; } - LOGGER_DEBUG("DAT-XXR5A-PP+:DEBUG:: Attenuation is %.1f\n", - (atten / 2.0)); - *(int16_t *)return_buf = atten; break; } - default: + default: { LOGGER_ERROR("DAT-XXR5A-PP+::Unknown config param %d\n", param_id); - return false; + ret = false; + } } - return false; + return ret; } static bool _set_attenuation(void *driver, int16_t atten) @@ -47,6 +63,8 @@ static bool _set_attenuation(void *driver, int16_t atten) /* Disable input latch */ OcGpio_write(&cfg->pin_le, false); + /* Attenuation enable */ + // OcGpio_write(&cfg->pin_tx_attn_enb, true); /* Set the attenuation value */ /* TODO: value is provided as x2, so 0.5 value is bit 0, consider @@ -67,7 +85,6 @@ static bool _set_attenuation(void *driver, int16_t atten) Task_sleep(1); OcGpio_write(&cfg->pin_le, false); Task_sleep(1); - return true; } @@ -103,7 +120,8 @@ static ePostCode _probe(void *driver) static ePostCode _init(void *driver, const void *config, const void *alert_token) { - DATR5APP_Cfg *cfg = driver; + DATR5APP_Cfg *cfg = (DATR5APP_Cfg *)driver; + DATR5APP_Config *cfg_atten = (DATR5APP_Config *)config; PinGroup pin_group = { .num_pin = DATR5APP_PIN_COUNT, .pins = cfg->pin_group @@ -117,20 +135,11 @@ static ePostCode _init(void *driver, const void *config, } /* Set default attenuation */ - _set_attenuation(driver, ((DATR5APP_Config *)config)->attenuation); - + _set_attenuation(driver, cfg_atten->attenuation); return POST_DEV_CFG_DONE; } -const Driver DATXXR5APP = { - .name = "DAT-XXR5A-PP+", - .status = NULL, - .config = (Parameter[]){ - { .name = "atten", .type = TYPE_INT16 }, - {} - }, - .alerts = NULL, - +const Driver_fxnTable DATXXR5APP_fxnTable = { /* Message handlers */ .cb_probe = _probe, .cb_init = _init, diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_debugi2c.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_debugi2c.c new file mode 100644 index 0000000000..a6e3c75584 --- /dev/null +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_debugi2c.c @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "inc/ocmp_wrappers/ocmp_debugi2c.h" + +#include "common/inc/global/ocmp_frame.h" +#include "common/inc/global/Framework.h" +#include "inc/common/global_header.h" +#include "inc/common/i2cbus.h" +#include "inc/devices/debug_oci2c.h" + + +/* TI-RTOS driver files */ +#include + +bool i2c_read(void* i2c_cfg, void *oci2c ) +{ + S_I2C_Cfg* s_oc_i2c_cfg = (S_I2C_Cfg*)i2c_cfg; + S_OCI2C* s_oci2c = (S_OCI2C*)oci2c; + I2C_Handle i2cHandle = i2c_open_bus(s_oc_i2c_cfg->bus); + return (i2c_reg_read(i2cHandle, s_oci2c->slaveAddress, s_oci2c->reg_address, &s_oci2c->reg_value, s_oci2c->number_of_bytes) == RETURN_OK); +} + +bool i2c_write(void* i2c_cfg, void *oci2c ) +{ + S_I2C_Cfg* s_oc_i2c_cfg = (S_I2C_Cfg*)i2c_cfg; + S_OCI2C* s_oci2c = (S_OCI2C*)oci2c; + I2C_Handle i2cHandle = i2c_open_bus(s_oc_i2c_cfg->bus); + return (i2c_reg_write(i2cHandle, s_oci2c->slaveAddress, s_oci2c->reg_address, s_oci2c->reg_value, s_oci2c->number_of_bytes) == RETURN_OK); +} + + diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_debugmdio.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_debugmdio.c new file mode 100644 index 0000000000..b92595ed2e --- /dev/null +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_debugmdio.c @@ -0,0 +1,76 @@ +/** + * Copyright (c) 2018-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "inc/ocmp_wrappers/ocmp_debugmdio.h" + +#include "common/inc/global/ocmp_frame.h" +#include "common/inc/global/Framework.h" +#include "inc/common/global_header.h" +#include "inc/devices/88E6071_registers.h" +#include "inc/devices/debug_ocmdio.h" + +#include "inc/devices/mdio_bb.h" + +#define CLAUSE_45_REQUEST(reg_address) check_clause_45(s_ocmdio->reg_address) +#define PORT_REG_REQUEST(port) check_clause_22(s_oc_mdio_cfg->port) +#define PHY_PORT_MAX 5 + +bool check_clause_45(uint16_t regAddr) { + bool status = false; + if (REG_C45_PACKET_GEN == regAddr || REG_C45_CRC_ERROR_COUNTER == regAddr) + status = true; + return status; +} + +bool check_clause_22(uint8_t port) { + bool status = false; + if (port < PHY_PORT_MAX) + status = true; + return status; +} + +bool mdio_read(void* mdio_cfg, void *ocmdio ) +{ + S_MDIO_Cfg* s_oc_mdio_cfg = (S_MDIO_Cfg*)mdio_cfg; + S_OCMDIO* s_ocmdio = (S_OCMDIO*)ocmdio; + s_ocmdio->reg_value= 0xf00f; + + if (CLAUSE_45_REQUEST(reg_address)) + /*PHY registers use Reg 13 and Reg 14 as paging mechanism to access Clause 45 registers*/ + s_ocmdio->reg_value = mdiobb_read_by_paging_c45(s_oc_mdio_cfg->port, s_ocmdio->reg_address); + else if (PORT_REG_REQUEST(port)) + /*PHY registers use Reg 13 and Reg 14 as paging mechanism to access Clause 22 registers*/ + s_ocmdio->reg_value = mdiobb_read_by_paging(s_oc_mdio_cfg->port, s_ocmdio->reg_address); + else + /*GLOBAL and SWITCH registers can be accessed directly*/ + s_ocmdio->reg_value = mdiobb_read(s_oc_mdio_cfg->port, s_ocmdio->reg_address); + return 0; +} + +bool mdio_write(void* mdio_cfg, void *ocmdio ) +{ + S_MDIO_Cfg* s_oc_mdio_cfg = (S_MDIO_Cfg*)mdio_cfg; + S_OCMDIO* s_ocmdio = (S_OCMDIO*)ocmdio; + + if (CLAUSE_45_REQUEST(reg_address)) { + /*PHY registers use Reg 13 and Reg 14 as paging mechanism to access Clause 45 registers*/ + mdiobb_write_by_paging_c45(s_oc_mdio_cfg->port, s_ocmdio->reg_address, s_ocmdio->reg_value); + s_ocmdio->reg_value = mdiobb_read_by_paging_c45(s_oc_mdio_cfg->port, s_ocmdio->reg_address); + } + else if (PORT_REG_REQUEST(port)) { + /*PHY registers use Reg 13 and Reg 14 as paging mechanism to access Clause 22 registers*/ + mdiobb_write_by_paging(s_oc_mdio_cfg->port, s_ocmdio->reg_address, s_ocmdio->reg_value); + s_ocmdio->reg_value = mdiobb_read_by_paging(s_oc_mdio_cfg->port, s_ocmdio->reg_address); + } + else { + /*GLOBAL and SWITCH registers can be accessed directly*/ + mdiobb_write(s_oc_mdio_cfg->port, s_ocmdio->reg_address, s_ocmdio->reg_value); + s_ocmdio->reg_value = mdiobb_read(s_oc_mdio_cfg->port, s_ocmdio->reg_address); + } + return 0; +} diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ocgpio.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_debugocgpio.c similarity index 63% rename from firmware/ec/src/Devices/ocmp_wrappers/ocmp_ocgpio.c rename to firmware/ec/src/Devices/ocmp_wrappers/ocmp_debugocgpio.c index 28cf234b71..4015186273 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ocgpio.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_debugocgpio.c @@ -6,19 +6,23 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ -#include "src/registry/Framework.h" +#include "inc/ocmp_wrappers/ocmp_debugocgpio.h" +#include "common/inc/global/Framework.h" +#include "common/inc/global/ocmp_frame.h" #include "inc/common/global_header.h" -#include "inc/common/ocmp_frame.h" -#include "inc/devices/ocmp_wrappers/ocmp_ocgpio.h" +#include "inc/devices/debug_ocgpio.h" + #include #define NO_GPIO_PINS_IN_GROUP 8 extern GPIO_PinConfig gpioPinConfigs[]; -static bool ocgpio_set(S_OCGPIO_Cfg* oc_gpio_cfg, S_OCGPIO *s_oc_gpio ) +bool ocgpio_set(void* gpio_cfg, void* oc_gpio ) { + S_OCGPIO_Cfg* oc_gpio_cfg = (S_OCGPIO_Cfg*)gpio_cfg; + S_OCGPIO* s_oc_gpio = (S_OCGPIO*)oc_gpio; int ret = 0; uint8_t idx = ((oc_gpio_cfg->group != 0)?(((oc_gpio_cfg->group-1) * NO_GPIO_PINS_IN_GROUP) + s_oc_gpio->pin):s_oc_gpio->pin); OcGpio_Pin ocgpio = { (oc_gpio_cfg->port), idx, ((oc_gpio_cfg->group != 0)?(gpioPinConfigs[idx]>>16):OCGPIO_CFG_OUT_STD)}; @@ -27,8 +31,10 @@ static bool ocgpio_set(S_OCGPIO_Cfg* oc_gpio_cfg, S_OCGPIO *s_oc_gpio ) return (ret == 0); } -static bool ocgpio_get(S_OCGPIO_Cfg* oc_gpio_cfg, S_OCGPIO *s_oc_gpio ) +bool ocgpio_get(void* gpio_cfg, void* oc_gpio ) { + S_OCGPIO_Cfg* oc_gpio_cfg = (S_OCGPIO_Cfg*)gpio_cfg; + S_OCGPIO* s_oc_gpio = (S_OCGPIO*)oc_gpio; int ret = 0; uint8_t idx = ((oc_gpio_cfg->group != 0)?(((oc_gpio_cfg->group-1) * NO_GPIO_PINS_IN_GROUP) + s_oc_gpio->pin):s_oc_gpio->pin); OcGpio_Pin ocgpio = { (oc_gpio_cfg->port), idx, ((oc_gpio_cfg->group!= 0)?(gpioPinConfigs[idx]>>16):OCGPIO_CFG_IN_PU)}; @@ -40,10 +46,13 @@ static bool ocgpio_get(S_OCGPIO_Cfg* oc_gpio_cfg, S_OCGPIO *s_oc_gpio ) return (ret == 0); } -static ePostCode _probe(void *driver) +static ePostCode _probe(S_OCGPIO_Cfg* oc_gpio_cfg) { - //Dummy functions. - return POST_DEV_FOUND; + if (OcGpio_probe(oc_gpio_cfg->port) != 0) { + return POST_DEV_MISSING; + } else { + return POST_DEV_FOUND; + } } static ePostCode _init(void *driver, const void *config, @@ -53,26 +62,8 @@ static ePostCode _init(void *driver, const void *config, return POST_DEV_CFG_DONE; } -const Driver OC_GPIO = { - .name = "OC_GPIO", - .argList = (Parameter[]){ - { .name = "pin", .type = TYPE_UINT8 }, - { .name = "value", .type = TYPE_UINT8 }, - {} - }, - .commands = { - [OCMP_AXN_TYPE_GET] = &(Command){ - .name = "get", - .cb_cmd = ocgpio_get, - }, - [OCMP_AXN_TYPE_SET] = &(Command){ - .name = "set", - .cb_cmd = ocgpio_set, - }, - &(Command){} - }, +const Driver_fxnTable DEBUG_OCGPIO_fxnTable = { /* Message handlers */ - //.cb_probe = _probe, - //.cb_init = _init, + .cb_probe = _probe, + .cb_init = _init, }; - diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_eth_sw.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_eth_sw.c index 22a7420e95..1d82a94a7d 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_eth_sw.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_eth_sw.c @@ -6,9 +6,52 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ +#include "common/inc/ocmp_wrappers/ocmp_eth_sw.h" + +#include "common/inc/global/Framework.h" #include "inc/devices/eth_sw.h" -#include "src/registry/Framework.h" -#include "inc/devices/ocmp_wrappers/ocmp_eth_sw.h" + +bool ETHERNET_reset(void *driver, void *params) +{ + ReturnStatus status = RETURN_OK; + status = eth_sw_set_config_soft_reset(PORT0); + return status; +} + +bool ETHERNET_enLoopBk(void *driver, void *params) +{ + ReturnStatus status = RETURN_OK; + status = eth_sw_enable_loopback(driver, params); + return status; +} + +bool ETHERNET_disLoopBk(void *driver, void *params) +{ + ReturnStatus status = RETURN_OK; + status = eth_sw_disable_loopback(driver, params); + return status; +} + +bool ETHERNET_enPktGen(void *driver, void *params) +{ + ReturnStatus status = RETURN_OK; + status = eth_sw_enable_packet_gen(driver, params); + return status; +} + +bool ETHERNET_disPktGen(void *driver, void *params) +{ + ReturnStatus status = RETURN_OK; + status = eth_sw_disable_packet_gen(driver); + return status; +} + +bool ETHERNET_tivaClient(void *driver, void *params) +{ + ReturnStatus status = RETURN_OK; + status = eth_sw_config_tiva_client(driver, params); + return status; +} static bool _get_status(void *driver, unsigned int param_id, void *return_buf) @@ -78,11 +121,13 @@ static bool _get_config(void *driver, unsigned int param_id, case ETH_SW_CONFIG_SW_RESET: { uint8_t *res = return_buf; *res = 0; + return false; } case ETH_SW_CONFIG_RESTART_AUTONEG: { uint8_t *res = return_buf; *res = 0; + return false; } default: LOGGER_ERROR("ETH_SW::Unknown config param %d\n", param_id); @@ -95,41 +140,36 @@ static bool _set_config(void *driver, unsigned int param_id, { Eth_cfg *cfg = (Eth_cfg*)driver; switch (param_id) { -#if 0 - KASHIF case ETH_SW_CONFIG_SPEED: { - uint8_t *res = data; - return (eth_sw_set_config_speed(cfg->eth_sw_port, (port_duplex)*res) + uint8_t *res = (uint8_t*)data; + return (eth_sw_set_config_speed(cfg->eth_sw_port, *res) == RETURN_OK); } case ETH_SW_CONFIG_DUPLEX: { - uint8_t *res = data; - return (eth_sw_set_config_duplex(cfg->eth_sw_port, (port_duplex)*res) + uint8_t *res = (uint8_t*)data; + return (eth_sw_set_config_duplex(cfg->eth_sw_port, *res) == RETURN_OK); } -#endif case ETH_SW_CONFIG_POWER_DOWN: { - uint8_t *res = data; - return (eth_sw_set_config_power_down(cfg->eth_sw_port, res) + uint8_t *res = (uint8_t*)data; + return (eth_sw_set_config_power_down(cfg->eth_sw_port, *res) == RETURN_OK); } case ETH_SW_CONFIG_SLEEPMODE_EN: { - uint8_t *res = data; - return (eth_sw_set_config_sleep_mode_enable(cfg->eth_sw_port, res) + uint8_t *res = (uint8_t*)data; + return (eth_sw_set_config_sleep_mode_enable(cfg->eth_sw_port, *res) == RETURN_OK); } case ETH_SW_CONFIG_INTERRUPT_EN: { - uint8_t *res = data; + uint8_t *res = (uint8_t*)data; return (eth_sw_set_config_interrupt_enable(cfg->eth_sw_port, res) == RETURN_OK); } case ETH_SW_CONFIG_SW_RESET: { - uint8_t *res = data; return (eth_sw_set_config_soft_reset(cfg->eth_sw_port) == RETURN_OK); } case ETH_SW_CONFIG_RESTART_AUTONEG: { - uint8_t *res = data; return (eth_sw_set_config_restart_neg(cfg->eth_sw_port) == RETURN_OK); } default: @@ -138,9 +178,10 @@ static bool _set_config(void *driver, unsigned int param_id, } } -static ePostCode _probe(void *driver) +static ePostCode _probe(void *driver, POSTData *postData) { - return eth_sw_probe(driver); + eth_sw_configure(driver); + return eth_sw_probe(postData); } static void _alert_handler(Eth_Sw_Events evt, int16_t value, void *alert_data) @@ -190,36 +231,7 @@ static ePostCode _init(void *driver, const void *config, return ret; } -const Driver ETH_SW = { - .name = "Marvel_88E6071", - .status = (Parameter[]){ - { .name = "speed", .type = TYPE_UINT8 }, - { .name = "duplex", .type = TYPE_UINT8 }, - { .name = "autoneg_on", .type = TYPE_UINT8 }, - { .name = "sleep_mode_en", .type = TYPE_UINT8 }, - { .name = "autoneg_complete", .type = TYPE_UINT8 }, - { .name = "link_up", .type = TYPE_UINT8 }, - {} - }, - .config = (Parameter[]){ - { .name = "speed", .type = TYPE_UINT8 }, - { .name = "duplex", .type = TYPE_UINT8 }, - { .name = "autoneg_on", .type = TYPE_UINT8 }, - { .name = "sleep_mode_en", .type = TYPE_UINT8 }, - { .name = "autoneg_complete", .type = TYPE_UINT8 }, - { .name = "link_up", .type = TYPE_UINT8 }, - {} - }, - .alerts = (Parameter[]){ - { .name = "speed", .type = TYPE_UINT8 }, - { .name = "duplex", .type = TYPE_UINT8 }, - { .name = "autoneg_complete", .type = TYPE_UINT8 }, - { .name = "crossover_det", .type = TYPE_UINT8 }, - { .name = "energy_det", .type = TYPE_UINT8 }, - { .name = "polarity_change", .type = TYPE_UINT8 }, - { .name = "jabber_det", .type = TYPE_UINT8 }, - {} - }, +const Driver_fxnTable eth_fxnTable = { /* Message handlers */ .cb_probe = _probe, .cb_init = _init, diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_fe.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_fe.c new file mode 100644 index 0000000000..087f835037 --- /dev/null +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_fe.c @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_fe-param.h" + +#include "inc/subsystem/rffe/rffe_ctrl.h" + +static FE_Band_Cfg FE_BandCfg[RFFE_MAX_CHANNEL]; +typedef enum FE_ParamCfg { + FE_CFG_BAND = 0, +} FE_ParamCfg; + +/***************************************************************************** + ** FUNCTION NAME : rffe_ctrl_set_band + ** + ** DESCRIPTION : Set the RF Band. + ** + ** ARGUMENTS : Channel and Band to be read + ** + ** RETURN TYPE : Success or failure + ** + *****************************************************************************/ +bool rffe_ctrl_set_band(rffeChannel channel, rffeBand band) +{ + // TODO: Using RFFE_IO_BOARD_CFG_ADDR we should find Band Config. + FE_BandCfg[channel].band = band; + + DEBUG("RFFECTRL:INFO:: Channel %s RF Band Configuration is %d .\n", + ((channel == 0) ? "1" : "2"), band); + return true; +} + +/***************************************************************************** + ** FUNCTION NAME : rffe_ctrl_get_band + ** + ** DESCRIPTION : Gets the RF Band. + ** + ** ARGUMENTS : Channel and Band to be read + ** + ** RETURN TYPE : Success or failure + ** + *****************************************************************************/ +bool rffe_ctrl_get_band(rffeChannel channel, rffeBand *band) +{ + // TODO: Using RFFE_IO_BOARD_CFG_ADDR we should find Band Config. + *band = FE_BandCfg[channel].band; + + DEBUG("RFFECTRL:INFO:: Channel %s RF Band Configuration is %d .\n", + ((channel == 0) ? "1" : "2"), *band); + return true; +} + +bool static _get_config(void *driver, unsigned int param_id, + void *return_buf) + { + bool ret = false; + FE_Ch_Band_cfg *driverCfg = driver; + switch (param_id) { + case FE_CFG_BAND: + { + ret = rffe_ctrl_get_band(driverCfg->channel,return_buf); + break; + } + default: + { + LOGGER_ERROR("FE_PARAM::Unknown config param %d\n", param_id); + ret = false; + } + } + return ret; +} + +bool static _set_config(void *driver, unsigned int param_id, + void *return_buf) +{ + bool ret = false; + FE_Ch_Band_cfg *driverCfg = driver; + rffeBand *band = (rffeBand*)return_buf; + switch (param_id) { + case FE_CFG_BAND: + { + rffeChannel *cfg = driver; + ret = rffe_ctrl_set_band(driverCfg->channel,*band); + break; + } + default: + { + LOGGER_ERROR("FE_PARAM::Unknown config param %d\n", param_id); + ret = false; + } + } + return ret; +} + +static ePostCode _probe(void *driver) +{ + return POST_DEV_FOUND; +} + +static ePostCode _init(void *driver, const void *config, + const void *alert_token) +{ + FE_Ch_Band_cfg *driverCfg = (FE_Ch_Band_cfg *)driver; + FE_Band_Cfg *cfg = (FE_Band_Cfg *)config; + rffe_ctrl_set_band(driverCfg->channel, cfg->band); + return POST_DEV_FOUND; +} + +const Driver_fxnTable FE_PARAM_fxnTable = { + /* Message handlers */ + .cb_probe = _probe, + .cb_init = _init, + .cb_get_config = _get_config, + .cb_set_config = _set_config, +}; diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_i2c.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_i2c.c deleted file mode 100644 index 69f2cbca50..0000000000 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_i2c.c +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ -#include "src/registry/Framework.h" - -#include "inc/common/global_header.h" -#include "inc/common/ocmp_frame.h" -#include "inc/devices/ocmp_wrappers/ocmp_i2c.h" - -/* TI-RTOS driver files */ -#include - -static bool i2c_read(S_I2C_Cfg* i2c_cfg, S_OCI2C *s_oci2c ) -{ - I2C_Handle i2cHandle = i2c_open_bus(i2c_cfg->bus); - return (i2c_reg_read(i2cHandle, s_oci2c->slaveAddress, s_oci2c->reg_address, &s_oci2c->reg_value, s_oci2c->number_of_bytes) == RETURN_OK); -} - -static bool i2c_write(S_I2C_Cfg* i2c_cfg, S_OCI2C *s_oci2c ) -{ - I2C_Handle i2cHandle = i2c_open_bus(i2c_cfg->bus); - return (i2c_reg_write(i2cHandle, s_oci2c->slaveAddress, s_oci2c->reg_address, s_oci2c->reg_value, s_oci2c->number_of_bytes) == RETURN_OK); -} - -static ePostCode _probe(void *driver) -{ - //Dummy functions. - return POST_DEV_FOUND; -} - -static ePostCode _init(void *driver, const void *config, - const void *alert_token) -{ - //Dummy functions. - return POST_DEV_CFG_DONE; -} - -const Driver OC_I2C = { - .name = "OC_I2C", - .argList = (Parameter[]){ - { .name = "slave_address", .type = TYPE_UINT8 }, - { .name = "no_of_bytes", .type = TYPE_UINT8 }, - { .name = "reg_address", .type = TYPE_UINT8 }, - { .name = "reg_values", .type = TYPE_UINT16 }, - {} - }, - .commands = { - [OCMP_AXN_TYPE_GET] = &(Command){ - .name = "read", - .cb_cmd = i2c_read, - }, - [OCMP_AXN_TYPE_SET] = &(Command){ - .name = "write", - .cb_cmd = i2c_write, - }, - &(Command){} - }, - /* Message handlers */ - //.cb_probe = _probe, - //.cb_init = _init, -}; diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ina226.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ina226.c index bc3aedb202..80605227a1 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ina226.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ina226.c @@ -1,7 +1,15 @@ -#include "src/registry/Framework.h" +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_ina226.h" +#include "common/inc/global/Framework.h" #include "inc/devices/ina226.h" -#include "inc/devices/ocmp_wrappers/ocmp_ina226.h" typedef enum INA226Status { INA226_STATUS_BUS_VOLTAGE = 0, @@ -69,9 +77,9 @@ static bool _set_config(void *driver, unsigned int param_id, } } -static ePostCode _probe(void *driver) +static ePostCode _probe(void *driver, POSTData *postData) { - return ina226_probe(driver); + return ina226_probe(driver,postData); } static void _alert_handler(INA226_Event evt, uint16_t value, void *alert_data) @@ -108,24 +116,7 @@ static ePostCode _init(void *driver, const void *config, return POST_DEV_CFG_DONE; } -const Driver INA226 = { - .name = "INA226", - .status = (Parameter[]){ - { .name = "busvoltage", .type = TYPE_UINT16 }, - { .name = "shuntvoltage", .type = TYPE_UINT16 }, - { .name = "current", .type = TYPE_UINT16 }, - { .name = "power", .type = TYPE_UINT16 }, - {} - }, - .config = (Parameter[]){ - { .name = "currlimit", .type = TYPE_UINT16 }, - {} - }, - .alerts = (Parameter[]){ - { .name = "Overcurrent", .type = TYPE_UINT16 }, - {} - }, - +const Driver_fxnTable INA226_fxnTable = { /* Message handlers */ .cb_probe = _probe, .cb_init = _init, diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_iridium.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_iridium.c new file mode 100644 index 0000000000..6edccab4ae --- /dev/null +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_iridium.c @@ -0,0 +1,90 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +//***************************************************************************** +// HEADER FILES +//***************************************************************************** +#include "common/inc/ocmp_wrappers/ocmp_iridium.h" + +#include +#include "inc/common/global_header.h" + +static ePostCode _probe(void **driver) +{ + /* TODO: this is a problem: we can't probe until we've initialized, but we + * don't init until after probing */ + return POST_DEV_FOUND; +} + +static ePostCode _init(void *driver, const void *config, + const void *alert_token) +{ + if (sbd_init(driver) != RETURN_OK) { + return POST_DEV_CFG_FAIL; + } + return POST_DEV_CFG_DONE; +} + +static bool _get_status(void *driver, unsigned int param_id, + void *return_buf) { + bool ret = false; + switch (param_id) { + case IRIDIUM_NO_OUT_MSG: + { + ret = sbd9603_get_queueLength(return_buf); + break; + } + case IRIDIUM_LASTERR: + { + ret = sbd9603_get_lastError(return_buf); + break; + } + case IRIDIUM_IMEI: + { + ret = sbd9603_get_imei(return_buf); + break; + } + case IRIDIUM_MFG: + { + ret = sbd9603_get_mfg(return_buf); + break; + } + /* TODO: optimize this - no reason to call CSQ twice */ + case IRIDIUM_MODEL: + { + ret = sbd9603_get_model(return_buf); + break; + } + case IRIDIUM_SIG_QUALITY: + { + ret = sbd9603_get_signalqual(return_buf); + break; + } + case IRIDIUM_REGSTATUS: + { + ret = sbd9603_get_regStatus(return_buf); + break; + } + default: + LOGGER("OBC::ERROR: Unknown param %d\n", param_id); + return false; + } + return ret; +} + +const Driver_fxnTable OBC_fxnTable = { + /* Message handlers */ + .cb_probe = _probe, + .cb_init = _init, + .cb_get_status = _get_status, +}; + + + + diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_led.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_led.c index 32b5118318..4a4030f21b 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_led.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_led.c @@ -1,61 +1,67 @@ -#include "src/registry/Framework.h" + +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_led.h" #include "inc/devices/led.h" -#include "inc/devices/ocmp_wrappers/ocmp_led.h" /* TODO: Implement enable and disable led commands in future if nedded */ -bool led_testpattern_control(void *driver, void *params) +bool led_testpattern_control(void *driver, void *param) { ReturnStatus status = RETURN_OK; - - switch ((ledTestParam) driver) { + ledTestParam *testPattern = (ledTestParam*)param; + switch (*testPattern) { case HCI_LED_OFF: { - status = hci_led_turnoff_all(); + status = hci_led_turnoff_all(driver); break; } case HCI_LED_RED: { - status = hci_led_turnon_red(); + status = hci_led_turnon_red(driver); break; } case HCI_LED_GREEN: { - status = hci_led_turnon_green(); + status = hci_led_turnon_green(driver); + break; } default: { - LOGGER_ERROR("HCILED::Unknown param %d\n", params); + LOGGER_ERROR("HCILED::Unknown param %d\n", *testPattern); + status = RETURN_NOTOK; } } - return status; + return (status == RETURN_OK); } -static ePostCode _probe(void *driver) +static ePostCode _probe(void *driver, POSTData* postData) { - return led_probe(); + led_configure(driver); + return led_probe(driver, postData); } static ePostCode _init(void *driver, const void *config, const void *alert_token) { - if (led_init() != RETURN_OK) { + if (led_init(driver) != RETURN_OK) { return POST_DEV_CFG_FAIL; } - if (hci_led_system_boot() != RETURN_OK) { + if (hci_led_system_boot(driver) != RETURN_OK) { return POST_DEV_CFG_FAIL; } return POST_DEV_CFG_DONE; } -const Driver HCI_LED = { - .name = "HCI_LED", - .status = NULL, - .config = NULL, - .alerts = NULL, - +const Driver_fxnTable LED_fxnTable = { /* Message handlers */ .cb_probe = _probe, .cb_init = _init, @@ -63,3 +69,4 @@ const Driver HCI_LED = { .cb_get_config = NULL, .cb_set_config = NULL, }; + diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4015.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4015.c index 0cb934c57c..55f67e7758 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4015.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4015.c @@ -1,7 +1,14 @@ -#include "src/registry/Framework.h" +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_ltc4015.h" #include "inc/devices/ltc4015.h" -#include "inc/devices/ocmp_wrappers/ocmp_ltc4015.h" typedef enum LTC4015Status { LTC4015_STATUS_BATTERY_VOLTAGE = 0, @@ -45,7 +52,7 @@ static bool _choose_battery_charger(LTC4015_Dev *dev) { static bool _get_status(void *driver, unsigned int param_id, void *return_buf) { if(!_choose_battery_charger(driver)) - return; + return false; switch (param_id) { case LTC4015_STATUS_BATTERY_VOLTAGE: { @@ -86,7 +93,7 @@ static bool _get_config(void *driver, unsigned int param_id, void *return_buf) { if(!_choose_battery_charger(driver)) - return; + return false; switch (param_id) { case LTC4015_CONFIG_BATTERY_VOLTAGE_LOW: { @@ -141,7 +148,7 @@ static bool _get_config(void *driver, unsigned int param_id, static bool _set_config(void *driver, unsigned int param_id, const void *data) { if(!_choose_battery_charger(driver)) - return; + return false; switch (param_id) { case LTC4015_CONFIG_BATTERY_VOLTAGE_LOW: { @@ -193,12 +200,13 @@ static bool _set_config(void *driver, unsigned int param_id, } } -static ePostCode _probe(void *driver) +static ePostCode _probe(void *driver, POSTData *postData) { + LTC4015_configure(driver); if(!_choose_battery_charger(driver)) - return; + return false; - return LTC4015_probe(driver); + return LTC4015_probe(driver, postData); } static void _alert_handler(LTC4015_Event evt, int16_t value, void *alert_data) @@ -235,7 +243,7 @@ static void _alert_handler(LTC4015_Event evt, int16_t value, void *alert_data) static ePostCode _init(void *driver, const void *config, const void *alert_token) { if(!_choose_battery_charger(driver)) - return; + return false; if (LTC4015_init(driver) != RETURN_OK) { return POST_DEV_CFG_FAIL; @@ -303,40 +311,7 @@ static ePostCode _init(void *driver, const void *config, return POST_DEV_CFG_DONE; } -const Driver LTC4015 = { - .name = "LTC4015", - .status = (Parameter[]){ - { .name = "batteryVoltage", .type = TYPE_INT16 }, - { .name = "batteryCurrent", .type = TYPE_INT16 }, - { .name = "systemVoltage", .type = TYPE_INT16 }, - { .name = "inputVoltage", .type = TYPE_INT16 }, - { .name = "inputCurrent", .type = TYPE_INT16 }, - { .name = "dieTemperature", .type = TYPE_INT16 }, - { .name = "ichargeDAC", .type = TYPE_INT16 }, - {} - }, - .config = (Parameter[]){ - { .name = "batteryVoltageLow", .type = TYPE_INT16 }, - { .name = "batteryVoltageHigh", .type = TYPE_INT16 }, - { .name = "batteryCurrentLow", .type = TYPE_INT16 }, - { .name = "inputVoltageLow", .type = TYPE_INT16 }, - { .name = "inputCurrentHigh", .type = TYPE_INT16 }, - { .name = "inputCurrentLimit", .type = TYPE_UINT16 }, - { .name = "icharge", .type = TYPE_UINT16 }, - { .name = "vcharge", .type = TYPE_UINT16 }, - { .name = "dieTemperature", .type = TYPE_INT16 }, - {} - }, - .alerts = (Parameter[]){ - { .name = "BVL", .type = TYPE_INT16 }, - { .name = "BVH", .type = TYPE_INT16 }, - { .name = "BCL", .type = TYPE_INT16 }, - { .name = "IVL", .type = TYPE_INT16 }, - { .name = "ICH", .type = TYPE_INT16 }, - { .name = "DTH", .type = TYPE_INT16 }, - {} - }, - +const Driver_fxnTable LTC4015_fxnTable = { /* Message handlers */ .cb_probe = _probe, .cb_init = _init, diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4274.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4274.c index 8436e60e63..b0eef146aa 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4274.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4274.c @@ -6,14 +6,11 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - -#include "src/registry/Framework.h" +#include "common/inc/ocmp_wrappers/ocmp_ltc4274.h" #include "helpers/array.h" #include "helpers/math.h" #include "inc/devices/ltc4274.h" -#include "inc/devices/ocmp_wrappers/ocmp_ltc4274.h" - typedef enum LTC7274Status { LTC7274_STATUS_DETECT = 0, @@ -41,6 +38,13 @@ typedef enum LTC7274Alert { LTC4274_ALERT_SUPPLY } LTC7274Alert; +bool LTC4274_reset(void *driver, void *params) +{ + ReturnStatus status = RETURN_OK; + status = ltc4274_reset(); + return status; +} + static bool _get_status(void *driver, unsigned int param_id, void *return_buf) { bool ret = true; @@ -187,9 +191,11 @@ static bool _get_config(void *driver, unsigned int param_id, } return ret; } -static ePostCode _probe(void *driver) +static ePostCode _probe(void *driver, POSTData *postData) { - return ltc4274_probe(driver); + ltc4274_config(driver); + return ltc4274_probe(driver, postData); + } static void _alert_handler(LTC4274_Event evt, @@ -263,35 +269,7 @@ static ePostCode _init(void *driver, const void *config, return POST_DEV_CFG_DONE; } -const Driver LTC4274 = { - .name = "PSE", - .status = (Parameter[]){ - { .name = "detectStatus", .type = TYPE_UINT16 }, - { .name = "classStatus", .type = TYPE_UINT16 }, - { .name = "powerGoodStatus", .type = TYPE_UINT16 }, - {} - }, - .config = (Parameter[]){ - { .name = "operatingMode", .type = TYPE_UINT16 }, - { .name = "detectEnable", .type = TYPE_UINT16 }, - { .name = "interruptMask", .type = TYPE_UINT16 }, - { .name = "interruptEnable", .type = TYPE_UINT16 }, - { .name = "pseHpEnable", .type = TYPE_UINT16 }, - {} - }, - .alerts = (Parameter[]){ - { .name = "NoAlert", .type = TYPE_UINT8 }, - { .name = "PowerEnable", .type = TYPE_UINT8 }, - { .name = "PowerGood", .type = TYPE_UINT8 }, - { .name = "DiconnectAlert", .type = TYPE_UINT8 }, - { .name = "DetectionAlert", .type = TYPE_UINT8 }, - { .name = "ClassAlert", .type = TYPE_UINT8 }, - { .name = "TCUTAler", .type = TYPE_UINT8 }, - { .name = "TStartAlert", .type = TYPE_UINT8 }, - { .name = "SupplyAlert", .type = TYPE_UINT8 }, - {} - }, - +const Driver_fxnTable LTC4274_fxnTable = { /* Message handlers */ .cb_probe = _probe, .cb_init = _init, diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4275.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4275.c index 25bef5a971..8f86fc9f8a 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4275.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_ltc4275.c @@ -6,13 +6,11 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ -#include "src/registry/Framework.h" +#include "common/inc/ocmp_wrappers/ocmp_ltc4275.h" #include "helpers/array.h" #include "helpers/math.h" #include "inc/devices/ltc4275.h" -#include "inc/devices/ocmp_wrappers/ocmp_ltc4275.h" - static bool _get_status(void *driver, unsigned int param_id, void *return_buf) @@ -22,7 +20,7 @@ static bool _get_status(void *driver, unsigned int param_id, case LTC4275_STATUS_CLASS: { ePDClassType *res = (ePDClassType*)return_buf; - if (ltc4275_get_class(res) == RETURN_OK) { + if (ltc4275_get_class(driver, res) == RETURN_OK) { ret = true; } } @@ -30,7 +28,7 @@ static bool _get_status(void *driver, unsigned int param_id, case LTC4275_STATUS_POWERGOOD: { ePDPowerState *res =(ePDPowerState*) return_buf; - if (ltc4275_get_power_good(res) == RETURN_OK) { + if (ltc4275_get_power_good(driver, res) == RETURN_OK) { ret = true; } break; @@ -46,9 +44,10 @@ static bool _get_status(void *driver, unsigned int param_id, /***************************************************************************** *****************************************************************************/ -static ePostCode _probe(void *driver) +static ePostCode _probe(void *driver, POSTData *postData) { - return ltc4275_probe(driver); + ltc4275_config(driver); + return ltc4275_probe(driver,postData); } /***************************************************************************** @@ -87,20 +86,7 @@ static ePostCode _init(void *driver, const void *config, return POST_DEV_CFG_DONE; } -const Driver LTC4275 = { - .name = "LTC4275", - .status = (Parameter[]){ - { .name = "class", .type = TYPE_ENUM }, - { .name = "powerGoodState", .type = TYPE_ENUM }, - {} - }, - .alerts = (Parameter[]){ - { .name = "INCOMPATIBLE", .type = TYPE_ENUM }, - { .name = "DISCONNECT", .type = TYPE_ENUM }, - { .name = "CONNECT", .type = TYPE_ENUM }, - {} - }, - +const Driver_fxnTable LTC4275_fxnTable = { /* Message handlers */ .cb_probe = _probe, .cb_init = _init, diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_mac.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_mac.c new file mode 100644 index 0000000000..89e5514b47 --- /dev/null +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_mac.c @@ -0,0 +1,232 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. +* All rights reserved. +* +* This source code is licensed under the BSD-style license found in the +* LICENSE file in the root directory of this source tree. An additional grant +* of patent rights can be found in the PATENTS file in the same directory. +*/ +#include "common/inc/ocmp_wrappers/ocmp_mac.h" + +#include "inc/common/global_header.h" + +#include +#include + +typedef enum { + OC_SYS_CONF_MAC_ADDRESS = 0 +} eOCConfigParamId; + +/***************************************************************************** + ** FUNCTION NAME : _get_mac_address + ** + ** DESCRIPTION : Get EC MAC address. + ** + ** ARGUMENTS : Pointer MAC address. + ** + ** RETURN TYPE : true on Success and false on Failure + ** + *****************************************************************************/ +static ReturnStatus _get_mac_address(uint8_t *macAddress) +{ + uint32_t ulUser0 = 0, ulUser1 = 0; + + /* Get the MAC address */ + if((FlashUserGet(&ulUser0, &ulUser1)) != 0) { + return RETURN_NOTOK; + } + uint8_t i = 0; + uint8_t temp[6] = {'\0'}; + + if ((ulUser0 != 0xffffffff) && (ulUser1 != 0xffffffff)) { + /* + * Convert the 24/24 split MAC address from NV ram into a 32/16 split + * MAC address needed to program the hardware registers, then program + * the MAC address into the Ethernet Controller registers. + */ + temp[0] = ((ulUser0 >> 0) & 0xff); + temp[1] = ((ulUser0 >> 8) & 0xff); + temp[2] = ((ulUser0 >> 16) & 0xff); + temp[3] = ((ulUser1 >> 0) & 0xff); + temp[4] = ((ulUser1 >> 8) & 0xff); + temp[5] = ((ulUser1 >> 16) & 0xff); + + for( i = 0; i < 6; i++ ) + { + sprintf((char *)&macAddress[i*2], "%X", ((temp[i]&0xf0) >> 4)); + sprintf((char *)&macAddress[(i*2)+1], "%X", temp[i]&0xf); + } + } else { + strncpy((char *)macAddress, "FFFFFFFFFFFF", 12); + } + + return RETURN_OK; +} + +static uint32_t str_to_val(const char *str) +{ + uint32_t value = 0; + uint8_t temp; + char *ptr; + value = strtol(str, &ptr, 16); + temp = (value & 0XFF0000) >> 16; + value = (value & 0X00FF00) | ((value & 0X0000FF) << 16); + value = value | temp; + return value; +} + +/***************************************************************************** + ** FUNCTION NAME : _set_mac_address + ** + ** DESCRIPTION : Set EC MAC address. + ** + ** ARGUMENTS : Pointer to MAC address + ** + ** RETURN TYPE : true on Success and false on Failure + ** + *****************************************************************************/ +ReturnStatus _set_mac_address(const uint8_t *macAddress) +{ + uint32_t ulUser0, ulUser1; + if(macAddress != NULL) { + char temp[6]; + strncpy(temp, (const char *)macAddress, 6); + ulUser0 = str_to_val(temp); + strncpy(temp, (const char *)(macAddress + 6), 6); + ulUser1 = str_to_val(temp); + /* Set the MAC address */ + if((FlashUserSet(ulUser0, ulUser1)) != 0) { + return RETURN_NOTOK; + } else { + if(FlashUserSave() != 0) { + return RETURN_NOTOK; + } + } + /*SysCtlDelay(2000000); + SysCtlReset();*/ + } + + return RETURN_OK; +} + +/***************************************************************************** + ** FUNCTION NAME : mac_get_config_parameters_data + ** + ** DESCRIPTION : Get OC Config Message. + ** + ** ARGUMENTS : pointer to Driver config, Parameter info + ** and pointer to MAC Address. + ** + ** RETURN TYPE : true on Success and false on Failure + ** + *****************************************************************************/ +static bool _mac_get_config_parameters_data(void **driver, + unsigned int param, + void *pOCConfigData) +{ + const eOCConfigParamId paramIndex = (eOCConfigParamId)param; + ReturnStatus status = RETURN_OK; + switch (paramIndex) { + case OC_SYS_CONF_MAC_ADDRESS: + { + memset(pOCConfigData, '\0', OC_MAC_ADDRESS_SIZE + 1); + status = _get_mac_address(pOCConfigData); + LOGGER_DEBUG("SYS:INFO:: OC Connect1 MAC Address: %s.\n", + pOCConfigData); + break; + } + default: + { + status = RETURN_NOTOK; + } + } + return (status == RETURN_OK); +} + +/***************************************************************************** + ** FUNCTION NAME : mac_set_config_parameters_data + ** + ** DESCRIPTION : Set OC Config Message. + ** + ** ARGUMENTS : pointer to Driver config, Parameter info + ** and pointer to MAC Address. + ** + ** RETURN TYPE : true on Success and false on Failure + ** + *****************************************************************************/ +static bool _mac_set_config_parameters_data(void **driver, + unsigned int param, + const void *pOCConfigData) +{ + const eOCConfigParamId paramIndex = (eOCConfigParamId)param; + ReturnStatus status = RETURN_OK; + switch (paramIndex) { + case OC_SYS_CONF_MAC_ADDRESS: + { + LOGGER_DEBUG("SYS:INFO:: Set OC Connect1 MAC Address to: %s.\n", + pOCConfigData); + _set_mac_address(pOCConfigData); + break; + } + default: + { + status = RETURN_NOTOK; + } + } + return (status == RETURN_OK); +} + +static ePostCode _probe_mac(void *driver, const void *config, + const void *alert_token) +{ + uint8_t macAddress[14]; + uint32_t ulUser0 = 0, ulUser1 = 0; + + /* Get the MAC address */ + if((FlashUserGet(&ulUser0, &ulUser1)) != 0) { + return POST_DEV_MISSING; + } + uint8_t i = 0; + uint8_t temp[6] = {'\0'}; + + if ((ulUser0 != 0xffffffff) && (ulUser1 != 0xffffffff)) { + /* + * Convert the 24/24 split MAC address from NV ram into a 32/16 split + * MAC address needed to program the hardware registers, then program + * the MAC address into the Ethernet Controller registers. + */ + temp[0] = ((ulUser0 >> 0) & 0xff); + temp[1] = ((ulUser0 >> 8) & 0xff); + temp[2] = ((ulUser0 >> 16) & 0xff); + temp[3] = ((ulUser1 >> 0) & 0xff); + temp[4] = ((ulUser1 >> 8) & 0xff); + temp[5] = ((ulUser1 >> 16) & 0xff); + + for( i = 0; i < 6; i++ ) + { + sprintf((char *)&macAddress[i*2], "%X", ((temp[i]&0xf0) >> 4)); + sprintf((char *)&macAddress[(i*2)+1], "%X", temp[i]&0xf); + } + } else { + strncpy((char *)macAddress, "FFFFFFFFFFFF", 12); + return POST_DEV_MISSING; + } + return POST_DEV_FOUND; +} + +/* Dummy Initialize for MAC */ +static ePostCode _init_mac(void *driver, const void *config, + const void *alert_token) +{ + return POST_DEV_NO_CFG_REQ; +} + + +const Driver_fxnTable MAC_fxnTable= { + .cb_probe = _probe_mac, + .cb_init = _init_mac, + .cb_get_config = _mac_get_config_parameters_data, + .cb_set_config = _mac_set_config_parameters_data, +}; + + diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_powerSource.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_powerSource.c index cfccfe0216..07d841b92b 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_powerSource.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_powerSource.c @@ -6,13 +6,11 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ +#include "common/inc/ocmp_wrappers/ocmp_powersource.h" -#include "src/registry/Framework.h" - -#include "helpers/array.h" +#include "common/inc/global/Framework.h" #include "inc/devices/powerSource.h" -#include "inc/devices/ocmp_wrappers/ocmp_powerSource.h" - +#include "helpers/array.h" static bool _get_status(void *driver, unsigned int param_id, void *return_buf) @@ -20,7 +18,7 @@ static bool _get_status(void *driver, unsigned int param_id, bool ret = false; /* TODO: As of now using pwr_get_sourc_info as it is for Power source Update. * Once we change the handing of the powersource status #298 this will also changed. */ - pwr_get_source_info(); + pwr_get_source_info(driver); if ( pwr_process_get_status_parameters_data(param_id,return_buf) == RETURN_OK) { ret = true; } @@ -29,29 +27,18 @@ static bool _get_status(void *driver, unsigned int param_id, static ePostCode _probe(void *driver) { - return POST_DEV_FOUND; + pwr_source_config(driver); + return POST_DEV_NOSTATUS; } static ePostCode _init(void *driver, const void *config, const void *alert_token) { pwr_source_init(); - return POST_DEV_CFG_DONE; + return POST_DEV_NO_CFG_REQ; } -const Driver PWRSRC = { - .name = "powerSource", - .status = (Parameter[]){ - { .name = "poeAvailability", .type = TYPE_UINT8 }, - { .name = "poeAccessebility", .type = TYPE_UINT8 }, - { .name = "solarAvailability", .type = TYPE_UINT8 }, - { .name = "solarAccessebility", .type = TYPE_UINT8 }, - { .name = "extBattAccessebility", .type = TYPE_UINT8 }, - { .name = "extBattAccessebility", .type = TYPE_UINT8 }, - { .name = "intBattAccessebility", .type = TYPE_UINT8 }, - { .name = "intBattAccessebility", .type = TYPE_UINT8 }, - {} - }, +const Driver_fxnTable PWRSRC_fxnTable = { /* Message handlers */ .cb_probe = _probe, .cb_init = _init, diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_rfpowermonitor.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_rfpowermonitor.c new file mode 100644 index 0000000000..f38ca300ae --- /dev/null +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_rfpowermonitor.c @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_rfpowermonitor.h" + +#include "inc/subsystem/rffe/rffe_powermonitor.h" + +/* OCMP message handler */ +static bool _ocmp_get_status(void *driver, unsigned int param_id, + void *return_buf) { + switch (param_id) { + case FE_POWER_STATUS_FORWARD: { + if (rffe_powermonitor_read_power(driver, + RFFE_STAT_FW_POWER, + return_buf) == RETURN_OK) { + return true; + } + break; + } + case FE_POWER_STATUS_REVERSE: { + if (rffe_powermonitor_read_power(driver, + RFFE_STAT_REV_POWER, + return_buf) == RETURN_OK) { + return true; + } + break; + } + default: + LOGGER_ERROR("RFPOWERMONITOR::Unknown status param %d\n", param_id); + return false; + } + return false; +} + +const Driver_fxnTable RFPowerMonitor_fxnTable = { + .cb_get_status = _ocmp_get_status, +}; diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_rfwatchdog.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_rfwatchdog.c new file mode 100644 index 0000000000..0be282a360 --- /dev/null +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_rfwatchdog.c @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_rfwatchdog.h" + +#include "inc/subsystem/rffe/rffe_ctrl.h" + +void _rffe_watchdog_handler(void *context) +{ + RfWatchdog_Cfg *cfg = context; + if (OcGpio_read(cfg->pin_alert_lb) > 0) { + OCMP_GenerateAlert(context, 0, NULL); + } + if (OcGpio_read(cfg->pin_alert_hb) > 0) { + OCMP_GenerateAlert(context, 1, NULL); + } +} + +static ePostCode _rffe_watchdog_init(void *driver, const void *config, + const void *alert_token) +{ + RfWatchdog_Cfg *cfg = (RfWatchdog_Cfg *)driver; + if (OcGpio_configure(cfg->pin_alert_lb, OCGPIO_CFG_INPUT)) { + return POST_DEV_CFG_FAIL; + } + if (OcGpio_configure(cfg->pin_alert_hb, OCGPIO_CFG_INPUT)) { + return POST_DEV_CFG_FAIL; + } + if (OcGpio_configure(cfg->pin_interrupt, OCGPIO_CFG_INPUT | + OCGPIO_CFG_INT_FALLING)) { + return POST_DEV_CFG_FAIL; + } + + ThreadedInt_Init(cfg->pin_interrupt, _rffe_watchdog_handler, cfg); + return POST_DEV_CFG_DONE; +} + +const Driver_fxnTable RFFEWatchdogP_fxnTable = { + .cb_init = _rffe_watchdog_init, +}; + + + diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_se98a.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_se98a.c index 556303f129..3ecc7bb65e 100644 --- a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_se98a.c +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_se98a.c @@ -1,9 +1,16 @@ -#include "src/registry/Framework.h" +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_se98a.h" #include "helpers/array.h" #include "helpers/math.h" #include "inc/devices/se98a.h" -#include "inc/devices/ocmp_wrappers/ocmp_se98a.h" typedef enum Se98aStatus { SE98A_STATUS_TEMPERATURE = 0, @@ -76,9 +83,9 @@ static bool _set_config(void *driver, unsigned int param_id, return false; } -static ePostCode _probe(void *driver) +static ePostCode _probe(void *driver, POSTData *postData) { - return se98a_probe(driver); + return se98a_probe(driver, postData); } static void _alert_handler(SE98A_Event evt, int8_t temperature, @@ -111,7 +118,6 @@ static ePostCode _init(void *driver, const void *config, if (se98a_init(driver) != RETURN_OK) { return POST_DEV_CFG_FAIL; } - if (!config) { return POST_DEV_CFG_DONE; } @@ -131,25 +137,7 @@ static ePostCode _init(void *driver, const void *config, return POST_DEV_CFG_DONE; } -const Driver SE98A = { - .name = "SE98A", - .status = (Parameter[]){ - { .name = "temperature", .type = TYPE_UINT8 }, - {} - }, - .config = (Parameter[]){ - { .name = "lowlimit", .type = TYPE_UINT8 }, - { .name = "highlimit", .type = TYPE_UINT8 }, - { .name = "critlimit", .type = TYPE_UINT8 }, - {} - }, - .alerts = (Parameter[]){ - { .name = "BAW", .type = TYPE_UINT8 }, - { .name = "AAW", .type = TYPE_UINT8 }, - { .name = "ACW", .type = TYPE_UINT8 }, - {} - }, - +const Driver_fxnTable SE98_fxnTable = { /* Message handlers */ .cb_probe = _probe, .cb_init = _init, diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_syncio.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_syncio.c new file mode 100644 index 0000000000..222e0b35cd --- /dev/null +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_syncio.c @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_syncio.h" + +#include "common/inc/global/Framework.h" +#include "inc/subsystem/sync/sync.h" + +const Driver_fxnTable SYNC_fxnTable = { + /* Message handlers */ + .cb_get_status = SYNC_GpsStatus, +}; + + diff --git a/firmware/ec/src/Devices/ocmp_wrappers/ocmp_testmodule.c b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_testmodule.c new file mode 100644 index 0000000000..fe0d76e5e2 --- /dev/null +++ b/firmware/ec/src/Devices/ocmp_wrappers/ocmp_testmodule.c @@ -0,0 +1,112 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "common/inc/ocmp_wrappers/ocmp_testmodule.h" + +#include "inc/common/global_header.h" + +typedef enum { + TWOG_IMEI = 0, + TWOG_IMSI = 1, + TWOG_GETMFG = 2, + TWOG_GETMODEL = 3, + TWOG_RSSI = 4, + TWOG_BER = 5, + TWOG_REGSTATUS = 6, + TWOG_NETWORK_OP_INFO = 7, + TWOG_CELLID = 8, + TWOG_BSIC = 9, + TWOG_LASTERR = 10, + TWOG_PARAM_MAX /* Limiter */ +} eTestModule_StatusParam; + +static ePostCode _probe(void **driver) +{ + /* TODO: this is a problem: we can't probe until we've initialized, but we + * don't init until after probing */ + return POST_DEV_FOUND; +} + + +static ePostCode _init(void *driver, const void **config, + const void *alert_token) +{ + return g510_task_init(driver, config,alert_token); +} + +static bool _get_status(void *driver, unsigned int param_id, void *return_buf) +{ + bool ret = false; + switch (param_id) { + case TWOG_IMEI: + { + ret = g510_get_imei(return_buf); + break; + } + case TWOG_IMSI: + { + ret = g510_get_imsi(return_buf); + break; + } + case TWOG_GETMFG: + { + ret = g510_get_mfg(return_buf); + break; + } + case TWOG_GETMODEL: + { + ret = g510_get_model(return_buf); + break; + } + /* TODO: optimize this - no reason to call CSQ twice */ + case TWOG_RSSI: + { + ret = g510_get_rssi(return_buf); + break; + } + case TWOG_BER: + { + ret = g510_get_ber(return_buf); + break; + } + case TWOG_REGSTATUS: + { + ret = g510_get_regStatus(return_buf); + break; + } + case TWOG_NETWORK_OP_INFO: + /* TODO: from +COPS=? */ + return false; + case TWOG_CELLID: + { + ret = g510_get_cellId(return_buf); + break; + } + case TWOG_BSIC: + { + /* TODO: from +MCELL? */ + return false; + } + case TWOG_LASTERR: + { + /* TODO: implement last error */ + return false; + } + default: + LOGGER("TESTMOD::ERROR: Unknown param %d\n", param_id); + return false; + } + return ret; +} + +const Driver_fxnTable G510_fxnTable = { + /* Message handlers */ + .cb_probe = _probe, + .cb_init = _init, + .cb_get_status = _get_status, +}; diff --git a/firmware/ec/src/Devices/powerSource.c b/firmware/ec/src/Devices/powerSource.c index da8f624419..0d39207053 100644 --- a/firmware/ec/src/Devices/powerSource.c +++ b/firmware/ec/src/Devices/powerSource.c @@ -10,18 +10,18 @@ //***************************************************************************** // HEADER FILES //***************************************************************************** -#include +#include "inc/devices/powerSource.h" + #include "Board.h" #include "inc/common/global_header.h" #include "inc/common/i2cbus.h" -#include #include "inc/subsystem/power/power.h" + +#include #include /***************************************************************************** * MACRO DEFINITIONS *****************************************************************************/ -extern void *sys_config[]; -#define PWR ((Power_Cfg *)sys_config[OC_SS_PWR]) static tPowerSource Power_SourceInfo[PWR_SRC_MAX]; @@ -74,6 +74,16 @@ static ReturnStatus pwr_source_inuse(ePowerSource *inUse) } return ret; } + +void pwr_source_config(PWRSRC_Dev* driver) +{ + //Configuring GPIOS + OcGpio_configure(&driver->cfg.pin_solar_aux_prsnt_n, OCGPIO_CFG_INPUT); + OcGpio_configure(&driver->cfg.pin_poe_prsnt_n, OCGPIO_CFG_INPUT); + OcGpio_configure(&driver->cfg.pin_int_bat_prsnt, OCGPIO_CFG_INPUT); + OcGpio_configure(&driver->cfg.pin_ext_bat_prsnt, OCGPIO_CFG_INPUT); +} + /***************************************************************************** ** FUNCTION NAME : pwr_source_init ** @@ -84,13 +94,9 @@ static ReturnStatus pwr_source_inuse(ePowerSource *inUse) ** RETURN TYPE : None ** *****************************************************************************/ -void pwr_source_init(void) +void pwr_source_init() { - ReturnStatus status = RETURN_NOTOK; - ePowerSource powerSource = PWR_SRC_AUX_OR_SOLAR ; ePowerSource itr = PWR_SRC_AUX_OR_SOLAR ; - uint8_t class =0x00; - for (; itr < PWR_SRC_MAX; itr++) { Power_SourceInfo[itr].powerSource = itr; Power_SourceInfo[itr].state = PWR_SRC_NON_AVAILABLE; @@ -107,7 +113,7 @@ void pwr_source_init(void) * * @return ReturnStatus */ -static ReturnStatus pwr_check_aux_or_solar(void) +static ReturnStatus pwr_check_aux_or_solar(PWRSRC_Dev *pwrSrcDev) { @@ -115,7 +121,7 @@ static ReturnStatus pwr_check_aux_or_solar(void) ePowerSourceState status=PWR_SRC_NON_AVAILABLE; //For Checking SOLAR POWER SOURCE uint8_t value = 0; - value = OcGpio_read(&PWR->pin_solar_aux_prsnt_n); + value = OcGpio_read(&pwrSrcDev->cfg.pin_solar_aux_prsnt_n); if (value == 0) { status=PWR_SRC_AVAILABLE; ret = RETURN_OK; @@ -133,13 +139,13 @@ static ReturnStatus pwr_check_aux_or_solar(void) * * @return ReturnStatus */ -static ReturnStatus pwr_check_poe(void) +static ReturnStatus pwr_check_poe(PWRSRC_Dev *pwrSrcDev) { ReturnStatus ret = RETURN_NOTOK; uint8_t value = 0; ePowerSourceState status=PWR_SRC_NON_AVAILABLE; //For Checking POE POWER SOURCE - value = OcGpio_read(&PWR->pin_poe_prsnt_n); + value = OcGpio_read(&pwrSrcDev->cfg.pin_poe_prsnt_n); if ( value == 0) { status=PWR_SRC_AVAILABLE; ret = RETURN_OK; @@ -157,14 +163,14 @@ static ReturnStatus pwr_check_poe(void) * * @return ReturnStatus */ -static ReturnStatus pwr_check_int_batt(void) +static ReturnStatus pwr_check_int_batt(PWRSRC_Dev *pwrSrcDev) { ReturnStatus ret = RETURN_NOTOK; uint8_t value = 0; ePowerSourceState status=PWR_SRC_NON_AVAILABLE; //For Checking INTERNAL BATTERY SOURCE - value = OcGpio_read(&PWR->pin_int_bat_prsnt); + value = OcGpio_read(&pwrSrcDev->cfg.pin_int_bat_prsnt); if (value == 0) { /* If read fails, we'll get a negative value */ status = PWR_SRC_AVAILABLE; ret = RETURN_OK; @@ -183,13 +189,13 @@ static ReturnStatus pwr_check_int_batt(void) * * @return ReturnStatus */ -static ReturnStatus pwr_check_ext_batt(void) +static ReturnStatus pwr_check_ext_batt(PWRSRC_Dev *pwrSrcDev) { ReturnStatus ret = RETURN_NOTOK; uint8_t value = 0; ePowerSourceState status=PWR_SRC_NON_AVAILABLE; - value = OcGpio_read(&PWR->pin_ext_bat_prsnt); + value = OcGpio_read(&pwrSrcDev->cfg.pin_ext_bat_prsnt); if (value == 0) { /* If read fails, we'll get a negative value */ status=PWR_SRC_AVAILABLE; ret = RETURN_OK; @@ -208,22 +214,22 @@ static ReturnStatus pwr_check_ext_batt(void) ** RETURN TYPE : None ** ******************************************************************************/ -static void pwr_check_presence_of_source(void) +static void pwr_check_presence_of_source(PWRSRC_Dev *pwrSrcDev) { ReturnStatus ret = RETURN_NOTOK; - ret = pwr_check_aux_or_solar(); + ret = pwr_check_aux_or_solar(pwrSrcDev); LOGGER("POWER:INFO:: Power Source Aux/Solar %s.\n", ((ret == RETURN_OK) ? "available" : "not available")); - ret = pwr_check_poe(); + ret = pwr_check_poe(pwrSrcDev); LOGGER("POWER:INFO:: Power Source POE %s.\n", ((ret == RETURN_OK) ? "available" : "not available")); - ret = pwr_check_int_batt(); + ret = pwr_check_int_batt(pwrSrcDev); LOGGER("POWER:INFO:: Power Source INTERNAL BATTERY %s.\n", ((ret == RETURN_OK) ? "available" : "not available")); - ret = pwr_check_ext_batt(); + ret = pwr_check_ext_batt(pwrSrcDev); LOGGER("POWER:INFO:: Power Source EXTERNAL BATTERY %s.\n", ((ret == RETURN_OK) ? "available" : "not available")); @@ -240,12 +246,12 @@ static void pwr_check_presence_of_source(void) ** RETURN TYPE : None ** *****************************************************************************/ -void pwr_get_source_info(void) +void pwr_get_source_info(PWRSRC_Dev *pwrSrcDev) { ReturnStatus status = RETURN_NOTOK; ePowerSource powerSource = PWR_SRC_AUX_OR_SOLAR; /* Check the presence of power sources*/ - pwr_check_presence_of_source(); + pwr_check_presence_of_source(pwrSrcDev); /* Find the primary power source and update Power Source info for same.*/ status = pwr_source_inuse(&powerSource); diff --git a/firmware/ec/src/Devices/sbdn9603.c b/firmware/ec/src/Devices/sbdn9603.c new file mode 100644 index 0000000000..37ea437bf5 --- /dev/null +++ b/firmware/ec/src/Devices/sbdn9603.c @@ -0,0 +1,255 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +//***************************************************************************** +// HEADER FILES +//***************************************************************************** +#include "Board.h" +#include "devices/uart/sbd.h" +#include "inc/common/global_header.h" +#include "inc/subsystem/obc/obc.h" +#include "inc/subsystem/sdr/sdr.h" /* temporary - Only required for 12v enable */ +#include "helpers/array.h" +#include "platform/oc-sdr/schema/schema.h" +#include "registry/SSRegistry.h" + +#include +#include +#include + +#include +#include + +//***************************************************************************** +// MACROS DEFINITION +//***************************************************************************** +#define OBC_TASK_PRIORITY 2 +#define OBC_TASK_STACK_SIZE 2048 + +#define SBD_WRITE_TIMEOUT 500 + +/* TODO: move to helper? */ +#define STATIC_STRLEN(s) (ARRAY_SIZE(s) - 1) + +//***************************************************************************** +// HANDLES DEFINITION +//***************************************************************************** + +extern OCSubsystem *ss_reg[]; +static UART_Handle uartIridium; +static SBD_Handle s_hSbd = NULL; + + +static UART_Handle open_comm(const Iridium_Cfg *iridium) +{ + DEBUG("Resetting Iridium module\n"); + + OcGpio_configure(&iridium->pin_enable, OCGPIO_CFG_OUTPUT | + OCGPIO_CFG_OUT_LOW); + OcGpio_configure(&iridium->pin_nw_avail, OCGPIO_CFG_INPUT); + + /* reset - for proper reset, Iridium should be disabled for ~2s */ + OcGpio_write(&iridium->pin_enable, false); /* Just to be sure it's low */ + Task_sleep(2100); // TODO: should be ~2s + OcGpio_write(&iridium->pin_enable, true); + Task_sleep(200); // TODO: idk...probably doesn't need to be long + + // Open Iridium UART + UART_Params uartParams; + UART_Params_init(&uartParams); + uartParams.writeDataMode = UART_DATA_BINARY; + uartParams.readDataMode = UART_DATA_BINARY; + uartParams.readReturnMode = UART_RETURN_FULL; + uartParams.readEcho = UART_ECHO_OFF; + uartParams.baudRate = 19200; + uartParams.dataLength = UART_LEN_8; + uartParams.parityType = UART_PAR_NONE; + uartParams.stopBits = UART_STOP_ONE; + uartParams.writeTimeout = SBD_WRITE_TIMEOUT; + return UART_open(iridium->uart, &uartParams); +} + +ReturnStatus sbd_init(const Iridium_Cfg *iridium) +{ + uartIridium = open_comm(iridium); + if (!uartIridium) { + return RETURN_NOTOK; + } + + /* Initialize SBD layers */ +// const SbdCallbackList cbList = { +// .sbdring = sbdring_cb, +// .ciev = sbdciev_cb, +// }; + s_hSbd = SBD_init(uartIridium, NULL, NULL); + if (!s_hSbd) { + return RETURN_NOTOK; + } + + /* TODO: module verification? */ + if (!SBD_k(s_hSbd, SBD_FLOW_CONTROL_HW) /* Enable HW flow control */ + || !SBD_sbdmta(s_hSbd, true) /* Ring indication enable */ + || !SBD_sbdareg(s_hSbd, SBD_AREG_MODE_AUTO) /* Auto registration */ + || !SBD_cier(s_hSbd, true, false, true, false, false)) { /* Service change indications */ + /* TODO: handle cleanup */ + s_hSbd = NULL; + return RETURN_NOTOK; + } + + return RETURN_OK; +} + +bool sbd9603_get_queueLength( OBC_Iridium_Status_Data *pIridiumStatusData) +{ + pIridiumStatusData->outQueueLen = 25; + return true; +} + +bool sbd9603_get_lastError( OBC_Iridium_Status_Data *pIridiumStatusData) +{ + pIridiumStatusData->lastErr = (OBC_lastError) { + .src = ERR_RC_INTERNAL, + .code = 5, + }; + return true; +} + +bool sbd9603_get_imei( OBC_Iridium_Status_Data *pIridiumStatusData) +{ + bool ret = true; + if (!s_hSbd) { + ret = false; + } + SbdcgsnInfo cgsnInfo; + if (!SBD_cgsn(s_hSbd, &cgsnInfo)) { + ret = false; + } + pIridiumStatusData->imei = strtoull(cgsnInfo.imei, NULL, 10); + return ret; +} + +bool sbd9603_get_mfg( OBC_Iridium_Status_Data *pIridiumStatusData) +{ + bool ret = true; + if (!s_hSbd) { + ret = false; + } + SbdCgmiInfo cgmiInfo; + if (!SBD_cgmi(s_hSbd, &cgmiInfo)) { + ret = false; + } + strncpy(pIridiumStatusData->mfg, cgmiInfo.mfg, + sizeof(pIridiumStatusData->mfg)); + return ret; +} + +bool sbd9603_get_model( OBC_Iridium_Status_Data *pIridiumStatusData) +{ + + bool ret = true; + if (!s_hSbd) { + ret = false; + } + SbdCgmmInfo cgmmInfo; + if (!SBD_cgmm(s_hSbd, &cgmmInfo)) { + ret = false; + } + /* Model string is verbose - if it's 9600 fam, replace with shorter + * model number since we only have 4 characters */ + char *model = cgmmInfo.model; + const char fam_str[] = "IRIDIUM 9600 Family"; + if (strncmp(model, fam_str, STATIC_STRLEN(fam_str)) == 0) { + model = "96xx"; + } + strncpy(pIridiumStatusData->model, model, + sizeof(pIridiumStatusData->model)); + return ret; +} + +bool sbd9603_get_signalqual( OBC_Iridium_Status_Data *pIridiumStatusData) +{ + bool ret = true; + if (!s_hSbd) { + ret = false; + } + SbdcsqInfo csqInfo; + if (!SBD_csqf(s_hSbd, &csqInfo)) { + ret = false; + } + pIridiumStatusData->rssi = csqInfo.rssi; + return ret; +} + +bool sbd9603_get_regStatus( OBC_Iridium_Status_Data *pIridiumStatusData) +{ + bool ret = true; + if (!s_hSbd) { + ret = false; + } + if (!SBD_sbdregRead(s_hSbd, &pIridiumStatusData->regStat)) { + ret = false; + } + return ret; +} + +#include "helpers/memory.h" + +static void loopback_test(SBD_Handle hSbd, bool debugLogs) +{ + static int loopCount = 1; + static unsigned int ticks = 0; + + if (ticks == 0) + ticks = Clock_getTicks(); + + if (debugLogs) { + System_printf("Loop %d\n", loopCount); + } + + // Generate a random string + static char msg[300]; + const int msgLen = 1 + (rand() % (sizeof(msg))); + + for (int i = 0; i < msgLen; ++i) { + msg[i] = rand() % 256; + } + + if (!SBD_sbdwb(hSbd, msg, msgLen)) { + System_abort("SBDWB Failed"); + } + + if (!SBD_sbdtc(hSbd)) { + System_abort("SBDTC Failed"); + } + + char ret[sizeof(msg)] = { }; + if (SBD_sbdrb(hSbd, ret, msgLen) < msgLen) { + System_abort("SBDRB Failed"); + } + + if (memcmp(msg, ret, msgLen) != 0) { + printMemory(msg, msgLen); + System_printf("\n"); + printMemory(ret, msgLen); + System_abort("Messages don't match"); + } + + // Only output every few iterations so printfs don't slow down test + if (loopCount % 10 == 0) { + if (debugLogs) { + System_printf("Time: %d\n", Clock_getTicks() - ticks); + System_flush(); + } + ticks = Clock_getTicks(); + } + loopCount++; + OCSubsystem *ss = ss_reg[OC_SS_OBC]; + /* FIXME: hack to keep thread alive so we keep looping */ + Semaphore_post(ss->sem); +} diff --git a/firmware/ec/src/Devices/se98a.c b/firmware/ec/src/Devices/se98a.c index cbbb579068..7735c47829 100644 --- a/firmware/ec/src/Devices/se98a.c +++ b/firmware/ec/src/Devices/se98a.c @@ -7,13 +7,13 @@ * of patent rights can be found in the PATENTS file in the same directory. */ #include "inc/devices/se98a.h" + #include "inc/common/byteorder.h" #include "devices/i2c/threaded_int.h" #include "helpers/math.h" #include "helpers/memory.h" #include - #include /***************************************************************************** @@ -328,9 +328,9 @@ ReturnStatus se98a_init(SE98A_Dev *dev) } /* Make sure we're talking to the right device */ - if (se98a_probe(dev) != POST_DEV_FOUND) { - return RETURN_NOTOK; - } + //if (se98a_probe(dev) != POST_DEV_FOUND) { + // return RETURN_NOTOK; + //} /* The only way to truly reset this device is to cycle power - we'll just * clear out the config register to be safe and clear any interrupts from @@ -383,7 +383,7 @@ ReturnStatus se98a_enable_alerts(SE98A_Dev *dev) /***************************************************************************** *****************************************************************************/ -ePostCode se98a_probe(SE98A_Dev *dev) +ePostCode se98a_probe(SE98A_Dev *dev, POSTData *postData) { uint8_t devId = 0x00; uint16_t manfId = 0x0000; @@ -400,6 +400,6 @@ ePostCode se98a_probe(SE98A_Dev *dev) if (manfId != SE98A_MFG_ID) { return POST_DEV_ID_MISMATCH; } - + post_update_POSTData(postData, dev->cfg.dev.bus, dev->cfg.dev.slave_addr,manfId, devId); return POST_DEV_FOUND; } diff --git a/firmware/ec/src/Devices/sx1509.c b/firmware/ec/src/Devices/sx1509.c index 20e146aa2e..314facf906 100644 --- a/firmware/ec/src/Devices/sx1509.c +++ b/firmware/ec/src/Devices/sx1509.c @@ -10,11 +10,11 @@ //***************************************************************************** // HEADER FILES //***************************************************************************** - #include "inc/devices/sx1509.h" #include "inc/common/global_header.h" #include "inc/common/byteorder.h" + /***************************************************************************** * REGISTER DEFINITIONS *****************************************************************************/ diff --git a/firmware/ec/src/Devices/uart/gsm.c b/firmware/ec/src/Devices/uart/gsm.c index ef771e81ae..50e3ff8fdd 100644 --- a/firmware/ec/src/Devices/uart/gsm.c +++ b/firmware/ec/src/Devices/uart/gsm.c @@ -20,6 +20,10 @@ #define CMGD_TIMEOUT 10000 #define CFUN_TIMEOUT 12000 +#define TESTMOD_TASK_PRIORITY 2 +#define TESTMOD_TASK_STACK_SIZE 2048 +static Char testmodTaskStack[TESTMOD_TASK_STACK_SIZE]; + static const char CTRL_Z = 26; static GsmCallbackList gsmCallbackList = {}; // TODO: move into handle @@ -289,8 +293,8 @@ bool GSM_cregRead(GSM_Handle handle, GsmCregInfo *info_out) { s_AtRes.param[3].type != AT_PARAM_TYPE_STR) { return false; } - info_out->lac = strtoull(s_AtRes.param[2].pStr, NULL, 16); - info_out->cid = strtoull(s_AtRes.param[3].pStr, NULL, 16); + info_out->lac = strtoumax(s_AtRes.param[2].pStr, NULL, 16); + info_out->cid = strtoumax(s_AtRes.param[3].pStr, NULL, 16); } return true; diff --git a/firmware/ec/src/Devices/uart/sbd.h b/firmware/ec/src/Devices/uart/sbd.h index d5e79893a6..d9faae76d7 100644 --- a/firmware/ec/src/Devices/uart/sbd.h +++ b/firmware/ec/src/Devices/uart/sbd.h @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #pragma once #include diff --git a/firmware/ec/src/bigbrother.c b/firmware/ec/src/bigbrother.c index 2a617a3325..9417886a4b 100644 --- a/firmware/ec/src/bigbrother.c +++ b/firmware/ec/src/bigbrother.c @@ -14,8 +14,8 @@ #include "Board.h" #include "comm/gossiper.h" +#include "common/inc/global/ocmp_frame.h" #include "drivers/OcGpio.h" -#include "inc/common/ocmp_frame.h" #include "inc/common/post.h" #include "inc/common/system_states.h" #include "inc/subsystem/hci/hci_buzzer.h" @@ -98,109 +98,15 @@ static ReturnStatus bigbrother_process_tx_msg(uint8_t *pMsg) } /***************************************************************************** - ** FUNCTION NAME : bb_process_sys_post_msg + ** FUNCTION NAME : uart_enable ** - ** DESCRIPTION : Start the procudre for enabling POST. + ** DESCRIPTION : Enable UART link between EC and AP. ** ** ARGUMENTS : None ** - ** RETURN TYPE : ReturnStatus + ** RETURN TYPE : Success or failure ** *****************************************************************************/ -static ReturnStatus bb_sys_post_enable(void) -{ - ReturnStatus status = RETURN_OK; - LOGGER("POST:INFO:: Starting POST test for OpenCellular.\n"); - - OCMPMessageFrame *postExeMsg = create_ocmp_msg_frame(OC_SS_BB, - OCMP_MSG_TYPE_POST, - OCMP_AXN_TYPE_ACTIVE, - 0x00, - 0x00, - 1); - //OCMPMessageFrame *postExeMsg = (OCMPMessageFrame *)OCMP_mallocFrame(1); - if (postExeMsg != NULL) { - postExeMsg->message.ocmp_data[0] = status; - Util_enqueueMsg(postRxMsgQueue, semPOSTMsg, (uint8_t*) postExeMsg); - } - return status; -} - -/***************************************************************************** - ** FUNCTION NAME : bb_sys_post_get_results - ** - ** DESCRIPTION : Get POST results from EEPROM. - ** - ** ARGUMENTS : None - ** - ** RETURN TYPE : ReturnStatus - ** - *****************************************************************************/ -ReturnStatus bb_sys_post_get_results(OCMPMessageFrame *getpostResultMsg) -{ - ReturnStatus status = RETURN_OK; - /* Return the POST results*/ - uint8_t iter = 0x00; - uint8_t index = 0x00; - - /* Get the subssystem info for which message is required */ - OCMPMessageFrame *postResultMsg = create_ocmp_msg_frame( - getpostResultMsg->message.subsystem, OCMP_MSG_TYPE_POST, - OCMP_AXN_TYPE_REPLY,0x00,0x00,30); - if (postResultMsg) { - /* Getting data assigned*/ - postResultMsg->header.ocmp_sof = getpostResultMsg->header.ocmp_sof; - postResultMsg->header.ocmp_interface = getpostResultMsg->header - .ocmp_interface; - postResultMsg->header.ocmp_seqNumber = getpostResultMsg->header - .ocmp_seqNumber; - for (iter = 0; iter < 30; iter++) { - if (PostResult[iter].subsystem - == getpostResultMsg->message.ocmp_data[0]) { - postResultMsg->message.ocmp_data[(5 * index) + 0] = - PostResult[iter].subsystem; //SubSystem - postResultMsg->message.ocmp_data[(5 * index) + 1] = - PostResult[iter].devSno; //Device serial Number - postResultMsg->message.ocmp_data[(5 * index) + 2] = - (PostResult[iter].devId & 0xFF00) >> 8; //Device Id MSB - postResultMsg->message.ocmp_data[(5 * index) + 3] = - (PostResult[iter].devId & 0x00FF); //Device Id LSB - postResultMsg->message.ocmp_data[(5 * index) + 4] = - PostResult[iter].status; //Status ok - index++; - } - } - LOGGER_DEBUG("BIGBROTHER:INFO::POST message sent for subsystem 0x%x.\n"); - /*Size of payload*/ - postResultMsg->header.ocmp_frameLen = index * 5; - /*Updating Subsystem*/ - //postResultMsg->message.subsystem = (OCMPSubsystem)PostResult[iter].subsystem; - /* Number of devices found under subsytem*/ - postResultMsg->message.parameters = index; - Util_enqueueMsg(gossiperTxMsgQueue, semGossiperMsg, - (uint8_t*) postResultMsg); - index = 0; - } else { - LOGGER("BIGBROTHER:ERROR:: Failed to allocate memory for POST results.\n"); - } - /* Free memory for request message */ - if (getpostResultMsg) { - free(getpostResultMsg); - } - return status; -} - -/***************************************************************************** - ** FUNCTION NAME : eeprom_enable_write - ** - ** DESCRIPTION : Read the values from the EEPROM register. - ** - ** ARGUMENTS : EEPROM (Slave) address, Register address and - ** pointer to value read. - ** - ** RETURN TYPE : Success or failure - ** - *****************************************************************************/ extern OcGpio_Pin pin_uart_sel; ReturnStatus uart_enable() @@ -211,122 +117,6 @@ ReturnStatus uart_enable() return RETURN_OK; } -/***************************************************************************** - ** FUNCTION NAME : bb_sys_post_complete - ** - ** DESCRIPTION : Get POST results from EEPROM. - ** - ** ARGUMENTS : None - ** - ** RETURN TYPE : ReturnStatus - ** - *****************************************************************************/ -ReturnStatus bb_sys_post_complete(OCMPMessageFrame *postResultMsg) -{ - ReturnStatus status = RETURN_OK; - LOGGER_DEBUG("BIGBROTHER:INFO::POST test is completed.\n"); - return status; -} - -/***************************************************************************** - ** FUNCTION NAME : bb_process_sys_post_msg - ** - ** DESCRIPTION : Start the procudre for enabling POST. - ** - ** ARGUMENTS : None - ** - ** RETURN TYPE : ReturnStatus - ** - *****************************************************************************/ -static ReturnStatus bb_sys_post_activate(OCMPMessageFrame *postExeMsg) -{ - /*TODO: Look if all the task has been spwaned.*/ - ReturnStatus status = RETURN_OK; - LOGGER_DEBUG("BIGBROTHER:INFO::Processing Big Brother subsystem POST Activate message.\n"); - if (postExeMsg != NULL) { - postExeMsg->message.ocmp_data[0] = status; - Util_enqueueMsg(postRxMsgQueue, semPOSTMsg, (uint8_t*) postExeMsg); - } - return RETURN_OK; -} - -/***************************************************************************** - ** FUNCTION NAME : bb_process_sys_post_msg - ** - ** DESCRIPTION : Processes the big brother incoming post messages. - ** - ** ARGUMENTS : Pointer to OCMPMessageFrame structure - ** - ** RETURN TYPE : ReturnStatus - ** - *****************************************************************************/ -static ReturnStatus bb_process_sys_post_msg(OCMPMessageFrame *pMsg) -{ - ReturnStatus status = RETURN_NOTOK; - LOGGER_DEBUG("BIGBROTHER:INFO::Processing Big Brother subsystem POST message.\n"); - switch (pMsg->message.action) { - case OCMP_AXN_TYPE_ENABLE: - { - status = bb_sys_post_enable(); - bigbrother_process_tx_msg((uint8_t*) pMsg); - break; - } - case OCMP_AXN_TYPE_ACTIVE: - { - status = bb_sys_post_activate(pMsg); - break; - } - case OCMP_AXN_TYPE_GET: - { - status = bb_sys_post_get_results(pMsg); - break; - } - case OCMP_AXN_TYPE_REPLY: - { - /* Sent by POST once all the testing is over*/ - //Change system state to initialized. - status = bb_sys_post_complete(pMsg); - //Event_post(interruptEvent, Event_Id_00); - break; - } - default: - { - LOGGER_ERROR("BIGBROTHER::ERROR::No such action type present in the OpenCellular System for POST message.\n"); - if (pMsg) - free(pMsg); - } - } - return status; -} - -/***************************************************************************** - ** FUNCTION NAME : bb_process_sys_msg - ** - ** DESCRIPTION : Processes the big brother incoming messages for - ** OpenCellular system. - ** - ** ARGUMENTS : Pointer to OCMPMessageFrame structure - ** - ** RETURN TYPE : None - ** - *****************************************************************************/ -static void bb_process_sys_msg(OCMPMessageFrame *pMsg) -{ - LOGGER_DEBUG("BIGBROTHER:INFO::Processing Big Brother System messages.\n"); - switch (pMsg->message.msgtype) { - case OCMP_MSG_TYPE_POST: - bb_process_sys_post_msg(pMsg); - break; - default: - LOGGER_ERROR("BIGBROTHER::ERROR::No such message type present in " - "the OpenCellular System.\n"); - if (pMsg) { - free(pMsg); - } - break; - } -} - /***************************************************************************** ** FUNCTION NAME : bigbrother_process_rx_msg ** @@ -343,21 +133,18 @@ static ReturnStatus bigbrother_process_rx_msg(uint8_t *pMsg) LOGGER_DEBUG("BIGBROTHER:INFO:: Processing Big Brother RX Message.\n"); OCMPMessageFrame * pOCMPMessageFrame = (OCMPMessageFrame *) pMsg; if (pOCMPMessageFrame != NULL) { - LOGGER_DEBUG("BIGBROTHER:INFO:: RX Msg recieved with Length: 0x%x, Interface: 0x%x, Seq.No: 0x%x, TimeStamp: 0x%x.\n", - pOCMPMessageFrame->header.ocmp_frameLen, - pOCMPMessageFrame->header.ocmp_interface, - pOCMPMessageFrame->header.ocmp_seqNumber, - pOCMPMessageFrame->header.ocmp_timestamp); + LOGGER_DEBUG("BIGBROTHER:INFO:: RX Msg recieved with Length: 0x%x," + "Interface: 0x%x, Seq.No: 0x%x, TimeStamp: 0x%x.\n", + pOCMPMessageFrame->header.ocmpFrameLen, + pOCMPMessageFrame->header.ocmpInterface, + pOCMPMessageFrame->header.ocmpSeqNumber, + pOCMPMessageFrame->header.ocmpTimestamp); // Forward this to respective subsystem. - if (pOCMPMessageFrame->message.subsystem == OC_SS_BB) { - bb_process_sys_msg(pOCMPMessageFrame); - } else { - if (!SSRegistry_sendMessage(pOCMPMessageFrame->message.subsystem, - pMsg)) { - LOGGER_ERROR("BIGBROTHER::ERROR::Subsystem %d doesn't exist\n", - pOCMPMessageFrame->message.subsystem); - free(pMsg); - } + if (!SSRegistry_sendMessage(pOCMPMessageFrame->message.subsystem, + pMsg)) { + LOGGER_ERROR("BIGBROTHER::ERROR::Subsystem %d doesn't exist\n", + pOCMPMessageFrame->message.subsystem); + free(pMsg); } } else { LOGGER_ERROR("BIGBROTHER:ERROR:: No message recieved.\n"); diff --git a/firmware/ec/src/comm/gossiper.c b/firmware/ec/src/comm/gossiper.c index 3d93882527..5c981cc0a2 100644 --- a/firmware/ec/src/comm/gossiper.c +++ b/firmware/ec/src/comm/gossiper.c @@ -11,9 +11,10 @@ * HEADER FILES *****************************************************************************/ #include "comm/gossiper.h" + +#include "common/inc/global/ocmp_frame.h" #include "inc/common/bigbrother.h" #include "inc/common/global_header.h" -#include "inc/common/ocmp_frame.h" #include "inc/interfaces/uartdma.h" #include @@ -182,10 +183,10 @@ static ReturnStatus gossiper_process_rx_msg(uint8_t *pMsg) OCMPMessageFrame * pOCMPMessageFrame = (OCMPMessageFrame *) pMsg; if (pOCMPMessageFrame != NULL) { LOGGER_DEBUG("GOSSIPER:INFO:: RX Msg recieved with Length: 0x%x, Interface: 0x%x, Seq.No: 0x%x, TimeStamp: 0x%x.\n", - pOCMPMessageFrame->header.ocmp_frameLen, - pOCMPMessageFrame->header.ocmp_interface, - pOCMPMessageFrame->header.ocmp_seqNumber, - pOCMPMessageFrame->header.ocmp_timestamp); + pOCMPMessageFrame->header.ocmpFrameLen, + pOCMPMessageFrame->header.ocmpInterface, + pOCMPMessageFrame->header.ocmpSeqNumber, + pOCMPMessageFrame->header.ocmpTimestamp); /*Update the Debug info required based on the debug jumper connected*/ //status = CheckDebugEnabled() if (pOCMPMessageFrame->message.msgtype == OCMP_MSG_TYPE_DEBUG) { @@ -221,15 +222,15 @@ static ReturnStatus gossiper_process_tx_msg(uint8_t *pMsg) LOGGER_DEBUG("GOSSIPER:INFO:: Processing Gossiper TX Message.\n"); OCMPMessageFrame * pOCMPMessageFrame = (OCMPMessageFrame *) pMsg; if (pOCMPMessageFrame != NULL) { - if (pOCMPMessageFrame->header.ocmp_interface == OCMP_COMM_IFACE_UART) { + if (pOCMPMessageFrame->header.ocmpInterface == OCMP_COMM_IFACE_UART) { status = gossiper_uart_send_msg(pMsg); - } else if (pOCMPMessageFrame->header.ocmp_interface + } else if (pOCMPMessageFrame->header.ocmpInterface == OCMP_COMM_IFACE_ETHERNET) { status = gossiper_ethernet_send_msg(pMsg); - } else if (pOCMPMessageFrame->header.ocmp_interface + } else if (pOCMPMessageFrame->header.ocmpInterface == OCMP_COMM_IFACE_SBD) { // Will be added later. - } else if (pOCMPMessageFrame->header.ocmp_interface + } else if (pOCMPMessageFrame->header.ocmpInterface == OCMP_COMM_IFACE_USB) { status = gossiper_usb_send_msg(pMsg); } diff --git a/firmware/ec/src/comm/gossiper.h b/firmware/ec/src/comm/gossiper.h index 7203d64206..1fd6672765 100644 --- a/firmware/ec/src/comm/gossiper.h +++ b/firmware/ec/src/comm/gossiper.h @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ + #ifndef GOSSIPER_H_ #define GOSSIPER_H_ diff --git a/firmware/ec/src/drivers/GpioNative.c b/firmware/ec/src/drivers/GpioNative.c index 68911f49d5..ff89fe3392 100644 --- a/firmware/ec/src/drivers/GpioNative.c +++ b/firmware/ec/src/drivers/GpioNative.c @@ -18,6 +18,10 @@ static GateMutex_Handle s_cb_data_mutex; +static int GpioNative_probe(void) { + //This probe function is just a dummy as we are all ready accessing EC. + return OCGPIO_SUCCESS; +} void GpioNative_init(void) { s_cb_data_mutex = GateMutex_create(NULL, NULL); } @@ -167,6 +171,7 @@ static int GpioNative_enableInt(const OcGpio_Pin *pin) { } const OcGpio_FnTable GpioNative_fnTable = { + .probe = GpioNative_probe, .write = GpioNative_write, .read = GpioNative_read, .configure = GpioNative_configure, diff --git a/firmware/ec/src/drivers/GpioPCA9557.c b/firmware/ec/src/drivers/GpioPCA9557.c index db28d3f01f..454a1c97e7 100644 --- a/firmware/ec/src/drivers/GpioPCA9557.c +++ b/firmware/ec/src/drivers/GpioPCA9557.c @@ -14,6 +14,16 @@ #include "inc/common/global_header.h" #include "inc/devices/pca9557.h" +static int GpioPCA9557_probe(const OcGpio_Port *port) { + /* if we are able to read configuration register this means PCA device is accessible*/ + const PCA9557_Cfg *pca_cfg = port->cfg; + PCA9557_Obj *obj = port->object_data; + if (PCA9557_getConfig(&pca_cfg->i2c_dev, &obj->reg_config) != RETURN_OK) { + return OCGPIO_FAILURE; + } + return OCGPIO_SUCCESS; +} + static int GpioPCA9557_init(const OcGpio_Port *port) { const PCA9557_Cfg *pca_cfg = port->cfg; PCA9557_Obj *obj = port->object_data; @@ -152,6 +162,7 @@ static int GpioPCA9557_enableInt(const OcGpio_Pin *pin) { } const OcGpio_FnTable GpioPCA9557_fnTable = { + .probe = GpioPCA9557_probe, .init = GpioPCA9557_init, .write = GpioPCA9557_write, .read = GpioPCA9557_read, diff --git a/firmware/ec/src/drivers/GpioSX1509.c b/firmware/ec/src/drivers/GpioSX1509.c index d6a5a8df66..7fd6ace204 100644 --- a/firmware/ec/src/drivers/GpioSX1509.c +++ b/firmware/ec/src/drivers/GpioSX1509.c @@ -55,6 +55,17 @@ static void HandleIRQ(void *context) { } } +static int GpioSX1509_probe(const OcGpio_Port *port) { + /* if we are able to read configuration register this means PCA device is accessible*/ + const SX1509_Cfg *sx_cfg = port->cfg; + SX1509_Obj *obj = port->object_data; + uint8_t input_reg; + if (ioexp_led_get_data(&sx_cfg->i2c_dev, 0, &input_reg) != RETURN_OK) { + return OCGPIO_FAILURE; + } + return OCGPIO_SUCCESS; +} + static int GpioSX1509_init(const OcGpio_Port *port) { const SX1509_Cfg *sx_cfg = port->cfg; SX1509_Obj *obj = port->object_data; @@ -372,6 +383,7 @@ cleanup: } const OcGpio_FnTable GpioSX1509_fnTable = { + .probe = GpioSX1509_probe, .init = GpioSX1509_init, .write = GpioSX1509_write, .read = GpioSX1509_read, diff --git a/firmware/ec/src/drivers/GpioSX1509.h b/firmware/ec/src/drivers/GpioSX1509.h index 87292532e2..054a476f6e 100644 --- a/firmware/ec/src/drivers/GpioSX1509.h +++ b/firmware/ec/src/drivers/GpioSX1509.h @@ -6,14 +6,12 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef _GPIOSX1509_H_ #define _GPIOSX1509_H_ -#include "OcGpio.h" - -#include "inc/common/ocmp_frame.h" +#include "common/inc/global/ocmp_frame.h" #include "inc/devices/sx1509.h" +#include "OcGpio.h" #include diff --git a/firmware/ec/src/drivers/OcGpio.c b/firmware/ec/src/drivers/OcGpio.c index bbf210d5e4..579f53cd9b 100644 --- a/firmware/ec/src/drivers/OcGpio.c +++ b/firmware/ec/src/drivers/OcGpio.c @@ -6,6 +6,5 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - -#include "OcGpio.h" +#include "drivers/OcGpio.h" diff --git a/firmware/ec/src/drivers/OcGpio.h b/firmware/ec/src/drivers/OcGpio.h index 89ce4f0e6f..1f881ff7a2 100644 --- a/firmware/ec/src/drivers/OcGpio.h +++ b/firmware/ec/src/drivers/OcGpio.h @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef _OCGPIO_H_ #define _OCGPIO_H_ @@ -34,6 +33,7 @@ typedef int (*OcGpio_disableIntFn) (const OcGpio_Pin *pin); typedef int (*OcGpio_enableIntFn) (const OcGpio_Pin *pin); typedef struct OcGpio_FnTable { + OcGpio_initFn probe; OcGpio_initFn init; /*!< Port initialization - called once */ OcGpio_writeFn write; OcGpio_readFn read; @@ -148,13 +148,30 @@ typedef union OcGpio_ioCfg { * OcGpio.c instead. */ +/*! Probe the device for POStT + * probe function + * @param pin OcGPio_Port pointer to the driver instance to find the device + * @return 0 on success, negative on failure + */ +static inline int OcGpio_probe(const OcGpio_Port *port) { + if( port && port->fn_table && port->fn_table->probe) { + return port->fn_table->probe(port); + } else { + return OCGPIO_FAILURE; + } +} + /*! Initialize the port - tempted to remove in favor of more generic device * init function * @param pin OcGPio_Port pointer to the driver instance to initialize * @return 0 on success, negative on failure */ static inline int OcGpio_init(const OcGpio_Port *port) { - return port->fn_table->init(port); + if( port && port->fn_table && port->fn_table->init) { + return port->fn_table->init(port); + } else { + return OCGPIO_FAILURE; + } } /*! Write a value to a GPIO pin @@ -163,7 +180,12 @@ static inline int OcGpio_init(const OcGpio_Port *port) { * @return 0 on success, negative on failure */ static inline int OcGpio_write(const OcGpio_Pin *pin, bool value) { - return pin->port->fn_table->write(pin, value); + if( pin && pin->port && pin->port->fn_table && + pin->port->fn_table->write) { + return pin->port->fn_table->write(pin, value); + } else { + return OCGPIO_FAILURE; + } } /*! Read a value from a GPIO pin @@ -171,7 +193,12 @@ static inline int OcGpio_write(const OcGpio_Pin *pin, bool value) { * @return Boolean value of pin, or negative if failure */ static inline int OcGpio_read(const OcGpio_Pin *pin) { - return pin->port->fn_table->read(pin); + if( pin && pin->port && pin->port->fn_table && + pin->port->fn_table->read) { + return pin->port->fn_table->read(pin); + } else { + return OCGPIO_FAILURE; + } } /*! Configure a GPIO pin's parameters (both io and hw params) @@ -181,7 +208,12 @@ static inline int OcGpio_read(const OcGpio_Pin *pin) { * @return 0 on success, negative on failure */ static inline int OcGpio_configure(const OcGpio_Pin *pin, uint32_t cfg) { - return pin->port->fn_table->configure(pin, cfg); + if( pin && pin->port && pin->port->fn_table && + pin->port->fn_table->configure) { + return pin->port->fn_table->configure(pin, cfg); + } else { + return OCGPIO_FAILURE; + } } /*! Add a callback subscriber to an interrupt-enabled pin @@ -194,7 +226,12 @@ static inline int OcGpio_configure(const OcGpio_Pin *pin, uint32_t cfg) { static inline int OcGpio_setCallback (const OcGpio_Pin *pin, OcGpio_CallbackFn callback, void *context) { - return pin->port->fn_table->setCallback(pin, callback, context); + if( pin && pin->port && pin->port->fn_table && + pin->port->fn_table->setCallback) { + return pin->port->fn_table->setCallback(pin, callback, context); + } else { + return OCGPIO_FAILURE; + } } /*! Disable pin interrupt @@ -202,7 +239,12 @@ static inline int OcGpio_setCallback (const OcGpio_Pin *pin, * @return 0 on success, negative on failure */ static inline int OcGpio_disableInt(const OcGpio_Pin *pin) { - return pin->port->fn_table->disableInt(pin); + if( pin && pin->port && pin->port->fn_table && + pin->port->fn_table->disableInt) { + return pin->port->fn_table->disableInt(pin); + } else { + return OCGPIO_FAILURE; + } } /*! Enable pin interrupt @@ -212,7 +254,12 @@ static inline int OcGpio_disableInt(const OcGpio_Pin *pin) { * @return 0 on success, negative on failure */ static inline int OcGpio_enableInt(const OcGpio_Pin *pin) { - return pin->port->fn_table->enableInt(pin); + if( pin && pin->port && pin->port->fn_table && + pin->port->fn_table->enableInt) { + return pin->port->fn_table->enableInt(pin); + } else { + return OCGPIO_FAILURE; + } } #endif /* _OCGPIO_H_ */ diff --git a/firmware/ec/src/drivers/PinGroup.c b/firmware/ec/src/drivers/PinGroup.c index 7417d9a494..0de4f7c5e9 100644 --- a/firmware/ec/src/drivers/PinGroup.c +++ b/firmware/ec/src/drivers/PinGroup.c @@ -42,7 +42,7 @@ ReturnStatus PinGroup_read(const PinGroup *group, uint8_t *value) if (group->pins[i].port) { int pin_val = OcGpio_read(&group->pins[i]); if (pin_val > OCGPIO_FAILURE) { - *value |= (0x01 << i); + *value |= (pin_val << i); } else { return RETURN_NOTOK; } diff --git a/firmware/ec/src/drivers/PinGroup.h b/firmware/ec/src/drivers/PinGroup.h index d1e43a3ddd..10155ddf23 100644 --- a/firmware/ec/src/drivers/PinGroup.h +++ b/firmware/ec/src/drivers/PinGroup.h @@ -6,7 +6,6 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #ifndef _PIN_GROUP_H_ #define _PIN_GROUP_H_ diff --git a/firmware/ec/src/drivers/mdio_bb.c b/firmware/ec/src/drivers/mdio_bb.c index 76316e2e76..0a8cecf52f 100644 --- a/firmware/ec/src/drivers/mdio_bb.c +++ b/firmware/ec/src/drivers/mdio_bb.c @@ -174,7 +174,7 @@ int mdiobb_write(int phy, int reg, uint16_t val) return 0; } -void mdiobb_write_data(int smi_device, int reg_addr, int data) +void mdiobb_write_by_paging(int smi_device, int reg_addr, int data) { int read_val = 0; int write_reg = 0; @@ -201,7 +201,7 @@ void mdiobb_write_data(int smi_device, int reg_addr, int data) } while (1); } -int mdiobb_read_data(int smi_device, int reg_addr) +int mdiobb_read_by_paging(int smi_device, int reg_addr) { int read_val = 0xf00f; int write_reg = 0; @@ -233,7 +233,7 @@ int mdiobb_read_data(int smi_device, int reg_addr) } /* Try to write directly using 0x18 and 0x19 registers */ -void mdiobb_write_data_c45( int smi_device, +void mdiobb_write_by_paging_c45( int smi_device, unsigned int reg_addr, unsigned int data) { @@ -317,7 +317,7 @@ void mdiobb_write_data_c45( int smi_device, } /* try to read the C45 registers using 13 and 14 registers */ -unsigned int mdiobb_read_data_c45(int smi_device, unsigned int reg_addr) +unsigned int mdiobb_read_by_paging_c45(int smi_device, unsigned int reg_addr) { unsigned int read_val = 0xf00f; unsigned int write_reg = 0; @@ -407,7 +407,7 @@ void mdiobb_set_bits(int smi_device, int reg_addr, int datamask) /* * First take the contains of the register */ - read_val = mdiobb_read_data(smi_device, reg_addr); + read_val = mdiobb_read_by_paging(smi_device, reg_addr); datamask |= read_val; /* @@ -441,7 +441,7 @@ void mdiobb_clear_bits(int smi_device, int reg_addr, int datamask) /* * First take the contains of the register */ - read_val = mdiobb_read_data(smi_device, reg_addr); + read_val = mdiobb_read_by_paging(smi_device, reg_addr); datamask = (~datamask) & read_val; /* * First make sure Switch is idle for the operation by reading the bit 15 @@ -475,11 +475,11 @@ void mdiobb_set_bits_C45( int smi_device, /* * First take the contains of the register and set the bits. */ - read_val = mdiobb_read_data_c45(smi_device, reg_addr); + read_val = mdiobb_read_by_paging_c45(smi_device, reg_addr); datamask |= read_val; /* Write back into the register */ - mdiobb_write_data_c45(smi_device, reg_addr, datamask); + mdiobb_write_by_paging_c45(smi_device, reg_addr, datamask); } void mdiobb_clear_bits_C45( int smi_device, @@ -491,11 +491,11 @@ void mdiobb_clear_bits_C45( int smi_device, /* * First take the contains of the register clear the bits */ - read_val = mdiobb_read_data_c45(smi_device, reg_addr); + read_val = mdiobb_read_by_paging_c45(smi_device, reg_addr); datamask = (~datamask) & read_val; /* Write back into the register */ - mdiobb_write_data_c45(smi_device, reg_addr, datamask); + mdiobb_write_by_paging_c45(smi_device, reg_addr, datamask); } void prepare_mdio(void) diff --git a/firmware/ec/src/interfaces/Ethernet/tcp_tx_rx.c b/firmware/ec/src/interfaces/Ethernet/tcp_tx_rx.c index c8cd80c2c9..cf4bce485c 100644 --- a/firmware/ec/src/interfaces/Ethernet/tcp_tx_rx.c +++ b/firmware/ec/src/interfaces/Ethernet/tcp_tx_rx.c @@ -9,8 +9,10 @@ #include "Board.h" #include "comm/gossiper.h" -#include "inc/common/ocmp_frame.h" +#include "common/inc/global/ocmp_frame.h" #include "inc/utils/util.h" +#include "inc/common/global_header.h" +#include #include #include @@ -26,7 +28,8 @@ #include #include #include -//#include KASHIF + +#include #include #define TCPPORT 1000 @@ -42,6 +45,9 @@ Queue_Struct ethTxMsg; int bytesRcvd; +extern const char *destIp; +extern uint8_t numRepeat; + /* Prototypes */ Void tcpHandler(UArg arg0, UArg arg1); @@ -56,7 +62,7 @@ Void tcp_Tx_Worker(UArg arg0, UArg arg1) int bytesSent; uint8_t *buffer; - System_printf("tcpWorker: start clientfd = 0x%x\n", clientfd); + LOGGER_DEBUG("tcpWorker: start clientfd = 0x%x\n", clientfd); while (clientfd) { Semaphore_pend(ethTxsem, BIOS_WAIT_FOREVER); @@ -64,7 +70,7 @@ Void tcp_Tx_Worker(UArg arg0, UArg arg1) buffer = Util_dequeueMsg(ethTxMsgQueue); bytesSent = send(clientfd, buffer, TCPPACKETSIZE, 0); if (bytesSent < 0) { - System_printf("Error: send failed.\n"); + LOGGER_DEBUG("Error: send failed.\n"); break; } } @@ -82,11 +88,11 @@ Void tcp_Rx_Worker(UArg arg0, UArg arg1) int clientfd = (int) arg0; char buffer[TCPPACKETSIZE]; - System_printf("tcpWorker: start clientfd = 0x%x\n", clientfd); + LOGGER_DEBUG("tcpWorker: start clientfd = 0x%x\n", clientfd); while ((bytesRcvd = recv(clientfd, buffer, TCPPACKETSIZE, 0)) > 0) { Util_enqueueMsg(gossiperRxMsgQueue, semGossiperMsg, (uint8_t *) buffer); } - System_printf("tcpWorker stop clientfd = 0x%x\n", clientfd); + LOGGER_DEBUG("tcpWorker stop clientfd = 0x%x\n", clientfd); close(clientfd); } @@ -105,6 +111,54 @@ static void sw_update_cb(void) { SoftwareUpdateBegin(sys_clk.lo); } +/* + * ======== tcpHandler_client ======== + * Create new Task to make new TCP connection and sends test data. + */ + +Void tcpHandler_client(UArg arg0, UArg arg1) +{ + SOCKET lSocket; + struct sockaddr_in sLocalAddr; + /*Tiva operates at 120Mhz. We use delays based on this*/ + uint32_t g_ui32SysClock = 120000000; + + fdOpenSession(TaskSelf()); + + lSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (lSocket < 0) { + LOGGER_DEBUG("tcpHandler: socket failed\n"); + Task_exit(); + return; + }else { + LOGGER_DEBUG(" %d socket success\n", fdError()); + } + System_flush(); + memset((char *)&sLocalAddr, 0, sizeof(sLocalAddr)); + LOGGER_DEBUG(" Ip in client: %s\n",destIp); + sLocalAddr.sin_family = AF_INET; + sLocalAddr.sin_addr.s_addr = inet_addr(destIp); + sLocalAddr.sin_port = htons(arg0); + + while(connect(lSocket, (struct sockaddr *)&sLocalAddr, sizeof(sLocalAddr)) < 0){ + SysCtlDelay(g_ui32SysClock/100/3); + } + System_flush(); + /* Test pattern to be sent across the TCP connection to external server */ + char *buffer = "5A A5 5A A5 5A"; + int nbytes = 14; /* Test Pattern length */ + + while (numRepeat > 0) { + send(lSocket, (char *)buffer, nbytes, 0 ); + Task_sleep(500); + numRepeat--; + System_flush(); + } + if (lSocket > 0) + close(lSocket); + fdCloseSession(TaskSelf()); +} + /* * ======== tcpHandler ======== * Creates new Task to handle new TCP connections. @@ -127,7 +181,7 @@ Void tcpHandler(UArg arg0, UArg arg1) server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (server == -1) { - System_printf("Error: socket not created.\n"); + LOGGER_DEBUG("Error: socket not created.\n"); goto shutdown; } @@ -138,26 +192,26 @@ Void tcpHandler(UArg arg0, UArg arg1) status = bind(server, (struct sockaddr *) &localAddr, sizeof(localAddr)); if (status == -1) { - System_printf("Error: bind failed.\n"); + LOGGER_DEBUG("Error: bind failed.\n"); goto shutdown; } status = listen(server, NUMTCPWORKERS); if (status == -1) { - System_printf("Error: listen failed.\n"); + LOGGER_DEBUG("Error: listen failed.\n"); goto shutdown; } optval = 1; if (setsockopt(server, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0) { - System_printf("Error: setsockopt failed\n"); + LOGGER_DEBUG("Error: setsockopt failed\n"); goto shutdown; } while ((clientfd = accept(server, (struct sockaddr *) &clientAddr, &addrlen)) != -1) { - System_printf("tcpHandler: Creating thread clientfd = %d\n", clientfd); + LOGGER_DEBUG("tcpHandler: Creating thread clientfd = %d\n", clientfd); /* Init the Error_Block */ Error_init(&eb); @@ -169,7 +223,7 @@ Void tcpHandler(UArg arg0, UArg arg1) task_Tx_Handle = Task_create((Task_FuncPtr) tcp_Tx_Worker, &task_Tx_Params, &eb); if (task_Tx_Handle == NULL) { - System_printf("Error: Failed to create new Task\n"); + LOGGER_DEBUG("Error: Failed to create new Task\n"); close(clientfd); } @@ -180,7 +234,7 @@ Void tcpHandler(UArg arg0, UArg arg1) task_Rx_Handle = Task_create((Task_FuncPtr) tcp_Rx_Worker, &task_Rx_Params, &eb); if (task_Rx_Handle == NULL) { - System_printf("Error: Failed to create new Task\n"); + LOGGER_DEBUG("Error: Failed to create new Task\n"); close(clientfd); } @@ -188,7 +242,7 @@ Void tcpHandler(UArg arg0, UArg arg1) addrlen = sizeof(clientAddr); } - System_printf("Error: accept failed.\n"); + LOGGER_DEBUG("Error: accept failed.\n"); shutdown: if (server > 0) { close(server); @@ -254,7 +308,7 @@ void netOpenHook() taskParams.arg0 = TCPPORT; taskHandle = Task_create((Task_FuncPtr) tcpHandler, &taskParams, &eb); if (taskHandle == NULL) { - System_printf("netOpenHook: Failed to create tcpHandler Task\n"); + LOGGER_DEBUG("netOpenHook: Failed to create tcpHandler Task\n"); } /* Start a thread to listen for SW update packets */ diff --git a/firmware/ec/src/interfaces/Ethernet/tcp_tx_rx.h b/firmware/ec/src/interfaces/Ethernet/tcp_tx_rx.h new file mode 100644 index 0000000000..770560d61f --- /dev/null +++ b/firmware/ec/src/interfaces/Ethernet/tcp_tx_rx.h @@ -0,0 +1,17 @@ +/** + * Copyright (c) 2018-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#ifndef SRC_INTERFACES_ETHERNET_TCP_TX_RX_H_ +#define SRC_INTERFACES_ETHERNET_TCP_TX_RX_H_ +Void tcp_Tx_Worker(UArg arg0, UArg arg1); +Void tcp_Rx_Worker(UArg arg0, UArg arg1); +Void tcpHandler(UArg arg0, UArg arg1); +Void tcpHandler_client(UArg arg0, UArg arg1); + +#endif /* SRC_INTERFACES_ETHERNET_TCP_TX_RX_H_ */ diff --git a/firmware/ec/src/interfaces/UART/uartdma.c b/firmware/ec/src/interfaces/UART/uartdma.c index a5cd411409..872b88f74c 100644 --- a/firmware/ec/src/interfaces/UART/uartdma.c +++ b/firmware/ec/src/interfaces/UART/uartdma.c @@ -6,14 +6,14 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ + //***************************************************************************** // HEADER FILES //***************************************************************************** -#include "inc/interfaces/uartdma.h" - #include "comm/gossiper.h" +#include "common/inc/global/ocmp_frame.h" +#include "inc/interfaces/uartdma.h" #include "inc/common/global_header.h" -#include "inc/common/ocmp_frame.h" #include #include diff --git a/firmware/ec/src/interfaces/USB/usb.c b/firmware/ec/src/interfaces/USB/usb.c index 1ff5e9d40e..e892ea4ec3 100644 --- a/firmware/ec/src/interfaces/USB/usb.c +++ b/firmware/ec/src/interfaces/USB/usb.c @@ -6,14 +6,15 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ + //***************************************************************************** // HEADER FILES //***************************************************************************** -#include "inc/interfaces/usbcdcd.h" #include "comm/gossiper.h" +#include "common/inc/global/ocmp_frame.h" +#include "inc/interfaces/usbcdcd.h" #include "inc/common/global_header.h" -#include "inc/common/ocmp_frame.h" #include "inc/utils/util.h" #include diff --git a/firmware/ec/src/main.c b/firmware/ec/src/main.c index 32c3e4f5bd..1f3c3e9f2e 100644 --- a/firmware/ec/src/main.c +++ b/firmware/ec/src/main.c @@ -26,7 +26,6 @@ extern int ethernet_start(void); static void openCellular_init(void) { - LOGGER_DEBUG("|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n"); LOGGER_DEBUG("|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n"); LOGGER_DEBUG("|||| |||| |||| ||||| |||||| |||| |||| |||| ||||||||| ||||||||| |||| |||| ||||||||| |||| ||||\n"); @@ -38,7 +37,6 @@ static void openCellular_init(void) LOGGER_DEBUG("|||| |||| |||||||||| ||||| |||||| |||| |||| |||| |||| |||| |||| |||| |||| |||| |||| ||||\n"); LOGGER_DEBUG("|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n"); LOGGER_DEBUG("|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n"); - LOGGER_DEBUG("\nOCWare v" xstr(_FW_REV_MAJOR_)"." xstr(_FW_REV_MINOR_)"." @@ -59,7 +57,6 @@ int main(void) { /* Install an exit handler to catch if we fault out */ System_atexit(exit_handler); - openCellular_init(); /* Call board init functions */ Board_initGeneral(); @@ -69,9 +66,7 @@ int main(void) Board_initUART(); ethernet_start(); bigbrother_createtask(); - /* Start BIOS */ BIOS_start(); - return (0); } diff --git a/firmware/ec/src/post.c b/firmware/ec/src/post/post.c similarity index 56% rename from firmware/ec/src/post.c rename to firmware/ec/src/post/post.c index 5dbc340321..354b0b9ca3 100644 --- a/firmware/ec/src/post.c +++ b/firmware/ec/src/post/post.c @@ -11,10 +11,11 @@ // HEADER FILES //***************************************************************************** #include "inc/common/post.h" -#include "inc/common/post_frame.h" + #include "comm/gossiper.h" +#include "common/inc/global/ocmp_frame.h" +#include "common/inc/global/post_frame.h" #include "inc/common/bigbrother.h" -#include "inc/common/ocmp_frame.h" #include "inc/devices/eth_sw.h" #include "inc/subsystem/bms/bms.h" #include "inc/subsystem/gpp/gpp.h" @@ -57,6 +58,7 @@ static Char postTaskStack[POST_TASK_STACK_SIZE]; /* POST state */ static uint8_t postState = 0; static OCMPSubsystem POST_subSystem; +extern POSTData PostResult[POST_RECORDS]; /***************************************************************************** * FUNCTION DECLARATIONS @@ -70,8 +72,89 @@ static void post_process_rx_msg(OCMPMessageFrame *pPOSTMsg); static void post_move_to_next_subsystem(); static void post_update_result_to_bigbrother(OCMPMessageFrame *pPOSTMsg); -POSTData PostResult[POST_RECORDS] = { { 0 } }; -static uint8_t deviceCount = 0; +/***************************************************************************** + ** FUNCTION NAME : _post_complete + ** + ** DESCRIPTION : Get POST results from EEPROM. + ** + ** ARGUMENTS : None + ** + ** RETURN TYPE : None + ** + *****************************************************************************/ +void _post_complete() +{ + uint8_t iter = 0; + LOGGER_DEBUG("POST:INFO::POST test is completed.\n"); + LOGGER_DEBUG("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n"); + LOGGER_DEBUG("|||||||||||||||||||||||||||||||||||||||||||||||||||||||POST TABLE|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n"); + /* POST results */ + for (iter = 0; iter < POST_RECORDS; iter++) { + LOGGER_DEBUG("\t POST:INFO:: POSTRESULT SS: 0x%x Device S.No: 0x%x I2C Bus: 0x%x Device Addr: 0x%x Device Id: 0x%x Manufacture Id: 0x%x Status: 0x%x.\n", + PostResult[iter].subsystem, PostResult[iter].devSno, + PostResult[iter].i2cBus, PostResult[iter].devAddr, + PostResult[iter].devId, PostResult[iter].manId, + PostResult[iter].status); + } + LOGGER_DEBUG("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n"); + LOGGER_DEBUG("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n"); +} + + +/***************************************************************************** + ** FUNCTION NAME : post_data_init + ** + ** DESCRIPTION : Initializes post struct. + ** + ** ARGUMENTS : subsystem , device serial number + ** + ** RETURN TYPE : None + ** + *****************************************************************************/ +void post_init_POSTData(POSTData *pData,OCMPSubsystem subsystem, uint8_t devSno) +{ + pData->subsystem = subsystem; + pData->devSno = devSno; + pData->i2cBus = 0xFF; + pData->devAddr = 0xFF; + pData->manId = 0xFFFF; + pData->devId = 0xFFFF; + pData->status = POST_DEV_MISSING; +} + +/***************************************************************************** + ** FUNCTION NAME : post_update_deviceInfo + ** + ** DESCRIPTION : Update bus, device address, manufacturing ID and device ID in post struct.\ + ** if no I2C bus is associated with device than it will be updated to 0xFF. + ** + ** ARGUMENTS : I2C Bus, Address, man Id, device Id. + ** + ** RETURN TYPE : None + ** + *****************************************************************************/ +void post_update_POSTData(POSTData *pData, uint8_t I2CBus, uint8_t devAddress, uint16_t manId, uint16_t devId) +{ + pData->i2cBus = I2CBus; + pData->devAddr = devAddress; + pData->manId = manId; + pData->devId = devId; +} + +/***************************************************************************** + ** FUNCTION NAME : post_update_deviceStatus + ** + ** DESCRIPTION : Update post status + ** + ** ARGUMENTS : POSTData and status. + ** + ** RETURN TYPE : None + ** + *****************************************************************************/ +void post_update_POSTStatus(POSTData *pData, ePostCode status) +{ + pData->status = status; +} /***************************************************************************** ** FUNCTION NAME : post_move_to_next_subsystem @@ -87,7 +170,7 @@ static void post_move_to_next_subsystem() { POST_subSystem = (OCMPSubsystem) (POST_subSystem + (OCMPSubsystem) 1); if (POST_subSystem > OC_SS_MAX_LIMIT) { - POST_subSystem = OC_SS_BB; + POST_subSystem = OC_SS_SYS; } } @@ -103,7 +186,7 @@ static void post_move_to_next_subsystem() *****************************************************************************/ static void post_update_result_to_bigbrother(OCMPMessageFrame *pPOSTMsg) { - pPOSTMsg->message.subsystem = OC_SS_BB; //OC_SUBSYSTEM_MAX_LIMIT subsystem number taken for bigbrother + pPOSTMsg->message.subsystem = OC_SS_SYS; //OC_SUBSYSTEM_MAX_LIMIT subsystem number taken for bigbrother memcpy((pPOSTMsg->message.ocmp_data), &postState, 1); Util_enqueueMsg(bigBrotherRxMsgQueue, semBigBrotherMsg, (uint8_t*) pPOSTMsg); @@ -122,33 +205,28 @@ static void post_update_result_to_bigbrother(OCMPMessageFrame *pPOSTMsg) static ReturnStatus post_process_msg(OCMPSubsystem OC_subSystem) { ReturnStatus status = RETURN_OK; - LOGGER_DEBUG("POST:INFO:: Processing execute POST for the Subsystem %d.\n", - OC_subSystem); - OCMPMessageFrame *postFrame = post_create_execute_msg(OC_subSystem); - - if (OC_subSystem == OC_SS_WD) { - /* TODO: WD no implementaion added, POST is completetd here.*/ - /* Once Test module added POST completetion message has to be sent - * at OC_SS_MAX_LIMIT */ - post_update_result_to_bigbrother(postFrame); - POST_subSystem = OC_SS_BB; - } else if (OC_subSystem == OC_SS_MAX_LIMIT) { - post_update_result_to_bigbrother(postFrame); - POST_subSystem = OC_SS_BB; + if (OC_subSystem == OC_SS_MAX_LIMIT) { + _post_complete(); + POST_subSystem = OC_SS_SYS; } else { - if (!SSRegistry_sendMessage(OC_subSystem, postFrame)) { - LOGGER_DEBUG("POST:ERROR::Subsystem %d does not exist\n", - OC_subSystem); + OCMPMessageFrame *postFrame = post_create_execute_msg(OC_subSystem); + if (postFrame) { + if (!SSRegistry_sendMessage(OC_subSystem, postFrame)) { + LOGGER_DEBUG("POST:ERROR::Subsystem %d does not exist\n", + OC_subSystem); + } + } else { + LOGGER_DEBUG("POST:ERROR::Out of memory.\n"); + status = RETURN_NOTOK; } } - return status; } /***************************************************************************** ** FUNCTION NAME : post_create_execute_msg ** - ** DESCRIPTION : create excecute POST message for subsystem. + ** DESCRIPTION : create execute POST message for subsystem. ** ** ARGUMENTS : Subsystem ** @@ -157,24 +235,44 @@ static ReturnStatus post_process_msg(OCMPSubsystem OC_subSystem) *****************************************************************************/ static OCMPMessageFrame* post_create_execute_msg(OCMPSubsystem OC_subSystem) { - uint8_t dummyByte = 0xff; - OCMPActionType actionType = OCMP_AXN_TYPE_ACTIVE; - LOGGER_DEBUG("POST:INFO:: Processing execute POST for the Subsystem %d.\n", - OC_subSystem); - if(OC_subSystem == OC_SS_MAX_LIMIT) { - OC_subSystem = OC_SS_BB; - actionType = OCMP_AXN_TYPE_REPLY; - } else { - actionType = OCMP_AXN_TYPE_ACTIVE; - } + LOGGER_DEBUG("POST:INFO::Activation POST for SS %d.",OC_subSystem); OCMPMessageFrame *postExeMsg = create_ocmp_msg_frame(OC_subSystem, OCMP_MSG_TYPE_POST, - actionType,0x00,0x00,1); + OCMP_AXN_TYPE_ACTIVE, + 0x00,0x00,1); return postExeMsg; } /***************************************************************************** - ** FUNCTION NAME : post_process_rx_msg + ** FUNCTION NAME : post_create_enable_msg + ** + ** DESCRIPTION : create execute POST message for subsystem. + ** + ** ARGUMENTS : Subsystem + ** + ** RETURN TYPE : None + ** + *****************************************************************************/ +static OCMPMessageFrame* post_create_enable_msg(OCMPSubsystem OC_subSystem) +{ + uint8_t dummyByte = 0xff; + OCMPActionType actionType = OCMP_AXN_TYPE_ENABLE; + LOGGER_DEBUG("POST:INFO::Enabling system for POST."); + if(OC_subSystem == OC_SS_MAX_LIMIT) { + OC_subSystem = OC_SS_SYS; + actionType = OCMP_AXN_TYPE_REPLY; + } else { + actionType = OCMP_AXN_TYPE_ENABLE; + } + OCMPMessageFrame *postExeMsg = create_ocmp_msg_frame(OC_subSystem, + OCMP_MSG_TYPE_POST, + actionType,0x00,0x00,1); + return postExeMsg; +} + + +/***************************************************************************** + ** FUNCTION NAME : post_activate ** ** DESCRIPTION : Processes the POST Acks received from the subssystems. ** @@ -186,28 +284,28 @@ static OCMPMessageFrame* post_create_execute_msg(OCMPSubsystem OC_subSystem) static void post_activate(OCMPMessageFrame *pPOSTMsg) { ReturnStatus POSTAckstatus = RETURN_NOTOK; - LOGGER_DEBUG("POST:INFO:: Processing POST Ack received from the Subsystem %d.\n", - POST_subSystem); - System_printf("POST:INFO:: Processing POST Ack received from the Subsystem %d.\n", - POST_subSystem); + LOGGER_DEBUG("POST:INFO:: Processing POST Ack received from the " + "Subsystem %d.\n",POST_subSystem); System_flush(); //Do the casting for the pMsg //POSTAckstatus = (ReturnStatus) (pPOSTMsg->message.ocmp_data); memcpy(&POSTAckstatus, pPOSTMsg->message.ocmp_data, 1); - //Compare the Ack - if (POST_subSystem == OC_SS_BB) { - postState = RETURN_OK; - } - if (pPOSTMsg->message.subsystem == POST_subSystem) { - postState = (!POSTAckstatus) & postState; - LOGGER_DEBUG("POST:INFO:: POST status for 0x%x Subsystem is 0x%x and OC POST status is 0x%x.\n", - POST_subSystem, POSTAckstatus, postState); - if (pPOSTMsg) { - free(pPOSTMsg); + if ( (pPOSTMsg->message.subsystem == OC_SS_SYS) + && (pPOSTMsg->message.action == OCMP_AXN_TYPE_ACTIVE) ){ + post_process_msg(POST_subSystem); + } else { + if (pPOSTMsg->message.subsystem == POST_subSystem) { + postState = (!POSTAckstatus) & postState; + LOGGER_DEBUG("POST:INFO:: POST status for 0x%x Subsystem is 0x%x" + " and OC POST status is 0x%x.\n", + POST_subSystem, POSTAckstatus, postState); + if (pPOSTMsg) { + free(pPOSTMsg); + } } + post_move_to_next_subsystem(); + post_process_msg(POST_subSystem); } - post_move_to_next_subsystem(); - post_process_msg(POST_subSystem); } /***************************************************************************** @@ -226,14 +324,12 @@ static void post_process_rx_msg(OCMPMessageFrame *pPOSTMsg) switch (pPOSTMsg->message.action) { case OCMP_AXN_TYPE_ACTIVE: case OCMP_AXN_TYPE_REPLY: - { - post_activate(pPOSTMsg); - } - break; + post_activate(pPOSTMsg); + break; default: { - LOGGER_ERROR("POST::ERROR::Unkown action type 0x%x for POST message.\n", - pPOSTMsg->message.action); + LOGGER_ERROR("POST::ERROR::Unkown action type 0x%x for POST" + " message.\n", pPOSTMsg->message.action); /*TODO: Return POST fail to BB*/ } } @@ -263,12 +359,17 @@ static void post_task_init(void) /* Reset POST state to fail */ postState = 0; - POST_subSystem = OC_SS_BB; + POST_subSystem = OC_SS_SYS; + OCMPMessageFrame *postEnableMsg = create_ocmp_msg_frame(OC_SS_SYS, + OCMP_MSG_TYPE_POST, + OCMP_AXN_TYPE_ACTIVE, + 0x00, + 0x00, + 1); /*Ask for activate permission from BB system*/ - OCMPMessageFrame *postFrame = post_create_execute_msg(OC_SS_BB); - if (postFrame) { + if (postEnableMsg) { Util_enqueueMsg(bigBrotherRxMsgQueue, semBigBrotherMsg, - (uint8_t*) postFrame); + (uint8_t*) postEnableMsg); } } diff --git a/firmware/ec/src/post/post_util.c b/firmware/ec/src/post/post_util.c new file mode 100644 index 0000000000..c241d621a6 --- /dev/null +++ b/firmware/ec/src/post/post_util.c @@ -0,0 +1,206 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +#include "inc/common/post_util.h" + +#include "inc/common/post.h" +#include "inc/common/system_states.h" +#include "platform/oc-sdr/schema/schema.h" +#include "src/registry/SSRegistry.h" + +extern const Component sys_schema[OC_SS_MAX_LIMIT]; +extern OCSubsystem *ss_reg[SUBSYSTEM_COUNT]; +POSTData PostResult[POST_RECORDS] = { { 0 } }; +static uint8_t deviceCount = 0; + +#ifdef UT_POST +/* + * TODO: Duplicating the definition of the following three functions from post.c for the UT framework + * If we include post.c in the UT framework , we are exposing a lot of OS dependent APIs like create_task , + * util_queue etc to the Windows Cygwin environment which will create linking issues. + * This will get fixed as part of #419 + */ + +void post_update_POSTStatus(POSTData *pData, ePostCode status) +{ + pData->status = status; +} + +void post_init_POSTData(POSTData *pData,OCMPSubsystem subsystem, uint8_t devSno) +{ + pData->subsystem = subsystem; + pData->devSno = devSno; + pData->i2cBus = 0xFF; + pData->devAddr = 0xFF; + pData->manId = 0xFFFF; + pData->devId = 0xFFFF; + pData->status = POST_DEV_MISSING; +} + +void post_update_POSTData(POSTData *pData, uint8_t I2CBus, uint8_t devAddress, uint16_t manId, uint16_t devId) +{ + pData->i2cBus = I2CBus; + pData->devAddr = devAddress; + pData->manId = manId; + pData->devId = devId; +} +#else +/* Execute POST for a given device driver (performs deep copy of alert_data) */ +static ePostCode _postDriver(const Component *subsystem, + const Component *dev, + const AlertData *alert_data, + POSTData* postData, OCSubsystem *ss) +{ +#if 0 + if (!dev->driver) { + return POST_DEV_NO_DRIVER_EXIST; + } +#endif + ePostCode postcode = POST_DEV_FOUND; + if (dev->driver->fxnTable->cb_probe) { + postcode = dev->driver->fxnTable->cb_probe(dev->driver_cfg,postData); + post_update_POSTStatus(postData, postcode); + } + LOGGER_DEBUG("%s:INFO:: %s (%s) %s\n", subsystem->name, + dev->name, dev->driver->name, + (postcode == POST_DEV_FOUND) ? "found" : "not found"); + + if (postcode == POST_DEV_FOUND) { + if (ss->state == SS_STATE_INIT) { + if (dev->driver->fxnTable->cb_init) { + AlertData *alert_data_cp = malloc(sizeof(AlertData)); + *alert_data_cp = *alert_data; + postcode = dev->driver->fxnTable->cb_init(dev->driver_cfg, + dev->factory_config, + alert_data_cp); + } else { + postcode = POST_DEV_NO_CFG_REQ; + } + post_update_POSTStatus(postData, postcode); + LOGGER_DEBUG("%s:INFO:: Configuration for %s (%s) is %s\n", + subsystem->name, + dev->name, + dev->driver->name, + (postcode == POST_DEV_CFG_DONE) ? "ok":(postcode == POST_DEV_NO_CFG_REQ) ? "not required." : "failed."); + } + } +} + +ReturnStatus _execPost(OCMPMessageFrame *pMsg, + unsigned int subsystem_id) +{ + const Component *subsystem = &sys_schema[subsystem_id]; + OCSubsystem *ss = ss_reg[subsystem_id]; + /* TODO: this is messy and assumes we have a pointer to the subsystem - + * we'll want to change this once the framework is more mature */ + if (ss->state == SS_STATE_PWRON) { + ss->state = SS_STATE_INIT; + } + + /* Iterate over each component & device within the subsystem, calling + * its post callback */ + ReturnStatus status = RETURN_OK; + if((subsystem->ssHookSet)&& + (ss->state == SS_STATE_INIT)) { + if(subsystem->ssHookSet->preInitFxn) { + if (!(subsystem->ssHookSet->preInitFxn(subsystem->driver_cfg, &(ss->state)))) { + status = RETURN_NOTOK; + return status; + } + } + } + POSTData postData; + ePostCode postcode = POST_DEV_MISSING; + uint8_t devSno = 0; + const Component *comp = &subsystem->components[0]; + for (uint8_t comp_id = 0; (comp && comp->name); ++comp, ++comp_id) { /* Component level (ec, ap, ch1, etc.) */ + /* If we have a driver at the component level, init */ + AlertData alert_data = { + .subsystem = (OCMPSubsystem)subsystem_id, + .componentId = comp_id, + .deviceId = 0, + }; + if(!comp->components) { + if (comp->postDisabled == POST_DISABLED ) { + continue ; + } + devSno++; + post_init_POSTData(&postData,subsystem_id,devSno); + //TODO: If postcode is configuration failure what should beth recovery action. + if (_postDriver(subsystem, comp, &alert_data, &postData, ss) == POST_DEV_NO_DRIVER_EXIST) { + devSno--; + } else { + post_update_POSTresult(&postData); + } + } else { + const Component *dev = &comp->components[0]; + for (uint8_t dev_id = 0; (dev && dev->name); ++dev, ++dev_id) { /* Device level (ts, ina, etc) */ + AlertData alert_data = { + .subsystem = (OCMPSubsystem)subsystem_id, + .componentId = comp_id, + .deviceId = dev_id, + }; + if(dev->postDisabled == POST_DISABLED ) { + continue; + } + devSno++; + post_init_POSTData(&postData,subsystem_id,devSno); + if(_postDriver(subsystem, dev, &alert_data, &postData, ss) == POST_DEV_NO_DRIVER_EXIST) { + devSno--; + } else { + post_update_POSTresult(&postData); + } + } + } + } + if((subsystem->ssHookSet)&&(ss->state == SS_STATE_INIT)) { + if(subsystem->ssHookSet->postInitFxn){ + if (!(subsystem->ssHookSet->postInitFxn(subsystem->driver_cfg, &(ss->state)))) { + ss->state = SS_STATE_FAULTY; + } + } + } + if (ss->state == SS_STATE_INIT && status == RETURN_OK) { + ss->state = SS_STATE_CFG; + } else { + ss->state = SS_STATE_FAULTY; + } + + LOGGER("%s:INFO:: Modules and sensors are %s.\n", subsystem->name, + ((status == RETURN_OK) ? "initialized." : "not initialized.")); + return status; +} + + +/* ***************************************************************************** + ** FUNCTION NAME : post_update_POSTresult + ** + ** DESCRIPTION : save post result to flash + ** + ** ARGUMENTS : a0, a1 - not used + ** + ** RETURN TYPE : None + ** + ******************************************************************************/ +void post_update_POSTresult(POSTData *postData) +{ + + /* Write a device info to flash but use a dummy function for REV B boards.*/ + uint8_t iter = 0; + /* Dump structure at particular location*/ + if ( (postData->subsystem == OC_SS_SYS) && (postData->devSno == 1 ) ) { + deviceCount = 0; + memset(PostResult, '\0', (POST_RECORDS * sizeof(POSTData))); + } else { + deviceCount++; + } + //LOGGER_DEBUG("POST:INFO:: Updating POST results for the Subsystem %d , Device Serial offset %d , Total Number of records %d.\n", + // postData->subsystem,postData->devSno,deviceCount+1); + memcpy(&PostResult[deviceCount],postData,sizeof(POSTData)); +} +#endif diff --git a/firmware/ec/src/registry/SSRegistry.c b/firmware/ec/src/registry/SSRegistry.c index 6311241807..75c94ed486 100644 --- a/firmware/ec/src/registry/SSRegistry.c +++ b/firmware/ec/src/registry/SSRegistry.c @@ -6,24 +6,35 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - #include "SSRegistry.h" -#include "Framework.h" +#include "common/inc/global/Framework.h" #include "helpers/array.h" #include "inc/common/bigbrother.h" /* For sending msg back via BB */ -#include "inc/common/post.h" /* For sending POST response */ +#include "inc/common/post.h" +#include "inc/common/post_util.h" /* For sending POST response */ #include "inc/common/global_header.h" #include "inc/utils/ocmp_util.h" #include "inc/utils/util.h" +#define OCMP_ACTION_TYPE_GET 1 +#define OCMP_ACTION_TYPE_SET 2 +#define OCMP_ACTION_TYPE_REPLY 3 +#define OCMP_ACTION_TYPE_ACTIVE 4 + /* TODO: configurable directory (allow us to target different platforms) */ -#include "platform/oc-sdr/schema.h" +#include "platform/oc-sdr/schema/schema.h" #include +#define OC_TASK_STACK_SIZE 2048 +#define OC_TASK_PRIORITY 2 + +static char OC_task_stack[SUBSYSTEM_COUNT][OC_TASK_STACK_SIZE]; + extern const Component sys_schema[SUBSYSTEM_COUNT]; -static OCSubsystem *ss_reg[SUBSYSTEM_COUNT] = {}; + +OCSubsystem *ss_reg[SUBSYSTEM_COUNT] = {}; static const size_t PARAM_SIZE_MAP[] = { [TYPE_NULL] = 0, @@ -114,121 +125,23 @@ void OCMP_GenerateAlert(const AlertData *alert_data, } } -/* Execute POST for a given device driver (performs deep copy of alert_data) */ -static ReturnStatus _postDriver(const Component *subsystem, - const Component *dev, - const AlertData *alert_data) -{ - if (!dev->driver) { - return RETURN_OK; - } - - ePostCode postcode = POST_DEV_FOUND; - if (dev->driver->cb_probe) { - dev->driver->cb_probe(dev->driver_cfg); - } - LOGGER_DEBUG("%s:INFO:: %s (%s) %s\n", subsystem->name, - dev->name, dev->driver->name, - (postcode == POST_DEV_FOUND) ? "found" : "not found"); - - if (subsystem->ss->state == SS_STATE_INIT) { - if (postcode == POST_DEV_FOUND) { - if (dev->driver->cb_init) { - AlertData *alert_data_cp = malloc(sizeof(AlertData)); - *alert_data_cp = *alert_data; - postcode = dev->driver->cb_init(dev->driver_cfg, - dev->factory_config, - alert_data_cp); - } else { - postcode = POST_DEV_CFG_DONE; - } - LOGGER_DEBUG("%s:INFO:: Configuration status for %s (%s) is %s\n", - subsystem->name, - dev->name, - dev->driver->name, - (postcode == POST_DEV_CFG_DONE) ? "OK" : "NOT OK"); - } - return ((postcode == POST_DEV_CFG_DONE) ? - RETURN_OK : RETURN_NOTOK); - } else { - return ((postcode == POST_DEV_FOUND) ? - RETURN_OK : RETURN_NOTOK); - } -} - -static ReturnStatus _execPost(OCMPMessageFrame *pMsg, - unsigned int subsystem_id) -{ - const Component *subsystem = &sys_schema[subsystem_id]; - - /* TODO: this is messy and assumes we have a pointer to the subsystem - - * we'll want to change this once the framework is more mature */ - if (subsystem->ss->state == SS_STATE_PWRON) { - subsystem->ss->state = SS_STATE_INIT; - } - - /* Iterate over each component & device within the subsystem, calling - * its post callback */ - ReturnStatus status = RETURN_OK; - if(subsystem->ssHookSet) { - if(subsystem->ssHookSet->preInitFxn) { - if (!(subsystem->ssHookSet->preInitFxn(&(subsystem->ss->state)))) { - status = RETURN_NOTOK; - return status; - } - } - } - const Component *comp = &subsystem->components[0]; - for (uint8_t comp_id = 0; _compIsValid(comp); ++comp, ++comp_id) { /* Component level (ec, ap, ch1, etc.) */ - /* If we have a driver at the component level, init */ - AlertData alert_data = { - .subsystem = (OCMPSubsystem)subsystem_id, - .componentId = comp_id, - .deviceId = 0, - }; - _postDriver(subsystem, comp, &alert_data); - - const Component *dev = &comp->components[0]; - for (uint8_t dev_id = 0; _compIsValid(dev); ++dev, ++dev_id) { /* Device level (ts, ina, etc) */ - AlertData alert_data = { - .subsystem = (OCMPSubsystem)subsystem_id, - .componentId = comp_id, - .deviceId = dev_id, - }; - _postDriver(subsystem, dev, &alert_data); - } - } - if(subsystem->ssHookSet) { - if(subsystem->ssHookSet->postInitFxn){ - if (!(subsystem->ssHookSet->postInitFxn(&(subsystem->ss->state)))) { - subsystem->ss->state = SS_STATE_FAULTY; - } - } - } - if (subsystem->ss->state == SS_STATE_INIT && status == RETURN_OK) { - subsystem->ss->state = SS_STATE_CFG; - } else { - subsystem->ss->state = SS_STATE_FAULTY; - } - - LOGGER("%s:INFO:: Modules and sensors are %s.\n", subsystem->name, - ((status == RETURN_OK) ? "initialized." : "not initialized.")); - return status; -} - static bool _handleMsgTypeCmd(OCMPMessageFrame *pMsg, const Component *comp) { - if (pMsg->message.subsystem != OC_SS_DEBUG) { - const Command *cmd = comp->commands[pMsg->message.action]; - if (cmd && cmd->cb_cmd) { - cmd->cb_cmd(comp->driver_cfg, pMsg->message.ocmp_data); - return true; + const Command *cmd; + Component *dev; + if (comp) { + if (pMsg->message.parameters > 0) { + dev = &comp->components[(pMsg->message.parameters)-1]; + } else { + dev = comp; + } + if (dev->driver && dev->driver->commands) { + cmd = &dev->driver->commands[pMsg->message.action]; + } else { + cmd = &dev->commands[pMsg->message.action]; } - } else { - const Component *subComp = &comp->components[pMsg->message.parameters]; - const Command *cmd = subComp->driver->commands[pMsg->message.action]; if (cmd && cmd->cb_cmd) { - cmd->cb_cmd(subComp->driver_cfg, pMsg->message.ocmp_data); + cmd->cb_cmd(dev->driver_cfg, pMsg->message.ocmp_data); return true; } } @@ -240,12 +153,12 @@ static bool _handle_cmd_get(OCMPMessageFrame *pMsg, const Component *comp, { switch (pMsg->message.msgtype) { case OCMP_MSG_TYPE_CONFIG: - return (comp->driver->cb_get_config && - comp->driver->cb_get_config(comp->driver_cfg, param_id, + return (comp->driver->fxnTable->cb_get_config && + comp->driver->fxnTable->cb_get_config(comp->driver_cfg, param_id, buf_ptr)); case OCMP_MSG_TYPE_STATUS: - return (comp->driver->cb_get_status && - comp->driver->cb_get_status(comp->driver_cfg, param_id, + return (comp->driver->fxnTable->cb_get_status && + comp->driver->fxnTable->cb_get_status(comp->driver_cfg, param_id, buf_ptr)); default: return false; @@ -257,8 +170,8 @@ static bool _handle_cmd_set(OCMPMessageFrame *pMsg, const Component *comp, { switch (pMsg->message.msgtype) { case OCMP_MSG_TYPE_CONFIG: - return (comp->driver->cb_set_config && - comp->driver->cb_set_config(comp->driver_cfg, param_id, + return (comp->driver->fxnTable->cb_set_config && + comp->driver->fxnTable->cb_set_config(comp->driver_cfg, param_id, data)); default: return false; @@ -293,7 +206,7 @@ static bool _handleDevStatCfg(OCMPMessageFrame *pMsg, const Component *dev, while (param_list[normalized_id].name) { if (pMsg->message.parameters & (1 << *param_id)) { switch (pMsg->message.action) { - case OCMP_AXN_TYPE_GET: + case OCMP_ACTION_TYPE_GET: if (_handle_cmd_get(pMsg, dev, normalized_id, *buf_ptr)) { dev_handled = true; @@ -301,7 +214,7 @@ static bool _handleDevStatCfg(OCMPMessageFrame *pMsg, const Component *dev, pMsg->message.parameters &= ~(1 << *param_id); } break; - case OCMP_AXN_TYPE_SET: + case OCMP_ACTION_TYPE_SET: if (_handle_cmd_set(pMsg, dev, normalized_id, *buf_ptr)) { dev_handled = true; @@ -323,6 +236,71 @@ static bool _handleDevStatCfg(OCMPMessageFrame *pMsg, const Component *dev, return dev_handled; } +static bool _handle_post_enable(const Component *comp, OCMPMessageFrame *pMsg) +{ + bool ret = false; + OCMPMessageFrame *buffer; + const Post *postCmd = &comp->driver->post[(pMsg->message.action)-1]; + if (postCmd && postCmd->cb_postCmd) { + ret = postCmd->cb_postCmd(&buffer); + if (ret) { + Util_enqueueMsg(postRxMsgQueue, semPOSTMsg, (uint8_t*)buffer); + } + } + pMsg->message.ocmp_data[0] = !(ret); //RETURN_OK =0; + return ret; +} + +static bool _handle_post_active(OCMPMessageFrame *pMsg,unsigned int subsystem_id) +{ + ReturnStatus status = _execPost(pMsg, subsystem_id); + return (status == RETURN_OK); +} + +static bool _handle_post_get_results(const Component *comp,OCMPMessageFrame *pMsg) +{ + bool ret = false; + const Post *postCmd = &comp->driver->post[(pMsg->message.action)-1]; + if (postCmd && postCmd->cb_postCmd) { + postCmd->cb_postCmd(pMsg); + ret = true; + } + return ret; +} + +static bool _handleMsgTypePOST(OCMPMessageFrame *pMsg, const Component *comp, unsigned int subsystem_id) +{ + /* Determine driver & parameter */ + unsigned int param_id = 0; + uint8_t *buf_ptr = pMsg->message.ocmp_data; + bool dev_handled = false; + switch (pMsg->message.action) { + case OCMP_ACTION_TYPE_SET: + if (_handle_post_enable(comp, pMsg)) { + dev_handled = true; + } + break; + case OCMP_ACTION_TYPE_ACTIVE: + if (_handle_post_active(pMsg,subsystem_id)) { + dev_handled = true; + } + break; + case OCMP_ACTION_TYPE_GET: + if (_handle_post_get_results(comp, pMsg)) { + dev_handled = true; + } + break; +/* case OCMP_ACTION_REPLY: + if (_handle_post_reply(pMsg, *buf_ptr)) { + dev_handled = true; + } + break;*/ + default: + break; + } + return dev_handled; +} + static bool _handleMsgTypeStatCfg(OCMPMessageFrame *pMsg, const Component *comp) { /* Determine driver & parameter */ @@ -348,26 +326,12 @@ static bool _handleMsgTypeStatCfg(OCMPMessageFrame *pMsg, const Component *comp) static bool ocmp_route(OCMPMessageFrame *pMsg, unsigned int subsystem_id) { const Component *subsystem = &sys_schema[subsystem_id]; - - /* The main exception to the flow right now is POST - check for it first */ - if (pMsg->message.msgtype == OCMP_MSG_TYPE_POST) { - ReturnStatus status = _execPost(pMsg, subsystem_id); - - memcpy((pMsg->message.ocmp_data), &status, 1); - pMsg->message.action = OCMP_AXN_TYPE_REPLY; - Util_enqueueMsg(postRxMsgQueue, semPOSTMsg, (uint8_t*) pMsg); - - return true; - } - /* Validate component ID */ - if (pMsg->message.componentID >= _subcompCount(subsystem)) { + if (pMsg->message.componentID > _subcompCount(subsystem)) { LOGGER_ERROR("Component %d out of bounds\n", pMsg->message.componentID); return false; } - - const Component *comp = &subsystem->components[pMsg->message.componentID]; - + const Component *comp = &subsystem->components[(pMsg->message.componentID)-1]; /* TODO: clean up special handling for commands */ bool dev_handled = false; switch (pMsg->message.msgtype) { @@ -378,6 +342,11 @@ static bool ocmp_route(OCMPMessageFrame *pMsg, unsigned int subsystem_id) case OCMP_MSG_TYPE_STATUS: dev_handled = _handleMsgTypeStatCfg(pMsg, comp); break; + case OCMP_MSG_TYPE_POST: + dev_handled = _handleMsgTypePOST(pMsg, comp, subsystem_id); + //pMsg->message.action = OCMP_ACTION_TYPE_REPLY; + //Util_enqueueMsg(postRxMsgQueue, semPOSTMsg, (uint8_t*) pMsg); + break; default: break; } @@ -386,10 +355,15 @@ static bool ocmp_route(OCMPMessageFrame *pMsg, unsigned int subsystem_id) if (!dev_handled) { pMsg->message.parameters = 0x00; } - - /* Send reply to the middleware */ - pMsg->message.action = OCMP_AXN_TYPE_REPLY; - Util_enqueueMsg(bigBrotherTxMsgQueue, semBigBrotherMsg, (uint8_t *)pMsg); + /* The main exception to the flow right now is POST - check for it first */ + if ((pMsg->message.msgtype == OCMP_MSG_TYPE_POST) && (pMsg->message.action == OCMP_ACTION_TYPE_ACTIVE)) { + pMsg->message.action = OCMP_ACTION_TYPE_REPLY; + Util_enqueueMsg(postRxMsgQueue, semPOSTMsg, (uint8_t*) pMsg); + } else { + /* Send reply to the middleware */ + pMsg->message.action = OCMP_ACTION_TYPE_REPLY; + Util_enqueueMsg(bigBrotherTxMsgQueue, semBigBrotherMsg, (uint8_t *)pMsg); + } return true; } @@ -422,13 +396,11 @@ static void _subsystem_event_loop(UArg a0, UArg a1) } static void subsystem_init(OCMPSubsystem ss_id) { - OCSubsystem *ss = sys_schema[ss_id].ss; + OCSubsystem *ss = (OCSubsystem*)malloc(sizeof(OCSubsystem)); if (!ss) { return; } - ss_reg[ss_id] = ss; - ss->state = SS_STATE_PWRON; /* Create Semaphore for RX Message Queue */ @@ -449,9 +421,9 @@ static void subsystem_init(OCMPSubsystem ss_id) { /* Spin up the task */ Task_Params taskParams; Task_Params_init(&taskParams); - taskParams.stack = ss->taskStack; - taskParams.stackSize = ss->taskStackSize; - taskParams.priority = ss->taskPriority; + taskParams.stack = OC_task_stack[ss_id];// ss->taskStack; + taskParams.stackSize = OC_TASK_STACK_SIZE;//ss->taskStackSize; + taskParams.priority = OC_TASK_PRIORITY;//ss->taskPriority; taskParams.arg0 = (UArg)ss; taskParams.arg1 = ss_id; diff --git a/firmware/ec/src/registry/SSRegistry.h b/firmware/ec/src/registry/SSRegistry.h index fedfe899bc..e19d345073 100644 --- a/firmware/ec/src/registry/SSRegistry.h +++ b/firmware/ec/src/registry/SSRegistry.h @@ -10,7 +10,7 @@ #ifndef _SSREGISTRY_H_ #define _SSREGISTRY_H_ -#include "inc/common/ocmp_frame.h" +#include "common/inc/global/ocmp_frame.h" #include "inc/common/system_states.h" #include @@ -28,11 +28,6 @@ typedef struct OCSubsystem { Queue_Handle msgQueue; Semaphore_Handle sem; - /* Task variables */ - xdc_Int taskPriority; - xdc_Ptr taskStack; - xdc_SizeT taskStackSize; - /* Private variables (reduce dynamic allocation needs) */ Queue_Struct queueStruct; Semaphore_Struct semStruct; diff --git a/firmware/ec/src/subsystem/bms/bms.c b/firmware/ec/src/subsystem/bms/bms.c index 63904ba3c4..2e71f558cc 100644 --- a/firmware/ec/src/subsystem/bms/bms.c +++ b/firmware/ec/src/subsystem/bms/bms.c @@ -10,14 +10,3 @@ // HEADER FILES //***************************************************************************** #include "inc/subsystem/bms/bms.h" - -#include "registry/SSRegistry.h" - -/* Global Task Configuration Variables */ -static Char bmsTaskStack[BMS_TASK_STACK_SIZE]; - -OCSubsystem ssBms = { - .taskStackSize = BMS_TASK_STACK_SIZE, - .taskPriority = BMS_TASK_PRIORITY, - .taskStack = bmsTaskStack, -}; diff --git a/firmware/ec/src/subsystem/debug/debug.c b/firmware/ec/src/subsystem/debug/debug.c deleted file mode 100644 index efe289eef7..0000000000 --- a/firmware/ec/src/subsystem/debug/debug.c +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#include "inc/common/global_header.h" -#include "registry/SSRegistry.h" - -#include - -#define DEBUG_TASK_PRIORITY 2 -#define DEBUG_TASK_STACK_SIZE 1024 - -/* Global Task Configuration Variables */ -static Char debug_task_stack[DEBUG_TASK_STACK_SIZE]; - -extern void *sys_config[]; -#define DBG ((Dbg_Cfg *)sys_config[OC_SS_DEBUG]) - -OCSubsystem ssDbg = { - .taskStackSize = DEBUG_TASK_STACK_SIZE, - .taskPriority = DEBUG_TASK_PRIORITY, - .taskStack = debug_task_stack, -}; diff --git a/firmware/ec/src/subsystem/ethernet/ethernetSS.c b/firmware/ec/src/subsystem/ethernet/ethernetSS.c index b9f7d598af..b078324d4f 100644 --- a/firmware/ec/src/subsystem/ethernet/ethernetSS.c +++ b/firmware/ec/src/subsystem/ethernet/ethernetSS.c @@ -7,52 +7,4 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -#include "inc/common/global_header.h" -#include "inc/devices/eth_sw.h" -#include "inc/devices/88E6071_registers.h" #include "inc/subsystem/ethernet/ethernetSS.h" -#include "registry/SSRegistry.h" - -#include - -#define ETHSW_TASK_PRIORITY 2 -#define ETHSW_TASK_STACK_SIZE 2048 - -/* Global Task Configuration Variables */ -static Char eth_sw_task_stack[ETHSW_TASK_STACK_SIZE]; - -extern void *sys_config[]; -#define ETH ((Eth_Cfg *)sys_config[OC_SS_ETH_SWT]) - -OCSubsystem ssEth = { - .taskStackSize = ETHSW_TASK_STACK_SIZE, - .taskPriority = ETHSW_TASK_PRIORITY, - .taskStack = eth_sw_task_stack, -}; - -void ethernet_switch_setup() -{ - const Eth_Sw_Cfg *cfg = sys_config[OC_SS_ETH_SWT]; - uint8_t link_up; - uint16_t read_val = 0; - uint8_t index = 0; - for (index = 0; index < 10; index++) { - read_val = mdiobb_read_data(PHY_PORT_0, REG_PHY_SPEC_STATUS); - link_up = (RT_LINK & read_val) ? 1 : 0; - DEBUG("ETHSW: Linkup: %d, index: %d\n", link_up, index); - if (link_up == 1) { - break; - } - OcGpio_write(&cfg->pin_ec_ethsw_reset, false); - SysCtlDelay(16000000); //400ms delay - OcGpio_write(&cfg->pin_ec_ethsw_reset, true); - - SysCtlDelay(80000000); //5 seconds delay - } -} - -bool eth_sw_pre_init(void *unused) -{ - ethernet_switch_setup(); - return true; -} diff --git a/firmware/ec/src/subsystem/gpp/ebmp.c b/firmware/ec/src/subsystem/gpp/ebmp.c index 9a33079c15..6622239ddd 100644 --- a/firmware/ec/src/subsystem/gpp/ebmp.c +++ b/firmware/ec/src/subsystem/gpp/ebmp.c @@ -10,11 +10,11 @@ // HEADER FILES //***************************************************************************** #include "inc/subsystem/gpp/ebmp.h" -#include "inc/subsystem/gpp/gpp.h" #include "Board.h" +#include "common/inc/global/ocmp_frame.h" #include "inc/common/global_header.h" -#include "inc/common/ocmp_frame.h" +#include "inc/subsystem/gpp/gpp.h" #include "inc/utils/util.h" #include @@ -30,10 +30,6 @@ static Task_Struct ebmpTask; static Char ebmpTaskStack[EBMP_TASK_STACK_SIZE]; -/* GPP device config */ -extern void *sys_config[]; -#define GPP ((Gpp_Cfg *)sys_config[OC_SS_GPP]) - /* Semaphore Handle */ Semaphore_Handle semStateHandle; @@ -57,6 +53,10 @@ volatile int oldState = STATE_INVALID; volatile int secondIteration = 0; volatile uint32_t stateChangeWaitTimeMax = 10000; volatile uint32_t stateChangeTimeElapsed = 0; +static OcGpio_Pin *pin_soc_pltrst_n; +static OcGpio_Pin *pin_soc_corepwr_ok; +static OcGpio_Pin *pin_ap_boot_alert1; +static OcGpio_Pin *pin_ap_boot_alert2; //***************************************************************************** // EXTERN FUNCTIONS @@ -138,7 +138,7 @@ void ebmp_check_soc_plt_reset(void) { //Resetting Iteration counter for GPIO Toggle to zero. secondIteration = 0; - if (OcGpio_read(&GPP->pin_soc_pltrst_n)) { + if (OcGpio_read(pin_soc_pltrst_n)) { /************************************************************* * Semaphore to be released to the EBMP telling the SoC is * out of reset @@ -154,7 +154,7 @@ void ebmp_check_soc_plt_reset(void) #if 0 apState = oldState = STATE_INVALID; #else - if (OcGpio_read(&GPP->pin_soc_corepwr_ok)) { + if (OcGpio_read(pin_soc_corepwr_ok)) { apState = oldState = STATE_T0; } else { apState = oldState = STATE_INVALID; @@ -176,8 +176,8 @@ void ebmp_check_boot_pin_status(void) int32_t bootstatus_1 = 0; int32_t bootstatus_2 = 0; - bootstatus_1 = OcGpio_read(&GPP->pin_ap_boot_alert1); - bootstatus_2 = OcGpio_read(&GPP->pin_ap_boot_alert2); + bootstatus_1 = OcGpio_read(pin_ap_boot_alert1); + bootstatus_2 = OcGpio_read(pin_ap_boot_alert2); if (!secondIteration) { if (bootstatus_2 == 0) { if (bootstatus_1) { @@ -232,33 +232,38 @@ static void ebmp_handle_irq(void *context) { ** ARGUMENTS : None ** RETURN TYPE : None *****************************************************************************/ -void ebmp_init(void) +void ebmp_init(Gpp_gpioCfg *driver) { - if (GPP->pin_ap_boot_alert1.port) { + pin_ap_boot_alert1 = &driver->pin_ap_boot_alert1; + pin_ap_boot_alert2 = &driver->pin_ap_boot_alert2; + pin_soc_pltrst_n = &driver->pin_soc_pltrst_n; + pin_soc_corepwr_ok = &driver->pin_soc_corepwr_ok; + + if (pin_ap_boot_alert1->port) { const uint32_t pin_evt_cfg = OCGPIO_CFG_INPUT | OCGPIO_CFG_INT_BOTH_EDGES; - if (OcGpio_configure(&GPP->pin_ap_boot_alert1, pin_evt_cfg) < OCGPIO_SUCCESS) { + if (OcGpio_configure(pin_ap_boot_alert1, pin_evt_cfg) < OCGPIO_SUCCESS) { return RETURN_NOTOK; } /* Use a threaded interrupt to handle IRQ */ - ThreadedInt_Init(&GPP->pin_ap_boot_alert1, ebmp_handle_irq, (void *)AP_BOOT_PROGRESS_MONITOR_1); + ThreadedInt_Init(pin_ap_boot_alert1, ebmp_handle_irq, (void *)AP_BOOT_PROGRESS_MONITOR_1); } - if (GPP->pin_ap_boot_alert2.port) { + if (pin_ap_boot_alert2->port) { const uint32_t pin_evt_cfg = OCGPIO_CFG_INPUT | OCGPIO_CFG_INT_BOTH_EDGES; - if (OcGpio_configure(&GPP->pin_ap_boot_alert2, pin_evt_cfg) < OCGPIO_SUCCESS) { + if (OcGpio_configure(pin_ap_boot_alert2, pin_evt_cfg) < OCGPIO_SUCCESS) { return RETURN_NOTOK; } /* Use a threaded interrupt to handle IRQ */ - ThreadedInt_Init(&GPP->pin_ap_boot_alert2, ebmp_handle_irq, (void *)AP_BOOT_PROGRESS_MONITOR_2); + ThreadedInt_Init(pin_ap_boot_alert2, ebmp_handle_irq, (void *)AP_BOOT_PROGRESS_MONITOR_2); } - if (GPP->pin_soc_pltrst_n.port) { + if (pin_soc_pltrst_n->port) { const uint32_t pin_evt_cfg = OCGPIO_CFG_INPUT | OCGPIO_CFG_INT_BOTH_EDGES; - if (OcGpio_configure(&GPP->pin_soc_pltrst_n, pin_evt_cfg) < OCGPIO_SUCCESS) { + if (OcGpio_configure(pin_soc_pltrst_n, pin_evt_cfg) < OCGPIO_SUCCESS) { return RETURN_NOTOK; } /* Use a threaded interrupt to handle IRQ */ - ThreadedInt_Init(&GPP->pin_soc_pltrst_n, ebmp_handle_irq, (void *)AP_RESET); + ThreadedInt_Init(pin_soc_pltrst_n, ebmp_handle_irq, (void *)AP_RESET); } } @@ -374,9 +379,9 @@ void ebmp_task_fxn(UArg a0, UArg a1) } } DEBUG("EBMP:INFO:: Boot Monitor Pin 1 [PE3] : %d Boot Monitor Pin 2 [PL3] : %d SOC PLTRST : %d.\n", - OcGpio_read(&GPP->pin_ap_boot_alert1)? 1: 0, - OcGpio_read(&GPP->pin_ap_boot_alert2)? 1: 0, - OcGpio_read(&GPP->pin_soc_pltrst_n)? 1: 0); + OcGpio_read(pin_ap_boot_alert1)? 1: 0, + OcGpio_read(pin_ap_boot_alert2)? 1: 0, + OcGpio_read(pin_soc_pltrst_n)? 1: 0); oldState = apState; } } diff --git a/firmware/ec/src/subsystem/gpp/gpp.c b/firmware/ec/src/subsystem/gpp/gpp.c index b5709e4f1b..d493856d4c 100644 --- a/firmware/ec/src/subsystem/gpp/gpp.c +++ b/firmware/ec/src/subsystem/gpp/gpp.c @@ -10,11 +10,11 @@ // HEADER FILES //***************************************************************************** #include "inc/subsystem/gpp/gpp.h" -#include "inc/subsystem/gpp/ebmp.h" #include "Board.h" #include "helpers/math.h" #include "inc/common/system_states.h" +#include "inc/subsystem/gpp/ebmp.h" #include "inc/utils/util.h" #include "registry/SSRegistry.h" @@ -29,81 +29,73 @@ //***************************************************************************** // HANDLES DEFINITION //***************************************************************************** -/* Global Task Configuration Variables */ -static Char gppTaskStack[GPP_TASK_STACK_SIZE]; -/* GPP device config */ -extern void *sys_config[]; -#define GPP ((Gpp_Cfg *)sys_config[OC_SS_GPP]) - -OCSubsystem ssGpp = { - .taskStackSize = GPP_TASK_STACK_SIZE, - .taskPriority = GPP_TASK_PRIORITY, - .taskStack = gppTaskStack, -}; - -bool gpp_check_processor_reset(void) +bool gpp_check_processor_reset(Gpp_gpioCfg *driver) { bool ret = false; - if (OcGpio_read(&GPP->pin_soc_pltrst_n)) { + if (OcGpio_read(&driver->pin_soc_pltrst_n)) { ret = true; } return ret; } -bool gpp_check_core_power(void) +bool gpp_check_core_power(Gpp_gpioCfg *driver) { bool ret = false; - if (OcGpio_read(&GPP->pin_soc_corepwr_ok)) { + if (OcGpio_read(&driver->pin_soc_corepwr_ok)) { ret = true; } return ret; } -bool gpp_pmic_control(uint8_t control) +bool gpp_pmic_control(Gpp_gpioCfg *driver, uint8_t control) { bool ret = false; if(control == OC_PMIC_ENABLE) { /*TODO:: Disabling for USB debugging*/ - OcGpio_write(&GPP->pin_ap_12v_onoff, false); + OcGpio_write(&driver->pin_ap_12v_onoff, false); SysCtlDelay(1000); - /* Regsiter GPIO interrupts */ - ebmp_init(); + /* Embedded Boot Management Protocol (EBMP)for Application processor(AP) + * EBMP tells EC firmware about the boot process stages of the AP to the + * Embedded Controller(EC) by toggling two GPIO's.ebmp_init is a function + * where we register the required GPIO's for interrupts if AP move from one boot + * process state to other.*/ + ebmp_init(driver); SysCtlDelay(100); - OcGpio_write(&GPP->pin_ap_12v_onoff, true); + OcGpio_write(&driver->pin_ap_12v_onoff, true); SysCtlDelay(100); - if(gpp_check_core_power()) { + if(gpp_check_core_power(driver)) { //OcGpio_write(&cfg->pin_ec_reset_to_proc, true); //SysCtlDelay(10); - if(gpp_check_processor_reset()) { + if(gpp_check_processor_reset(driver)) { ret = true; LOGGER_DEBUG("GPP:INFO:: Processor out of reset.\n"); } } } else { - OcGpio_write(&GPP->pin_ap_12v_onoff, false); + OcGpio_write(&driver->pin_ap_12v_onoff, false); ret = true; } return ret; } -bool gpp_msata_das(void) +bool gpp_msata_das(Gpp_gpioCfg *driver) { bool ret = false; - if (!(OcGpio_read(&GPP->pin_msata_ec_das))) { + if (!(OcGpio_read(&driver->pin_msata_ec_das))) { ret = true; LOGGER_DEBUG("GPP:INFO:: mSATA is active.\n"); } return ret; } -bool gpp_pwrgd_protection(void) +bool gpp_pwrgd_protection(Gpp_gpioCfg *driver) { bool ret = false; - if (OcGpio_read(&GPP->pin_lt4256_ec_pwrgd)) { + if (OcGpio_read(&driver->pin_lt4256_ec_pwrgd)) { ret = true; } return ret; @@ -112,15 +104,16 @@ bool gpp_pwrgd_protection(void) /***************************************************************************** * gpp_pre_init : Intiliazes all GPIO's required for initialization. *****************************************************************************/ -bool gpp_pre_init(void *returnValue) +bool gpp_pre_init(void* driver, void *returnValue) { - OcGpio_configure(&GPP->pin_soc_pltrst_n, OCGPIO_CFG_INPUT); - OcGpio_configure(&GPP->pin_soc_corepwr_ok, OCGPIO_CFG_INPUT); - OcGpio_configure(&GPP->pin_msata_ec_das, OCGPIO_CFG_INPUT); - OcGpio_configure(&GPP->pin_lt4256_ec_pwrgd, OCGPIO_CFG_INPUT); - OcGpio_configure(&GPP->pin_ap_12v_onoff, OCGPIO_CFG_OUTPUT | + Gpp_gpioCfg *gpioCfg = (Gpp_gpioCfg *)driver; + OcGpio_configure(&gpioCfg->pin_soc_pltrst_n, OCGPIO_CFG_INPUT); + OcGpio_configure(&gpioCfg->pin_soc_corepwr_ok, OCGPIO_CFG_INPUT); + OcGpio_configure(&gpioCfg->pin_msata_ec_das, OCGPIO_CFG_INPUT); + OcGpio_configure(&gpioCfg->pin_lt4256_ec_pwrgd, OCGPIO_CFG_INPUT); + OcGpio_configure(&gpioCfg->pin_ap_12v_onoff, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_LOW); - OcGpio_configure(&GPP->pin_ec_reset_to_proc, OCGPIO_CFG_OUTPUT | + OcGpio_configure(&gpioCfg->pin_ec_reset_to_proc, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH); return true; } @@ -128,21 +121,22 @@ bool gpp_pre_init(void *returnValue) /***************************************************************************** * gpp_post_init : power on devices required after GPP init is success. *****************************************************************************/ -bool gpp_post_init(eSubSystemStates *ssState) +bool gpp_post_init(void* driver, void *ssState) { bool ret = false; - if (!gpp_pwrgd_protection()) { + eSubSystemStates *newState = (eSubSystemStates*)ssState; + if (!gpp_pwrgd_protection(driver)) { LOGGER_DEBUG("GPP:INFO:: LT4256 EC power good is for genration of 12V ok.\n"); } else { - *ssState = SS_STATE_FAULTY; + *newState = SS_STATE_FAULTY; return ret; } //Power on processor. - if(gpp_pmic_control(OC_PMIC_ENABLE)) { - *ssState = SS_STATE_CFG; + if(gpp_pmic_control(driver, OC_PMIC_ENABLE)) { + *newState = SS_STATE_CFG; ret = true; } else { - *ssState = SS_STATE_FAULTY; + *newState = SS_STATE_FAULTY; } /*mSATA DAS not helping with anything as of now.*/ // if (!gpp_msata_das()) { @@ -155,9 +149,9 @@ bool gpp_post_init(eSubSystemStates *ssState) /***************************************************************************** * gpp_ap_reset : resets application processor. *****************************************************************************/ -static bool gpp_ap_reset() +static bool gpp_ap_reset(Gpp_gpioCfg *driver) { - const OcGpio_Pin *pin = &GPP->pin_ec_reset_to_proc; + const OcGpio_Pin *pin = &(driver->pin_ec_reset_to_proc); if (OcGpio_write(pin, OC_GBC_PROC_RESET) < OCGPIO_SUCCESS) { return false; } @@ -172,5 +166,5 @@ static bool gpp_ap_reset() * gpp_ap_reset : Calls application processor reset function. *****************************************************************************/ bool GPP_ap_Reset(void *driver, void *params){ - return (gpp_ap_reset() == RETURN_OK); + return (gpp_ap_reset(driver) == RETURN_OK); } diff --git a/firmware/ec/src/subsystem/hci/hci.c b/firmware/ec/src/subsystem/hci/hci.c index 510e5f936b..56e6ca5f02 100644 --- a/firmware/ec/src/subsystem/hci/hci.c +++ b/firmware/ec/src/subsystem/hci/hci.c @@ -17,25 +17,10 @@ * HANDLES DEFINITION *****************************************************************************/ /* Global Task Configuration Variables */ -static Char hciTaskStack[HCI_TASK_STACK_SIZE]; -OCSubsystem ssHci = { - .taskStackSize = HCI_TASK_STACK_SIZE, - .taskPriority = HCI_TASK_PRIORITY, - .taskStack = hciTaskStack, -}; - -extern void *sys_config[]; -#define HCI ((Hci_Cfg *)sys_config[OC_SS_HCI]) - -bool HCI_Init(void *return_buf) +bool HCI_Init(void* driver, void *return_buf) { - /* Initialize IO pins */ - OcGpio_configure(&HCI->led.pin_ec_gpio, OCGPIO_CFG_OUTPUT | - OCGPIO_CFG_OUT_HIGH); - HciBuzzer_init(); - return true; } diff --git a/firmware/ec/src/subsystem/hci/hci_buzzer.c b/firmware/ec/src/subsystem/hci/hci_buzzer.c index 672e77f877..0d312b40c4 100644 --- a/firmware/ec/src/subsystem/hci/hci_buzzer.c +++ b/firmware/ec/src/subsystem/hci/hci_buzzer.c @@ -10,11 +10,11 @@ #include "inc/subsystem/hci/hci.h" -extern void *sys_config[]; -#define HCI ((Hci_Cfg *)sys_config[OC_SS_HCI]) +extern HciBuzzer_Cfg gbc_hci_buzzer; +#define HCI gbc_hci_buzzer ReturnStatus HciBuzzer_init(void) { - if (OcGpio_configure(&HCI->buzzer.pin_en, OCGPIO_CFG_OUTPUT) < + if (OcGpio_configure(&HCI.pin_en, OCGPIO_CFG_OUTPUT) < OCGPIO_SUCCESS) { return RETURN_NOTOK; } @@ -34,10 +34,10 @@ ReturnStatus HciBuzzer_init(void) { ReturnStatus hci_buzzer_beep(uint8_t buzzCount) { for (uint8_t count = 0; count < buzzCount; count++) { - if (OcGpio_write(&HCI->buzzer.pin_en, true) < OCGPIO_SUCCESS) { + if (OcGpio_write(&HCI.pin_en, true) < OCGPIO_SUCCESS) { return RETURN_NOTOK; } - if (OcGpio_write(&HCI->buzzer.pin_en, false) < OCGPIO_SUCCESS) { + if (OcGpio_write(&HCI.pin_en, false) < OCGPIO_SUCCESS) { return RETURN_NOTOK; } } diff --git a/firmware/ec/src/subsystem/hci/led/hci_led.c b/firmware/ec/src/subsystem/hci/led/hci_led.c index a1e9bf2563..f87906e7d5 100644 --- a/firmware/ec/src/subsystem/hci/led/hci_led.c +++ b/firmware/ec/src/subsystem/hci/led/hci_led.c @@ -6,28 +6,26 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ - //***************************************************************************** // HEADER FILES //***************************************************************************** -#include "inc/devices/led.h" #include "inc/subsystem/hci/hci_led.h" #include "inc/common/system_states.h" +#include "inc/devices/led.h" #include "inc/subsystem/hci/hci.h" #include #include +extern void *led_hci_ioexp; +#define HCI ((HciLedCfg*)led_hci_ioexp) + //***************************************************************************** // HANDLES DEFINITION //***************************************************************************** ledSystemState s_ledState = SYSTEM_BOOT; -extern void *sys_config[]; -#define HCI ((Hci_Cfg *)sys_config[OC_SS_HCI]) - - /* TODO: Change the following approach for booting up and resetting led counter * for synchronization in future if needed */ #define HCI_LED_TASK_PRIORITY 2 @@ -49,12 +47,12 @@ static void HCI_LedTaskFxn(UArg a0, UArg a1) { while (true) { if (s_ledState == SYSTEM_BOOT) { - hci_led_system_boot(); + //hci_led_system_boot(); } else if ((s_ledState == SYSTEM_RUNNING) || (s_ledState == SYSTEM_FAILURE)) { - OcGpio_write(&HCI->led.pin_ec_gpio, false); + OcGpio_write(&HCI->pin_ec_gpio, false); Task_sleep(100); - OcGpio_write(&HCI->led.pin_ec_gpio, true); + OcGpio_write(&HCI->pin_ec_gpio, true); } } } diff --git a/firmware/ec/src/subsystem/obc/obc.c b/firmware/ec/src/subsystem/obc/obc.c index 3cf0e98e08..055f9f56e8 100644 --- a/firmware/ec/src/subsystem/obc/obc.c +++ b/firmware/ec/src/subsystem/obc/obc.c @@ -11,54 +11,53 @@ //***************************************************************************** #include "inc/subsystem/obc/obc.h" -#include "Board.h" -#include "devices/uart/sbd.h" +#include "common/inc/global/OC_CONNECT1.h" #include "inc/common/global_header.h" #include "inc/subsystem/sdr/sdr.h" /* temporary - Only required for 12v enable */ -#include "helpers/array.h" -#include "registry/SSRegistry.h" -#include -#include -#include - -#include -#include - -//***************************************************************************** -// MACROS DEFINITION -//***************************************************************************** -#define OBC_TASK_PRIORITY 2 -#define OBC_TASK_STACK_SIZE 2048 - -#define SBD_WRITE_TIMEOUT 500 - -/* TODO: move to helper? */ -#define STATIC_STRLEN(s) (ARRAY_SIZE(s) - 1) +#include //***************************************************************************** // HANDLES DEFINITION //***************************************************************************** -OCSubsystem ssObc = { - .taskStackSize = OBC_TASK_STACK_SIZE, - .taskPriority = OBC_TASK_PRIORITY, -}; -static UART_Handle uartIridium; -static SBD_Handle s_hSbd = NULL; +extern const Sdr_gpioCfg sdr_gpioCfg; -bool obc_pre_init(void *returnValue) +bool obc_pre_init(void* driver, void *returnValue); + +ReturnStatus iridium_sw_reset(const Iridium_Cfg *iridium) +{ + DEBUG("Resetting Iridium module wait\n"); + + OcGpio_configure(&iridium->pin_enable, OCGPIO_CFG_OUTPUT | + OCGPIO_CFG_OUT_LOW); + OcGpio_configure(&iridium->pin_nw_avail, OCGPIO_CFG_INPUT); + + /* reset - for proper reset, Iridium should be disabled for ~2s */ + OcGpio_write(&iridium->pin_enable, false); /* Just to be sure it's low */ + Task_sleep(2100); // TODO: should be ~2s + OcGpio_write(&iridium->pin_enable, true); + Task_sleep(200); // TODO: idk...probably doesn't need to be lon + return RETURN_OK; +} + +bool IRIDIUM_reset(void *driver, void *params) +{ + ReturnStatus status = RETURN_OK; + status = iridium_sw_reset(driver); + return status; +} + +bool obc_pre_init(void* driver, void *returnValue) { /* TODO: temporary */ - extern const void *sys_config[]; - const Obc_Cfg *obc_cfg = sys_config[OC_SS_OBC]; - /* TODO: this is a problem - need 12V for Iridium (plus 5v reg enabled) * I'm not sold on OBC directly enabling these lines, but there isn't * a great alternative at this point */ - sdr_pwr_control(OC_SDR_ENABLE); - if (obc_cfg->pin_pwr_en) { - if (OcGpio_configure(obc_cfg->pin_pwr_en, + Obc_gpioCfg *gpioCfg = (Obc_gpioCfg*)driver; + sdr_pwr_control(&sdr_gpioCfg,OC_SDR_ENABLE); + if (gpioCfg->pin_pwr_en) { + if (OcGpio_configure(gpioCfg->pin_pwr_en, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH) < OCGPIO_SUCCESS) { return false; @@ -66,252 +65,3 @@ bool obc_pre_init(void *returnValue) } return true; } - -static UART_Handle open_comm(const Iridium_Cfg *iridium) -{ - DEBUG("Resetting Iridium module\n"); - - OcGpio_configure(&iridium->pin_enable, OCGPIO_CFG_OUTPUT | - OCGPIO_CFG_OUT_LOW); - OcGpio_configure(&iridium->pin_nw_avail, OCGPIO_CFG_INPUT); - - /* reset - for proper reset, Iridium should be disabled for ~2s */ - OcGpio_write(&iridium->pin_enable, false); /* Just to be sure it's low */ - Task_sleep(2100); // TODO: should be ~2s - OcGpio_write(&iridium->pin_enable, true); - Task_sleep(200); // TODO: idk...probably doesn't need to be long - - // Open Iridium UART - UART_Params uartParams; - UART_Params_init(&uartParams); - uartParams.writeDataMode = UART_DATA_BINARY; - uartParams.readDataMode = UART_DATA_BINARY; - uartParams.readReturnMode = UART_RETURN_FULL; - uartParams.readEcho = UART_ECHO_OFF; - uartParams.baudRate = 19200; - uartParams.dataLength = UART_LEN_8; - uartParams.parityType = UART_PAR_NONE; - uartParams.stopBits = UART_STOP_ONE; - uartParams.writeTimeout = SBD_WRITE_TIMEOUT; - return UART_open(iridium->uart, &uartParams); -} - -static ReturnStatus sbd_init(const Iridium_Cfg *iridium) -{ - uartIridium = open_comm(iridium); - if (!uartIridium) { - return RETURN_NOTOK; - } - - /* Initialize SBD layers */ -// const SbdCallbackList cbList = { -// .sbdring = sbdring_cb, -// .ciev = sbdciev_cb, -// }; - s_hSbd = SBD_init(uartIridium, NULL, NULL); - if (!s_hSbd) { - return RETURN_NOTOK; - } - - /* TODO: module verification? */ - if (!SBD_k(s_hSbd, SBD_FLOW_CONTROL_HW) /* Enable HW flow control */ - || !SBD_sbdmta(s_hSbd, true) /* Ring indication enable */ - || !SBD_sbdareg(s_hSbd, SBD_AREG_MODE_AUTO) /* Auto registration */ - || !SBD_cier(s_hSbd, true, false, true, false, false)) { /* Service change indications */ - /* TODO: handle cleanup */ - s_hSbd = NULL; - return RETURN_NOTOK; - } - - return RETURN_OK; -} - -static ReturnStatus iridium_get_statusParams( - eOBC_StatusParam paramID, - OBC_Iridium_Status_Data *pIridiumStatusData) -{ - ReturnStatus status = RETURN_OK; - - /* See if this is a param that doesn't need to talk to Iridium */ - switch (paramID) { - case IRIDIUM_NO_OUT_MSG: - pIridiumStatusData->outQueueLen = 25; - break; - case IRIDIUM_LASTERR: - pIridiumStatusData->lastErr = (OBC_lastError) { - .src = ERR_RC_INTERNAL, - .code = 5, - }; - break; - default: - /* We don't care about the rest at this point */ - break; - } - - /* If Iridium isn't initialized, don't try to talk to it */ - if (!s_hSbd) { - return RETURN_NOTOK; - } - - /* Check the params that DO require Iridium communication */ - switch (paramID) { - case IRIDIUM_IMEI: { - SbdcgsnInfo cgsnInfo; - if (!SBD_cgsn(s_hSbd, &cgsnInfo)) { - return RETURN_NOTOK; - } - pIridiumStatusData->imei = strtoull(cgsnInfo.imei, NULL, 10); - break; - } - case IRIDIUM_MFG: { - SbdCgmiInfo cgmiInfo; - if (!SBD_cgmi(s_hSbd, &cgmiInfo)) { - return RETURN_NOTOK; - } - strncpy(pIridiumStatusData->mfg, cgmiInfo.mfg, - sizeof(pIridiumStatusData->mfg)); - break; - } - case IRIDIUM_MODEL: { - SbdCgmmInfo cgmmInfo; - if (!SBD_cgmm(s_hSbd, &cgmmInfo)) { - return RETURN_NOTOK; - } - /* Model string is verbose - if it's 9600 fam, replace with shorter - * model number since we only have 4 characters */ - char *model = cgmmInfo.model; - const char fam_str[] = "IRIDIUM 9600 Family"; - if (strncmp(model, fam_str, STATIC_STRLEN(fam_str)) == 0) { - model = "96xx"; - } - strncpy(pIridiumStatusData->model, model, - sizeof(pIridiumStatusData->model)); - break; - } - case IRIDIUM_SIG_QUALITY: { - SbdcsqInfo csqInfo; - if (!SBD_csqf(s_hSbd, &csqInfo)) { - return RETURN_NOTOK; - } - pIridiumStatusData->rssi = csqInfo.rssi; - break; - } - case IRIDIUM_REGSTATUS: { - if (!SBD_sbdregRead(s_hSbd, &pIridiumStatusData->regStat)) { - return RETURN_NOTOK; - } - break; - } - default: - DEBUG("OBC::ERROR: Unknown param %d\n", paramID); - break; - } - return status; -} - -#include "helpers/memory.h" - -static void loopback_test(SBD_Handle hSbd, bool debugLogs) -{ - static int loopCount = 1; - static unsigned int ticks = 0; - - if (ticks == 0) - ticks = Clock_getTicks(); - - if (debugLogs) { - System_printf("Loop %d\n", loopCount); - } - - // Generate a random string - static char msg[300]; - const int msgLen = 1 + (rand() % (sizeof(msg))); - - for (int i = 0; i < msgLen; ++i) { - msg[i] = rand() % 256; - } - - if (!SBD_sbdwb(hSbd, msg, msgLen)) { - System_abort("SBDWB Failed"); - } - - if (!SBD_sbdtc(hSbd)) { - System_abort("SBDTC Failed"); - } - - char ret[sizeof(msg)] = { }; - if (SBD_sbdrb(hSbd, ret, msgLen) < msgLen) { - System_abort("SBDRB Failed"); - } - - if (memcmp(msg, ret, msgLen) != 0) { - printMemory(msg, msgLen); - System_printf("\n"); - printMemory(ret, msgLen); - System_abort("Messages don't match"); - } - - // Only output every few iterations so printfs don't slow down test - if (loopCount % 10 == 0) { - if (debugLogs) { - System_printf("Time: %d\n", Clock_getTicks() - ticks); - System_flush(); - } - ticks = Clock_getTicks(); - } - loopCount++; - - /* FIXME: hack to keep thread alive so we keep looping */ - Semaphore_post(ssObc.sem); -} - -static ePostCode _probe(void *driver) -{ - /* TODO: this is a problem: we can't probe until we've initialized, but we - * don't init until after probing */ - return POST_DEV_FOUND; -} - -static ePostCode _init(void *driver, const void *config, - const void *alert_token) -{ - if (sbd_init(driver) != RETURN_OK) { - return POST_DEV_CFG_FAIL; - } - return POST_DEV_CFG_DONE; -} - -static bool _get_status(void *driver, unsigned int param_id, - void *return_buf) { - return (iridium_get_statusParams((eOBC_StatusParam)param_id, return_buf) - == RETURN_OK); -} - -const Driver OBC_Iridium = { - .name = "Iridium 96xx", - .status = (Parameter[]){ - { .name = "imei", .type = TYPE_UINT64 }, - { .name = "mfg", .type = TYPE_STR, .size = 10 }, - { .name = "model", .type = TYPE_STR, .size = 5 }, - { .name = "signal.quality", .type = TYPE_UINT8 }, - { .name = "registration", .type = TYPE_ENUM, - .values = (Enum_Map[]){ - { 0, "Detached" }, - { 1, "None" }, - { 2, "Registered" }, - { 3, "Registration Denied" }, - {} - }, - }, - { .name = "numberofoutgoingmessage", .type = TYPE_UINT8 }, - { .name = "lasterror" }, /* TODO: this is a complex type */ - {} - }, - - /* Message handlers */ - .cb_probe = _probe, - .cb_init = _init, - .cb_get_status = _get_status, - - .payload_fmt_union = true, /* OBC breaks serialization pattern :( */ -}; diff --git a/firmware/ec/src/subsystem/power/power.c b/firmware/ec/src/subsystem/power/power.c index cbbb5ae112..fb0a8b5b46 100644 --- a/firmware/ec/src/subsystem/power/power.c +++ b/firmware/ec/src/subsystem/power/power.c @@ -11,73 +11,3 @@ //***************************************************************************** /* Board Header files */ #include "inc/subsystem/power/power.h" -#include "Board.h" -#include "src/registry/SSRegistry.h" -#include - -/***************************************************************************** - * MACRO DEFINITIONS - *****************************************************************************/ -#define POWERCTL_TASK_PRIORITY 2 -#define POWERCTL_TASK_STACK_SIZE 1024 - -/***************************************************************************** - * HANDLE DEFINITIONS - *****************************************************************************/ -/* Global Task Configuration Variables */ - -static Char POWERCTLTaskStack[POWERCTL_TASK_STACK_SIZE]; - -OCSubsystem ssPower = { - .taskStackSize = POWERCTL_TASK_STACK_SIZE, - .taskPriority = POWERCTL_TASK_PRIORITY, - .taskStack = POWERCTLTaskStack, -}; - -extern void *sys_config[]; -#define PWR ((Power_Cfg *)sys_config[OC_SS_PWR]) - -/***************************************************************************** - ** FUNCTION NAME : pwr_pre_init - ** - ** DESCRIPTION : Initializes the power subsystem gpio's. - ** - ** ARGUMENTS : None - ** - ** RETURN TYPE : bool - ** - *****************************************************************************/ -bool pwr_pre_init() -{ - /* Initialize IO pins */ - OcGpio_configure(&PWR->pin_int_bat_prsnt, OCGPIO_CFG_INPUT); - OcGpio_configure(&PWR->pin_ext_bat_prsnt, OCGPIO_CFG_INPUT); - OcGpio_configure(&PWR->pin_ec_pd_pwrgd_ok, OCGPIO_CFG_INPUT); - OcGpio_configure(&PWR->pin_solar_aux_prsnt_n, OCGPIO_CFG_INPUT); - OcGpio_configure(&PWR->pin_poe_prsnt_n, OCGPIO_CFG_INPUT); - OcGpio_configure(&PWR->pin_lt4275_ec_nt2p, OCGPIO_CFG_INPUT); - OcGpio_configure(&PWR->pin_necpse_rst, OCGPIO_CFG_OUTPUT | - OCGPIO_CFG_OUT_HIGH); - OcGpio_configure(&PWR->pin_lt4015_i2c_sel, OCGPIO_CFG_OUTPUT); - OcGpio_configure(&PWR->pin_int_bat_prsnt, OCGPIO_CFG_INPUT); - OcGpio_configure(&PWR->pin_ext_bat_prsnt, OCGPIO_CFG_INPUT); - - //Enable PSE device. - ltc4274_enable(true); - return true; -} - -/***************************************************************************** - ** FUNCTION NAME : pwr_post_init - ** - ** DESCRIPTION : Initializes the power subsystem gpio's. - ** - ** ARGUMENTS : None - ** - ** RETURN TYPE : bool - ** - *****************************************************************************/ -bool pwr_post_init() -{ - return true; -} diff --git a/firmware/ec/src/subsystem/rffe/rffe.c b/firmware/ec/src/subsystem/rffe/rffe.c index 1333de788c..fccad0f510 100644 --- a/firmware/ec/src/subsystem/rffe/rffe.c +++ b/firmware/ec/src/subsystem/rffe/rffe.c @@ -10,13 +10,13 @@ // HEADER FILES //***************************************************************************** #include "inc/subsystem/rffe/rffe.h" + +#include "Board.h" +#include "inc/common/system_states.h" #include "inc/subsystem/rffe/rffe_sensor.h" #include "inc/subsystem/rffe/rffe_ctrl.h" #include "inc/subsystem/rffe/rffe_powermonitor.h" - -#include "Board.h" #include "inc/subsystem/sdr/sdr.h" -#include "inc/common/system_states.h" #include "inc/utils/util.h" #include "registry/SSRegistry.h" @@ -27,17 +27,6 @@ // HANDLES DEFINITION //***************************************************************************** /* Global Task Configuration Variables */ -static Char rffeTaskStack[RFFE_TASK_STACK_SIZE]; - -OCSubsystem ssRf = { - .taskStackSize = RFFE_TASK_STACK_SIZE, - .taskPriority = RFFE_TASK_PRIORITY, - .taskStack = rffeTaskStack, -}; - -/* RFFE device config */ -extern void *sys_config[]; -#define RFFE ((Fe_Cfg *)sys_config[OC_SS_RF]) /***************************************************************************** ** FUNCTION NAME : rffe_pwr_control @@ -49,12 +38,12 @@ extern void *sys_config[]; ** RETURN TYPE : ReturnStatus ** *****************************************************************************/ -void rffe_pwr_control(uint8_t control) +void rffe_pwr_control(Fe_gpioCfg* feCfg, uint8_t control) { if (control == OC_FE_ENABLE) { - OcGpio_write(&RFFE->pin_fe_12v_ctrl, true); + OcGpio_write(&feCfg->pin_fe_12v_ctrl, true); } else { - OcGpio_write(&RFFE->pin_fe_12v_ctrl, false); + OcGpio_write(&feCfg->pin_fe_12v_ctrl, false); } } @@ -68,23 +57,21 @@ void rffe_pwr_control(uint8_t control) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -bool rffe_pre_init(void *returnValue) +bool rffe_pre_init(void *driver, void *returnValue) { + Fe_Cfg* feCfg = (Fe_Cfg*)driver; /* Initialize IO pins */ - OcGpio_configure(&RFFE->pin_rf_pgood_ldo, OCGPIO_CFG_INPUT); - OcGpio_configure(&RFFE->pin_fe_12v_ctrl, OCGPIO_CFG_OUTPUT | + OcGpio_configure(&feCfg->fe_gpio_cfg->pin_rf_pgood_ldo, OCGPIO_CFG_INPUT); + OcGpio_configure(&feCfg->fe_gpio_cfg->pin_fe_12v_ctrl, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_LOW); - /* Read EEPROM */ - eeprom_init(RFFE->eeprom_inventory); - /* RF power on */ - rffe_pwr_control(OC_FE_ENABLE); + rffe_pwr_control(feCfg->fe_gpio_cfg,OC_FE_ENABLE); NOP_DELAY(); /* Check Powergood status(SDR_REG_LDO_PGOOD) */ - if(OcGpio_read(&RFFE->pin_rf_pgood_ldo)) { + if(OcGpio_read(&feCfg->fe_gpio_cfg->pin_rf_pgood_ldo)) { LOGGER("RFFE:INFO:: PowerGood Status is OK.\n"); } else { @@ -93,32 +80,44 @@ bool rffe_pre_init(void *returnValue) /* Initilize FE IO Expander GPIO Controls (those not already controlled * by a driver) */ - const Fe_Cfg *fe_cfg = sys_config[OC_SS_RF]; - - OcGpio_configure(&fe_cfg->fe_ch2_gain_cfg.pin_ch1_2g_lb_band_sel_l, - OCGPIO_CFG_OUTPUT); - OcGpio_configure(&fe_cfg->fe_ch2_lna_cfg.pin_ch1_rf_pwr_off, - OCGPIO_CFG_OUTPUT); - OcGpio_configure(&fe_cfg->fe_watchdog_cfg.pin_ch2_rf_pwr_off, + Fe_Ch2_Gain_Cfg* feCh2GainCfg = (Fe_Ch2_Gain_Cfg*)(feCfg->fe_ch2_gain_cfg); + Fe_Ch2_Lna_Cfg* feCh2LnaCfg = (Fe_Ch2_Lna_Cfg*)(feCfg->fe_ch2_lna_cfg); + Fe_Watchdog_Cfg* feWatchDogCfg = (Fe_Watchdog_Cfg*)(feCfg->fe_watchdog_cfg); + OcGpio_configure(&feCh2GainCfg->pin_ch1_2g_lb_band_sel_l, OCGPIO_CFG_OUTPUT); + OcGpio_configure(&feCh2LnaCfg->pin_ch1_rf_pwr_off, + OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH); + OcGpio_configure(&feWatchDogCfg->pin_ch2_rf_pwr_off, + OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH); /* TODO: might be cleaner to move into watchdog driver (2x init is ok) */ - OcGpio_configure(&fe_cfg->fe_watchdog_cfg.pin_aosel_fpga, + OcGpio_configure(&feWatchDogCfg->pin_aosel_fpga, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH); - OcGpio_configure(&fe_cfg->fe_watchdog_cfg.pin_copol_fpga, + OcGpio_configure(&feWatchDogCfg->pin_copol_fpga, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH); return true; } -bool rffe_post_init(eSubSystemStates *ssState) +bool rffe_post_init(void* driver, void *ssState) { ReturnStatus status = RETURN_OK; + eSubSystemStates *newState = (eSubSystemStates*)ssState; - status |= rffe_ctrl_configure_power_amplifier(RFFE_CHANNEL1, + Fe_Ch_Pwr_Cfg fe_ch1_pwrcfg = { + .channel = RFFE_CHANNEL1, + .fe_Rffecfg = (Fe_Cfg*)driver + }; + + Fe_Ch_Pwr_Cfg fe_ch2_pwrcfg = { + .channel = RFFE_CHANNEL2, + .fe_Rffecfg = (Fe_Cfg*)driver + }; + + status |= rffe_ctrl_configure_power_amplifier(&fe_ch1_pwrcfg, RFFE_ACTIVATE_PA); - status |= rffe_ctrl_configure_power_amplifier(RFFE_CHANNEL2, + status |= rffe_ctrl_configure_power_amplifier(&fe_ch2_pwrcfg, RFFE_ACTIVATE_PA); //rffe_powermonitor_createtask(); @@ -128,12 +127,11 @@ bool rffe_post_init(eSubSystemStates *ssState) ((status == RETURN_OK) ? "successful" : "unsuccessful")); if (status == RETURN_OK) { - *ssState = SS_STATE_CFG; + *newState = SS_STATE_CFG; } else { - *ssState = SS_STATE_FAULTY; + *newState = SS_STATE_FAULTY; return false; } - return true; } @@ -141,7 +139,7 @@ bool RFFE_reset(void *driver, void *params) { /* TODO: this is the same line we use to reset the SDR - is this really * what we want to be doing here? */ - const Sdr_Cfg *cfg = sys_config[OC_SS_SDR]; + const Sdr_gpioCfg *cfg = (Sdr_gpioCfg *)driver; if (OcGpio_write(&cfg->pin_ec_trxfe_reset, false) < OCGPIO_SUCCESS) { return false; } @@ -151,21 +149,3 @@ bool RFFE_reset(void *driver, void *params) } return true; } - -bool RFFE_InventoryGetStatus(void *driver, unsigned int param_id, - void *return_buf) { - switch (param_id) { - case 0: /* TODO: gross magic number */ - memset(return_buf, '\0', OC_RFFE_BOARD_INFO_SIZE + 1); - if (eeprom_read_board_info((OCMPSubsystem)driver, return_buf) - == RETURN_OK) { - return true; - } - LOGGER_DEBUG("RFFE:INFO:: Board id: %s\n", return_buf); - break; - default: - LOGGER_ERROR("RFFE:ERROR::Unknown param %u\n", param_id); - break; - } - return false; -} diff --git a/firmware/ec/src/subsystem/rffe/rffe_ctrl.c b/firmware/ec/src/subsystem/rffe/rffe_ctrl.c index aa159dee2f..8617e1f7d7 100644 --- a/firmware/ec/src/subsystem/rffe/rffe_ctrl.c +++ b/firmware/ec/src/subsystem/rffe/rffe_ctrl.c @@ -11,81 +11,20 @@ //***************************************************************************** #include "inc/subsystem/rffe/rffe_ctrl.h" +#include "common/inc/global/Framework.h" #include "devices/i2c/threaded_int.h" #include "inc/devices/pca9557.h" #include "inc/subsystem/rffe/rffe.h" #include "inc/utils/util.h" -#include "registry/Framework.h" #include #include -/***************************************************************************** - * GPIO CONFIGURATION - *****************************************************************************/ -extern const void *sys_config[]; +static FE_Band_Cfg FE_BandCfg[RFFE_MAX_CHANNEL]; -static void _rffe_watchdog_handler(void *context) -{ - RfWatchdog_Cfg *cfg = context; - if (OcGpio_read(cfg->pin_alert_lb) > 0) { - OCMP_GenerateAlert(context, 0, NULL); - } - if (OcGpio_read(cfg->pin_alert_hb) > 0) { - OCMP_GenerateAlert(context, 1, NULL); - } -} - -static ePostCode _rffe_watchdog_init(void *driver, const void *config, - const void *alert_token) -{ - RfWatchdog_Cfg *cfg = driver; - if (OcGpio_configure(cfg->pin_alert_lb, OCGPIO_CFG_INPUT)) { - return POST_DEV_CFG_FAIL; - } - if (OcGpio_configure(cfg->pin_alert_hb, OCGPIO_CFG_INPUT)) { - return POST_DEV_CFG_FAIL; - } - if (OcGpio_configure(cfg->pin_interrupt, OCGPIO_CFG_INPUT | - OCGPIO_CFG_INT_FALLING)) { - return POST_DEV_CFG_FAIL; - } - - ThreadedInt_Init(cfg->pin_interrupt, _rffe_watchdog_handler, cfg); - return POST_DEV_CFG_DONE; -} - -Driver RFFEWatchdog = { - .name = "RFFE Watchdog", - .alerts = (Parameter[]){ - { .name = "LB_R_PWR" }, - { .name = "HB_R_PWR" }, - {} - }, - .cb_init = _rffe_watchdog_init, -}; - -/***************************************************************************** - ** FUNCTION NAME : rffe_ctrl_get_band - ** - ** DESCRIPTION : Gets the RF Band. - ** - ** ARGUMENTS : Channel and Band to be read - ** - ** RETURN TYPE : Success or failure - ** - *****************************************************************************/ -ReturnStatus rffe_ctrl_get_band(rffeChannel channel, rffeBand *band) -{ - ReturnStatus status = RETURN_OK; - - // TODO: Using RFFE_IO_BOARD_CFG_ADDR we should find Band Config. - *band = RFFE_BAND8_900; - - DEBUG("RFFECTRL:INFO:: Channel %s RF Band Configuration is %d .\n", - ((channel == 0) ? "1" : "2"), *band); - return status; -} +typedef enum FE_ParamCfg { + FE_CFG_BAND = 0, +} FE_ParamCfg; /***************************************************************************** ** FUNCTION NAME : rffe_ctrl_configure_power_amplifier @@ -98,19 +37,19 @@ ReturnStatus rffe_ctrl_get_band(rffeChannel channel, rffeBand *band) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -ReturnStatus rffe_ctrl_configure_power_amplifier(rffeChannel channel, +ReturnStatus rffe_ctrl_configure_power_amplifier(Fe_Ch_Pwr_Cfg *pwrCfg, rffePaCtrlType rfPACtrl) { ReturnStatus status = RETURN_OK; rffeBand band = RFFE_SHUTDOWN; - const Fe_Cfg *fe_cfg = sys_config[OC_SS_RF]; - const Fe_Ch2_Gain_Cfg *fe_ch1_rf_band_sel = &fe_cfg->fe_ch2_gain_cfg; - const Fe_Ch2_Lna_Cfg *fe_ch1_rf_pwr = &fe_cfg->fe_ch2_lna_cfg; - const Fe_Watchdog_Cfg *fe_ch2_rf_pwr = &fe_cfg->fe_watchdog_cfg; + rffeChannel channel = pwrCfg->channel; + const Fe_Ch2_Gain_Cfg *fe_ch1_rf_band_sel = pwrCfg->fe_Rffecfg->fe_ch2_gain_cfg; + const Fe_Ch2_Lna_Cfg *fe_ch1_rf_pwr = pwrCfg->fe_Rffecfg->fe_ch2_lna_cfg; + const Fe_Watchdog_Cfg *fe_ch2_rf_pwr = pwrCfg->fe_Rffecfg->fe_watchdog_cfg; /* Get the RF Band Configuration for the requested RF Channel */ status = rffe_ctrl_get_band(channel, &band); - if (status == RETURN_OK) { + if (status == true) { DEBUG("RFFECTRL:INFO:: RF Channel %s Band is 0x%x.\n", ((channel == 0) ? "1" : "2"), band); } else { @@ -118,7 +57,7 @@ ReturnStatus rffe_ctrl_configure_power_amplifier(rffeChannel channel, } DEBUG("RFFECTRL:INFO:: %s Channel %s for Band %d.\n", - ((rfPACtrl == 0) ? "Deactiavting" : "Activating"), + ((rfPACtrl == 0) ? "Deactivating" : "Activating"), ((channel == 0) ? "1" : "2"), band); if (channel == RFFE_CHANNEL1) { @@ -136,17 +75,19 @@ ReturnStatus rffe_ctrl_configure_power_amplifier(rffeChannel channel, OcGpio_write(&fe_ch2_rf_pwr->pin_ch2_rf_pwr_off, false); } } - return status; + return RETURN_OK; } bool RFFE_enablePA(void *driver, void *params) { - return (rffe_ctrl_configure_power_amplifier((rffeChannel)driver, + Fe_Ch_Pwr_Cfg *channel = (Fe_Ch_Pwr_Cfg*)driver; + return (rffe_ctrl_configure_power_amplifier(channel, RFFE_ACTIVATE_PA) == RETURN_OK); } bool RFFE_disablePA(void *driver, void *params) { - return (rffe_ctrl_configure_power_amplifier((rffeChannel)driver, + Fe_Ch_Pwr_Cfg *channel = (Fe_Ch_Pwr_Cfg*)driver; + return (rffe_ctrl_configure_power_amplifier(channel, RFFE_DEACTIVATE_PA) == RETURN_OK); -} +} \ No newline at end of file diff --git a/firmware/ec/src/subsystem/rffe/rffe_powermonitor.c b/firmware/ec/src/subsystem/rffe/rffe_powermonitor.c index b19cb19f82..84bb3f2cf2 100644 --- a/firmware/ec/src/subsystem/rffe/rffe_powermonitor.c +++ b/firmware/ec/src/subsystem/rffe/rffe_powermonitor.c @@ -19,8 +19,8 @@ #include /* RFFE device config */ -extern void *sys_config[]; -#define RFFE ((Fe_Cfg *)sys_config[OC_SS_RF]) +extern void* fe_ch1_ads7830; +extern void* fe_ch2_ads7830; /***************************************************************************** * HANDLES DEFINITION @@ -29,22 +29,6 @@ extern void *sys_config[]; static Task_Struct rffePowerMonitorTask; static Char rffePowerMonitorTaskStack[RFFEPOWERMONITOR_TASK_STACK_SIZE]; -typedef enum FePowerStatus { - FE_POWER_STATUS_FORWARD = 0, - FE_POWER_STATUS_REVERSE, -} FePowerStatus; - -static bool _ocmp_get_status(void *driver, unsigned int param_id, - void *return_buf); -Driver RFPowerMonitor = { - .status = (Parameter[]){ - { .name = "forward", .type = TYPE_UINT16 }, - { .name = "reverse", .type = TYPE_UINT16 }, - {} - }, - .cb_get_status = _ocmp_get_status, -}; - /***************************************************************************** ** FUNCTION NAME : rffe_powermonitor_read_adcpower ** @@ -100,7 +84,7 @@ static ReturnStatus rffe_powermonitor_read_adcpower(const I2C_Dev *i2c_dev, ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -static ReturnStatus rffe_powermonitor_read_power(const I2C_Dev *i2c_dev, +ReturnStatus rffe_powermonitor_read_power(const I2C_Dev *i2c_dev, eRffeStatusParamId rfPowerSelect, uint16_t *rfpower) { @@ -173,33 +157,6 @@ static ReturnStatus rffe_powermonitor_read_power(const I2C_Dev *i2c_dev, return status; } -/* OCMP message handler */ -static bool _ocmp_get_status(void *driver, unsigned int param_id, - void *return_buf) { - switch (param_id) { - case FE_POWER_STATUS_FORWARD: { - if (rffe_powermonitor_read_power(driver, - RFFE_STAT_FW_POWER, - return_buf) == RETURN_OK) { - return true; - } - break; - } - case FE_POWER_STATUS_REVERSE: { - if (rffe_powermonitor_read_power(driver, - RFFE_STAT_REV_POWER, - return_buf) == RETURN_OK) { - return true; - } - break; - } - default: - LOGGER_ERROR("RFPOWERMONITOR::Unknown status param %d\n", param_id); - return false; - } - return false; -} - /***************************************************************************** ** FUNCTION NAME : rffe_powermonitor_task_fxn ** @@ -220,7 +177,7 @@ static void rffe_powermonitor_task_fxn(UArg a0, UArg a1) ReturnStatus status; /* Read RF FE Forward Power on channel 1 */ - status = rffe_powermonitor_read_power(&RFFE->ads7830_ch1, + status = rffe_powermonitor_read_power(fe_ch1_ads7830, RFFE_STAT_FW_POWER, &rfPower); if (status == RETURN_OK) { @@ -229,7 +186,7 @@ static void rffe_powermonitor_task_fxn(UArg a0, UArg a1) } /* Read RF FE Forward Power on channel 2 */ - status = rffe_powermonitor_read_power(&RFFE->ads7830_ch2, + status = rffe_powermonitor_read_power(fe_ch2_ads7830, RFFE_STAT_FW_POWER, &rfPower); if (status == RETURN_OK) { diff --git a/firmware/ec/src/subsystem/sdr/sdr.c b/firmware/ec/src/subsystem/sdr/sdr.c index 4c1c99fb87..cb36f4cbee 100644 --- a/firmware/ec/src/subsystem/sdr/sdr.c +++ b/firmware/ec/src/subsystem/sdr/sdr.c @@ -23,17 +23,9 @@ // HANDLES DEFINITION //***************************************************************************** /* Global Task Configuration Variables */ -static Char sdrTaskStack[SDR_TASK_STACK_SIZE]; - -OCSubsystem ssSdr = { - .taskStackSize = SDR_TASK_STACK_SIZE, - .taskPriority = SDR_TASK_PRIORITY, - .taskStack = sdrTaskStack, -}; /* SDR device config */ -extern void *sys_config[]; -#define SDR ((Sdr_Cfg *)sys_config[OC_SS_SDR]) + /***************************************************************************** ** FUNCTION NAME : sdr_pwr_control @@ -45,16 +37,16 @@ extern void *sys_config[]; ** RETURN TYPE : ReturnStatus ** *****************************************************************************/ -void sdr_pwr_control(uint8_t control) +void sdr_pwr_control(Sdr_gpioCfg *sdr_gpioCfg, uint8_t control) { /* Using configure instead of 'write' here since this pin is shared with * OBC and we don't want to configure then write if OBC has already * configured it (it'll reset Iridium that way) */ if (control == OC_SDR_ENABLE) { - OcGpio_configure(&SDR->pin_trxfe_12v_onoff, OCGPIO_CFG_OUTPUT | + OcGpio_configure(&sdr_gpioCfg->pin_trxfe_12v_onoff, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH); } else { - OcGpio_configure(&SDR->pin_trxfe_12v_onoff, OCGPIO_CFG_OUTPUT | + OcGpio_configure(&sdr_gpioCfg->pin_trxfe_12v_onoff, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_LOW); } } @@ -69,12 +61,12 @@ void sdr_pwr_control(uint8_t control) ** RETURN TYPE : ReturnStatus ** *****************************************************************************/ -static void sdr_control_ioexpander(uint8_t control) +static void sdr_control_ioexpander(Sdr_gpioCfg *sdr_gpioCfg, uint8_t control) { if (control == OC_SDR_ENABLE) { - OcGpio_write(&SDR->pin_rf_fe_io_reset, true); + OcGpio_write(&sdr_gpioCfg->pin_rf_fe_io_reset, true); } else { - OcGpio_write(&SDR->pin_rf_fe_io_reset, false); + OcGpio_write(&sdr_gpioCfg->pin_rf_fe_io_reset, false); } } @@ -88,12 +80,12 @@ static void sdr_control_ioexpander(uint8_t control) ** RETURN TYPE : ReturnStatus ** *****************************************************************************/ -static void sdr_control_device(uint8_t control) +static void sdr_control_device(Sdr_gpioCfg *sdr_gpioCfg, uint8_t control) { if (control == OC_SDR_ENABLE) { - OcGpio_write(&SDR->pin_sdr_reset_in, true); + OcGpio_write(&sdr_gpioCfg->pin_sdr_reset_in, true); } else { - OcGpio_write(&SDR->pin_sdr_reset_in, false); + OcGpio_write(&sdr_gpioCfg->pin_sdr_reset_in, false); } } @@ -107,12 +99,12 @@ static void sdr_control_device(uint8_t control) ** RETURN TYPE : ReturnStatus ** *****************************************************************************/ -static void sdr_control_reset(uint8_t control) +static void sdr_control_reset(Sdr_gpioCfg *sdr_gpioCfg, uint8_t control) { if (control == OC_SDR_ENABLE) { - OcGpio_write(&SDR->pin_ec_trxfe_reset, true); + OcGpio_write(&sdr_gpioCfg->pin_ec_trxfe_reset, true); } else { - OcGpio_write(&SDR->pin_ec_trxfe_reset, false); + OcGpio_write(&sdr_gpioCfg->pin_ec_trxfe_reset, false); } } @@ -127,26 +119,26 @@ static void sdr_control_reset(uint8_t control) ** RETURN TYPE : Success or Failure ** *****************************************************************************/ -static ReturnStatus sdr_fx3_reset(void) +static ReturnStatus sdr_fx3_reset(Sdr_gpioCfg* fx3_cfg) { /*TODO: We need to figure out a way for configuring PCA pins on Intel reset.*/ - OcGpio_configure(&SDR->pin_fx3_reset, OCGPIO_CFG_OUTPUT); + OcGpio_configure(&fx3_cfg->pin_fx3_reset, OCGPIO_CFG_OUTPUT); - if (OcGpio_write(&SDR->pin_fx3_reset, false) < OCGPIO_SUCCESS) { + if (OcGpio_write(&fx3_cfg->pin_fx3_reset, false) < OCGPIO_SUCCESS) { return RETURN_NOTOK; } /* Provide small delay */ SysCtlDelay(5); - if (OcGpio_write(&SDR->pin_fx3_reset, true) < OCGPIO_SUCCESS) { + if (OcGpio_write(&fx3_cfg->pin_fx3_reset, true) < OCGPIO_SUCCESS) { return RETURN_NOTOK; } return RETURN_OK; } bool SDR_fx3Reset(void *driver, void *params) { - return (sdr_fx3_reset() == RETURN_OK); + return (sdr_fx3_reset(driver) == RETURN_OK); } /***************************************************************************** @@ -159,41 +151,39 @@ bool SDR_fx3Reset(void *driver, void *params) { ** RETURN TYPE : ePostCode ** *****************************************************************************/ -bool SDR_Init(void *return_buf) +bool SDR_Init(void* driver, void *return_buf) { + Sdr_gpioCfg *sdr_gpioCfg = (Sdr_gpioCfg*)driver; /* Initialize IO pins */ - OcGpio_configure(&SDR->pin_sdr_reg_ldo_pgood, OCGPIO_CFG_INPUT); - OcGpio_configure(&SDR->pin_rf_fe_io_reset, OCGPIO_CFG_OUTPUT | + OcGpio_configure(&sdr_gpioCfg->pin_sdr_reg_ldo_pgood, OCGPIO_CFG_INPUT); + OcGpio_configure(&sdr_gpioCfg->pin_rf_fe_io_reset, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_LOW); - OcGpio_configure(&SDR->pin_sdr_reset_in, OCGPIO_CFG_OUTPUT | + OcGpio_configure(&sdr_gpioCfg->pin_sdr_reset_in, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_LOW); - OcGpio_configure(&SDR->pin_ec_trxfe_reset, OCGPIO_CFG_OUTPUT | + OcGpio_configure(&sdr_gpioCfg->pin_ec_trxfe_reset, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_LOW); /* Power On SDR */ - sdr_pwr_control(OC_SDR_ENABLE); - - /* Read EEPROM */ - eeprom_init(SDR->eeprom_inventory); + sdr_pwr_control(sdr_gpioCfg, OC_SDR_ENABLE); NOP_DELAY(); /* Move IO expander out of reset*/ - sdr_control_ioexpander(OC_SDR_ENABLE); + sdr_control_ioexpander(sdr_gpioCfg, OC_SDR_ENABLE); /*Enable SDR devices*/ - sdr_control_device(OC_SDR_ENABLE); + sdr_control_device(sdr_gpioCfg, OC_SDR_ENABLE); /* Added in SDR beacuse of U30 (SN74LV08A) */ /*RF_IO_RESET signal depends on this TRXFE_RESET*/ /*Enable TRX_FE_RESET*/ - sdr_control_reset(OC_SDR_ENABLE); + sdr_control_reset(sdr_gpioCfg, OC_SDR_ENABLE); /*Move*/ NOP_DELAY(); /* Check Powergood status(SDR_REG_LDO_PGOOD) */ - if(OcGpio_read(&SDR->pin_sdr_reg_ldo_pgood)) { + if(OcGpio_read(&sdr_gpioCfg->pin_sdr_reg_ldo_pgood)) { LOGGER("SDR:INFO:: PowerGood Status is OK.\n"); } else { @@ -201,7 +191,7 @@ bool SDR_Init(void *return_buf) } /* Make FX3 out of reset mode */ - ReturnStatus status = sdr_fx3_reset(); + ReturnStatus status = sdr_fx3_reset(driver); NOP_DELAY(); LOGGER("SDR:INFO:: FX3 Reset is %s.\n", @@ -210,32 +200,13 @@ bool SDR_Init(void *return_buf) return true; } -bool Sdr_InventoryGetStatus(void *driver, unsigned int param_id, - void *return_buf) { - - OCMPSubsystem *ss = (OCMPSubsystem *)driver; - - switch (param_id) { - case 0: /* TODO: gross magic number */ - memset(return_buf, '\0', OC_SDR_BOARD_INFO_SIZE + 1); - if (eeprom_read_board_info(*ss, return_buf) == RETURN_OK) { - return true; - } - LOGGER_DEBUG("SDR:INFO:: Board id: %s\n", return_buf); - break; - default: - LOGGER_ERROR("SDR:ERROR::Unknown param %u\n", param_id); - break; - } - return false; -} - bool SDR_reset(void *driver, void *params) { - if (OcGpio_write(&SDR->pin_sdr_reset_in, false) <= OCGPIO_FAILURE) { + Sdr_gpioCfg *sdr_gpioCfg = (Sdr_gpioCfg*)driver; + if (OcGpio_write(&sdr_gpioCfg->pin_sdr_reset_in, false) <= OCGPIO_FAILURE) { return false; } Task_sleep(100); - if (OcGpio_write(&SDR->pin_sdr_reset_in, true) <= OCGPIO_FAILURE) { + if (OcGpio_write(&sdr_gpioCfg->pin_sdr_reset_in, true) <= OCGPIO_FAILURE) { return false; } return true; diff --git a/firmware/ec/src/subsystem/sync/sync.c b/firmware/ec/src/subsystem/sync/sync.c index cf7131282c..678983d2ff 100644 --- a/firmware/ec/src/subsystem/sync/sync.c +++ b/firmware/ec/src/subsystem/sync/sync.c @@ -6,6 +6,7 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ + //***************************************************************************** // HEADER FILES //***************************************************************************** @@ -21,28 +22,17 @@ //***************************************************************************** // HANDLES DEFINITION //***************************************************************************** -/* Global Task Configuration Variables */ -static Char syncTaskStack[SYNC_TASK_STACK_SIZE]; - -OCSubsystem ssSync = { - .taskStackSize = SYNC_TASK_STACK_SIZE, - .taskPriority = SYNC_TASK_PRIORITY, - .taskStack = syncTaskStack, -}; - -/* Sync device config */ -extern void *sys_config[]; -#define SYNC ((Sync_Cfg *)sys_config[OC_SS_SYNC]) +static Sync_gpioCfg s_sync_gpiocfg; /* TODO: Change current implementaion of Polling based approach to interrupt * based driven in future */ static Char syncGpsTaskStack[SYNC_GPS_TASK_STACK_SIZE]; Semaphore_Handle gpsSem; -static ReturnStatus SYNC_GpsCheckLock(gpsStatus *gpsStatus) +static ReturnStatus SYNC_GpsCheckLock(Sync_gpioCfg *sync_gpiocfg, gpsStatus *gpsStatus) { /* Get the "lock OK" status from LTE-LITE GPIO pin */ - int locked = OcGpio_read(&SYNC->pin_r_lock_ok_ioexp); + int locked = OcGpio_read(&(sync_gpiocfg->pin_r_lock_ok_ioexp)); if (locked < OCGPIO_SUCCESS) { return RETURN_NOTOK; } @@ -88,7 +78,7 @@ static void SYNC_GpsTaskFxn(UArg a0, UArg a1) while (true) { if (Semaphore_pend(gpsSem, BIOS_WAIT_FOREVER)) { gpsStatus gpsStatus; - SYNC_GpsCheckLock(&gpsStatus); + SYNC_GpsCheckLock(&s_sync_gpiocfg,&gpsStatus); DEBUG("SYNC:INFO:: GPS is %s.\n", (gpsStatus == GPS_LOCKED) ? "Locked" : "Not Locked"); } @@ -149,9 +139,10 @@ static void SYNC_GpsTaskInit(void) bool SYNC_GpsStatus(void *driver, unsigned int param_id, void *return_buf) { + switch (param_id) { case 0: /* TODO: gross magic number */ - if (SYNC_GpsCheckLock(return_buf) == RETURN_OK) { + if (SYNC_GpsCheckLock(driver, return_buf) == RETURN_OK) { DEBUG("SYNC:INFO:: GPS is %s.\n", (*(gpsStatus *)return_buf == GPS_LOCKED) ? "Locked" : "Not Locked"); return true; @@ -166,34 +157,37 @@ bool SYNC_GpsStatus(void *driver, unsigned int param_id, void *return_buf) bool SYNC_reset(void *driver, void *params) { - if (OcGpio_write(&SYNC->pin_ec_sync_reset, false) <= OCGPIO_FAILURE) { + Sync_gpioCfg *sync_gpiocfg = (Sync_gpioCfg*)driver; + if (OcGpio_write(&sync_gpiocfg->pin_ec_sync_reset, false) <= OCGPIO_FAILURE) { return false; } Task_sleep(100); - if (OcGpio_write(&SYNC->pin_ec_sync_reset, true) <= OCGPIO_FAILURE) { + if (OcGpio_write(&sync_gpiocfg->pin_ec_sync_reset, true) <= OCGPIO_FAILURE) { return false; } return true; } -bool SYNC_Init(void *return_buf) +bool SYNC_Init(void*driver, void *return_buf) { + Sync_gpioCfg *sync_gpiocfg = (Sync_gpioCfg*)driver; /* Initialize IO pins */ - OcGpio_configure(&SYNC->pin_ec_sync_reset, OCGPIO_CFG_OUTPUT | + OcGpio_configure(&sync_gpiocfg->pin_ec_sync_reset, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH); - OcGpio_configure(&SYNC->pin_spdt_cntrl_lvl, OCGPIO_CFG_OUTPUT); - OcGpio_configure(&SYNC->pin_warmup_survey_init_sel, OCGPIO_CFG_OUTPUT); - OcGpio_configure(&SYNC->pin_r_phase_lock_ioexp, OCGPIO_CFG_INPUT); - OcGpio_configure(&SYNC->pin_r_lock_ok_ioexp, OCGPIO_CFG_INPUT); - OcGpio_configure(&SYNC->pin_r_alarm_ioexp, OCGPIO_CFG_INPUT); - OcGpio_configure(&SYNC->pin_12v_reg_enb, OCGPIO_CFG_OUTPUT | + OcGpio_configure(&sync_gpiocfg->pin_spdt_cntrl_lvl, OCGPIO_CFG_OUTPUT); + OcGpio_configure(&sync_gpiocfg->pin_warmup_survey_init_sel, OCGPIO_CFG_OUTPUT); + OcGpio_configure(&sync_gpiocfg->pin_r_phase_lock_ioexp, OCGPIO_CFG_INPUT); + OcGpio_configure(&sync_gpiocfg->pin_r_lock_ok_ioexp, OCGPIO_CFG_INPUT); + OcGpio_configure(&sync_gpiocfg->pin_r_alarm_ioexp, OCGPIO_CFG_INPUT); + OcGpio_configure(&sync_gpiocfg->pin_12v_reg_enb, OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH); - OcGpio_configure(&SYNC->pin_temp_alert, OCGPIO_CFG_INPUT); - OcGpio_configure(&SYNC->pin_spdt_cntrl_lte_cpu_gps_lvl, OCGPIO_CFG_OUTPUT); - OcGpio_configure(&SYNC->pin_init_survey_sel, OCGPIO_CFG_OUTPUT); - + OcGpio_configure(&sync_gpiocfg->pin_temp_alert, OCGPIO_CFG_INPUT); + OcGpio_configure(&sync_gpiocfg->pin_spdt_cntrl_lte_cpu_gps_lvl, OCGPIO_CFG_OUTPUT); + OcGpio_configure(&sync_gpiocfg->pin_init_survey_sel, OCGPIO_CFG_OUTPUT); + + /*Initiaize the local static driver config for the task*/ + s_sync_gpiocfg = *(Sync_gpioCfg*)driver; /* TODO: Launch task for GPS */ - //SYNC_GpsTaskInit(); - + SYNC_GpsTaskInit(); return true; } diff --git a/firmware/ec/src/subsystem/sys/sys.c b/firmware/ec/src/subsystem/sys/sys.c index 8f0361cb87..b57f3c1ac9 100644 --- a/firmware/ec/src/subsystem/sys/sys.c +++ b/firmware/ec/src/subsystem/sys/sys.c @@ -8,9 +8,10 @@ */ #include "inc/subsystem/sys/sys.h" +#include "common/inc/global/Framework.h" +#include "inc/common/post.h" #include "inc/devices/eeprom.h" #include "inc/subsystem/gpp/gpp.h" /* For resetting AP */ -#include "src/registry/Framework.h" #include #include @@ -20,285 +21,19 @@ #define OC_MAC_ADDRESS_SIZE 13 +extern POSTData PostResult[POST_RECORDS]; + typedef enum { OC_SYS_CONF_MAC_ADDRESS = 0 } eOCConfigParamId; -typedef enum { - OC_STAT_SYS_SERIAL_ID = 0, - OC_STAT_SYS_GBC_BOARD_ID, - OC_STAT_SYS_STATE -} eOCStatusParamId; - -OCSubsystem ssSystem = { - .taskStackSize = 1024, - .taskPriority = 4, -}; - -/* Driver definitions for the various devices within SYS */ -static ePostCode _init_eeprom(void *driver, const void *config, - const void *alert_token); -static bool _sid_get_status_parameters_data(void *drvier, - unsigned int param, - void *data); -static bool _mac_get_config_parameters_data(void *driver, - unsigned int param, - void *pOCConfigData); -static bool _mac_set_config_parameters_data(void *driver, - unsigned int param, - const void *pOCConfigData); - -const Driver Driver_EepromSID = { - .name = "EEPROM", - .status = (Parameter[]){ - { .name = "gbcboardinfo", .type = TYPE_STR, .size = 21 }, - { .name = "ocserialinfo", .type = TYPE_STR, .size = 21 }, - }, - .cb_init = _init_eeprom, - .cb_get_status = _sid_get_status_parameters_data, -}; - -const Driver Driver_EepromInv = { - .name = "EEPROM", - .cb_init = _init_eeprom -}; - -const Driver Driver_MAC = { - .name = "MAC", - .config = (Parameter[]){ - { .name = "address", .type = TYPE_STR, - .size = OC_MAC_ADDRESS_SIZE + 1 } - }, - .cb_get_config = _mac_get_config_parameters_data, - .cb_set_config = _mac_set_config_parameters_data, -}; - -/* Intitialize an EEPROM device and test writing to the very end of memory */ -static ePostCode _init_eeprom(void *driver, const void *config, - const void *alert_token) -{ - Eeprom_Cfg *eeprom = driver; - uint8_t write = 0x01; - uint8_t read = 0x00; - - eeprom_init(eeprom); - eeprom_enable_write(eeprom); - eeprom_write(eeprom, OC_TEST_ADDRESS, &write, 1); - NOP_DELAY(); /* TODO: the eeprom driver should handle this */ - eeprom_disable_write(eeprom); - eeprom_read(eeprom, OC_TEST_ADDRESS, &read, 1); - - if (write == read) { - return POST_DEV_CFG_DONE; - } - return POST_DEV_CFG_FAIL; -} - -/***************************************************************************** - ** FUNCTION NAME : bb_get_mac_address - ** - ** DESCRIPTION : Get EC MAC address. - ** - ** ARGUMENTS : Pointer to OCMPMessageFrame structure - ** - ** RETURN TYPE : Success or Failure - ** - *****************************************************************************/ -static ReturnStatus bb_get_mac_address(uint8_t *macAddress) -{ - uint32_t ulUser0 = 0, ulUser1 = 0; - - /* Get the MAC address */ - if((FlashUserGet(&ulUser0, &ulUser1)) != 0) { - return RETURN_NOTOK; - } - uint8_t i = 0; - uint8_t temp[6] = {'\0'}; - - if ((ulUser0 != 0xffffffff) && (ulUser1 != 0xffffffff)) { - /* - * Convert the 24/24 split MAC address from NV ram into a 32/16 split - * MAC address needed to program the hardware registers, then program - * the MAC address into the Ethernet Controller registers. - */ - temp[0] = ((ulUser0 >> 0) & 0xff); - temp[1] = ((ulUser0 >> 8) & 0xff); - temp[2] = ((ulUser0 >> 16) & 0xff); - temp[3] = ((ulUser1 >> 0) & 0xff); - temp[4] = ((ulUser1 >> 8) & 0xff); - temp[5] = ((ulUser1 >> 16) & 0xff); - - for( i = 0; i < 6; i++ ) - { - sprintf((char *)&macAddress[i*2], "%X", ((temp[i]&0xf0) >> 4)); - sprintf((char *)&macAddress[(i*2)+1], "%X", temp[i]&0xf); - } - } else { - strncpy((char *)macAddress, "FFFFFFFFFFFF", 12); - } - - return RETURN_OK; -} - -static uint32_t str_to_val(const char *str) -{ - uint32_t value = 0; - uint8_t temp; - char *ptr; - value = strtol(str, &ptr, 16); - temp = (value & 0XFF0000) >> 16; - value = (value & 0X00FF00) | ((value & 0X0000FF) << 16); - value = value | temp; - return value; -} - -/***************************************************************************** - ** FUNCTION NAME : bb_set_mac_address - ** - ** DESCRIPTION : Set EC MAC address. - ** - ** ARGUMENTS : Pointer to OCMPMessageFrame structure - ** - ** RETURN TYPE : Success or Failure - ** - *****************************************************************************/ -ReturnStatus bb_set_mac_address(const uint8_t *macAddress) -{ - uint32_t ulUser0, ulUser1; - if(macAddress != NULL) { - char temp[6]; - strncpy(temp, (const char *)macAddress, 6); - ulUser0 = str_to_val(temp); - strncpy(temp, (const char *)(macAddress + 6), 6); - ulUser1 = str_to_val(temp); - /* Set the MAC address */ - if((FlashUserSet(ulUser0, ulUser1)) != 0) { - return RETURN_NOTOK; - } else { - if(FlashUserSave() != 0) { - return RETURN_NOTOK; - } - } - /*SysCtlDelay(2000000); - SysCtlReset();*/ - } - - return RETURN_OK; -} - -/***************************************************************************** - ** FUNCTION NAME : mac_get_config_parameters_data - ** - ** DESCRIPTION : Get OC Config Message. - ** - ** ARGUMENTS : Pointer to OCMPMessageFrame structure - ** - ** RETURN TYPE : Success or Failure - ** - *****************************************************************************/ -static bool _mac_get_config_parameters_data(void *driver, - unsigned int param, - void *pOCConfigData) -{ - const eOCConfigParamId paramIndex = (eOCConfigParamId)param; - ReturnStatus status = RETURN_OK; - switch (paramIndex) { - case OC_SYS_CONF_MAC_ADDRESS: - { - memset(pOCConfigData, '\0', OC_MAC_ADDRESS_SIZE + 1); - status = bb_get_mac_address(pOCConfigData); - LOGGER_DEBUG("SYS:INFO:: OC Connect1 MAC Address: %s.\n", - pOCConfigData); - break; - } - default: - { - status = RETURN_NOTOK; - } - } - return (status == RETURN_OK); -} - -/***************************************************************************** - ** FUNCTION NAME : mac_set_config_parameters_data - ** - ** DESCRIPTION : Set OC Config Message. - ** - ** ARGUMENTS : Pointer to OCMPMessageFrame structure - ** - ** RETURN TYPE : Success or Failure - ** - *****************************************************************************/ -static bool _mac_set_config_parameters_data(void *driver, - unsigned int param, - const void *pOCConfigData) -{ - const eOCConfigParamId paramIndex = (eOCConfigParamId)param; - ReturnStatus status = RETURN_OK; - switch (paramIndex) { - case OC_SYS_CONF_MAC_ADDRESS: - { - LOGGER_DEBUG("SYS:INFO:: Set OC Connect1 MAC Address to: %s.\n", - pOCConfigData); - bb_set_mac_address(pOCConfigData); - break; - } - default: - { - status = RETURN_NOTOK; - } - } - return (status == RETURN_OK); -} - -/***************************************************************************** - ** FUNCTION NAME : bb_process_get_status_parameters_data - ** - ** DESCRIPTION : Get OC Status Message. - ** - ** ARGUMENTS : Pointer to OCMPMessageFrame structure - ** - ** RETURN TYPE : Success or Failure - ** - *****************************************************************************/ -static bool _sid_get_status_parameters_data(void *drvier, - unsigned int param, - void *data) -{ - const eOCStatusParamId paramIndex = (eOCStatusParamId)param; - ReturnStatus status = RETURN_OK; - switch (paramIndex) { - case OC_STAT_SYS_SERIAL_ID: - { - memset(data, '\0', OC_CONNECT1_SERIAL_SIZE + 1); - status = eeprom_read_oc_info(data); - LOGGER_DEBUG("SYS:INFO:::: OC Connect1 serial id %s.\n", - data); - break; - } - case OC_STAT_SYS_GBC_BOARD_ID: - { - memset(data, '\0', OC_GBC_BOARD_INFO_SIZE + 1); - status = eeprom_read_board_info(OC_SS_SYS, data); - LOGGER_DEBUG("SYS:INFO:::: OC Connect1 GBC board is %s.\n", - data); - break; - } - default: - { - status = RETURN_NOTOK; - } - } - return (status == RETURN_OK); -} - /* Resets the AP and then the EC */ bool SYS_cmdReset(void *driver, void *params) { /* TODO: we don't give any indication that the message was received, perhaps * a timed shutdown would be more appropriate */ - const Gpp_Cfg *cfg = driver; + const Gpp_gpioCfg *cfg = (Gpp_gpioCfg *)driver; /* Reset AP */ OcGpio_write(&cfg->pin_ec_reset_to_proc, false); @@ -318,3 +53,87 @@ bool SYS_cmdEcho(void *driver, void *params) { return true; } + +/* +/***************************************************************************** + ** FUNCTION NAME : SYS_post_enable + ** + ** DESCRIPTION : Start the executing for POST + ** ARGUMENTS : None + ** + ** RETURN TYPE : bool + ** + *****************************************************************************/ +bool SYS_post_enable(void **postActivate) +{ + ReturnStatus status = RETURN_NOTOK; + LOGGER("SYS:INFO:: Starting POST test for OpenCellular.\n"); + //Permission granted from the System. + //Sending the activate POST message to POST subsystem. + OCMPMessageFrame *postExeMsg = create_ocmp_msg_frame(OC_SS_SYS, + OCMP_MSG_TYPE_POST, + OCMP_AXN_TYPE_ACTIVE, + 0x00, + 0x00, + 1); + if (postExeMsg != NULL) { + status = RETURN_OK; + *postActivate = (OCMPMessageFrame *)postExeMsg; + } + return (status == RETURN_OK) ; +} + +/***************************************************************************** + ** FUNCTION NAME : SYS_post_get_results + ** + ** DESCRIPTION : Get POST results from EEPROM. + ** + ** ARGUMENTS : None + ** + ** RETURN TYPE : bool + ** + *****************************************************************************/ +bool SYS_post_get_results(void **getpostResult) +{ + ReturnStatus status = RETURN_OK; + /* Return the POST results*/ + uint8_t iter = 0x00; + uint8_t index = 0x00; + OCMPMessageFrame *getpostResultMsg = (OCMPMessageFrame *)getpostResult; + /* Get the subsystem info for which message is required */ + OCMPMessageFrame *postResultMsg = create_ocmp_msg_frame( + getpostResultMsg->message.subsystem, OCMP_MSG_TYPE_POST, + OCMP_AXN_TYPE_REPLY,0x00,0x00,40); + if (postResultMsg) { + /* Getting data assigned*/ + postResultMsg->header.ocmpSof = getpostResultMsg->header.ocmpSof; + postResultMsg->header.ocmpInterface = getpostResultMsg->header + .ocmpInterface; + postResultMsg->header.ocmpSeqNumber = getpostResultMsg->header + .ocmpSeqNumber; + for (iter = 0; iter < POST_RECORDS; iter++) { + if (PostResult[iter].subsystem + == getpostResultMsg->message.ocmp_data[0]) { + postResultMsg->message.ocmp_data[(3 * index) + 0] = + PostResult[iter].subsystem; + postResultMsg->message.ocmp_data[(3 * index) + 1] = + PostResult[iter].devSno; //Device serial Number + postResultMsg->message.ocmp_data[(3 * index) + 2] = + PostResult[iter].status; //Status ok + index++; + } + } + LOGGER_DEBUG("BIGBROTHER:INFO::POST message sent for subsystem 0x%x.\n"); + /*Size of payload*/ + postResultMsg->header.ocmpFrameLen = index * 3; + /*Updating Subsystem*/ + //postResultMsg->message.subsystem = (OCMPSubsystem)PostResult[iter].subsystem; + /* Number of devices found under subsystem*/ + postResultMsg->message.parameters = index; + index = 0; + } else { + LOGGER("BIGBROTHER:ERROR:: Failed to allocate memory for POST results.\n"); + } + memcpy(((OCMPMessageFrame*)getpostResult), postResultMsg, 64); + return status; +} diff --git a/firmware/ec/src/subsystem/testModule/testModule.c b/firmware/ec/src/subsystem/testModule/testModule.c index 137252fbb8..f0a2e34848 100644 --- a/firmware/ec/src/subsystem/testModule/testModule.c +++ b/firmware/ec/src/subsystem/testModule/testModule.c @@ -10,550 +10,3 @@ //***************************************************************************** // HEADER FILES //***************************************************************************** -#include "inc/subsystem/testModule/testModule.h" - -#include "devices/uart/gsm.h" -#include "inc/common/global_header.h" -#include "helpers/array.h" -#include "helpers/math.h" -#include "helpers/uart.h" -#include "registry/SSRegistry.h" - -#include -#include -#include - -#include -#include - -/* TODO: move to helper? */ -#define STATIC_STRLEN(s) (ARRAY_SIZE(s) - 1) - -//***************************************************************************** -// MACROS DEFINITION -//***************************************************************************** -#define TESTMOD_TASK_PRIORITY 2 -#define TESTMOD_TASK_STACK_SIZE 2048 - -#define G510_WRITE_TIMEOUT 500 -#define G510_READ_TIMEOUT 5000 - -/* G510 enable line is active-low */ -#define GSM_EN_ASSERT (0) -#define GSM_EN_DEASSERT (1) - -#define GSM_PWR_EN_ASSERT (1) -#define GSM_PWR_EN_DEASSERT (0) - -#define GSM_SHUTDOWN_TIME 200 -#define GSM_COOLDOWN_TIME 50 - -typedef enum { - TWOG_SIM_CALLSTATE_CHANGE = 0, - TWOG_SIM_INCOMING_MSG = 1, - TWOG_SIM_ALERT_PARAMS_MAX /* Limiter */ -} eTEST_MOD_ALERTParam; - -typedef enum { - TWOG_CALL_EVT_RING = 0, - TWOG_CALL_EVT_CALL_END = 1, -} eTEST_MODE_CallEvent; - -typedef enum { - TWOG_IMEI = 0, - TWOG_IMSI = 1, - TWOG_GETMFG = 2, - TWOG_GETMODEL = 3, - TWOG_RSSI = 4, - TWOG_BER = 5, - TWOG_REGSTATUS = 6, - TWOG_NETWORK_OP_INFO = 7, - TWOG_CELLID = 8, - TWOG_BSIC = 9, - TWOG_LASTERR = 10, - TWOG_PARAM_MAX /* Limiter */ -} eTestModule_StatusParam; - -//***************************************************************************** -// HANDLES DEFINITION -//***************************************************************************** -OCSubsystem ssTestmod = { - .taskStackSize = TESTMOD_TASK_STACK_SIZE, - .taskPriority = TESTMOD_TASK_PRIORITY, -}; - -static Char testmodTaskStack[TESTMOD_TASK_STACK_SIZE]; - -static UART_Handle uartGsm; -static GSM_Handle s_hGsm = NULL; - -static Semaphore_Handle sem_simReady; -static Semaphore_Handle sem_sms; - -static volatile int sms_idx = -1; - -static void simReady_cb(void *context) -{ - Semaphore_post(sem_simReady); -} - -static void cmti_cb(const GsmCmtiInfo *info, void *context) -{ - sms_idx = info->index; - Semaphore_post(sem_sms); -} - -static void call_state_cb(const GsmClccInfo *info, void *context) -{ - DEBUG("CLCC %u\n", info->call_state); - switch (info->call_state) { - case GSM_CALL_STATE_INCOMING: { - eTEST_MODE_CallEvent callState = TWOG_CALL_EVT_RING; - OCMP_GenerateAlert(context, TWOG_SIM_CALLSTATE_CHANGE, &callState); - break; - } - case GSM_CALL_STATE_RELEASED: { - eTEST_MODE_CallEvent callState = TWOG_CALL_EVT_CALL_END; - OCMP_GenerateAlert(context, TWOG_SIM_CALLSTATE_CHANGE, &callState); - break; - } - } -} - -/* TODO: temporary */ -extern const void *sys_config[]; - -/* Configures the various IO pins associated with this subsystem */ -static bool configure_io(void) { - const TestMod_Cfg *testmod_cfg = sys_config[OC_SS_TEST_MODULE]; - const G510_Cfg *cfg = &testmod_cfg->g510_cfg; - - OcGpio_configure(&cfg->pin_sim_present, OCGPIO_CFG_INPUT); - OcGpio_configure(&cfg->pin_enable, OCGPIO_CFG_OUTPUT | - OCGPIO_CFG_OUT_LOW); - OcGpio_configure(&cfg->pin_pwr_en, OCGPIO_CFG_OUTPUT | - OCGPIO_CFG_OUT_LOW); - - return true; -} - -static UART_Handle open_comm(void) -{ - const TestMod_Cfg *testmod_cfg = sys_config[OC_SS_TEST_MODULE]; - - // Open GSM UART - UART_Params uartParams; - UART_Params_init(&uartParams); - uartParams.writeDataMode = UART_DATA_BINARY; - uartParams.readDataMode = UART_DATA_BINARY; - uartParams.readReturnMode = UART_RETURN_FULL; - uartParams.readEcho = UART_ECHO_OFF; - uartParams.baudRate = 115200; - uartParams.dataLength = UART_LEN_8; - uartParams.parityType = UART_PAR_NONE; - uartParams.stopBits = UART_STOP_ONE; - uartParams.writeTimeout = G510_WRITE_TIMEOUT; - uartParams.readTimeout = G510_READ_TIMEOUT; - return UART_open(testmod_cfg->g510_cfg.uart, &uartParams); -} - -/* General reset procedure: - * - send soft shutdown reset to try "nice" shutdown - * - kill power to unit in case soft shutdown didn't take - * - reapply power and assert enable line to reboot module - */ -static bool g510_reset(void) -{ - const TestMod_Cfg *testmod_cfg = sys_config[OC_SS_TEST_MODULE]; - const G510_Cfg *cfg = &testmod_cfg->g510_cfg; - - /* Ensure the enable line is high (deasserted) so the module doesn't - * restart itself */ - OcGpio_write(&cfg->pin_enable, GSM_EN_DEASSERT); - - /* Void any data already in modem, then send reset command */ - static const char CTRL_X = 0x18; - static const char resetCmd[] = "AT+CFUN=0\r\n"; - UART_write(uartGsm, &CTRL_X, sizeof(CTRL_X)); - UART_write(uartGsm, resetCmd, STATIC_STRLEN(resetCmd)); - - /* Wait for module to catch up */ - Task_sleep(GSM_SHUTDOWN_TIME); - - /* Kill power to be sure */ - OcGpio_write(&cfg->pin_pwr_en, GSM_PWR_EN_DEASSERT); - UART_flush(uartGsm); - Task_sleep(GSM_COOLDOWN_TIME); - - /* Enable the module. We can keep the line asserted - the module requires an - * edge before it will look at this line again */ - OcGpio_write(&cfg->pin_enable, GSM_EN_ASSERT); - OcGpio_write(&cfg->pin_pwr_en, GSM_PWR_EN_ASSERT); - - /* Wait for the module to be ready */ - const char bootStr[] = "AT command ready\r\n"; - char buf[STATIC_STRLEN(bootStr)]; - - if (UART_read(uartGsm, buf, sizeof(buf)) < sizeof(buf)) { - LOGGER_ERROR("Timeout waiting for G510\n"); - return false; - } - - if (memcmp(buf, bootStr, sizeof(buf)) != 0) { - LOGGER_ERROR("Unrecognized G510 boot str: %.*s\n", (int)sizeof(buf), - buf); - return false; - } - - return true; -} - -static ReturnStatus g510_init(const void *alert_token) -{ - if (!configure_io()) { - return RETURN_NOTOK; - } - - uartGsm = open_comm(); - if (!uartGsm) { - return RETURN_NOTOK; - } - - DEBUG("Resetting GSM module\n"); - if (!g510_reset()) { - return RETURN_NOTOK; - } - Task_sleep(100); // FIXME: this lets things catch up when using the emulator - DEBUG("GSM module ready\n"); - - // Configure SBD module - const GsmCallbackList cbList = { - .creg = NULL, - .simReady = simReady_cb, - .cmti = cmti_cb, - .ring = NULL, /* We're using clcc, so ignore RING alerts */ - .clcc = call_state_cb, - }; - - GsmCgsnInfo cgsnInfo; - s_hGsm = GSM_init(uartGsm, &cbList, (void *)alert_token); - - if (!s_hGsm) { - return RETURN_NOTOK; - } - - GSM_cgsn(s_hGsm, &cgsnInfo); - DEBUG("IMEI: %s\n", cgsnInfo.imei); - - // TODO: call cfun to ensure radio is active (this setting is sticky) - - GSM_creg(s_hGsm, GSM_CREG_STATUS_ENABLE_LOC); - - DEBUG("Test module ready\n"); - - return RETURN_OK; -} - -static bool testModule_get_statusParams(eTestModule_StatusParam paramID, - TestMod_2G_Status_Data *p2gStatusData) -{ - switch (paramID) { - case TWOG_IMEI: - { - GsmCgsnInfo cgsnInfo; - if (!GSM_cgsn(s_hGsm, &cgsnInfo)) { - return false; - } - p2gStatusData->imei = strtoull(cgsnInfo.imei, NULL, 10); - break; - } - case TWOG_IMSI: - { - uint64_t imsi; - if (!GSM_cimi(s_hGsm, &imsi)) { - return false; - } - p2gStatusData->imsi = imsi; - break; - } - case TWOG_GETMFG: - { - GsmCgmiInfo cgmiInfo; - if (!GSM_cgmi(s_hGsm, &cgmiInfo)) { - return false; - } - /* TODO: idea - make safe strncpy that always terminates str */ - strncpy(p2gStatusData->mfg, cgmiInfo.mfgId, - sizeof(p2gStatusData->mfg)); - break; - } - case TWOG_GETMODEL: - { - GsmCgmmInfo cgmmInfo; - if (!GSM_cgmm(s_hGsm, &cgmmInfo)) { - return false; - } - strncpy(p2gStatusData->model, cgmmInfo.model, - sizeof(p2gStatusData->model)); - break; - } - /* TODO: optimize this - no reason to call CSQ twice */ - case TWOG_RSSI: - { - GsmCsqInfo csqInfo; - if (!GSM_csq(s_hGsm, &csqInfo)) { - return false; - } - p2gStatusData->rssi = csqInfo.rssi; - break; - } - case TWOG_BER: - { - GsmCsqInfo csqInfo; - if (!GSM_csq(s_hGsm, &csqInfo)) { - return false; - } - p2gStatusData->ber = csqInfo.ber; - break; - } - case TWOG_REGSTATUS: - { - GsmCregInfo cregInfo; - if (!GSM_cregRead(s_hGsm, &cregInfo)) { - return false; - } - p2gStatusData->regStat = cregInfo.stat; - break; - } - case TWOG_NETWORK_OP_INFO: - /* TODO: from +COPS=? */ - return false; - case TWOG_CELLID: - { - /* NOTE: requires CREG mode 2 (unsolicited + location info) */ - GsmCregInfo cregInfo; - if (!GSM_cregRead(s_hGsm, &cregInfo)) { - return false; - } - p2gStatusData->cid = cregInfo.cid; - break; - } - case TWOG_BSIC: - /* TODO: from +MCELL? */ - return false; - case TWOG_LASTERR: - /* TODO: implement last error */ - return false; - default: - DEBUG("TESTMOD::ERROR: Unknown param %d\n", paramID); - return false; - } - return true; -} - -/* Command handling */ -bool TestMod_cmdEnable(void *driver, void *params) -{ - DEBUG("TESTMOD 2G Enable\n"); - return GSM_cfun(s_hGsm, GSM_CFUN_FULL); -} - -bool TestMod_cmdDisable(void *driver, void *params) -{ - DEBUG("TESTMOD 2G Disable\n"); - return GSM_cfun(s_hGsm, GSM_CFUN_AIRPLANE); -} - -bool TestMod_cmdDisconnect(void *driver, void *params) -{ - DEBUG("TESTMOD 2G Disconnect\n"); - return GSM_cops(s_hGsm, GSM_COPS_MODE_DEREG, GSM_COPS_FMT_NUMERIC, ""); -} - -bool TestMod_cmdConnect(void *driver, void *params) -{ - DEBUG("TESTMOD 2G Connect\n"); - return GSM_cops(s_hGsm, GSM_COPS_MODE_AUTO, GSM_COPS_FMT_NUMERIC, ""); -} - -bool TestMod_cmdSendSms(void *driver, void *params) -{ - DEBUG("TESTMOD 2G SMS\n"); - /* TODO: we assume number is null terminated, should have check */ - TestModule_sms *sms = params; - return GSM_cmgs(s_hGsm, sms->number, sms->msg); -} - -bool TestMod_cmdDial(void *driver, void *params) -{ - /* TODO: we assume number is null terminated, should have check */ - char *number = params; - /* TODO: watch for call state change to determine if successful */ - DEBUG("TESTMOD 2G Dial\n"); - return GSM_d(s_hGsm, number); -} - -bool TestMod_cmdAnswer(void *driver, void *params) -{ - DEBUG("TESTMOD 2G answer\n"); - return GSM_a(s_hGsm); -} - -bool TestMod_cmdHangup(void *driver, void *params) -{ - DEBUG("TESTMOD 2G hangup\n"); - return GSM_h(s_hGsm); -} - -bool TestMod_cmdReset(void *driver, void *params) -{ - DEBUG("TESTMOD Reset\n"); - return false; /* Not yet implemented */ -} - -static void testModule_task(UArg a0, UArg a1) -{ - const void *alert_token = (const void *)a0; - - /* Wait for our SIM card to be ready and then finish init */ - Semaphore_pend(sem_simReady, BIOS_WAIT_FOREVER); - DEBUG("TESTMOD::SIM Ready\n"); - - uint64_t imsi; - GSM_cimi(s_hGsm, &imsi); - /* TODO: hack because System_printf is crappy and doesn't support %llu */ - char imsiStr[16]; - snprintf(imsiStr, sizeof(imsiStr), "%"PRIu64, imsi); - DEBUG("IMSI: %s\n", imsiStr); - - /* NOTE: if the message storage fills up, the G510 will just - * reject any SMS from the network, so we need to make sure - * it's clear - */ - GSM_cmgd(s_hGsm, 1, GSM_CMGD_DELETE_ALL); - - GSM_clccSet(s_hGsm, true); /* Enable clcc (call state) msg */ - - /* Finish device configuration */ - if (!GSM_cnmi(s_hGsm, 2, 1, 0, 0 , 0) || /* enable sms arrival notif */ - !GSM_cmgf(s_hGsm, GSM_MSG_FMT_TEXT) || /* set to text mode */ - !GSM_csmp(s_hGsm, 17, 167, 0, 0) || /* text mode parameters */ - !GSM_csdh(s_hGsm, true)) { /* display extra info for cgmr */ - s_hGsm = NULL; /* TODO: proper teardown of handle */ - } - - while (Semaphore_pend(sem_sms, BIOS_WAIT_FOREVER)) { - if (sms_idx >= 0) { - GSM_cnma(s_hGsm); - static char sms[160]; - if (GSM_cmgr(s_hGsm, sms_idx, sms, NULL)) { - DEBUG("SMS: %.*s\n", 50, sms); // System_printf has a limited buffer - OCMP_GenerateAlert(alert_token, TWOG_SIM_INCOMING_MSG, sms); - } else { - LOGGER_ERROR("TESTMOD:Failed to read SMS\n"); - } - - GSM_cmgd(s_hGsm, sms_idx, GSM_CMGD_DELETE_AT_INDEX); - sms_idx = -1; - - //if (GSM_cmgs(s_hGsm, "29913", "Hello from GSM :)") < 0) { - // LOGGER_ERROR("TESTMOD:Error sending SMS\n"); - //} - } - } -} - -static ePostCode _probe(void *driver) -{ - /* TODO: this is a problem: we can't probe until we've initialized, but we - * don't init until after probing */ - return POST_DEV_FOUND; -} - -static ePostCode _init(void *driver, const void *config, - const void *alert_token) -{ - /* TODO: there's probably a better way to wait on the sim card */ - sem_simReady = Semaphore_create(0, NULL, NULL); - sem_sms = Semaphore_create(0, NULL, NULL); - if (!sem_simReady || !sem_sms) { - LOGGER_ERROR("TESTMOD:ERROR:: Failed creating semaphores\n"); - Semaphore_delete(&sem_simReady); - Semaphore_delete(&sem_sms); - return POST_DEV_CFG_FAIL; - } - - /* TODO: it's less than ideal to have a dedicated task for this */ - /* Create a task */ - Task_Params taskParams; - Task_Params_init(&taskParams); - taskParams.stack = testmodTaskStack; - taskParams.stackSize = TESTMOD_TASK_STACK_SIZE; - taskParams.priority = TESTMOD_TASK_PRIORITY; - taskParams.arg0 = (intptr_t)alert_token; - Task_Handle task = Task_create(testModule_task, &taskParams, NULL); - if (!task) { - DEBUG("TESTMOD::FATAL: Unable to start G510 task\n"); - Semaphore_delete(&sem_simReady); - Semaphore_delete(&sem_sms); - return POST_DEV_CFG_FAIL; - } - - if (g510_init(alert_token) != RETURN_OK) { - return POST_DEV_CFG_FAIL; - } - return POST_DEV_CFG_DONE; -} - -static bool _get_status(void *driver, unsigned int param_id, void *return_buf) -{ - return testModule_get_statusParams((eTestModule_StatusParam)param_id, - return_buf); -} - -const Driver Testmod_G510 = { - .name = "Fibocom G510", - .status = (Parameter[]){ - { .name = "imei", .type = TYPE_UINT64 }, - { .name = "imei", .type = TYPE_UINT64 }, - { .name = "mfg", .type = TYPE_STR, .size = 10 }, - { .name = "model", .type = TYPE_STR, .size = 5 }, - { .name = "rssi", .type = TYPE_UINT8 }, - { .name = "ber", .type = TYPE_UINT8 }, - { .name = "registration", .type = TYPE_ENUM, - .values = (Enum_Map[]){ - { 0, "Not Registered, Not Searching" }, - { 1, "Registered, Home Network" }, - { 2, "Not Registered, Searching" }, - { 3, "Registration Denied" }, - { 4, "Status Unknown" }, - { 5, "Registered, Roaming" }, - {} - }, - }, - { .name = "network_operatorinfo" }, /* TODO: this is a complex type */ - { .name = "cellid", TYPE_UINT32 }, - { .name = "bsic", TYPE_UINT8 }, - { .name = "lasterror" }, /* TODO: this is a complex type */ - {} - }, - .alerts = (Parameter[]){ - { .name = "Call State Changed", .type = TYPE_ENUM, - .values = (Enum_Map[]){ - { 0, "Ringing" }, - { 1, "Call End" }, - {} - }, - }, - /* TODO: var len str */ - { .name = "Incoming SMS", .type = TYPE_STR, .size = 20 }, - {} - }, - - /* Message handlers */ - .cb_probe = _probe, - .cb_init = _init, - .cb_get_status = _get_status, - - .payload_fmt_union = true, /* Testmodule breaks serialization pattern :( */ -}; diff --git a/firmware/ec/src/subsystem/watchdog/watchdog.c b/firmware/ec/src/subsystem/watchdog/watchdog.c index d306c7929f..a7191f45c4 100644 --- a/firmware/ec/src/subsystem/watchdog/watchdog.c +++ b/firmware/ec/src/subsystem/watchdog/watchdog.c @@ -6,16 +6,17 @@ * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ + //***************************************************************************** // HEADER FILES //***************************************************************************** -#include "inc/subsystem/gpp/gpp.h" #include "inc/subsystem/watchdog/watchdog.h" +#include "common/inc/global/ocmp_frame.h" #include "drivers/OcGpio.h" #include "inc/common/bigbrother.h" #include "inc/common/global_header.h" -#include "inc/common/ocmp_frame.h" +#include "inc/subsystem/gpp/gpp.h" #include "inc/utils/util.h" #include @@ -72,7 +73,7 @@ extern const void *sys_config[]; void watchdog_reset_ap(void) { uint32_t delay = 0; - const Gpp_Cfg *cfg = sys_config[OC_SS_GPP]; + const Gpp_gpioCfg *cfg = sys_config[OC_SS_GPP]; OcGpio_write(&cfg->pin_ec_reset_to_proc, false); delay = 0x1000000; @@ -105,8 +106,8 @@ void watchdog_send_messages(OCMPMessageFrame * pWatchdogMsg) void watchdog_send_cmd_message(void) { OCMPMessageFrame *pWatchdogMsg = (OCMPMessageFrame *) malloc(32); - pWatchdogMsg->header.ocmp_interface = OCMP_COMM_IFACE_UART; - pWatchdogMsg->header.ocmp_sof = OCMP_MSG_SOF; + pWatchdogMsg->header.ocmpInterface = OCMP_COMM_IFACE_UART; + pWatchdogMsg->header.ocmpSof = OCMP_MSG_SOF; pWatchdogMsg->message.subsystem = OC_SS_WD; pWatchdogMsg->message.msgtype = OCMP_MSG_TYPE_STATUS; pWatchdogMsg->message.action = OCMP_AXN_TYPE_SET; diff --git a/firmware/ec/src/utils/ocmp_util.c b/firmware/ec/src/utils/ocmp_util.c index 7587f6113c..af4b19c718 100644 --- a/firmware/ec/src/utils/ocmp_util.c +++ b/firmware/ec/src/utils/ocmp_util.c @@ -10,7 +10,6 @@ /***************************************************************************** * HEADER FILES *****************************************************************************/ - #include "inc/utils/ocmp_util.h" /***************************************************************************** @@ -30,7 +29,7 @@ OCMPMessageFrame * OCMP_mallocFrame(uint16_t len) pMsg = (OCMPMessageFrame *)malloc(sizeof(OCMPMessageFrame)+len); if (pMsg != NULL) { // Assign Data Length of Frame - pMsg->header.ocmp_frameLen = len; + pMsg->header.ocmpFrameLen = len; // Assign pData to first byte of payload // Pointer arithmetic of + 1 is equal to sizeof(OCMPMessageFrame) bytes // then cast to unsigned char * for pData @@ -68,9 +67,9 @@ OCMPMessageFrame* create_ocmp_msg_frame(OCMPSubsystem subSystem, if (ocmp_msg) { *ocmp_msg = (OCMPMessageFrame){ .header = { - .ocmp_sof = OCMP_MSG_SOF, - .ocmp_interface = OCMP_COMM_IFACE_USB, - .ocmp_frameLen = payloadSize, + .ocmpSof = OCMP_MSG_SOF, + .ocmpInterface = OCMP_COMM_IFACE_USB, + .ocmpFrameLen = payloadSize, //.ocmp_seqNumber = 0x00; //.ocmp_timestamp = 0x00; //Get RTC TimeStamp }, diff --git a/firmware/ec/src/utils/util.c b/firmware/ec/src/utils/util.c index 1b13e4c31f..e94482af90 100644 --- a/firmware/ec/src/utils/util.c +++ b/firmware/ec/src/utils/util.c @@ -39,13 +39,14 @@ /********************************************************************* * INCLUDES */ -#include +#include "inc/utils/util.h" + #include #include #include -#include -#include +#include +#include /********************************************************************* * TYPEDEFS diff --git a/firmware/ec/targetConfigs/Tiva TM4C1294NCPDT.ccxml b/firmware/ec/targetConfigs/Tiva TM4C1294NCPDT.ccxml deleted file mode 100644 index 72cd1da69c..0000000000 --- a/firmware/ec/targetConfigs/Tiva TM4C1294NCPDT.ccxml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/firmware/ec/targetConfigs/readme.txt b/firmware/ec/targetConfigs/readme.txt deleted file mode 100644 index af97b62d51..0000000000 --- a/firmware/ec/targetConfigs/readme.txt +++ /dev/null @@ -1,9 +0,0 @@ -The 'targetConfigs' folder contains target-configuration (.ccxml) files, automatically generated based -on the device and connection settings specified in your project on the Properties > General page. - -Please note that in automatic target-configuration management, changes to the project's device and/or -connection settings will either modify an existing or generate a new target-configuration file. Thus, -if you manually edit these auto-generated files, you may need to re-apply your changes. Alternatively, -you may create your own target-configuration file for this project and manage it manually. You can -always switch back to automatic target-configuration management by checking the "Manage the project's -target-configuration automatically" checkbox on the project's Properties > General page. \ No newline at end of file diff --git a/firmware/ec/test/Makefile b/firmware/ec/test/Makefile index 7aa94e0fd4..3e61968f41 100644 --- a/firmware/ec/test/Makefile +++ b/firmware/ec/test/Makefile @@ -4,8 +4,8 @@ # [Released under MIT License. Please refer to license.txt for details] # ========================================== -UNITY_ROOT = /Users/kashi/work/tools/Unity -OCWARE_ROOT = .. +UNITY_ROOT ?= ../../../../../Unity +OCWARE_ROOT ?= .. PATHT = suites/ PATHB = build/ @@ -33,7 +33,7 @@ CFLAGS += -Wno-unknown-pragmas CFLAGS += -Wstrict-prototypes CFLAGS += -Wundef CFLAGS += -Wold-style-definition -CFLAGS += -DTEST +CFLAGS += -DTEST -DUT_POST -DUT_FRAMEWORK CFLAGS += -g CFLAGS += -Dxdc_target_types__="xdc_target_posix.h" @@ -65,9 +65,9 @@ ifeq ($(OS),Windows_NT) MKDIR = mkdir -p endif else - DIR_XDC=/Users/kashi/work/tools/tirtos/xdctools_3_32_00_06_core/packages/ - DIR_SYSBIOS=/Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14//products/bios_6_45_02_31/packages/ - DIR_TIDRIVERS=/Users/kashi/work/tools/tirtos/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ + DIR_XDC ?= $(HOME)/ti/xdctools_3_32_00_06_core/packages/ + DIR_SYSBIOS ?= $(HOME)/ti/tirtos_tivac_2_16_01_14/products/bios_6_45_02_31/packages/ + DIR_TIDRIVERS ?= $(HOME)/ti/tirtos_tivac_2_16_01_14/products/tidrivers_tivac_2_16_01_13/packages/ CLEANUP = rm -f MKDIR = mkdir -p @@ -92,7 +92,7 @@ TEST_PCA9557_SRC=$(OCWARE_ROOT)/src/Devices/pca9557.c $(OCWARE_ROOT)/src/Devices $(PATHB)Test_pca9557$(TARGET_EXTENSION): $(STD_FILES) $(TEST_PCA9557_SRC) $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -o $@ -TEST_SE98A_SRC=$(OCWARE_ROOT)/src/Devices/se98a.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c stub/stub_GateMutex.c +TEST_SE98A_SRC=$(OCWARE_ROOT)/src/Devices/se98a.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c stub/stub_GateMutex.c $(OCWARE_ROOT)/src/post/post_util.c $(PATHB)Test_se98a$(TARGET_EXTENSION): $(STD_FILES) $(TEST_SE98A_SRC) $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -lm -o $@ @@ -100,7 +100,7 @@ TEST_GpioPCA9557_SRC=$(OCWARE_ROOT)/src/Devices/pca9557.c $(OCWARE_ROOT)/src/Dev $(PATHB)Test_GpioPCA9557$(TARGET_EXTENSION): $(STD_FILES) $(TEST_GpioPCA9557_SRC) $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -o $@ -TEST_INA226_SRC=$(OCWARE_ROOT)/src/Devices/ina226.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c +TEST_INA226_SRC=$(OCWARE_ROOT)/src/Devices/ina226.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c $(OCWARE_ROOT)/src/post/post_util.c $(PATHB)Test_ina226$(TARGET_EXTENSION): $(STD_FILES) $(TEST_INA226_SRC) $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -o $@ @@ -112,9 +112,37 @@ TEST_GpioSX1509_SRC=$(OCWARE_ROOT)/src/Devices/sx1509.c $(OCWARE_ROOT)/src/Devic $(PATHB)Test_GpioSX1509$(TARGET_EXTENSION): $(STD_FILES) $(TEST_GpioSX1509_SRC) $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -o $@ -TEST_LTC4015_SRC=$(OCWARE_ROOT)/src/Devices/ltc4015.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c +TEST_LTC4015_SRC=$(OCWARE_ROOT)/src/Devices/ltc4015.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c $(OCWARE_ROOT)/src/post/post_util.c $(PATHB)Test_ltc4015$(TARGET_EXTENSION): $(STD_FILES) $(TEST_LTC4015_SRC) $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -lm -o $@ + +TEST_powerSource_SRC=$(OCWARE_ROOT)/src/Devices/powerSource.c $(OCWARE_ROOT)/src/drivers/GpioSX1509.c $(OCWARE_ROOT)/src/Devices/sx1509.c $(OCWARE_ROOT)/src/helpers/memory.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c stub/stub_GateMutex.c +$(PATHB)Test_powerSource$(TARGET_EXTENSION): $(STD_FILES) $(TEST_powerSource_SRC) + $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -lm -o $@ + +TEST_EEPROM_SRC=$(OCWARE_ROOT)/src/Devices/eeprom.c $(OCWARE_ROOT)/src/drivers/GpioSX1509.c $(OCWARE_ROOT)/src/Devices/sx1509.c $(OCWARE_ROOT)/src/helpers/memory.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c stub/stub_GateMutex.c +$(PATHB)Test_eeprom$(TARGET_EXTENSION): $(STD_FILES) $(TEST_EEPROM_SRC) + $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -lm -o $@ + +TEST_LTC4275_SRC=$(OCWARE_ROOT)/src/Devices/ltc4275.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c stub/stub_GateMutex.c +$(PATHB)Test_ltc4275$(TARGET_EXTENSION): $(STD_FILES) $(TEST_LTC4275_SRC) + $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -lm -o $@ + +TEST_OCMP_ADT7481_SRC=$(OCWARE_ROOT)/src/devices/ocmp_wrappers/ocmp_adt7481.c $(OCWARE_ROOT)/src/Devices/adt7481.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c stub/stub_GateMutex.c $(OCWARE_ROOT)/src/post/post_util.c +$(PATHB)Test_ocmp_adt7481$(TARGET_EXTENSION): $(STD_FILES) $(TEST_OCMP_ADT7481_SRC) + $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -lm -o $@ + +TEST_OCMP_LTC4274_SRC=$(OCWARE_ROOT)/src/devices/ocmp_wrappers/ocmp_ltc4274.c $(OCWARE_ROOT)/src/Devices/ltc4274.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_GPIO.c fake/fake_I2C.c fake/fake_ThreadedISR.c stub/stub_GateMutex.c $(OCWARE_ROOT)/src/post/post_util.c +$(PATHB)Test_ocmp_ltc4274$(TARGET_EXTENSION): $(STD_FILES) $(TEST_OCMP_LTC4274_SRC) + $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -lm -o $@ + +TEST_PINGROUP_SRC=$(OCWARE_ROOT)/src/drivers/PinGroup.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_I2C.c fake/fake_ThreadedISR.c $(OCWARE_ROOT)/src/helpers/memory.c stub/stub_GateMutex.c $(OCWARE_ROOT)/src/drivers/GpioPCA9557.c $(OCWARE_ROOT)/src/Devices/pca9557.c +$(PATHB)Test_PinGroup_driver$(TARGET_EXTENSION): $(STD_FILES) $(TEST_PINGROUP_SRC) + $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -o $@ + +TEST_OCGPIO_SRC=$(OCWARE_ROOT)/src/drivers/OcGpio.c $(OCWARE_ROOT)/src/Devices/i2cbus.c fake/fake_I2C.c fake/fake_GPIO.c fake/fake_ThreadedISR.c $(OCWARE_ROOT)/src/helpers/memory.c stub/stub_GateMutex.c +$(PATHB)Test_OcGpio$(TARGET_EXTENSION): $(STD_FILES) $(TEST_OCGPIO_SRC) + $(C_COMPILER) $(CFLAGS) $(INC_DIRS) $(SYMBOLS) $^ -o $@ # Dummy target to allow us to force rebuild of testresults every time FORCE: diff --git a/firmware/ec/test/fake/fake_GPIO.c b/firmware/ec/test/fake/fake_GPIO.c index 4c2f3303df..7175d1282c 100644 --- a/firmware/ec/test/fake/fake_GPIO.c +++ b/firmware/ec/test/fake/fake_GPIO.c @@ -12,6 +12,19 @@ #include +static bool *FakeGpio_reg; +static uint32_t *FakeGpio_cfg_reg; + +void FakeGpio_registerDevSimple(void *GpioPins, void *GpioConfig) { + if (GpioPins) { + FakeGpio_reg = GpioPins; + } + if (GpioConfig) { + FakeGpio_cfg_reg = GpioConfig; + } + return; +} + static int FakeGpio_init(const OcGpio_Port *port) { FakeGpio_Obj *obj = port->object_data; *obj = (FakeGpio_Obj){}; @@ -19,19 +32,27 @@ static int FakeGpio_init(const OcGpio_Port *port) { } static int FakeGpio_write(const OcGpio_Pin *pin, bool value) { - UNUSED(pin); - UNUSED(value); + uint16_t final_pin=pin->idx; + if (pin->hw_cfg & OCGPIO_CFG_INVERT) { + value = !value; + } + FakeGpio_reg[final_pin] = value; return OCGPIO_SUCCESS; } static int FakeGpio_read(const OcGpio_Pin *pin) { - UNUSED(pin); - return 0; + bool chk =0; + uint16_t final_pin=pin->idx; + chk = FakeGpio_reg[final_pin]; + if (pin->hw_cfg & OCGPIO_CFG_INVERT) { + chk = !chk; + } + return chk; } static int FakeGpio_configure(const OcGpio_Pin *pin, uint32_t cfg) { - UNUSED(pin); - UNUSED(cfg); + uint16_t final_pin=pin->idx; + FakeGpio_cfg_reg[final_pin] = cfg; return OCGPIO_SUCCESS; } diff --git a/firmware/ec/test/suites/Doc/TestCaseList.xlsx b/firmware/ec/test/suites/Doc/TestCaseList.xlsx new file mode 100644 index 0000000000..f15c78f0eb Binary files /dev/null and b/firmware/ec/test/suites/Doc/TestCaseList.xlsx differ diff --git a/firmware/ec/test/suites/Test_OcGpio.c b/firmware/ec/test/suites/Test_OcGpio.c new file mode 100644 index 0000000000..4bc7786b30 --- /dev/null +++ b/firmware/ec/test/suites/Test_OcGpio.c @@ -0,0 +1,69 @@ +#include "fake/fake_GPIO.h" +#include "helpers/array.h" +#include "helpers/attribute.h" +#include +#include "unity.h" + +/* ======================== Constants & variables =========================== */ + +static OcGpio_Port s_fake_io_port = { + .fn_table = &FakeGpio_fnTable, + .object_data = &(FakeGpio_Obj){}, +}; + +static bool OcGpio_GpioPins[] = { + [0x01] = 0x1, /* Pin = 1 */ + [0x02] = 0x1, /* Pin = 2 */ +}; + +static uint32_t OcGpio_GpioConfig[] = { + [0x01] = OCGPIO_CFG_INPUT, + [0x02] = OCGPIO_CFG_INPUT, +}; + +static OcGpio_Pin s_fake_pin = { + .port = &s_fake_io_port, + .idx = 1, +}; +/* ============================= Boilerplate ================================ */ +void suite_setUp(void) +{ + FakeGpio_registerDevSimple(OcGpio_GpioPins, OcGpio_GpioConfig); +} + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +void suite_tearDown(void) +{ +} + +void test_ocgpio_init() +{ + TEST_ASSERT_EQUAL(OCGPIO_SUCCESS, OcGpio_init(&s_fake_io_port)); +} + +void test_ocgpio_read() +{ + OcGpio_GpioPins[1] = 1; + TEST_ASSERT_EQUAL(1, OcGpio_read(&s_fake_pin)); +} + +void test_ocgpio_write() +{ + OcGpio_GpioPins[1] = 1; + TEST_ASSERT_EQUAL(OCGPIO_SUCCESS, OcGpio_write(&s_fake_pin, 0)); + TEST_ASSERT_EQUAL(0, OcGpio_GpioPins[1]); +} + +void test_ocgpio_configure() +{ + OcGpio_GpioPins[1] = 1; + TEST_ASSERT_EQUAL(OCGPIO_SUCCESS, OcGpio_configure(&s_fake_pin, 8)); + TEST_ASSERT_EQUAL(8, OcGpio_GpioConfig[1]); +} \ No newline at end of file diff --git a/firmware/ec/test/suites/Test_PinGroup_driver.c b/firmware/ec/test/suites/Test_PinGroup_driver.c new file mode 100644 index 0000000000..74ba62e64a --- /dev/null +++ b/firmware/ec/test/suites/Test_PinGroup_driver.c @@ -0,0 +1,128 @@ +#include "drivers/PinGroup.h" +#include "drivers/GpioPCA9557.h" +#include "fake/fake_I2C.h" +#include "fake/fake_GPIO.h" +#include "inc/devices/dat-xxr5a-pp.h" +#include "inc/subsystem/rffe/rffe_ctrl.h" +#include "helpers/array.h" +#include "helpers/attribute.h" +#include "common/inc/global/OC_CONNECT1.h" +#include +#include "unity.h" + +/* ======================== Constants & variables =========================== */ +#define I2C_BUS 2 +#define I2C_ADDR 0x18 +static uint8_t PCA9557_regs[] = { + [0x00] = 0x00, /* Input values */ + [0x01] = 0x00, /* Output values */ + [0x02] = 0x00, /* Polarity */ + [0x03] = 0x00, /* Dir Config */ +}; +static const I2C_Dev pca9557_dev = { + .bus = 2, + .slave_addr = 0x24, +}; +OcGpio_Port fe_ch1_gain_io = { + .fn_table = &GpioPCA9557_fnTable, + .cfg = &(PCA9557_Cfg) { + .i2c_dev = { OC_CONNECT1_I2C2, RFFE_CHANNEL1_IO_TX_ATTEN_ADDR }, + }, + .object_data = &(PCA9557_Obj){}, +}; + +Fe_Gain_Cfg fe_ch1_gain = { + /* CH1_TX_ATTN_16DB */ + .pin_tx_attn_16db = { &fe_ch1_gain_io, 1 }, + /* CH1_TX_ATTN_P5DB */ + .pin_tx_attn_p5db = { &fe_ch1_gain_io, 2 }, + /* CH1_TX_ATTN_1DB */ + .pin_tx_attn_1db = { &fe_ch1_gain_io, 3 }, + /* CH1_TX_ATTN_2DB */ + .pin_tx_attn_2db = { &fe_ch1_gain_io, 4 }, + /* CH1_TX_ATTN_4DB */ + .pin_tx_attn_4db = { &fe_ch1_gain_io, 5 }, + /* CH1_TX_ATTN_8DB */ + .pin_tx_attn_8db = { &fe_ch1_gain_io, 6 }, + /* CH1_TX_ATTN_ENB */ + .pin_tx_attn_enb = { &fe_ch1_gain_io, 7 }, +}; + +const DATR5APP_Cfg *cfg_1 = (DATR5APP_Cfg *)&fe_ch1_gain; + + +/* ============================= Boilerplate ================================ */ +void suite_setUp(void) +{ + fake_I2C_init(); + fake_I2C_registerDevSimple(I2C_BUS, I2C_ADDR, PCA9557_regs, + sizeof(PCA9557_regs), sizeof(PCA9557_regs[0]), + sizeof(uint8_t), FAKE_I2C_DEV_LITTLE_ENDIAN); +} + +void setUp(void) +{ + memset(PCA9557_regs, 0, sizeof(PCA9557_regs)); +} + +void tearDown(void) +{ +} + +void suite_tearDown(void) +{ + fake_I2C_deinit(); /* This will automatically unregister devices */ +} + + +void test_PinGroup_configure(void) +{ + PinGroup pin_group = { + .num_pin = 6, /* DATR5APP_PIN_COUNT */ + .pins = cfg_1->pin_group + }; + + PCA9557_regs[0] = 0xFF; /* Input values */ + PCA9557_regs[1] = 0xFF; /* Output values */ + PCA9557_regs[2] = 0xFF; /* Polarity */ + PCA9557_regs[3] = 0xFF; /* Dir Config */ + + TEST_ASSERT_EQUAL(RETURN_OK, PinGroup_configure(&pin_group, + OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH)); + + TEST_ASSERT_EQUAL_HEX8(0x7E, PCA9557_regs[0x01]); + TEST_ASSERT_EQUAL_HEX8(0x00, PCA9557_regs[0x02]); + TEST_ASSERT_EQUAL_HEX8(0x00, PCA9557_regs[0x03]); + +} + +void test_PinGroup_read(void) +{ + PinGroup pin_group = { + .num_pin = 6, /* DATR5APP_PIN_COUNT */ + .pins = cfg_1->pin_group + }; + uint8_t value = 0x00; + + TEST_ASSERT_EQUAL(RETURN_OK, PinGroup_read(&pin_group, &value)); + TEST_ASSERT_EQUAL_HEX8(0x3F, value); +} + +void test_PinGroup_write(void) +{ + PinGroup pin_group = { + .num_pin = 6, /* DATR5APP_PIN_COUNT */ + .pins = cfg_1->pin_group + }; + + PCA9557_regs[0] = 0xFF; /* Input values */ + PCA9557_regs[1] = 0xFF; /* Output values */ + PCA9557_regs[2] = 0xFF; /* Polarity */ + PCA9557_regs[3] = 0xFF; /* Dir Config */ + + TEST_ASSERT_EQUAL(RETURN_OK, PinGroup_write(&pin_group, 1)); + TEST_ASSERT_EQUAL_HEX8(0xFF, PCA9557_regs[0x00]); + TEST_ASSERT_EQUAL_HEX8(0x04, PCA9557_regs[0x01]); + TEST_ASSERT_EQUAL_HEX8(0xFF, PCA9557_regs[0x02]); + TEST_ASSERT_EQUAL_HEX8(0xFF, PCA9557_regs[0x03]); +} \ No newline at end of file diff --git a/firmware/ec/test/suites/Test_eeprom.c b/firmware/ec/test/suites/Test_eeprom.c new file mode 100644 index 0000000000..9ea89d5c72 --- /dev/null +++ b/firmware/ec/test/suites/Test_eeprom.c @@ -0,0 +1,471 @@ +#include "unity.h" +#include "inc/devices/eeprom.h" +#include "drivers/GpioSX1509.h" +#include +#include +#include "fake/fake_GPIO.h" +#include "fake/fake_I2C.h" +#include "fake/fake_ThreadedISR.h" +#include "helpers/attribute.h" +#include "helpers/memory.h" +#include "drivers/OcGpio.h" +#include "helpers/array.h" +#include + +/* ============================= Fake Functions ============================= */ + +#include +unsigned int s_task_sleep_ticks; +xdc_Void ti_sysbios_knl_Task_sleep__E( xdc_UInt32 nticks ) +{ + s_task_sleep_ticks += nticks; +} + +/* ======================== Constants & variables =========================== */ + +static OcGpio_Port s_fake_io_port = { + .fn_table = &FakeGpio_fnTable, + .object_data = &(FakeGpio_Obj){}, +}; + +static const I2C_Dev I2C_DEV = { + .bus = 6, + .slave_addr = 0x50, +}; +static const I2C_Dev I2C_DEV_1 = { + .bus = 6, + .slave_addr = 0x51, +}; +static Eeprom_Cfg s_dev = { + .i2c_dev = { + .bus = 6, + .slave_addr = 0x50, + }, +}; + +static Eeprom_Cfg s_invalid_dev = { + .i2c_dev = { + .bus = 6, + .slave_addr = 0xFF, + }, +}; + +static uint16_t EEPROM_regs[] = { + [0x00] = 0x00, /* Init */ + [0xC601] = 0x00, /* SERIAL INFO */ + [0xAC01] = 0x00, /* BOARD INFO */ + [0x0A01] = 0x00, /* DEVICE INFO */ + [0x0A02] = 0x00, /* DEVICE INFO */ + +}; + +static uint8_t SX1509_regs[] = { + [0x00] = 0x00, /* Input buffer disable register B */ + [0x01] = 0x00, /* Input buffer disable register A */ + [0x02] = 0x00, /* Output buffer long slew register B */ + [0x03] = 0x00, /* Output buffer long slew register A */ + [0x04] = 0x00, /* Output buffer low drive register B */ + [0x05] = 0x00, /* Output buffer low drive register A */ + [0x06] = 0x00, /* Pull Up register B */ + [0x07] = 0x00, /* Pull Up register A */ + [0x08] = 0x00, /* Pull Down register B */ + [0x09] = 0x00, /* Pull Down register A */ + [0x0A] = 0x00, /* Open drain register B */ + [0x0B] = 0x00, /* Open drain register A */ + [0x0C] = 0x00, /* Polarity register B */ + [0x0D] = 0x00, /* Polarity register A */ + [0x0E] = 0x00, /* Direction register B */ + [0x0F] = 0x00, /* Direction register A */ + [0x10] = 0x00, /* Data register B */ + [0x11] = 0x00, /* Data register A */ + [0x12] = 0x00, /* Interrupt mask register B */ + [0x13] = 0x00, /* Interrupt mask register A */ + [0x14] = 0x00, /* Sense High register B */ + [0x15] = 0x00, /* Sense Low register B */ + [0x16] = 0x00, /* Sense High register A */ + [0x17] = 0x00, /* Sense Low register A */ + [0x18] = 0x00, /* Interrupt source register B */ + [0x19] = 0x00, /* Interrupt source register A */ + [0x1A] = 0x00, /* Event status register B */ + [0x1B] = 0x00, /* Event status register A */ + [0x1C] = 0x00, /* Level shifter register 1 */ + [0x1D] = 0x00, /* Level shifter register 2 */ + [0x1E] = 0x00, /* Clock management register */ + [0x1F] = 0x00, /* Miscellaneous device settings register */ + [0x20] = 0x00, /* LED driver enable register B */ + [0x21] = 0x00, /* LED driver enable register A */ + [0x22] = 0x00, /* Debounce configuration register */ + [0x23] = 0x00, /* Debounce enable register B */ + [0x24] = 0x00, /* Debounce enable register A */ + [0x25] = 0x00, /* Key scan configuration register 1 */ + [0x26] = 0x00, /* Key scan configuration register 2 */ + [0x27] = 0x00, /* Key value (column) 1 */ + [0x28] = 0x00, /* Key value (row) 2 */ + [0x29] = 0x00, /* ON time register I/O[0] */ + [0x2A] = 0x00, /* ON intensity register I/O[0] */ + [0x2B] = 0x00, /* OFF time/intensity register I/O[0] */ + [0x2C] = 0x00, /* ON time register I/O[1] */ + [0x2D] = 0x00, /* ON intensity register I/O[1] */ + [0x2E] = 0x00, /* OFF time/intensity register I/O[1] */ + [0x2F] = 0x00, /* ON time register I/O[2] */ + [0x30] = 0x00, /* ON intensity register I/O[2] */ + [0x31] = 0x00, /* OFF time/intensity register I/O[2] */ + [0x32] = 0x00, /* ON time register I/O[3] */ + [0x33] = 0x00, /* ON intensity register I/O[3] */ + [0x34] = 0x00, /* OFF time/intensity register I/O[3] */ + [0x35] = 0x00, /* ON time register I/O[4] */ + [0x36] = 0x00, /* ON intensity register I/O[4] */ + [0x37] = 0x00, /* OFF time/intensity register I/O[4] */ + [0x38] = 0x00, /* Fade in register I/O[4] */ + [0x39] = 0x00, /* Fade out register I/O[4] */ + [0x3A] = 0x00, /* ON time register I/O[5] */ + [0x3B] = 0x00, /* ON intensity register I/O[5] */ + [0x3C] = 0x00, /* OFF time/intensity register I/O[5] */ + [0x3D] = 0x00, /* Fade in register I/O[5] */ + [0x3E] = 0x00, /* Fade out register I/O[5] */ + [0x3F] = 0x00, /* ON time register I/O[6] */ + [0x40] = 0x00, /* ON intensity register I/O[6] */ + [0x41] = 0x00, /* OFF time/intensity register I/O[6] */ + [0x42] = 0x00, /* Fade in register I/O[6] */ + [0x43] = 0x00, /* Fade out register I/O[6] */ + [0x44] = 0x00, /* ON time register I/O[6] */ + [0x45] = 0x00, /* ON intensity register I/O[7] */ + [0x46] = 0x00, /* OFF time/intensity register I/O[7] */ + [0x47] = 0x00, /* Fade in register I/O[7] */ + [0x48] = 0x00, /* Fade out register I/O[7] */ + [0x49] = 0x00, /* ON time register I/O[8] */ + [0x4A] = 0x00, /* ON intensity register I/O[8] */ + [0x4B] = 0x00, /* OFF time/intensity register I/O[8] */ + [0x4C] = 0x00, /* ON time register I/O[9] */ + [0x4D] = 0x00, /* ON intensity register I/O[9] */ + [0x4E] = 0x00, /* OFF time/intensity register I/O[9] */ + [0x4F] = 0x00, /* ON time register I/O[10] */ + [0x50] = 0x00, /* ON intensity register I/O[10] */ + [0x51] = 0x00, /* OFF time/intensity register I/O[10] */ + [0x52] = 0x00, /* ON time register I/O[11] */ + [0x53] = 0x00, /* ON intensity register I/O[11] */ + [0x54] = 0x00, /* OFF time/intensity register I/O[11] */ + [0x55] = 0x00, /* ON time register I/O[12] */ + [0x56] = 0x00, /* ON intensity register I/O[12] */ + [0x57] = 0x00, /* OFF time/intensity register I/O[12] */ + [0x58] = 0x00, /* Fade in register I/O[12] */ + [0x59] = 0x00, /* Fade out register I/O[12] */ + [0x5A] = 0x00, /* ON time register I/O[13] */ + [0x5B] = 0x00, /* ON intensity register I/O[13] */ + [0x5C] = 0x00, /* OFF time/intensity register I/O[13] */ + [0x5D] = 0x00, /* Fade in register I/O[13] */ + [0x5E] = 0x00, /* Fade out register I/O[13] */ + [0x5F] = 0x00, /* ON time register I/O[14] */ + [0x60] = 0x00, /* ON intensity register I/O[14] */ + [0x61] = 0x00, /* OFF time/intensity register I/O[14] */ + [0x62] = 0x00, /* Fade in register I/O[14] */ + [0x63] = 0x00, /* Fade out register I/O[14] */ + [0x64] = 0x00, /* ON time register I/O[15] */ + [0x65] = 0x00, /* ON intensity register I/O[15] */ + [0x66] = 0x00, /* OFF time/intensity register I/O[15] */ + [0x67] = 0x00, /* Fade in register I/O[115] */ + [0x68] = 0x00, /* Fade out register I/O[15] */ + [0x69] = 0x00, /* */ + [0x6A] = 0x00, /* */ + [0x7D] = 0x00, /* */ + [0x7E] = 0x00, /* */ + [0x7F] = 0x00, /* */ +}; + +static bool Eeprom_GpioPins[] = { + [0x01] = 0x1, /* Pin = 1 */ + [0x02] = 0x1, /* Pin = 2 */ +}; + +static uint32_t Eeprom_GpioConfig[] = { + [0x01] = OCGPIO_CFG_INPUT, + [0x02] = OCGPIO_CFG_INPUT, +}; + +extern const OcGpio_FnTable GpioSX1509_fnTable; + +OcGpio_Port s_fake_io_exp = { + .fn_table = &GpioSX1509_fnTable, + .cfg = &(SX1509_Cfg) { + .i2c_dev = { 6, 0x45 }, + .pin_irq = NULL, + }, + .object_data = &(SX1509_Obj){}, +}; + +OcGpio_Pin pin_inven_eeprom_wp = { &s_fake_io_exp, 2, 32 }; + +Eeprom_Cfg eeprom_gbc_sid = { + .i2c_dev = { 6, 0x51 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 0, +}; + +Eeprom_Cfg eeprom_gbc_inv = { + .i2c_dev = { 6, 0x50 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 0, +}; + +Eeprom_Cfg eeprom_sdr_inv = { + .i2c_dev = { 3, 0x50 }, + .pin_wp = NULL, + .type = NULL, + .ss = 0, +}; + +Eeprom_Cfg eeprom_fe_inv = { + .i2c_dev = { 4, 0x50 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 8, +}; + +/* ============================= Boilerplate ================================ */ +void EEPROM_init(Eeprom_Cfg *s_dev) +{ + int8_t ret = 0; +} + +void suite_setUp(void) +{ + fake_I2C_init(); + + FakeGpio_registerDevSimple(Eeprom_GpioPins, Eeprom_GpioConfig); + + fake_I2C_registerDevSimple(I2C_DEV.bus, I2C_DEV.slave_addr, EEPROM_regs, + sizeof(EEPROM_regs), sizeof(EEPROM_regs[0]), + sizeof(uint16_t), FAKE_I2C_DEV_LITTLE_ENDIAN); + fake_I2C_registerDevSimple(I2C_DEV_1.bus, I2C_DEV_1.slave_addr, EEPROM_regs, + sizeof(EEPROM_regs), sizeof(EEPROM_regs[0]), + sizeof(uint16_t), FAKE_I2C_DEV_LITTLE_ENDIAN); + fake_I2C_registerDevSimple(6, 0x45, SX1509_regs, + sizeof(SX1509_regs), sizeof(SX1509_regs[0]), + sizeof(uint8_t), FAKE_I2C_DEV_LITTLE_ENDIAN); +} + +void setUp(void) +{ + memset(EEPROM_regs, 0, sizeof(EEPROM_regs)); + + OcGpio_init(&s_fake_io_port); + + OcGpio_init(&s_fake_io_exp); + + EEPROM_init(&s_dev); +} + +void tearDown(void) +{ +} + +void suite_tearDown(void) +{ + fake_I2C_deinit(); /* This will automatically unregister devices */ +} + +/* ================================ Tests =================================== */ +void test_eeprom_init(void) +{ + Eeprom_Cfg e_dev = { + .i2c_dev = s_dev.i2c_dev, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 2 }, + }; + + EEPROM_regs[0x00] = 0x0505; + Eeprom_GpioConfig[0x02] = OCGPIO_CFG_OUT_HIGH; + + eeprom_init(&e_dev); + TEST_ASSERT_EQUAL(1, eeprom_init(&e_dev)); + TEST_ASSERT_EQUAL(OCGPIO_CFG_OUTPUT | OCGPIO_CFG_OUT_HIGH, Eeprom_GpioConfig[0x02]); + +} + +void test_eeprom_read(void) +{ + uint16_t buffer; + EEPROM_regs[0xC601] = 0x0505; + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_read(&s_dev, 0x01C6, &buffer,sizeof(buffer))); + TEST_ASSERT_EQUAL_HEX8(0x0505, buffer); +} + +void test_eeprom_write(void) +{ + Eeprom_Cfg p_dev = { + .i2c_dev = { 6, 0x50 }, + .pin_wp = NULL, + .type = { .page_size = 64, .mem_size = (256 / 8) }, + .ss = 0, + }; + + uint16_t buffer = 0x0505; + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_write(&p_dev, 0x01C6, &buffer,0x0A)); + TEST_ASSERT_EQUAL_HEX8(0x0505, EEPROM_regs[0xC601]); + + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_write(&p_dev, 0x01C6, &buffer, 0xCA)); + TEST_ASSERT_EQUAL_HEX8(0x05, EEPROM_regs[0xC601]); +} + +void test_eeprom_disable_write(void) +{ + SX1509_regs[0x10] = 0x01; + SX1509_regs[0x11] = 0x01; + + Eeprom_Cfg i_dev = { + .i2c_dev = { 6, 0x45 }, + .pin_wp = &pin_inven_eeprom_wp, + .type = NULL, + .ss = 0, + }; + + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_disable_write(&i_dev)); + TEST_ASSERT_EQUAL(0xFF, SX1509_regs[0x11]); +} + +void test_eeprom_enable_write(void) +{ + SX1509_regs[0x10] = 0x00; + SX1509_regs[0x11] = 0x00; + + Eeprom_Cfg i_dev = { + .i2c_dev = { 6, 0x45 }, + .pin_wp = &pin_inven_eeprom_wp, + .type = NULL, + .ss = 0, + }; + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_enable_write(&i_dev)); + TEST_ASSERT_EQUAL(0xFB, SX1509_regs[0x11]); +} + +void test_eeprom_read_board_info(void) +{ + uint8_t rominfo=0xff; + EEPROM_regs[0xAC01] = 0x05; + Eeprom_Cfg b1_dev = { + .i2c_dev = { 6, 0x50 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 0, + }; + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_read_board_info(&b1_dev, &rominfo)); + TEST_ASSERT_EQUAL_HEX8(0x05, rominfo); + + Eeprom_Cfg b2_dev = { + .i2c_dev = { 6, 0x50 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 7, + }; + EEPROM_regs[0xAC01] = 0x06; + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_read_board_info(&b2_dev, &rominfo)); + TEST_ASSERT_EQUAL_HEX8(0x06, rominfo); + + Eeprom_Cfg b3_dev = { + .i2c_dev = { 6, 0x50 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 8, + }; + EEPROM_regs[0xAC01] = 0x07; + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_read_board_info(&b3_dev, &rominfo)); + TEST_ASSERT_EQUAL_HEX8(0x07, rominfo); + +} +void test_eeprom_read_oc_info(void) +{ + uint8_t ocserial=0x00; + + EEPROM_regs[0xC601] = 0x05; + + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_read_oc_info(&ocserial)); + + TEST_ASSERT_EQUAL(0x05, ocserial); +} + +void test_eeprom_read_device_info_record(void) +{ + uint8_t recordno= 1; + EEPROM_regs[0x0A01] = 0x4153 ; + char *deviceinfo = (char *) malloc(10); + + Eeprom_Cfg c1_dev = { + .i2c_dev = { 6, 0x50 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 0, + }; + memset(deviceinfo,0,10); + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_read_device_info_record(&c1_dev, recordno, deviceinfo)); + TEST_ASSERT_EQUAL_STRING("SA", deviceinfo); + + uint8_t recordno1= 1; + EEPROM_regs[0x0A01] = 0x4153 ; + char *deviceinfo1 = (char *) malloc(10); + + Eeprom_Cfg c2_dev = { + .i2c_dev = { 6, 0x50 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 7, + }; + memset(deviceinfo1,0,10); + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_read_device_info_record(&c2_dev, recordno1, deviceinfo1)); + TEST_ASSERT_EQUAL_STRING("SA", deviceinfo1); + + uint8_t recordno2= 1; + EEPROM_regs[0x0A01] = 0x4153 ; + char *deviceinfo2 = (char *) malloc(10); + + Eeprom_Cfg c3_dev = { + .i2c_dev = { 6, 0x50 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 8, + }; + memset(deviceinfo2,0,10); + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_read_device_info_record(&c3_dev, recordno2, deviceinfo2)); + TEST_ASSERT_EQUAL_STRING("SA", deviceinfo2); +} + +void test_eeprom_write_device_info_record(void) +{ + uint8_t recordno= 1; + char *deviceinfo = (char *) malloc(10); + memset(deviceinfo,0,10); + + strcpy(deviceinfo,"SA"); + + Eeprom_Cfg d1_dev = { + .i2c_dev = { 6, 0x51 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 0, + }; + + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_write_device_info_record(&d1_dev, recordno, deviceinfo)); + TEST_ASSERT_EQUAL(0x4153, EEPROM_regs[0x0A01]); + strcpy(deviceinfo, "SB"); + + Eeprom_Cfg d2_dev = { + .i2c_dev = { 6, 0x51 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 0, + }; + + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_write_device_info_record(&d2_dev, recordno, deviceinfo)); + TEST_ASSERT_EQUAL(0x4253, EEPROM_regs[0x0A01]); + + strcpy(deviceinfo, "SC"); + Eeprom_Cfg d3_dev = { + .i2c_dev = { 6, 0x51 }, + .pin_wp = &(OcGpio_Pin){ &s_fake_io_port, 5 }, + .type = NULL, + .ss = 0, + }; + + TEST_ASSERT_EQUAL(RETURN_OK, eeprom_write_device_info_record(&d3_dev, recordno, deviceinfo)); + TEST_ASSERT_EQUAL(0x4353, EEPROM_regs[0x0A01]); +} diff --git a/firmware/ec/test/suites/Test_ina226.c b/firmware/ec/test/suites/Test_ina226.c index fe47ad2d63..2ece19f01b 100644 --- a/firmware/ec/test/suites/Test_ina226.c +++ b/firmware/ec/test/suites/Test_ina226.c @@ -45,9 +45,17 @@ static uint16_t INA226_regs[] = { [0xFF] = 0x0000, /* Die Id */ }; +static bool INA226_GpioPins[] = { + [0x05] = 0x1, +}; + +static uint32_t INA226_GpioConfig[] = { + [0x05] = OCGPIO_CFG_INPUT, +}; /* ============================= Boilerplate ================================ */ void suite_setUp(void) { + FakeGpio_registerDevSimple(INA226_GpioPins, INA226_GpioConfig); fake_I2C_init(); fake_I2C_registerDevSimple(s_dev.cfg.dev.bus, s_dev.cfg.dev.slave_addr, @@ -100,7 +108,7 @@ void test_ina226_init(void) TEST_ASSERT_EQUAL(RETURN_OK, ina226_init(&alerted_dev)); } -static struct AlertData { +static struct Test_AlertData { unsigned int triggered; INA226_Event evt; uint16_t val; @@ -110,7 +118,7 @@ static struct AlertData { static void _ina226_alert_handler(INA226_Event evt, uint16_t value, void *context) { - s_alert_data = (struct AlertData){ + s_alert_data = (struct Test_AlertData){ .triggered = s_alert_data.triggered + 1, .evt = evt, .val = value, @@ -157,7 +165,7 @@ static void _test_alert(INA226_Dev *dev, INA226_Event evt, } void test_ina226_alerts(void) { - s_alert_data = (struct AlertData){}; + s_alert_data = (struct Test_AlertData){}; /* Create a device with an interrupt pin */ INA226_Dev alerted_dev = { @@ -189,22 +197,23 @@ void test_ina226_alerts(void) void test_ina226_probe(void) { + POSTData postData; /* Test with the actual values */ INA226_regs[0xFF] = 0x2260; INA226_regs[0xFE] = 0x5449; - TEST_ASSERT_EQUAL(RETURN_OK, ina226_probe(&s_dev)); + TEST_ASSERT_EQUAL(POST_DEV_FOUND, ina226_probe(&s_dev,&postData)); /* Test with an incorrect device ID */ INA226_regs[0xFF] = 0xC802; - TEST_ASSERT_EQUAL(POST_DEV_ID_MISMATCH, ina226_probe(&s_dev)); + TEST_ASSERT_EQUAL(POST_DEV_ID_MISMATCH, ina226_probe(&s_dev,&postData)); /* Test with an incorrect mfg ID */ INA226_regs[0xFF] = 0x2260; INA226_regs[0xFE] = 0x5DC7; - TEST_ASSERT_EQUAL(POST_DEV_ID_MISMATCH, ina226_probe(&s_dev)); + TEST_ASSERT_EQUAL(POST_DEV_ID_MISMATCH, ina226_probe(&s_dev,&postData)); /* Test with a missing device */ - TEST_ASSERT_EQUAL(POST_DEV_MISSING, ina226_probe(&s_invalid_dev)); + TEST_ASSERT_EQUAL(POST_DEV_MISSING, ina226_probe(&s_invalid_dev,&postData)); } void test_current_limit(void) @@ -296,8 +305,9 @@ void test_curr_sens_not_present(void) { /* Ensure that we fail properly if the device isn't on the bus */ uint16_t dummy_val; + POSTData postData; TEST_ASSERT_EQUAL(POST_DEV_MISSING, - ina226_probe(&s_invalid_dev)); + ina226_probe(&s_invalid_dev,&postData)); TEST_ASSERT_EQUAL(RETURN_NOTOK, ina226_readCurrentLim(&s_invalid_dev, &dummy_val)); TEST_ASSERT_EQUAL(RETURN_NOTOK, diff --git a/firmware/ec/test/suites/Test_ltc4015.c b/firmware/ec/test/suites/Test_ltc4015.c index e1cea0702a..a50901cbeb 100644 --- a/firmware/ec/test/suites/Test_ltc4015.c +++ b/firmware/ec/test/suites/Test_ltc4015.c @@ -114,9 +114,17 @@ static uint16_t LTC4015_regs[] = { [0x4A] = 0x00, /* Measurement valid bit */ }; +static bool LTC4015_GpioPins[] = { + [0x05] = 0x1, +}; + +static uint32_t LTC4015_GpioConfig[] = { + [0x05] = OCGPIO_CFG_INPUT, +}; /* ============================= Boilerplate ================================ */ void suite_setUp(void) { + FakeGpio_registerDevSimple(LTC4015_GpioPins, LTC4015_GpioConfig); fake_I2C_init(); fake_I2C_registerDevSimple(I2C_DEV.bus, I2C_DEV.slave_addr, LTC4015_regs, @@ -158,7 +166,7 @@ void test_ltc4015_init(void) TEST_ASSERT_EQUAL(RETURN_OK, LTC4015_init(&alerted_dev)); } -static struct AlertData { +static struct Test_AlertData { bool triggered; LTC4015_Event evt; int16_t val; @@ -167,7 +175,7 @@ static struct AlertData { static void _alert_handler(LTC4015_Event evt, int16_t value, void *context) { - s_alert_data = (struct AlertData){ + s_alert_data = (struct Test_AlertData){ .triggered = true, .evt = evt, .val = value, @@ -205,7 +213,7 @@ static void _test_alert(LTC4015_Dev *dev, LTC4015_Event evt, void test_LTC4015_alerts(void) { - s_alert_data = (struct AlertData){}; + s_alert_data = (struct Test_AlertData){}; /* Now try to init with a pin associated */ LTC4015_Dev alerted_dev = { @@ -260,16 +268,17 @@ void test_LTC4015_enableLimitAlerts(void) void test_LTC4015_probe(void) { + POSTData postData; /* Test with the actual value */ LTC4015_regs[0x39] = LTC4015_CHARGER_ENABLED; - TEST_ASSERT_EQUAL(RETURN_OK, LTC4015_probe(&s_dev)); + TEST_ASSERT_EQUAL(POST_DEV_FOUND, LTC4015_probe(&s_dev,&postData)); /* Test with an incorrect value */ LTC4015_regs[0x39] = ~LTC4015_CHARGER_ENABLED; - TEST_ASSERT_EQUAL(POST_DEV_MISSING, LTC4015_probe(&s_dev)); + TEST_ASSERT_EQUAL(POST_DEV_MISSING, LTC4015_probe(&s_dev,&postData)); /* Test with a missing device */ - TEST_ASSERT_EQUAL(POST_DEV_MISSING, LTC4015_probe(&s_invalid_dev)); + TEST_ASSERT_EQUAL(POST_DEV_MISSING, LTC4015_probe(&s_invalid_dev,&postData)); } void test_LTC4015_cfg_icharge(void) diff --git a/firmware/ec/test/suites/Test_ltc4275.c b/firmware/ec/test/suites/Test_ltc4275.c new file mode 100644 index 0000000000..522a107769 --- /dev/null +++ b/firmware/ec/test/suites/Test_ltc4275.c @@ -0,0 +1,156 @@ +#include "unity.h" +#include "inc/devices/ltc4275.h" +#include "fake/fake_GPIO.h" +#include "fake/fake_I2C.h" +#include "fake/fake_ThreadedISR.h" +#include + +extern tPower_PDStatus_Info PDStatus_Info; + +/* ======================== Constants & variables =========================== */ +static uint8_t LTC4275_GpioPins[] = { + [0x40] = 0x00, /* OC_EC_PWR_PD_NT2P = 64 */ + [0x60] = 0x00, /* OC_EC_PD_PWRGD_ALERT = 96*/ +}; + +static uint32_t LTC4275_GpioConfig[] = { + [0x40] = OCGPIO_CFG_INPUT, + [0x60] = OCGPIO_CFG_INPUT, +}; +/* ============================= Fake Functions ============================= */ +#include + +unsigned int s_task_sleep_ticks; + +xdc_Void ti_sysbios_knl_Task_sleep__E( xdc_UInt32 nticks ) +{ + s_task_sleep_ticks += nticks; +} + +void test_alert(void) +{ +} + +static void alert_handler(LTC4275_Event evt, void *context) +{ + +} + +void post_update_POSTData(POSTData *pData, uint8_t I2CBus, uint8_t devAddress, uint16_t manId, uint16_t devId) +{ + pData->i2cBus = I2CBus; + pData->devAddr = devAddress; + pData->manId = manId; + pData->devId = devId; +} +/* ============================= Boilerplate ================================ */ +static OcGpio_Port s_fake_io_port = { + .fn_table = &FakeGpio_fnTable, + .object_data = &(FakeGpio_Obj){}, +}; + +void suite_setUp(void) +{ + FakeGpio_registerDevSimple(LTC4275_GpioPins, LTC4275_GpioConfig); +} + +void setUp(void) +{ + +} + +void tearDown(void) +{ +} + +void suite_tearDown(void) +{ +} + +LTC4275_Dev l_dev = { + .cfg = { + .pin_evt = &(OcGpio_Pin){ &s_fake_io_port, 0x60 }, + .pin_detect = &(OcGpio_Pin){ &s_fake_io_port, 0x40 }, + + }, +}; + + +/* ================================ Tests =================================== */ +void test_ltc4275_init() +{ + LTC4275_GpioPins[0x60] = 0; + LTC4275_GpioPins[0x40] = 1; + LTC4275_GpioConfig[0x60] = OCGPIO_CFG_INPUT; + + TEST_ASSERT_EQUAL(RETURN_OK, ltc4275_init(&l_dev)); + TEST_ASSERT_EQUAL(0, PDStatus_Info.pdStatus.powerGoodStatus); + TEST_ASSERT_EQUAL(OCGPIO_CFG_INPUT | OCGPIO_CFG_INT_BOTH_EDGES, LTC4275_GpioConfig[0x60]); +} + +void test_ltc4275_get_power_good() +{ + ePDPowerState val; + + LTC4275_GpioPins[0x60] = 0; + TEST_ASSERT_EQUAL(RETURN_OK, ltc4275_get_power_good(&l_dev,&val)); + TEST_ASSERT_EQUAL(LTC4275_POWERGOOD, val); + + LTC4275_GpioPins[0x60] = 1; + TEST_ASSERT_EQUAL(RETURN_OK, ltc4275_get_power_good(&l_dev,&val)); + TEST_ASSERT_EQUAL(LTC4275_POWERGOOD_NOTOK, val); + +} + +void test_ltc4275_probe() +{ + LTC4275_GpioPins[0x60] = 1; + POSTData postData; + TEST_ASSERT_EQUAL(1, ltc4275_probe(&l_dev, &postData)); + TEST_ASSERT_EQUAL(0, PDStatus_Info.pdStatus.classStatus); + TEST_ASSERT_EQUAL(1, PDStatus_Info.state); + TEST_ASSERT_EQUAL(2, PDStatus_Info.pdalert); + + LTC4275_GpioPins[0x60] = 0; + TEST_ASSERT_EQUAL(3, ltc4275_probe(&l_dev, &postData)); + TEST_ASSERT_EQUAL(0, PDStatus_Info.pdStatus.classStatus); + TEST_ASSERT_EQUAL(1, PDStatus_Info.state); + TEST_ASSERT_EQUAL(2, PDStatus_Info.pdalert); +} + +void test_ltc4275_get_class() +{ + LTC4275_GpioPins[0x40] = 1; + ePDClassType val; + + TEST_ASSERT_EQUAL(RETURN_OK, ltc4275_get_class(&l_dev, &val)); + TEST_ASSERT_EQUAL(LTC4275_CLASSTYPE_2, val); + + LTC4275_GpioPins[0x40] = 0; + TEST_ASSERT_EQUAL(RETURN_OK, ltc4275_get_class(&l_dev, &val)); + TEST_ASSERT_EQUAL(LTC4275_CLASSTYPE_1, val); +} + +void test_ltc4275_set_alert_handler() +{ + ltc4275_set_alert_handler(&l_dev, alert_handler, 1); + TEST_ASSERT_EQUAL(1, (int *)l_dev.obj.cb_context); + TEST_ASSERT_EQUAL(alert_handler, (int *)l_dev.obj.alert_cb); +} + +void test_ltc4275_update_status() +{ + LTC4275_GpioPins[0x60] = 1; + LTC4275_GpioPins[0x40] = 1; + ltc4275_update_status(&l_dev); + TEST_ASSERT_EQUAL(0, PDStatus_Info.pdStatus.classStatus); + TEST_ASSERT_EQUAL(1, PDStatus_Info.state); + TEST_ASSERT_EQUAL(2, PDStatus_Info.pdalert); + + LTC4275_GpioPins[0x60] = 0; + LTC4275_GpioPins[0x40] = 0; + ltc4275_update_status(&l_dev); + TEST_ASSERT_EQUAL(1, PDStatus_Info.pdStatus.classStatus); + TEST_ASSERT_EQUAL(0, PDStatus_Info.state); + TEST_ASSERT_EQUAL(2, PDStatus_Info.pdalert); +} diff --git a/firmware/ec/test/suites/Test_ocmp_adt7481.c b/firmware/ec/test/suites/Test_ocmp_adt7481.c new file mode 100644 index 0000000000..3994ef68a9 --- /dev/null +++ b/firmware/ec/test/suites/Test_ocmp_adt7481.c @@ -0,0 +1,272 @@ +#include "unity.h" +#include "inc/devices/adt7481.h" +#include "common/inc/ocmp_wrappers/ocmp_adt7481.h" +#include "common/inc/global/Framework.h" +#include "platform/oc-sdr/schema/schema.h" +#include "fake/fake_GPIO.h" +#include "fake/fake_I2C.h" +#include "fake/fake_ThreadedISR.h" +#include + +/* ======================== Constants & variables =========================== */ + +extern const Component sys_schema[]; + +static OcGpio_Port s_fake_io_port = { + .fn_table = &FakeGpio_fnTable, + .object_data = &(FakeGpio_Obj){}, +}; + +static const I2C_Dev I2C_DEV = { + .bus = 7, + .slave_addr = 0x2F, +}; + +static const I2C_Dev s_invalid_dev = { + .bus = 7, + .slave_addr = 0x52, +}; + +static const I2C_Dev s_invalid_bus = { + .bus = 3, + .slave_addr = 0x2F, +}; + +typedef enum Adt7481Status { + ADT7481_STATUS_TEMPERATURE = 0, +} Adt7481Status; + +typedef enum Adt7481SConfig { + ADT7481_CONFIG_LIM_LOW = 0, + ADT7481_CONFIG_LIM_HIGH, + ADT7481_CONFIG_LIM_CRIT, +} Adt7481SConfig; + +typedef enum Adt7481SAlert { + ADT7481_ALERT_LOW = 0, + ADT7481_ALERT_HIGH, + ADT7481_ALERT_CRITICAL +} Adt7481SAlert; + +static uint8_t ADT7481_regs[] = { + [0x00] = 0x00, /* Local Temperature Value R */ + [0x01] = 0x00, /* Remote 1 Temperature Value High Byte R*/ + [0x02] = 0x00, /* Status Register 1 R */ + [0x03] = 0x00, /* Configuration Register 1 R*/ + [0x04] = 0x00, /* Conversion Rate/Channel Selector R*/ + [0x05] = 0x00, /* Local Temperature High Limit R*/ + [0x06] = 0x00, /* Local Temperature Low Limit R*/ + [0x07] = 0x00, /* Remote 1 Temp High Limit High Byte R*/ + [0x08] = 0x00, /* Remote 1 Temp Low Limit High Byte R*/ + [0x09] = 0x00, /* Configuration Register W*/ + [0x0A] = 0x00, /* Conversion Rate/Channel Selector W */ + [0x0B] = 0x00, /* Local Temperature High Limit W*/ + [0x0C] = 0x00, /* Local Temperature Low Limit W*/ + [0x0D] = 0x00, /* Remote 1 Temp High Limit High Byte W*/ + [0x0E] = 0x00, /* Remote 1 Temp Low Limit High Byte W*/ + [0x0F] = 0x00, /* One-Shot W*/ + [0x10] = 0x00, /* Remote 1 Temperature Value Low Byte R*/ + [0x11] = 0x00, /* Remote 1 Temperature Offset High Byte R*/ + [0x11] = 0x00, /* Remote 1 Temperature Offset High Byte W*/ + [0x12] = 0x00, /* Remote 1 Temperature Offset Low Byte R*/ + [0x12] = 0x00, /* Remote 1 Temperature Offset Low Byte W*/ + [0x13] = 0x00, /* Remote 1 Temp High Limit Low Byte R*/ + [0x13] = 0x00, /* Remote 1 Temp High Limit Low Byte W*/ + [0x14] = 0x00, /* Remote 1 Temp Low Limit Low Byte R*/ + [0x14] = 0x00, /* Remote 1 Temp Low Limit Low Byte W*/ + [0x19] = 0x00, /* Remote 1 THERM Limit R */ + [0x19] = 0x00, /* Remote 1 THERM Limit W */ + [0x20] = 0x00, /* Local THERM Limit R*/ + [0x20] = 0x00, /* Local THERM Limit W*/ + [0x21] = 0x00, /* THERM Hysteresis R*/ + [0x21] = 0x00, /* THERM Hysteresis W*/ + [0x22] = 0x00, /* Consecutive ALERT R*/ + [0x22] = 0x00, /* Consecutive ALERT W*/ + [0x23] = 0x00, /* Status Register 2 R */ + [0x24] = 0x00, /* Configuration 2 Register R*/ + [0x24] = 0x00, /* Configuration 2 Register W*/ + [0x30] = 0x00, /* Remote 2 Temperature Value High Byte R */ + [0x31] = 0x00, /* Remote 2 Temp High Limit High Byte R*/ + [0x31] = 0x00, /* Remote 2 Temp High Limit High Byte W*/ + [0x32] = 0x00, /* Remote 2 Temp Low Limit High Byte R*/ + [0x32] = 0x00, /* Remote 2 Temp Low Limit High Byte W*/ + [0x33] = 0x00, /* Remote 2 Temperature Value Low Byte R*/ + [0x34] = 0x00, /* Remote 2 Temperature Offset High Byte R*/ + [0x34] = 0x00, /* Remote 2 Temperature Offset High Byte W*/ + [0x35] = 0x00, /* Remote 2 Temperature Offset Low Byte R*/ + [0x35] = 0x00, /* Remote 2 Temperature Offset Low Byte W*/ + [0x36] = 0x00, /* Remote 2 Temp High Limit Low Byte R */ + [0x36] = 0x00, /* Remote 2 Temp High Limit Low Byte W */ + [0x37] = 0x00, /* Remote 2 Temp Low Limit Low Byte R*/ + [0x37] = 0x00, /* Remote 2 Temp Low Limit Low Byte W*/ + [0x39] = 0x00, /* Remote 2 THERM Limit R*/ + [0x39] = 0x00, /* Remote 2 THERM Limit W*/ + [0x3D] = 0x00, /* Device ID R */ + [0x3E] = 0x00, /* Manufacturer ID R */ +}; + +/* ============================= Fake Functions ============================= */ +#include +unsigned int s_task_sleep_ticks; +xdc_Void ti_sysbios_knl_Task_sleep__E( xdc_UInt32 nticks ) +{ + s_task_sleep_ticks += nticks; +} + +void test_alert(void) +{ +} + +/* ============================= Boilerplate ================================ */ +void suite_setUp(void) +{ + fake_I2C_init(); + fake_I2C_registerDevSimple(I2C_DEV.bus, I2C_DEV.slave_addr, + ADT7481_regs, sizeof(ADT7481_regs), + sizeof(ADT7481_regs[0]), sizeof(uint8_t), + FAKE_I2C_DEV_BIG_ENDIAN); +} + +void setUp(void) +{ + memset(ADT7481_regs, 0, sizeof(ADT7481_regs)); +} + +void tearDown(void) +{ +} + +void suite_tearDown(void) +{ + fake_I2C_deinit(); /* This will automatically unregister devices */ +} + + + +/* ================================ Tests =================================== */ + +void test_probe() +{ + POSTData postData; + + /* Correct Dev id */ + ADT7481_regs[0x3D] = 0x81; /* Device ID */ + ADT7481_regs[0x3E] = 0x41; /* MFG ID */ + + TEST_ASSERT_EQUAL(POST_DEV_FOUND, ADT7481_fxnTable.cb_probe(&I2C_DEV, + &postData)); + + /* Invalid device */ + TEST_ASSERT_EQUAL(POST_DEV_MISSING, ADT7481_fxnTable.cb_probe(&s_invalid_dev, + &postData)); + /* Invalid bus */ + TEST_ASSERT_EQUAL(POST_DEV_MISSING, ADT7481_fxnTable.cb_probe(&s_invalid_bus, + &postData)); + /* Incorrect Dev id */ + ADT7481_regs[0x3D] = 0x80; /* Device ID */ + ADT7481_regs[0x3E] = 0x40; /* MFG ID */ + TEST_ASSERT_EQUAL(POST_DEV_ID_MISMATCH, + ADT7481_fxnTable.cb_probe(&I2C_DEV, &postData)); +} + +void test_get_status() +{ + uint8_t tempvalue = 0xff; + ADT7481_regs[0x30] = 0x73; + + /* ADT7481_STATUS_TEMPERATURE */ + TEST_ASSERT_EQUAL(true, ADT7481_fxnTable.cb_get_status(&I2C_DEV, + ADT7481_STATUS_TEMPERATURE, &tempvalue)); + TEST_ASSERT_EQUAL_HEX8(0x33, tempvalue); + + /* Invalid device */ + TEST_ASSERT_EQUAL(false, ADT7481_fxnTable.cb_get_status(&s_invalid_dev, + ADT7481_STATUS_TEMPERATURE, &tempvalue)); + /* Invalid bus */ + TEST_ASSERT_EQUAL(false, ADT7481_fxnTable.cb_get_status(&s_invalid_bus, + ADT7481_STATUS_TEMPERATURE, &tempvalue)); + /* Invalid parameter */ + TEST_ASSERT_EQUAL(false, ADT7481_fxnTable.cb_get_status(&I2C_DEV, + 40, &tempvalue)); +} + +void test_set_config() +{ + int8_t limit = 0x62; + + ADT7481_regs[0x32] = 0x00; + TEST_ASSERT_EQUAL(true, ADT7481_fxnTable.cb_set_config(&I2C_DEV, ADT7481_CONFIG_LIM_LOW, &limit)); + TEST_ASSERT_EQUAL_HEX8(0xA2, ADT7481_regs[0x32]); + + ADT7481_regs[0x31] = 0x00; + TEST_ASSERT_EQUAL(true, ADT7481_fxnTable.cb_set_config(&I2C_DEV, ADT7481_CONFIG_LIM_HIGH, &limit)); + TEST_ASSERT_EQUAL_HEX8(0xA2, ADT7481_regs[0x31]); + + ADT7481_regs[0x39] = 0x00; + TEST_ASSERT_EQUAL(true, ADT7481_fxnTable.cb_set_config(&I2C_DEV, ADT7481_CONFIG_LIM_CRIT, &limit)); + TEST_ASSERT_EQUAL_HEX8(0xA2, ADT7481_regs[0x39]); + + /* Invalid Device */ + TEST_ASSERT_EQUAL(false, ADT7481_fxnTable.cb_set_config(&s_invalid_dev, + ADT7481_CONFIG_LIM_LOW, &limit)); + /* Invalid bus */ + TEST_ASSERT_EQUAL(false, ADT7481_fxnTable.cb_set_config(&s_invalid_bus, + ADT7481_CONFIG_LIM_LOW, &limit)); + /* Invalid Parameter */ + TEST_ASSERT_EQUAL(false, ADT7481_fxnTable.cb_set_config(&I2C_DEV, + 40, &limit)); +} + +void test_get_config() +{ + int8_t limit = 0xFF; + ADT7481_regs[0x31] = 0xA2; + ADT7481_regs[0x32] = 0xA2; + ADT7481_regs[0x39] = 0xA2; + + TEST_ASSERT_EQUAL(true, ADT7481_fxnTable.cb_get_config(&I2C_DEV, ADT7481_CONFIG_LIM_LOW, &limit)); + TEST_ASSERT_EQUAL_HEX8(0x62, limit); + + limit = 0xFF; + TEST_ASSERT_EQUAL(true, ADT7481_fxnTable.cb_get_config(&I2C_DEV, ADT7481_CONFIG_LIM_HIGH, &limit)); + TEST_ASSERT_EQUAL_HEX8(0x62, limit); + + limit = 0xFF; + TEST_ASSERT_EQUAL(true, ADT7481_fxnTable.cb_get_config(&I2C_DEV, ADT7481_CONFIG_LIM_CRIT, &limit)); + TEST_ASSERT_EQUAL_HEX8(0x62, limit); + + /* Invalid Device */ + TEST_ASSERT_EQUAL(false, ADT7481_fxnTable.cb_get_config(&s_invalid_dev, + ADT7481_CONFIG_LIM_LOW, &limit)); + /* Invalid bus */ + TEST_ASSERT_EQUAL(false, ADT7481_fxnTable.cb_get_config(&s_invalid_bus, + ADT7481_CONFIG_LIM_LOW, &limit)); + /* Invalid Parameter */ + TEST_ASSERT_EQUAL(false, ADT7481_fxnTable.cb_get_config(&I2C_DEV, + 40, &limit)); +} + +void test_init() +{ + const ADT7481_Config fact_sdr_fpga_adt7481_cfg = { + .lowlimit = -20, + .highlimit = 75, + .critlimit = 85, + }; + TEST_ASSERT_EQUAL(POST_DEV_CFG_DONE, ADT7481_fxnTable.cb_init(&I2C_DEV, &fact_sdr_fpga_adt7481_cfg, NULL)); + TEST_ASSERT_EQUAL_HEX8(0x2C, ADT7481_regs[0x32]); + TEST_ASSERT_EQUAL_HEX8(0x8B, ADT7481_regs[0x31]); + TEST_ASSERT_EQUAL_HEX8(0x95, ADT7481_regs[0x39]); + + TEST_ASSERT_EQUAL_HEX8(ADT7481_CONFIGURATION_REG_VALUE, ADT7481_regs[0x09]); + TEST_ASSERT_EQUAL_HEX8(ADT7481_CONVERSION_RATE_REG_VALUE, ADT7481_regs[0x0A]); + + /* Invalid Device */ + TEST_ASSERT_EQUAL(POST_DEV_CFG_FAIL, ADT7481_fxnTable.cb_init(&s_invalid_dev, + ADT7481_CONFIG_LIM_LOW, NULL)); + TEST_ASSERT_EQUAL(POST_DEV_CFG_FAIL, ADT7481_fxnTable.cb_init(&s_invalid_bus, + ADT7481_CONFIG_LIM_LOW, NULL)); + /* Invalid Parameter */ + TEST_ASSERT_EQUAL(POST_DEV_CFG_FAIL, ADT7481_fxnTable.cb_init(&I2C_DEV, + NULL, NULL)); +} \ No newline at end of file diff --git a/firmware/ec/test/suites/Test_ocmp_ltc4274.c b/firmware/ec/test/suites/Test_ocmp_ltc4274.c new file mode 100644 index 0000000000..9e81eb7cd2 --- /dev/null +++ b/firmware/ec/test/suites/Test_ocmp_ltc4274.c @@ -0,0 +1,386 @@ +#include "unity.h" +#include "inc/devices/ltc4274.h" +#include "common/inc/ocmp_wrappers/ocmp_ltc4274.h" +#include "common/inc/global/Framework.h" +#include "platform/oc-sdr/schema/schema.h" +#include "fake/fake_GPIO.h" +#include "fake/fake_I2C.h" +#include "fake/fake_ThreadedISR.h" +#include + +/* ======================== Constants & variables =========================== */ + +extern const Component sys_schema[]; + +static OcGpio_Port s_fake_io_port = { + .fn_table = &FakeGpio_fnTable, + .object_data = &(FakeGpio_Obj){}, +}; + +static const I2C_Dev I2C_DEV = { + .bus = 7, + .slave_addr = 0x2F, +}; + +static const I2C_Dev I2C_INVALID_DEV = { + .bus = 7, + .slave_addr = 0x52, +}; + +static const I2C_Dev I2C_INVALID_BUS = { + .bus = 3, + .slave_addr = 0x2F, +}; + +static LTC4274_Dev s_dev = { + .cfg = { + .i2c_dev = { + .bus = 7, + .slave_addr = 0x2F, + }, + .pin_evt = &(OcGpio_Pin){ &s_fake_io_port, 27}, + .reset_pin ={ &s_fake_io_port, 27 }, + }, +}; + +static LTC4274_Dev s_invalid_dev = { + .cfg = { + .i2c_dev = { + .bus = 7, + .slave_addr = 0x52, + }, + }, +}; + +static uint8_t LTC4274_regs[] = { + [0x00] = 0x00, /* INTERRUPT_STATUS */ + [0x01] = 0x00, /* INTERRUPT_MASK */ + [0x02] = 0x00, /* POWER_EVENT */ + [0x03] = 0x00, /* POWER_EVENT_COR */ + [0x04] = 0x00, /* DETECT_EVENT */ + [0x05] = 0x00, /* DETECT_EVENT_COR */ + [0x06] = 0x00, /* FAULT_EVENT */ + [0x07] = 0x00, /* FAULT_EVENT_COR */ + [0x08] = 0x00, /* START_EVENT */ + [0x09] = 0x00, /* START_EVENT_COR */ + [0x0A] = 0x00, /* SUPPLY_EVENT */ + [0x0B] = 0x00, /* SUPPLY_EVENT_COR */ + [0x0C] = 0x00, /* STATUS */ + [0x10] = 0x00, /* POWER_STATUS */ + [0x11] = 0x00, /* PNI_STATUS */ + [0x12] = 0x00, /* OPERATION_MODE */ + [0x13] = 0x00, /* ENABLE_DUSCONNECT SENSING */ + [0x14] = 0x00, /* DETECT_CLASS_ENABLE */ + [0x15] = 0x00, /* MIDSPAN */ + [0x17] = 0x00, /* MCONF */ + [0x18] = 0x00, /* DETPB */ + [0x19] = 0x00, /* PWRPB */ + [0x1A] = 0x00, /* RSTPB */ + [0x1B] = 0x00, /* ID */ + [0x1E] = 0x00, /* TLIMIT */ + [0x30] = 0x00, /* IP1LSB */ + [0x31] = 0x00, /* IP1MSB */ + [0x32] = 0x00, /* VP1LSB */ + [0x33] = 0x00, /* VP1MSB */ + [0x41] = 0x00, /* FIRMWARE */ + [0x42] = 0x00, /* WDOG */ + [0x43] = 0x00, /* DEVID */ + [0x44] = 0x00, /* HP_ENABLE */ + [0x46] = 0x00, /* HP_MODE */ + [0x47] = 0x00, /* CUT1 */ + [0x48] = 0x00, /* LIM1 */ + [0x49] = 0x00, /* IHP_STATUS */ +}; + +static bool LTC4274_GpioPins[] = { + [27] = 00, +}; + +static uint32_t LTC7274_GpioConfig[] = { + [27] = 00, +}; + +typedef enum LTC7274Status { + LTC7274_STATUS_DETECT = 0, + LTC7274_STATUS_CLASS , + LTC7274_STATUS_POWERGOOD, +} LTC7274Status; + +typedef enum LTC7274Config { + LTC4274_CONFIG_OPERATING_MODE = 0, + LTC4274_CONFIG_DETECT_ENABLE, + LTC4274_CONFIG_INTERRUPT_MASK, + LTC4274_CONFIG_INTERRUPT_ENABLE, + LTC4274_CONFIG_HP_ENABLE +} LTC7274Config; + +typedef enum LTC7274Alert { + LTC4274_ALERT_NO_ACTIVE = 0, + LTC4274_ALERT_POWER_ENABLE, + LTC4274_ALERT_POWERGOOD, + LTC4274_ALERT_DISCONNECT, + LTC4274_ALERT_DETECTION , + LTC4274_ALERT_CLASS, + LTC4274_ALERT_TCUT, + LTC4274_ALERT_TSTART, + LTC4274_ALERT_SUPPLY +} LTC7274Alert; + +/* ============================= Fake Functions ============================= */ +#include +unsigned int s_task_sleep_ticks; +xdc_Void ti_sysbios_knl_Task_sleep__E( xdc_UInt32 nticks ) +{ + s_task_sleep_ticks += nticks; +} + +void test_alert(void) +{ +} + +/* ============================= Boilerplate ================================ */ +void suite_setUp(void) +{ + fake_I2C_init(); + fake_I2C_registerDevSimple(I2C_DEV.bus, I2C_DEV.slave_addr, <C4274_regs, + sizeof(LTC4274_regs), sizeof(LTC4274_regs[0]), + sizeof(uint8_t), FAKE_I2C_DEV_LITTLE_ENDIAN); + FakeGpio_registerDevSimple(LTC4274_GpioPins, LTC7274_GpioConfig); +} + +void setUp(void) +{ + memset(LTC4274_regs, 0, sizeof(LTC4274_regs)); +} + +void tearDown(void) +{ +} + +void suite_tearDown(void) +{ + fake_I2C_deinit(); /* This will automatically unregister devices */ +} + +/* ================================ Tests =================================== */ +void OCMP_GenerateAlert(const AlertData *alert_data, + unsigned int alert_id, + const void *data) +{ + return; +} + +void test_probe() +{ + POSTData postData; + + /* Correct Dev id */ + LTC4274_regs[0x1B] = (0x0c << 3); + LTC4274_GpioPins[27] = 1; + TEST_ASSERT_EQUAL(POST_DEV_FOUND, LTC4274_fxnTable.cb_probe(&s_dev, + &postData)); + TEST_ASSERT_EQUAL(LTC7274_GpioConfig[27], OCGPIO_CFG_OUTPUT | + OCGPIO_CFG_OUT_HIGH); + TEST_ASSERT_EQUAL(0, LTC4274_GpioPins[27]); + + /* Missing device */ + TEST_ASSERT_EQUAL(POST_DEV_MISSING, LTC4274_fxnTable.cb_probe(&s_invalid_dev, + &postData)); + + /* Incorrect Dev id */ + LTC4274_regs[0x1B] = (0x0D << 3); + TEST_ASSERT_EQUAL(POST_DEV_ID_MISMATCH, + LTC4274_fxnTable.cb_probe(&s_dev, &postData)); +} + +void test_get_status() +{ + uint8_t value = 0xFF; + + /* success values */ + LTC4274_regs[0x04] = 0xFF; + LTC4274_regs[0x0C] = 0x01; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_get_status(&I2C_DEV, + LTC7274_STATUS_DETECT, &value)); + TEST_ASSERT_EQUAL_HEX8(0x01, value); + + LTC4274_regs[0x04] = 0xFF; + LTC4274_regs[0x0C] = 0x2B; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_get_status(&I2C_DEV, + LTC7274_STATUS_CLASS, &value)); + TEST_ASSERT_EQUAL_HEX8(0x02, value); + + LTC4274_regs[0x04] = 0xFF; + LTC4274_regs[0x10] = 0x00; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_get_status(&I2C_DEV, + LTC7274_STATUS_POWERGOOD, &value)); + TEST_ASSERT_EQUAL_HEX8(0x01, value); + + /* invalid paramid */ + LTC4274_regs[0x04] = 0xFF; + LTC4274_regs[0x0C] = 0x01; + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_status(&I2C_DEV, + 0XFF, &value)); + + /* invalid dev-id */ + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_status(&I2C_INVALID_DEV, + LTC7274_STATUS_CLASS, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_status(&I2C_INVALID_DEV, + LTC7274_STATUS_POWERGOOD, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_status(&I2C_INVALID_DEV, + LTC7274_STATUS_POWERGOOD, &value)); + /* invalid bus */ + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_status(&I2C_INVALID_BUS, + LTC7274_STATUS_CLASS, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_status(&I2C_INVALID_BUS, + LTC7274_STATUS_POWERGOOD, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_status(&I2C_INVALID_BUS, + LTC7274_STATUS_POWERGOOD, &value)); + +} + +void test_set_config() +{ + uint8_t value = 0x00; + + /* success values */ + LTC4274_regs[0x12] = 0x00; + value = 0x51; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_set_config(&I2C_DEV, + LTC4274_CONFIG_OPERATING_MODE, &value)); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x12], value); + + LTC4274_regs[0x14] = 0xFF; + value = 0x53; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_set_config(&I2C_DEV, + LTC4274_CONFIG_DETECT_ENABLE, &value)); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x14], value); + + LTC4274_regs[0x01] = 0xFF; + value = 0x54; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_set_config(&I2C_DEV, + LTC4274_CONFIG_INTERRUPT_MASK, &value)); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x01], value); + + LTC4274_regs[0x17] = 0xFF; + value = true; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_set_config(&I2C_DEV, + LTC4274_CONFIG_INTERRUPT_ENABLE, &value)); + TEST_ASSERT_EQUAL_HEX8(0x80, LTC4274_regs[0x17]); + + LTC4274_regs[0x44] = 0xFF; + value = 0x56; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_set_config(&I2C_DEV, + LTC4274_CONFIG_HP_ENABLE, &value)); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x44], value); + + /* Invalid paramid */ + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_DEV, 0xFF, &value)); + + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_INVALID_DEV, + LTC4274_CONFIG_OPERATING_MODE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_INVALID_DEV, + LTC4274_CONFIG_DETECT_ENABLE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_INVALID_DEV, + LTC4274_CONFIG_INTERRUPT_MASK, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_INVALID_DEV, + LTC4274_CONFIG_INTERRUPT_ENABLE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_INVALID_DEV, + LTC4274_CONFIG_HP_ENABLE, &value)); + + /* invalid bus */ + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_INVALID_BUS, + LTC4274_CONFIG_OPERATING_MODE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_INVALID_BUS, + LTC4274_CONFIG_DETECT_ENABLE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_INVALID_BUS, + LTC4274_CONFIG_INTERRUPT_MASK, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_INVALID_BUS, + LTC4274_CONFIG_INTERRUPT_ENABLE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_set_config(&I2C_INVALID_BUS, + LTC4274_CONFIG_HP_ENABLE, &value)); +} + +void test_get_config() +{ + uint8_t value = 0x00; + + /* success values */ + LTC4274_regs[0x12] = 0x51; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_get_config(&I2C_DEV, + LTC4274_CONFIG_OPERATING_MODE, &value)); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x12], value); + + LTC4274_regs[0x14] = 0x53; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_get_config(&I2C_DEV, + LTC4274_CONFIG_DETECT_ENABLE, &value)); + TEST_ASSERT_EQUAL_HEX8((LTC4274_regs[0x14] & 07), value); + + LTC4274_regs[0x01] = 0x54; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_get_config(&I2C_DEV, + LTC4274_CONFIG_INTERRUPT_MASK, &value)); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x01], value); + + LTC4274_regs[0x17] = 0x80; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_get_config(&I2C_DEV, + LTC4274_CONFIG_INTERRUPT_ENABLE, &value)); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x17], value); + + LTC4274_regs[0x44] = 0x56; + TEST_ASSERT_EQUAL(true, LTC4274_fxnTable.cb_get_config(&I2C_DEV, + LTC4274_CONFIG_HP_ENABLE, &value)); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x44], value); + + /* Invalid paramid */ + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_DEV, 0xFF, &value)); + + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_INVALID_DEV, + LTC4274_CONFIG_OPERATING_MODE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_INVALID_DEV, + LTC4274_CONFIG_DETECT_ENABLE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_INVALID_DEV, + LTC4274_CONFIG_INTERRUPT_MASK, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_INVALID_DEV, + LTC4274_CONFIG_INTERRUPT_ENABLE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_INVALID_DEV, + LTC4274_CONFIG_HP_ENABLE, &value)); + /* Invalid bus */ + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_INVALID_BUS, + LTC4274_CONFIG_OPERATING_MODE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_INVALID_BUS, + LTC4274_CONFIG_DETECT_ENABLE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_INVALID_BUS, + LTC4274_CONFIG_INTERRUPT_MASK, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_INVALID_BUS, + LTC4274_CONFIG_INTERRUPT_ENABLE, &value)); + TEST_ASSERT_EQUAL(false, LTC4274_fxnTable.cb_get_config(&I2C_INVALID_BUS, + LTC4274_CONFIG_HP_ENABLE, &value)); +} + +void test_init() +{ + + const LTC4274_Config fact_ltc4274_cfg = { + .operatingMode = LTC4274_AUTO_MODE, + .detectEnable = LTC4274_DETECT_ENABLE, + .interruptMask = LTC4274_INTERRUPT_MASK, + .interruptEnable = true, + .pseHpEnable = LTC4274_HP_ENABLE, + }; + + TEST_ASSERT_EQUAL(POST_DEV_CFG_DONE, LTC4274_fxnTable.cb_init(&s_dev, + &fact_ltc4274_cfg, 1)); + + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x12], LTC4274_AUTO_MODE); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x14], LTC4274_DETECT_ENABLE); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x01], LTC4274_INTERRUPT_MASK); + TEST_ASSERT_EQUAL_HEX8(0x80, LTC4274_regs[0x17]); + TEST_ASSERT_EQUAL_HEX8(LTC4274_regs[0x44], LTC4274_HP_ENABLE); + TEST_ASSERT_EQUAL(OCGPIO_CFG_INPUT | OCGPIO_CFG_INT_FALLING, + LTC7274_GpioConfig[27]); + + TEST_ASSERT_EQUAL(POST_DEV_CFG_FAIL, LTC4274_fxnTable.cb_init(&s_invalid_dev, + &fact_ltc4274_cfg, 1)); + TEST_ASSERT_EQUAL(POST_DEV_CFG_DONE, LTC4274_fxnTable.cb_init(&s_dev, + NULL, 1)); +} diff --git a/firmware/ec/test/suites/Test_pca9557.c b/firmware/ec/test/suites/Test_pca9557.c index 6a3ec2293a..213c9cf330 100644 --- a/firmware/ec/test/suites/Test_pca9557.c +++ b/firmware/ec/test/suites/Test_pca9557.c @@ -22,11 +22,6 @@ static const I2C_Dev pca9557_dev = { .slave_addr = 0x00, }; -static const I2C_Dev pca9557_no_dev = { - .bus = 2, - .slave_addr = 0x01, -}; - /* ============================= Boilerplate ================================ */ void suite_setUp(void) { @@ -125,8 +120,9 @@ void test_PCA9557_not_present(void) { /* Ensure that we fail properly if the device isn't on the bus */ uint8_t dummy_val; - I2C_Dev invalid_dev = pca9557_no_dev; - + I2C_Dev invalid_dev = pca9557_dev; + invalid_dev.slave_addr = 0x01; + TEST_ASSERT_EQUAL(RETURN_NOTOK, PCA9557_getInput(&invalid_dev, &dummy_val)); TEST_ASSERT_EQUAL(RETURN_NOTOK, diff --git a/firmware/ec/test/suites/Test_powerSource.c b/firmware/ec/test/suites/Test_powerSource.c new file mode 100644 index 0000000000..b36db35a31 --- /dev/null +++ b/firmware/ec/test/suites/Test_powerSource.c @@ -0,0 +1,328 @@ +#include "unity.h" + +#include "inc/devices/powerSource.h" + +#include "drivers/GpioSX1509.h" +#include "drivers/OcGpio.h" +#include "helpers/array.h" +#include "helpers/attribute.h" +#include "helpers/memory.h" + +#include "fake/fake_GPIO.h" +#include "fake/fake_I2C.h" +#include "fake/fake_ThreadedISR.h" + +#include + +/* ======================== Constants & variables =========================== */ +#define I2C_BUS 5 +#define I2C_ADDR 0x71 + +static uint8_t SX1509_regs[] = { + [0x00] = 0x00, /* Input buffer disable register B */ + [0x01] = 0x00, /* Input buffer disable register A */ + [0x02] = 0x00, /* Output buffer long slew register B */ + [0x03] = 0x00, /* Output buffer long slew register A */ + [0x04] = 0x00, /* Output buffer low drive register B */ + [0x05] = 0x00, /* Output buffer low drive register A */ + [0x06] = 0x00, /* Pull Up register B */ + [0x07] = 0x00, /* Pull Up register A */ + [0x08] = 0x00, /* Pull Down register B */ + [0x09] = 0x00, /* Pull Down register A */ + [0x0A] = 0x00, /* Open drain register B */ + [0x0B] = 0x00, /* Open drain register A */ + [0x0C] = 0x00, /* Polarity register B */ + [0x0D] = 0x00, /* Polarity register A */ + [0x0E] = 0x00, /* Direction register B */ + [0x0F] = 0x00, /* Direction register A */ + [0x10] = 0x00, /* Data register B */ + [0x11] = 0x00, /* Data register A */ + [0x12] = 0x00, /* Interrupt mask register B */ + [0x13] = 0x00, /* Interrupt mask register A */ + [0x14] = 0x00, /* Sense High register B */ + [0x15] = 0x00, /* Sense Low register B */ + [0x16] = 0x00, /* Sense High register A */ + [0x17] = 0x00, /* Sense Low register A */ + [0x18] = 0x00, /* Interrupt source register B */ + [0x19] = 0x00, /* Interrupt source register A */ + [0x1A] = 0x00, /* Event status register B */ + [0x1B] = 0x00, /* Event status register A */ + [0x1C] = 0x00, /* Level shifter register 1 */ + [0x1D] = 0x00, /* Level shifter register 2 */ + [0x1E] = 0x00, /* Clock management register */ + [0x1F] = 0x00, /* Miscellaneous device settings register */ + [0x20] = 0x00, /* LED driver enable register B */ + [0x21] = 0x00, /* LED driver enable register A */ + + [0x22] = 0x00, /* Debounce configuration register */ + [0x23] = 0x00, /* Debounce enable register B */ + [0x24] = 0x00, /* Debounce enable register A */ + [0x25] = 0x00, /* Key scan configuration register 1 */ + [0x26] = 0x00, /* Key scan configuration register 2 */ + [0x27] = 0x00, /* Key value (column) 1 */ + [0x28] = 0x00, /* Key value (row) 2 */ + + [0x29] = 0x00, /* ON time register I/O[0] */ + [0x2A] = 0x00, /* ON intensity register I/O[0] */ + [0x2B] = 0x00, /* OFF time/intensity register I/O[0] */ + [0x2C] = 0x00, /* ON time register I/O[1] */ + [0x2D] = 0x00, /* ON intensity register I/O[1] */ + [0x2E] = 0x00, /* OFF time/intensity register I/O[1] */ + [0x2F] = 0x00, /* ON time register I/O[2] */ + [0x30] = 0x00, /* ON intensity register I/O[2] */ + [0x31] = 0x00, /* OFF time/intensity register I/O[2] */ + [0x32] = 0x00, /* ON time register I/O[3] */ + [0x33] = 0x00, /* ON intensity register I/O[3] */ + [0x34] = 0x00, /* OFF time/intensity register I/O[3] */ + [0x35] = 0x00, /* ON time register I/O[4] */ + [0x36] = 0x00, /* ON intensity register I/O[4] */ + [0x37] = 0x00, /* OFF time/intensity register I/O[4] */ + [0x38] = 0x00, /* Fade in register I/O[4] */ + [0x39] = 0x00, /* Fade out register I/O[4] */ + [0x3A] = 0x00, /* ON time register I/O[5] */ + [0x3B] = 0x00, /* ON intensity register I/O[5] */ + [0x3C] = 0x00, /* OFF time/intensity register I/O[5] */ + [0x3D] = 0x00, /* Fade in register I/O[5] */ + [0x3E] = 0x00, /* Fade out register I/O[5] */ + [0x3F] = 0x00, /* ON time register I/O[6] */ + [0x40] = 0x00, /* ON intensity register I/O[6] */ + [0x41] = 0x00, /* OFF time/intensity register I/O[6] */ + [0x42] = 0x00, /* Fade in register I/O[6] */ + [0x43] = 0x00, /* Fade out register I/O[6] */ + [0x44] = 0x00, /* ON time register I/O[6] */ + [0x45] = 0x00, /* ON intensity register I/O[7] */ + [0x46] = 0x00, /* OFF time/intensity register I/O[7] */ + [0x47] = 0x00, /* Fade in register I/O[7] */ + [0x48] = 0x00, /* Fade out register I/O[7] */ + [0x49] = 0x00, /* ON time register I/O[8] */ + [0x4A] = 0x00, /* ON intensity register I/O[8] */ + [0x4B] = 0x00, /* OFF time/intensity register I/O[8] */ + [0x4C] = 0x00, /* ON time register I/O[9] */ + [0x4D] = 0x00, /* ON intensity register I/O[9] */ + [0x4E] = 0x00, /* OFF time/intensity register I/O[9] */ + [0x4F] = 0x00, /* ON time register I/O[10] */ + [0x50] = 0x00, /* ON intensity register I/O[10] */ + [0x51] = 0x00, /* OFF time/intensity register I/O[10] */ + [0x52] = 0x00, /* ON time register I/O[11] */ + [0x53] = 0x00, /* ON intensity register I/O[11] */ + [0x54] = 0x00, /* OFF time/intensity register I/O[11] */ + [0x55] = 0x00, /* ON time register I/O[12] */ + [0x56] = 0x00, /* ON intensity register I/O[12] */ + [0x57] = 0x00, /* OFF time/intensity register I/O[12] */ + [0x58] = 0x00, /* Fade in register I/O[12] */ + [0x59] = 0x00, /* Fade out register I/O[12] */ + [0x5A] = 0x00, /* ON time register I/O[13] */ + [0x5B] = 0x00, /* ON intensity register I/O[13] */ + [0x5C] = 0x00, /* OFF time/intensity register I/O[13] */ + [0x5D] = 0x00, /* Fade in register I/O[13] */ + [0x5E] = 0x00, /* Fade out register I/O[13] */ + [0x5F] = 0x00, /* ON time register I/O[14] */ + [0x60] = 0x00, /* ON intensity register I/O[14] */ + [0x61] = 0x00, /* OFF time/intensity register I/O[14] */ + [0x62] = 0x00, /* Fade in register I/O[14] */ + [0x63] = 0x00, /* Fade out register I/O[14] */ + [0x64] = 0x00, /* ON time register I/O[15] */ + [0x65] = 0x00, /* ON intensity register I/O[15] */ + [0x66] = 0x00, /* OFF time/intensity register I/O[15] */ + [0x67] = 0x00, /* Fade in register I/O[115] */ + [0x68] = 0x00, /* Fade out register I/O[15] */ + + [0x69] = 0x00, /* */ + [0x6A] = 0x00, /* */ + + [0x7D] = 0x00, /* */ + [0x7E] = 0x00, /* */ + [0x7F] = 0x00, /* */ +}; + +extern const OcGpio_FnTable GpioSX1509_fnTable; + +static bool PWR_GpioPins[] = { + [0x1E] = 0x1, /* pin_solar_aux_prsnt_n =30*/ + [0x55] = 0x1, /* pin_poe_prsnt_n = 85 */ +}; + +static uint32_t PWR_GpioConfig[] = { + [0x1E] = OCGPIO_CFG_INPUT, + [0x55] = OCGPIO_CFG_INPUT, +}; + +/* ============================= Boilerplate ================================ */ +static OcGpio_Port s_fake_io_port = { + .fn_table = &FakeGpio_fnTable, + .object_data = &(FakeGpio_Obj){}, +}; + +static OcGpio_Port s_fake_io_exp = { + .fn_table = &GpioSX1509_fnTable, + .cfg = &(SX1509_Cfg) { + .i2c_dev = { I2C_BUS, I2C_ADDR }, + }, + .object_data = &(SX1509_Obj){}, +}; + +void suite_setUp(void) +{ + FakeGpio_registerDevSimple(PWR_GpioPins, PWR_GpioConfig); + fake_I2C_init(); + fake_I2C_registerDevSimple(I2C_BUS, I2C_ADDR, SX1509_regs, + sizeof(SX1509_regs), sizeof(SX1509_regs[0]), + sizeof(uint8_t), FAKE_I2C_DEV_LITTLE_ENDIAN); +} + +void setUp(void) +{ + memset(SX1509_regs, 0, sizeof(SX1509_regs)); + OcGpio_init(&s_fake_io_exp); +} + +void tearDown(void) +{ +} + +void suite_tearDown(void) +{ + fake_I2C_deinit(); +} + +static PWRSRC_Dev p_dev = { + .cfg = { + /* SOLAR_AUX_PRSNT_N */ + .pin_solar_aux_prsnt_n = { &s_fake_io_port, 0x1E }, + /* POE_PRSNT_N */ + .pin_poe_prsnt_n = { &s_fake_io_port, 0x55 }, + /* INT_BAT_PRSNT */ + .pin_int_bat_prsnt = { &s_fake_io_exp, 11 }, + /* EXT_BAT_PRSNT */ + .pin_ext_bat_prsnt = { &s_fake_io_exp, 12 }, + }, +}; +/* ================================ Tests =================================== */ + +void test_pwr_process_get_status_parameters_data_poeavailable() +{ + uint8_t powerStatus = 0; + uint8_t index = 0x00; //PoE Availability + PWR_GpioPins[0x55] = 0x0; //PoE Enable + PWR_GpioPins[0x1E] = 0x1; //Aux/solar Disable + SX1509_regs[0x10] = 0x18; //Int/Ext Battery Disable + SX1509_regs[0x11] = 0x00; + + pwr_source_init(); + pwr_get_source_info(&p_dev); + pwr_process_get_status_parameters_data(index, &powerStatus); + + TEST_ASSERT_EQUAL(1, powerStatus); +} + +void test_pwr_process_get_status_parameters_data_poeaccessible() +{ + uint8_t powerStatus = 0; + uint8_t index = 0x01; //PoE Accessibility + PWR_GpioPins[0x55] = 0x0; //PoE Enable + PWR_GpioPins[0x1E] = 0x1; //Aux/solar Disable + SX1509_regs[0x10] = 0x18; //Int/Ext Battery Disable + SX1509_regs[0x11] = 0x00; + + pwr_source_init(); + pwr_get_source_info(&p_dev); + pwr_process_get_status_parameters_data(index, &powerStatus); + + TEST_ASSERT_EQUAL(1, powerStatus); +} + +void test_pwr_process_get_status_parameters_data_solaravailable() +{ + uint8_t powerStatus = 0; + uint8_t index = 0x02; //SOLAR Availability + PWR_GpioPins[0x55] = 0x1; //PoE Disable + PWR_GpioPins[0x1E] = 0x0; //Aux/solar Enable + SX1509_regs[0x10] = 0x18; //Int/Ext Battery Disable + SX1509_regs[0x11] = 0x00; + + pwr_source_init(); + pwr_get_source_info(&p_dev); + pwr_process_get_status_parameters_data(index, &powerStatus); + + TEST_ASSERT_EQUAL(1, powerStatus); +} + +void test_pwr_process_get_status_parameters_data_solaraccessible() +{ + uint8_t powerStatus = 0; + uint8_t index = 0x03; //SOLAR Accessibility + PWR_GpioPins[0x55] = 0x1; //PoE Disable + PWR_GpioPins[0x1E] = 0x0; //Aux/solar Enable + SX1509_regs[0x10] = 0x18; //Int/Ext Battery Disable + SX1509_regs[0x11] = 0x00; + + pwr_source_init(); + pwr_get_source_info(&p_dev); + pwr_process_get_status_parameters_data(index, &powerStatus); + + TEST_ASSERT_EQUAL(1, powerStatus); +} + +void test_pwr_process_get_status_parameters_data_extavailable() +{ + uint8_t powerStatus = 0; + uint8_t index = 0x04; //Ext Batt availability + PWR_GpioPins[0x55] = 0x1; //PoE Disable + PWR_GpioPins[0x1E] = 0x1; //Aux/solar Disable + SX1509_regs[0x10] = 0x08; //Int Batt OFF, Ext batt ON + SX1509_regs[0x11] = 0x00; + + pwr_source_init(); + pwr_get_source_info(&p_dev); + pwr_process_get_status_parameters_data(index, &powerStatus); + + TEST_ASSERT_EQUAL(1, powerStatus); +} + +void test_pwr_process_get_status_parameters_data_extaccessible() +{ + uint8_t powerStatus = 0; + uint8_t index = 0x05; //Ext Batt accessibility + PWR_GpioPins[0x55] = 0x1; //PoE Disable + PWR_GpioPins[0x1E] = 0x1; //Aux/solar Disable + SX1509_regs[0x10] = 0x08; //Int Batt OFF, Ext batt ON + SX1509_regs[0x11] = 0x00; + + pwr_source_init(); + pwr_get_source_info(&p_dev); + pwr_process_get_status_parameters_data(index, &powerStatus); + + TEST_ASSERT_EQUAL(1, powerStatus); +} + +void test_pwr_process_get_status_parameters_data_intavailable() +{ + uint8_t powerStatus = 0; + uint8_t index = 0x06; //Int Batt Availability + PWR_GpioPins[0x55] = 0x1; //PoE Disable + PWR_GpioPins[0x1E] = 0x1; //Aux/solar Disable + SX1509_regs[0x10] = 0x10; //Ext Batt OFF, Int batt ON + SX1509_regs[0x11] = 0x00; + + pwr_source_init(); + pwr_get_source_info(&p_dev); + pwr_process_get_status_parameters_data(index, &powerStatus); + + TEST_ASSERT_EQUAL(1, powerStatus); +} + +void test_pwr_process_get_status_parameters_data_intaccessible() +{ + uint8_t powerStatus = 0; + uint8_t index = 0x07; //Int Batt Accessibility + PWR_GpioPins[0x55] = 0x1; //PoE Disable + PWR_GpioPins[0x1E] = 0x1; //Aux/solar Disable + SX1509_regs[0x10] = 0x10; //Ext Batt OFF, Int batt ON + SX1509_regs[0x11] = 0x00; + + pwr_source_init(); + pwr_get_source_info(&p_dev); + pwr_process_get_status_parameters_data(index, &powerStatus); + + TEST_ASSERT_EQUAL(1, powerStatus); +} \ No newline at end of file diff --git a/firmware/ec/test/suites/Test_se98a.c b/firmware/ec/test/suites/Test_se98a.c index 4f1ede2f79..70dd40c535 100644 --- a/firmware/ec/test/suites/Test_se98a.c +++ b/firmware/ec/test/suites/Test_se98a.c @@ -42,7 +42,13 @@ static uint16_t SE98A_regs[] = { [0x06] = 0x00, /* MFG ID */ [0x07] = 0x00, /* Device ID */ }; +static bool SE98A_GpioPins[] = { + [0x05] = 0x1, +}; +static uint32_t SE98A_GpioConfig[] = { + [0x05] = OCGPIO_CFG_INPUT, +}; /* ============================= Fake Functions ============================= */ #include unsigned int s_task_sleep_ticks; @@ -54,6 +60,7 @@ xdc_Void ti_sysbios_knl_Task_sleep__E( xdc_UInt32 nticks ) /* ============================= Boilerplate ================================ */ void suite_setUp(void) { + FakeGpio_registerDevSimple(SE98A_GpioPins, SE98A_GpioConfig); fake_I2C_init(); fake_I2C_registerDevSimple(s_dev.cfg.dev.bus, s_dev.cfg.dev.slave_addr, SE98A_regs, sizeof(SE98A_regs), @@ -108,7 +115,7 @@ void test_se98a_init(void) TEST_ASSERT_EQUAL(RETURN_OK, se98a_init(&alerted_dev)); } -static struct AlertData { +static struct Test_AlertData { bool triggered; SE98A_Event evt; int8_t temp; @@ -117,7 +124,7 @@ static struct AlertData { static void alert_handler(SE98A_Event evt, int8_t temperature, void *context) { - s_alert_data = (struct AlertData){ + s_alert_data = (struct Test_AlertData){ .triggered = true, .evt = evt, .temp = temperature, @@ -145,7 +152,7 @@ static void _test_alert(SE98A_Dev *dev, uint16_t temp_reg, SE98A_Event exp_evt, void test_se98a_alerts(void) { - s_alert_data = (struct AlertData){}; + s_alert_data = (struct Test_AlertData){}; /* Now try to init with a pin associated */ SE98A_Dev alerted_dev = { @@ -200,21 +207,22 @@ void test_se98a_probe(void) /* Test with the actual values * (dev id is hi-byte) * (1131h = NXP Semiconductors PCI-SIG)*/ + POSTData postData; SE98A_regs[0x07] = 0xA102; SE98A_regs[0x06] = 0x1131; - TEST_ASSERT_EQUAL(RETURN_OK, se98a_probe(&s_dev)); + TEST_ASSERT_EQUAL(POST_DEV_FOUND, se98a_probe(&s_dev,&postData)); /* Test with an incorrect device ID */ SE98A_regs[0x07] = 0xFACE; - TEST_ASSERT_EQUAL(POST_DEV_ID_MISMATCH, se98a_probe(&s_dev)); + TEST_ASSERT_EQUAL(POST_DEV_ID_MISMATCH, se98a_probe(&s_dev,&postData)); /* Test with an incorrect mfg ID */ SE98A_regs[0x07] = 0xA102; SE98A_regs[0x06] = 0xABCD; - TEST_ASSERT_EQUAL(POST_DEV_ID_MISMATCH, se98a_probe(&s_dev)); + TEST_ASSERT_EQUAL(POST_DEV_ID_MISMATCH, se98a_probe(&s_dev,&postData)); /* Test with a missing device */ - TEST_ASSERT_EQUAL(POST_DEV_MISSING, se98a_probe(&s_invalid)); + TEST_ASSERT_EQUAL(POST_DEV_MISSING, se98a_probe(&s_invalid,&postData)); } /* Helper to let us run through the various limits we can set */ diff --git a/firmware/ec/test/suites/Test_sx1509.c b/firmware/ec/test/suites/Test_sx1509.c index bba6ce6516..98604fede3 100644 --- a/firmware/ec/test/suites/Test_sx1509.c +++ b/firmware/ec/test/suites/Test_sx1509.c @@ -15,11 +15,6 @@ static const I2C_Dev s_sx1509_dev = { .slave_addr = I2C_ADDR, }; -static const I2C_Dev s_sx1509_no_dev = { - .bus = I2C_BUS, - .slave_addr = 0x01, -}; - static uint8_t SX1509_regs[] = { [0x00] = 0x00, /* Input buffer disable register B */ [0x01] = 0x00, /* Input buffer disable register A */ @@ -509,7 +504,8 @@ void test_ioexp_led_clear_interrupt_source(void) void test_ioexp_led_not_present(void) { - I2C_Dev invalid_dev = s_sx1509_no_dev; + I2C_Dev invalid_dev = s_sx1509_dev; + invalid_dev.slave_addr = 0x01; /* Ensure that we fail properly if the device isn't on the bus */ uint8_t dummy_val;