summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Palatin <vpalatin@chromium.org>2014-12-05 12:20:47 -0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-12-06 01:11:51 +0000
commitdd573030d2363fa6f6a98441ac0ed3dd73f3e0b9 (patch)
tree49a17c51df9764d2610abad4b1f98bc937e8703c
parent4ef1969a5026b457ff9f9194042e065f4dd129e5 (diff)
downloadchrome-ec-dd573030d2363fa6f6a98441ac0ed3dd73f3e0b9.tar.gz
g: update version string
Build the hardware version string from the register definitions, so I no longer forget to update it. Check it at runtime against the build version registers. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=none BUG=none TEST=On the console command line, type "version" and see the following string: "Chip: g cr50 A1 20141203_224409" Change-Id: I6d902780d42f2dd18a57ccc08fd4ba4fee5ebc7c Reviewed-on: https://chromium-review.googlesource.com/233582 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Vincent Palatin <vpalatin@chromium.org> Trybot-Ready: Vincent Palatin <vpalatin@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r--chip/g/build.mk8
-rw-r--r--chip/g/registers.h7
-rw-r--r--chip/g/system.c9
3 files changed, 21 insertions, 3 deletions
diff --git a/chip/g/build.mk b/chip/g/build.mk
index b7e9d8908c..3b5c8627aa 100644
--- a/chip/g/build.mk
+++ b/chip/g/build.mk
@@ -7,6 +7,14 @@
CORE:=cortex-m
CFLAGS_CPU+=-march=armv7-m -mcpu=cortex-m3
+# Extract the hardware version we are building against
+ver_defs := GC___MAJOR_REV__ GC___MINOR_REV__
+bld_defs := GC_SWDP_BUILD_DATE_DEFAULT GC_SWDP_BUILD_TIME_DEFAULT
+ver_params := $(shell echo "$(ver_defs) $(bld_defs)" | $(CPP) $(CPPFLAGS) -P \
+ -imacros chip/g/gc_regdefs.h | sed -e "s/__REV\([A-Z]\)__/\1/")
+ver_str := $(shell printf "%s%s %d_%d" $(ver_params))
+CPPFLAGS+= -DGC_REVISION="$(ver_str)"
+
# Required chip modules
chip-y=clock.o gpio.o hwtimer.o jtag.o system.o uart.o
chip-$(CONFIG_WATCHDOG)+=watchdog.o
diff --git a/chip/g/registers.h b/chip/g/registers.h
index 1a4c9ab456..59538a5a5e 100644
--- a/chip/g/registers.h
+++ b/chip/g/registers.h
@@ -13,8 +13,11 @@
/* Replace masked bits with val << lsb */
#define REG_WRITE_MLV(reg, mask, lsb, val) reg = ((reg & ~mask) | ((val << lsb) & mask))
-/* Revision */
-#define GC_REVISION_STR "A1 20141117_055451"
+/* Revision generated from the register definitions */
+#define GC_REVISION_STR STRINGIFY(GC_REVISION)
+/* Revision registers */
+#define GR_SWDP_BUILD_DATE REG32(GC_SWDP0_BASE_ADDR + GC_SWDP_BUILD_DATE_OFFSET)
+#define GR_SWDP_BUILD_TIME REG32(GC_SWDP0_BASE_ADDR + GC_SWDP_BUILD_TIME_OFFSET)
#define GR_PINMUX_DIOA0_SEL REG32(GC_PINMUX_BASE_ADDR + GC_PINMUX_DIOA0_SEL_OFFSET)
#define GR_PINMUX_DIOA0_CTL REG32(GC_PINMUX_BASE_ADDR + GC_PINMUX_DIOA0_CTL_OFFSET)
diff --git a/chip/g/system.c b/chip/g/system.c
index f22f2b819d..f02f5807ee 100644
--- a/chip/g/system.c
+++ b/chip/g/system.c
@@ -72,7 +72,14 @@ const char *system_get_chip_name(void)
const char *system_get_chip_revision(void)
{
- return GC_REVISION_STR;
+ int build_date = GR_SWDP_BUILD_DATE;
+ int build_time = GR_SWDP_BUILD_TIME;
+
+ if ((build_date != GC_SWDP_BUILD_DATE_DEFAULT) ||
+ (build_time != GC_SWDP_BUILD_TIME_DEFAULT))
+ return GC_REVISION_STR" BUILD MISMATCH!";
+ else
+ return GC_REVISION_STR;
}
int system_set_scratchpad(uint32_t value)