Commit 8104ca0b authored by Evan Lojewski's avatar Evan Lojewski Committed by Raptor Engineering Development Team
Browse files

i2c: Don't allow negative cpu counts.

parent 4cf395d4
......@@ -89,7 +89,7 @@ static hiomap_configuration_data_t hiomap_config;
// Background service tasks
static uint8_t host_background_service_task_active = 0;
static uint8_t host_console_service_task_active = 0;
static int configured_cpu_count = 0;
static int configured_cpu_count = 1;
// POST codes
uint8_t post_code_high = 0;
......@@ -103,6 +103,7 @@ typedef struct
{
int8_t index;
uint8_t *i2c_master;
uint32_t i2c_frequency;
uint8_t vdd_regulator_addr;
uint8_t vdn_regulator_addr;
uint8_t vdd_smbus_addr;
......@@ -112,6 +113,7 @@ static const cpu_info_t g_cpu_info[] = {
{
.index = 0,
.i2c_master = (uint8_t *)I2CMASTER1_BASE,
.i2c_frequency = 100000,
.vdd_regulator_addr = 0x70,
.vdn_regulator_addr = 0x73,
.vdd_smbus_addr = 0x28,
......@@ -122,6 +124,7 @@ static const cpu_info_t g_cpu_info[] = {
{
.index = 1,
.i2c_master = (uint8_t *)I2CMASTER2_BASE,
.i2c_frequency = 100000,
.vdd_regulator_addr = 0x70,
.vdn_regulator_addr = 0x73,
.vdd_smbus_addr = 0x28,
......@@ -1419,13 +1422,12 @@ static int apply_avsbus_workarounds(const cpu_info_t *cpu_info, int cpu_count)
{
printf("Applying AVSBus workarounds...\n");
while (--cpu_count)
for (int i = 0; i < cpu_count; i++)
{
if (apply_avsbus_workarounds_cpu(&cpu_info[0]))
if (apply_avsbus_workarounds_cpu(&cpu_info[i]))
{
return -1;
}
cpu_info++;
}
printf("\tAVSBus workaround application complete!\n");
......@@ -1471,13 +1473,12 @@ static int enable_avsbus_pmbus(const cpu_info_t *cpu_info, int cpu_count)
{
printf("Enabling AVSbus PMBUS functionality...\n");
while (--cpu_count)
for (int i = 0; i < cpu_count; i++)
{
if (enable_avsbus_pmbus_cpu(&cpu_info[0]))
if (enable_avsbus_pmbus_cpu(&cpu_info[i]))
{
return -1;
}
cpu_info++;
}
printf("\tAVSBus PMBUS functionality enabled!\n");
......@@ -1523,14 +1524,13 @@ static int disable_avsbus_pmbus(const cpu_info_t *cpu_info, int cpu_count)
int status = 0;
printf("Disabling AVSbus PMBUS functionality...\n");
while (--cpu_count)
for (int i = 0; i < cpu_count; i++)
{
// Attempt to turn of power on all CPUs, even if one isn't responding.
if (disable_avsbus_pmbus_cpu(&cpu_info[0]))
if (disable_avsbus_pmbus_cpu(&cpu_info[i]))
{
status = -1;
}
cpu_info++;
}
printf("\tAVSBus PMBUS functionality disabled!\n");
......@@ -2428,10 +2428,10 @@ int main(void)
display_character(0x30, 0); // STATUS CODE: 0
initialize_i2c_master((uint8_t *)I2CMASTER1_BASE, 100000);
#ifdef I2CMASTER2_BASE
initialize_i2c_master((uint8_t *)I2CMASTER2_BASE, 100000);
#endif
for (int i = 0; i < MAX_CPUS_SUPPORTED; i++)
{
initialize_i2c_master(g_cpu_info[i].i2c_master, g_cpu_info[i].i2c_frequency);
}
// initialize_i2c_master((uint8_t*)I2CMASTER3_BASE, 100000);
initialize_i2c_master((uint8_t *)I2CMASTER4_BASE, 100000);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment