88 lines
1.9 KiB
C
88 lines
1.9 KiB
C
|
|
/*
|
||
|
|
* hwFixes.c
|
||
|
|
*
|
||
|
|
* Created on: Mar 27, 2024
|
||
|
|
* Author: Brian.Bailey
|
||
|
|
*/
|
||
|
|
|
||
|
|
|
||
|
|
#include <assert.h>
|
||
|
|
#include <string.h>
|
||
|
|
#include <stdio.h>
|
||
|
|
#include <math.h>
|
||
|
|
#include <stdint.h>
|
||
|
|
|
||
|
|
//Drivers
|
||
|
|
#include "fsl_common.h"
|
||
|
|
#include "fsl_gpio.h"
|
||
|
|
|
||
|
|
|
||
|
|
#include "Fonts\fontLibrary.h"
|
||
|
|
#include "Graphics\graphicsLibrary.h"
|
||
|
|
#include "keys.h"
|
||
|
|
#include "eeprom.h"
|
||
|
|
|
||
|
|
#include "hwFixes.h"
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/*******************************************************************************
|
||
|
|
* Definitions
|
||
|
|
******************************************************************************/
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/*******************************************************************************
|
||
|
|
* Variables
|
||
|
|
******************************************************************************/
|
||
|
|
|
||
|
|
HARDWARE_FIX_t hwf;
|
||
|
|
|
||
|
|
extern char tempString[40];
|
||
|
|
|
||
|
|
/*******************************************************************************
|
||
|
|
* Static Function Declarations
|
||
|
|
******************************************************************************/
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/*******************************************************************************
|
||
|
|
* Public Functions
|
||
|
|
******************************************************************************/
|
||
|
|
|
||
|
|
/*
|
||
|
|
* Initialize hardware fix EEPROM and read out fix data
|
||
|
|
*/
|
||
|
|
void HWF_Init(void)
|
||
|
|
{
|
||
|
|
//Check if HWF eeprom page has been initialized
|
||
|
|
if(EE_ReadUINT32(EE_HWFIX_INIT) != 1)
|
||
|
|
{
|
||
|
|
//erase HWF sector
|
||
|
|
for(uint32_t i = EE_PAGE_HW_FIXES; i < EE_PAGE_HW_FIXES + EE_PAGE_SIZE; i++)
|
||
|
|
{
|
||
|
|
EE_WriteUINT32(i, 0x00000000);
|
||
|
|
}
|
||
|
|
|
||
|
|
//Set HWF initialized
|
||
|
|
EE_WriteUINT32(EE_HWFIX_INIT, true);
|
||
|
|
EE_WriteUINT32(EE_HWFIX_MAIN_PCBA_PN, HWF_MIN_MAIN_PCBA_PN); //Default to earliest hardware
|
||
|
|
hwf.mainPcbaPN = HWF_MIN_MAIN_PCBA_PN;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
//Read hardware fix info
|
||
|
|
hwf.vBattCap_021 = EE_ReadUINT32(EE_HWFIX_VBATT_CAP_021);
|
||
|
|
hwf.mainPcbaPN = EE_ReadUINT32(EE_HWFIX_MAIN_PCBA_PN);
|
||
|
|
|
||
|
|
if(hwf.mainPcbaPN >= 208023) //Set vBattCap fix to true for 208023+
|
||
|
|
{
|
||
|
|
hwf.vBattCap_021 = true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|