From c0a2cc4852f59810ce2fd330ecf5c2a38f232935 Mon Sep 17 00:00:00 2001 From: Javier Viguera Date: Fri, 1 Apr 2011 14:53:24 +0200 Subject: [PATCH] rom version Add ROM version for the CPX2 Signed-off-by: Javier Viguera --- src/main.c | 42 ++++++++++++++++++++++-------------------- 1 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/main.c b/src/main.c index c21dece..eb9504d 100644 --- a/src/main.c +++ b/src/main.c @@ -795,7 +795,9 @@ void discover_boot_rom_version(void) { FILE *cpuinfo; char line_buffer[100]; - static char *banner = "Hardware\t: Freescale MX"; + static char *banner_hw = "Hardware\t:"; + static char *banner = "Hardware\t: Freescale MX"; + static char *banner_digi_x2 = "Hardware\t: Digi ConnectPort X2"; static char *v0_rom_tag = "23"; static char *v1_rom_tag = "28"; static char *v2_rom_tag = "53"; @@ -828,31 +830,31 @@ void discover_boot_rom_version(void) //-------------------------------------------------------------- // Check if the current line contains the information we need. //-------------------------------------------------------------- - - if (strncmp(line_buffer, banner, strlen(banner))) { + if (strncmp(line_buffer, banner_hw, strlen(banner_hw))) { continue; } - //-------------------------------------------------------------- - // If control arrives here, we found what we're looking for. - // Extract the information we need. - //-------------------------------------------------------------- - - if (!strncmp(line_buffer + strlen(banner), v0_rom_tag, strlen(v0_rom_tag))) { - rom_version = ROM_Version_0; - break; + if ( !strncmp(line_buffer, banner, strlen(banner)) ) { + if (!strncmp(line_buffer + strlen(banner), v0_rom_tag, strlen(v0_rom_tag))) { + rom_version = ROM_Version_0; + break; + } + else + if (!strncmp(line_buffer + strlen(banner), v1_rom_tag, strlen(v1_rom_tag))) { + rom_version = ROM_Version_1; + break; + } + else + if (!strncmp(line_buffer + strlen(banner), v2_rom_tag, strlen(v2_rom_tag))) { + rom_version = ROM_Version_2; + break; + } } - else - if (!strncmp(line_buffer + strlen(banner), v1_rom_tag, strlen(v1_rom_tag))) { + + if ( !strncmp(line_buffer, banner_digi_x2, strlen(banner_digi_x2)) ) { + // The CPX2 has a ROM version 1 rom_version = ROM_Version_1; - break; } - else - if (!strncmp(line_buffer + strlen(banner), v2_rom_tag, strlen(v2_rom_tag))) { - rom_version = ROM_Version_2; - break; - } - } //---------------------------------------------------------------------- -- 1.7.4.2