From f8aff4bf4bdd0ef19d887a591d94b19e7e665f55 Mon Sep 17 00:00:00 2001 From: Jason Kotzin Date: Wed, 10 Aug 2022 18:19:15 -0700 Subject: [PATCH] upstream fixes --- src/platforms/jeff/Makefile.inc | 2 +- src/platforms/jeff/platform.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/platforms/jeff/Makefile.inc b/src/platforms/jeff/Makefile.inc index 929228b0..727a7ff8 100644 --- a/src/platforms/jeff/Makefile.inc +++ b/src/platforms/jeff/Makefile.inc @@ -48,7 +48,7 @@ all: blackmagic_full.bin blackmagic.bin blackmagic_dfu.bin blackmagic_dfu.hex blackmagic_dfu.bin : OBJCOPY_FLAGS := --pad-to 0x00002000 --gap-fill 0xFF -j .text -j .data blackmagic_dfu.bin : LINKER_SCRIPT := "platforms/samd/samd_boot.ld" -blackmagic_dfu: usbdfu.o +blackmagic_dfu.elf: usbdfu.o @echo " LD $@" $(Q)$(CC) $^ -o $@ $(LDFLAGS) diff --git a/src/platforms/jeff/platform.c b/src/platforms/jeff/platform.c index 56a30572..7fbc6db3 100644 --- a/src/platforms/jeff/platform.c +++ b/src/platforms/jeff/platform.c @@ -252,8 +252,11 @@ const char *platform_target_voltage(void) return out; } -char *serialno_read(char *s) +char *serial_no_read(char *s, int max) { + if (max >= 8) + max = 8; + #ifdef CUSTOM_SER s[0] = 'J'; s[1] = 'E'; @@ -266,13 +269,13 @@ char *serialno_read(char *s) *(volatile uint32_t *)0x0080A040 + *(volatile uint32_t *)0x0080A044 + *(volatile uint32_t *)0x0080A048; - + /* Fetch serial number from chip's unique ID */ - for(i = 0; i < 8; i++) { + for(i = 0; i < max; i++) { s[7-i] = ((unique_id >> (4*i)) & 0xF) + '0'; } - for(i = 0; i < 8; i++) + for(i = 0; i < max; i++) if(s[i] > '9') s[i] += 'A' - '9' - 1; s[8] = 0;