diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2014-12-05 12:20:47 -0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-12-06 01:11:51 +0000 |
commit | dd573030d2363fa6f6a98441ac0ed3dd73f3e0b9 (patch) | |
tree | 49a17c51df9764d2610abad4b1f98bc937e8703c /chip | |
parent | 4ef1969a5026b457ff9f9194042e065f4dd129e5 (diff) | |
download | chrome-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>
Diffstat (limited to 'chip')
-rw-r--r-- | chip/g/build.mk | 8 | ||||
-rw-r--r-- | chip/g/registers.h | 7 | ||||
-rw-r--r-- | chip/g/system.c | 9 |
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) |