From 9af14d7eb23bcd14b2c3e496925cfe42acab38bf Mon Sep 17 00:00:00 2001 From: Francois Berder <18538310+francois-berder@users.noreply.github.com> Date: Sat, 12 Oct 2019 11:59:23 +0100 Subject: [PATCH 1/5] makefiles: arch: mips: Define CPU_MODEL in CFLAGS Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com> --- makefiles/arch/mips.inc.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/makefiles/arch/mips.inc.mk b/makefiles/arch/mips.inc.mk index fdee1be271..0438869177 100644 --- a/makefiles/arch/mips.inc.mk +++ b/makefiles/arch/mips.inc.mk @@ -38,6 +38,7 @@ CFLAGS_DBG = -g3 CFLAGS_OPT = -Os CFLAGS += $(CFLAGS_CPU) $(CFLAGS_LINK) $(CFLAGS_OPT) $(CFLAGS_DBG) +CFLAGS += -DCPU_MODEL_$(call uppercase_and_underscore,$(CPU_MODEL)) ifeq ($(USE_HARD_FLOAT),1) CFLAGS += -mhard-float -DMIPS_HARD_FLOAT From 57377ded76fe55cbce04836232558bb2de6f0404 Mon Sep 17 00:00:00 2001 From: Francois Berder <18538310+francois-berder@users.noreply.github.com> Date: Sat, 12 Oct 2019 12:00:11 +0100 Subject: [PATCH 2/5] cpu: mips_pic32mz: Include vendor header in cpu_conf.h Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com> --- cpu/mips_pic32mz/include/cpu_conf.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cpu/mips_pic32mz/include/cpu_conf.h b/cpu/mips_pic32mz/include/cpu_conf.h index 2b2f70bcbf..31c3da65d6 100644 --- a/cpu/mips_pic32mz/include/cpu_conf.h +++ b/cpu/mips_pic32mz/include/cpu_conf.h @@ -21,6 +21,12 @@ #ifndef CPU_CONF_H #define CPU_CONF_H +#ifdef CPU_MODEL_P32MZ2048EFG100 +#include "vendor/p32mz2048efg100.h" +#else +#error "No CPU headers for the defined CPU_MODEL found" +#endif + #ifdef __cplusplus extern "C" { #endif From 3a62b620bc9f38024da60ce7ac292b8119dbc8c7 Mon Sep 17 00:00:00 2001 From: Francois Berder <18538310+francois-berder@users.noreply.github.com> Date: Sat, 12 Oct 2019 12:06:30 +0100 Subject: [PATCH 3/5] cpu: mips_pic32_common: Move cpu header to mips32r2_common Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com> --- .../include/cpu.h | 12 ++-- cpu/mips32r2_common/include/eic_irq.h | 3 +- .../include/periph_cpu_common.h | 5 ++ cpu/mips_pic32mx/include/cpu.h | 60 ------------------- cpu/mips_pic32mx/include/cpu_conf.h | 3 +- cpu/mips_pic32mz/include/cpu_conf.h | 3 +- 6 files changed, 14 insertions(+), 72 deletions(-) rename cpu/{mips_pic32mz => mips32r2_common}/include/cpu.h (78%) delete mode 100644 cpu/mips_pic32mx/include/cpu.h diff --git a/cpu/mips_pic32mz/include/cpu.h b/cpu/mips32r2_common/include/cpu.h similarity index 78% rename from cpu/mips_pic32mz/include/cpu.h rename to cpu/mips32r2_common/include/cpu.h index 963398c7ec..618e92d8a6 100644 --- a/cpu/mips_pic32mz/include/cpu.h +++ b/cpu/mips32r2_common/include/cpu.h @@ -9,13 +9,13 @@ */ /** - * @defgroup cpu_mips_pic32mz Microchip PIC32MZ + * @defgroup cpu_mips32r2_common Imagination Technologies MIPS32R2 Common * @ingroup cpu - * @brief CPU definitions for Microchip PIC32MZ devices. + * @brief CPU definitions for MIPS32R2 devices. * @{ * * @file - * @brief CPU definitions for Microchip PIC32MZ devices. + * @brief CPU definitions for MIPS32R2 devices. * * @author Neil Jones */ @@ -30,13 +30,9 @@ extern "C" { #include #include #include +#include "cpu_conf.h" #include "irq.h" -/** - * @brief We run from flash on PIC32 - */ -#define FLASH_XIP (1) - /** * @brief Print the last instruction's address * diff --git a/cpu/mips32r2_common/include/eic_irq.h b/cpu/mips32r2_common/include/eic_irq.h index 27c606def4..8c9832391b 100644 --- a/cpu/mips32r2_common/include/eic_irq.h +++ b/cpu/mips32r2_common/include/eic_irq.h @@ -7,8 +7,7 @@ */ /** - * @defgroup cpu_mips32r2_common Imagination Technologies MIPS32R2 Common - * @ingroup cpu + * @ingroup cpu_mips32r2_common * @brief Imagination Technologies MIPS32R2 Common implementation * @{ * diff --git a/cpu/mips_pic32_common/include/periph_cpu_common.h b/cpu/mips_pic32_common/include/periph_cpu_common.h index 115bb66025..0d9690161b 100644 --- a/cpu/mips_pic32_common/include/periph_cpu_common.h +++ b/cpu/mips_pic32_common/include/periph_cpu_common.h @@ -26,6 +26,11 @@ extern "C" { #endif +/** + * @brief We run from flash on PIC32 + */ +#define FLASH_XIP (1) + /** * @name Power management configuration * @{ diff --git a/cpu/mips_pic32mx/include/cpu.h b/cpu/mips_pic32mx/include/cpu.h deleted file mode 100644 index 3ebc445ed4..0000000000 --- a/cpu/mips_pic32mx/include/cpu.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2016,2017, Imagination Technologies Limited and/or its - * affiliated group companies. - * - * This file is subject to the terms and conditions of the GNU Lesser - * General Public License v2.1. See the file LICENSE in the top level - * directory for more details.# - * - */ - -/** - * @defgroup cpu_mips_pic32mx Microchip PIC32MX - * @ingroup cpu - * @brief CPU definitions for Microchip PIC32MX devices. - * @{ - * - * @file - * @brief CPU definitions for pic32mx devices. - * - * @author Neil Jones - */ - -#ifndef CPU_H -#define CPU_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include "irq.h" - -/** - * @brief We run from flash on PIC32 - */ -#define FLASH_XIP (1) - -/** - * @brief Print the last instruction's address - * - * @todo: Not supported - */ -static inline void cpu_print_last_instruction(void) -{ - /* This function must exist else RIOT won't compile */ -} - -/** - * @brief Initialize the CPU, set IRQ priorities - */ -void cpu_init(void); - -#ifdef __cplusplus -} -#endif - -#endif /* CPU_H */ -/** @} */ diff --git a/cpu/mips_pic32mx/include/cpu_conf.h b/cpu/mips_pic32mx/include/cpu_conf.h index 0647ad398d..e67455fc2c 100644 --- a/cpu/mips_pic32mx/include/cpu_conf.h +++ b/cpu/mips_pic32mx/include/cpu_conf.h @@ -9,7 +9,8 @@ */ /** - * @ingroup cpu_mips_pic32mx + * @defgroup cpu_mips_pic32mx PIC32MX + * @ingroup cpu * @{ * * @file diff --git a/cpu/mips_pic32mz/include/cpu_conf.h b/cpu/mips_pic32mz/include/cpu_conf.h index 31c3da65d6..f307de809f 100644 --- a/cpu/mips_pic32mz/include/cpu_conf.h +++ b/cpu/mips_pic32mz/include/cpu_conf.h @@ -9,7 +9,8 @@ */ /** - * @ingroup cpu_mips_pic32mz + * @defgroup cpu_mips_pic32mz PIC32MZ + * @ingroup cpu * @{ * * @file From 89d43c3423e5ed2692b4fe81b169b2d625d031c1 Mon Sep 17 00:00:00 2001 From: Francois Berder <18538310+francois-berder@users.noreply.github.com> Date: Wed, 16 Oct 2019 21:16:16 +0100 Subject: [PATCH 4/5] cpu: mips32r2_common: Remove useless includes Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com> --- cpu/mips32r2_common/cpu.c | 1 + cpu/mips32r2_common/include/cpu.h | 10 ++++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/cpu/mips32r2_common/cpu.c b/cpu/mips32r2_common/cpu.c index b012b751f4..059327591a 100644 --- a/cpu/mips32r2_common/cpu.c +++ b/cpu/mips32r2_common/cpu.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include diff --git a/cpu/mips32r2_common/include/cpu.h b/cpu/mips32r2_common/include/cpu.h index 618e92d8a6..57002564aa 100644 --- a/cpu/mips32r2_common/include/cpu.h +++ b/cpu/mips32r2_common/include/cpu.h @@ -23,16 +23,14 @@ #ifndef CPU_H #define CPU_H +#include +#include "cpu_conf.h" +#include "irq.h" + #ifdef __cplusplus extern "C" { #endif -#include -#include -#include -#include "cpu_conf.h" -#include "irq.h" - /** * @brief Print the last instruction's address * From 12c3a5472a7b5d4b22eb0bbb1364ee4348297b72 Mon Sep 17 00:00:00 2001 From: Francois Berder <18538310+francois-berder@users.noreply.github.com> Date: Wed, 16 Oct 2019 21:25:33 +0100 Subject: [PATCH 5/5] cpu: mips_pic32mx: Include vendor header in cpu_conf.h Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com> --- cpu/mips_pic32mx/include/cpu_conf.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cpu/mips_pic32mx/include/cpu_conf.h b/cpu/mips_pic32mx/include/cpu_conf.h index e67455fc2c..6d60586cc5 100644 --- a/cpu/mips_pic32mx/include/cpu_conf.h +++ b/cpu/mips_pic32mx/include/cpu_conf.h @@ -22,6 +22,12 @@ #ifndef CPU_CONF_H #define CPU_CONF_H +#ifdef CPU_MODEL_P32MX470F512H +#include "vendor/p32mx470f512h.h" +#else +#error "No CPU headers for the defined CPU_MODEL found" +#endif + #ifdef __cplusplus extern "C" { #endif