diff options
author | Harald Welte <laforge@osmocom.org> | 2020-01-11 12:31:51 +0100 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2020-01-11 17:52:36 +0100 |
commit | e3b2de45c4507754a29f1c74865150b34c5d5f23 (patch) | |
tree | 071ae2367c17023f2d377158e63ac06005953204 /firmware/libcommon | |
parent | ce4b5c25e8fca000723b586a1dee24b7299c360e (diff) |
firmware: move printing of welcome banner to common function print_banner()
This unifies the printing of the welcome banner, and it also ensures
that all modes print all information (serial number, reset cause).
Furthermore the APP and BOARD #defines from the make environment are
also printed.
Change-Id: I7e6bc05cee4b9ec0fd9a05dc90ce0b26a5763e5a
Diffstat (limited to 'firmware/libcommon')
-rw-r--r-- | firmware/libcommon/include/main_common.h | 3 | ||||
-rw-r--r-- | firmware/libcommon/source/main_common.c | 54 |
2 files changed, 57 insertions, 0 deletions
diff --git a/firmware/libcommon/include/main_common.h b/firmware/libcommon/include/main_common.h new file mode 100644 index 0000000..ce19f81 --- /dev/null +++ b/firmware/libcommon/include/main_common.h @@ -0,0 +1,3 @@ +#pragma once + +void print_banner(void); diff --git a/firmware/libcommon/source/main_common.c b/firmware/libcommon/source/main_common.c new file mode 100644 index 0000000..3314595 --- /dev/null +++ b/firmware/libcommon/source/main_common.c @@ -0,0 +1,54 @@ +/* SIMtrace 2 firmware common main helpers + * + * (C) 2015-2019 by Harald Welte <hwelte@hmw-consulting.de> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "board.h" +#include "utils.h" + +void print_banner(void) +{ + printf("\n\r\n\r" + "=============================================================================\n\r" + "SIMtrace2 firmware " GIT_VERSION ", BOARD=" BOARD ", APP=" APPLICATION "\n\r" + "(C) 2010-2019 by Harald Welte, 2018-2019 by Kevin Redon\n\r" + "=============================================================================\n\r"); + +#if (TRACE_LEVEL >= TRACE_LEVEL_INFO) + /* print chip-unique ID */ + unsigned int unique_id[4]; + EEFC_ReadUniqueID(unique_id); + TRACE_INFO("Chip ID: 0x%08lx (Ext 0x%08lx)\n\r", CHIPID->CHIPID_CIDR, CHIPID->CHIPID_EXID); + TRACE_INFO("Serial Nr. %08x-%08x-%08x-%08x\n\r", + unique_id[0], unique_id[1], unique_id[2], unique_id[3]); + + /* print reset cause */ + uint8_t reset_cause = (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos; + static const char* reset_causes[] = { + "general reset (first power-up reset)", + "backup reset (return from backup mode)", + "watchdog reset (watchdog fault occurred)", + "software reset (processor reset required by the software)", + "user reset (NRST pin detected low)", + }; + if (reset_cause < ARRAY_SIZE(reset_causes)) { + TRACE_INFO("Reset Cause: %s\n\r", reset_causes[reset_cause]); + } else { + TRACE_INFO("Reset Cause: 0x%lx\n\r", (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos); + } +#endif +} |