1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

boards/mips-malta: remove board.

The mips-malta board is a maintainance burden, has no working UART input
and is unobtainable and thus must be removed.

1. Unobtainable board
=====================

The mips-malta board is not an off-the-shelf part. A quick web
search only show the MIPS website where one is told to "contact sales".

I could find it on ebay, used, at €155 and from single seller.

Not having access to the board means:

a. We cannot maintain it. In fact it could be broken right now.
b. Potential RIOT uses have not access to the board either. In other
   words, it is pointless to run on hardware nobody has.

2. No working UART input
========================

Not all applications need UART input, but that is no excuse for not supporting
it:

a. Makes development & debugging way harder.
b. It is impossible to run interactive tests.
 b.1. Constrains the rest of the platforms by providing an incentive to not
      make tests interactive.
c. The lack of UART is a witness to the poor quality of the port.

I want to stress point (c). If something as basic as a serial port cannot work,
how can we expect more complex fucntionality to work. The answer is impossible
to know, because of point (1).

3. Maintainance burden
======================

The RIOT project has limited time and human resources which can be better spent.

a. Compiling for mips-malta wastes CPU time.
b. Blacklisting the board in the test wastes contributor's time.
c. Adapting the board's makefile during build system rework takes time and makes
   the reworks harder.
 c.1. Add to that that the changes are most of the time not even tested on the board
      because of (1). Look at the github issues/PRs and you will see it.
d. Developers usually stick to the lowest common denominator. Issue (2) sets this
   denominator unacceptably low.

MIPS platform in general
========================

In commits I will address general issues in the MIPS platform and why it should all
be removed.
This commit is contained in:
Juan I Carrano 2019-07-03 13:19:39 +02:00 committed by Juan Carrano
parent 6b094a78a9
commit ee6b6b9c38
17 changed files with 9 additions and 153 deletions

View File

@ -1,3 +0,0 @@
MODULE = board
include $(RIOTBASE)/Makefile.base

View File

@ -1,4 +0,0 @@
# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_timer
include $(RIOTCPU)/mips32r2_generic/Makefile.features

View File

@ -1,10 +0,0 @@
export CPU = mips32r2_generic
#export USE_HARD_FLOAT = 1
export USE_DSP = 1
export USE_UHI_SYSCALLS = 1
HEXFILE = $(BINFILE)
# Not sure if the file used for flashing is BINFILE (there is no flasher).
# I chose this one as HEXFILE was overwritten to BINFILE so it keeps the
# same behavior of generating the '.bin'.
FLASHFILE ?= $(BINFILE)

View File

@ -1,5 +0,0 @@
/**
@defgroup boards_mips-malta MIPS MALTA
@ingroup boards
@brief Support for the MIPS Malta FPGA system
*/

View File

@ -1,44 +0,0 @@
/*
* Copyright 2016, 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.
*
*/
/**
* @ingroup boards_mips-malta
* @{
*
* @file
* @brief Board specific definitions for the MIPS Malta FPGA System.
*
* @author Neil Jones <neil.jones@imgtec.com>
*/
#ifndef BOARD_H
#define BOARD_H
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Set how many increments of the count register per uS
* needed by timer code
*/
#define TICKS_PER_US (15)
/**
* @brief Board level initialization
*/
void board_init(void);
#ifdef __cplusplus
}
#endif
#endif /* BOARD_H */
/** @} */

View File

@ -1,41 +0,0 @@
/*
* Copyright 2016, 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.
*
*/
/**
* @ingroup boards_mips-malta
* @{
*
* @file
* @brief peripheral configuration for the MIPS Malta FPGA system
*
* @author Neil Jones <neil.jones@imgtec.com>
*/
#ifndef PERIPH_CONF_H
#define PERIPH_CONF_H
#ifdef __cplusplus
extern "C" {
#endif
/**
* @name Timer definitions
* @{
*/
#define TIMER_NUMOF (1)
#define TIMER_0_CHANNELS (3)
/** @} */
#ifdef __cplusplus
}
#endif
#endif /* PERIPH_CONF_H */
/** @} */

View File

@ -1,28 +0,0 @@
/*
* Copyright 2016, 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.
*/
#include <stdio.h>
#include "periph/uart.h"
#define MIPS_MALTA_ADDR (0xbf000500)
#define MIPS_MALTA_VAL_RST (0x42)
static void malta_reset(void)
{
*(volatile long *)MIPS_MALTA_ADDR = MIPS_MALTA_VAL_RST;
__asm__ volatile ("wait");
}
void board_init(void)
{
/* Board initialization is done by the bootloader (u-boot) on Malta */
}
void pm_reboot(void)
{
malta_reset();
}

View File

@ -23,7 +23,7 @@ BOARD_INSUFFICIENT_MEMORY := airfy-beacon arduino-duemilanove arduino-leonardo \
weio wsn430-v1_3b wsn430-v1_4 yunjia-nrf51822 z1
# The following boards do not have an available UART
BOARD_BLACKLIST += mips-malta pic32-wifire pic32-clicker ruuvitag thingy52
BOARD_BLACKLIST += pic32-wifire pic32-clicker ruuvitag thingy52
# use ethos (ethernet over serial) for network communication and stdio over
# UART, but not on native, as native has a tap interface towards the host.

View File

@ -31,7 +31,7 @@ BOARD_INSUFFICIENT_MEMORY := blackpill bluepill calliope-mini cc2650-launchpad \
BOARD_BLACKLIST := arduino-duemilanove arduino-leonardo \
arduino-mega2560 arduino-nano arduino-uno \
chronos hifive1 jiminy-mega256rfr2 mega-xplained mips-malta \
chronos hifive1 jiminy-mega256rfr2 mega-xplained \
msb-430 msb-430h pic32-clicker pic32-wifire telosb \
waspmote-pro wsn430-v1_3b wsn430-v1_4 z1

View File

@ -19,7 +19,7 @@ BOARD_INSUFFICIENT_MEMORY := blackpill bluepill calliope-mini cc2650-launchpad \
BOARD_BLACKLIST := arduino-duemilanove arduino-leonardo \
arduino-mega2560 arduino-nano \
arduino-uno chronos hifive1 jiminy-mega256rfr2 \
mega-xplained mips-malta msb-430 msb-430h pic32-clicker \
mega-xplained msb-430 msb-430h pic32-clicker \
pic32-wifire telosb waspmote-pro wsn430-v1_3b wsn430-v1_4 z1

View File

@ -6,9 +6,6 @@ BOARD_INSUFFICIENT_MEMORY := arduino-duemilanove arduino-leonardo arduino-nano \
# chronos : USART_1 undeclared
BOARD_BLACKLIST += chronos
# mips-malta : undefined reference to uart_write
BOARD_BLACKLIST += mips-malta
USEMODULE += dynamixel
USEMODULE += shell

View File

@ -6,9 +6,6 @@ BOARD_INSUFFICIENT_MEMORY := arduino-duemilanove arduino-leonardo arduino-nano \
# chronos : USART_1 undeclared
BOARD_BLACKLIST += chronos
# mips-malta : undefined reference to uart_write
BOARD_BLACKLIST += mips-malta
USEMODULE += feetech
USEMODULE += shell

View File

@ -11,8 +11,8 @@ BOARD_INSUFFICIENT_MEMORY := arduino-duemilanove arduino-leonardo \
nucleo-l053r8 stm32f0discovery stm32l0538-disco \
telosb thingy52 \
waspmote-pro wsn430-v1_3b wsn430-v1_4 z1
# chronos, hamilton, mips-malta, and ruuvitag boards don't support ethos
BOARD_BLACKLIST := chronos hamilton mips-malta ruuvitag
# chronos, hamilton and ruuvitag boards don't support ethos
BOARD_BLACKLIST := chronos hamilton ruuvitag
export TAP ?= tap0

View File

@ -11,8 +11,8 @@ BOARD_INSUFFICIENT_MEMORY := arduino-duemilanove arduino-leonardo \
nucleo-l053r8 saml10-xpro saml11-xpro \
stm32f0discovery stm32l0538-disco telosb thingy52 \
waspmote-pro wsn430-v1_3b wsn430-v1_4 z1
# chronos, hamilton mips-malta, and ruuvitag boards don't support ethos
BOARD_BLACKLIST := chronos hamilton mips-malta ruuvitag
# chronos, hamilton and ruuvitag boards don't support ethos
BOARD_BLACKLIST := chronos hamilton ruuvitag
export TAP ?= tap0

View File

@ -11,8 +11,8 @@ BOARD_INSUFFICIENT_MEMORY := arduino-duemilanove arduino-leonardo \
nucleo-l031k6 stm32f0discovery stm32l0538-disco \
thingy52 telosb \
waspmote-pro wsn430-v1_3b wsn430-v1_4 z1
# chronos, hamilton mips-malta, and ruuvitag boards don't support ethos
BOARD_BLACKLIST := chronos hamilton mips-malta ruuvitag
# chronos, hamilton and ruuvitag boards don't support ethos
BOARD_BLACKLIST := chronos hamilton ruuvitag
export TAP ?= tap0

View File

@ -17,7 +17,6 @@ BOARD_BLACKLIST := \
hifive1 \
jiminy-mega256rfr2 \
mega-xplained \
mips-malta \
msb-430 \
msb-430h \
pic32-clicker \

View File

@ -8,8 +8,6 @@ BOARD_INSUFFICIENT_MEMORY := arduino-duemilanove arduino-leonardo \
nucleo-f303k8 nucleo-f334r8 nucleo-l053r8 \
stm32f0discovery stm32l0538-disco waspmote-pro
BOARD_BLACKLIST += mips-malta
USEMODULE += auto_init_gnrc_netif
USEMODULE += gnrc
USEMODULE += gnrc_pktdump