Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

boards/mips-malta: remove board. #11831

Merged
merged 2 commits into from
Jul 13, 2019

Conversation

jcarrano
Copy link
Contributor

Contribution description

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

Given that most likely nobody runs this board (see testing procedure) and it has been broken for several releases, I suggest removing it right away without deprecation warning. The failures/expect errors should serve as warnings anyways.

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 functionality 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.

Testing procedure

All the other boards should continue to work without problems.

In master you can verify that not even the minimal test works:

make: Entering directory '/home/jcarrano/source/masterRIOT/tests/minimal'
There are unsatisfied feature requirements: periph_uart


EXPECT ERRORS!

Issues/PRs references

(Please help me complete this list)
MIPS Issues: #11788

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.
@jcarrano jcarrano added Type: cleanup The issue proposes a clean-up / The PR cleans-up parts of the codebase / documentation Platform: MIPS Platform: This PR/issue effects MIPS-based platforms labels Jul 12, 2019
@kaspar030
Copy link
Contributor

👍

@kaspar030
Copy link
Contributor

Please add to LOSTANDFOUND.md.

Copy link
Contributor

@MrKevinWeiss MrKevinWeiss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after grepping it says something was added for the malta board
./cpu/mips_pic32_common/reset_mod.S:72: .space 32 # Just to cope with a quirk of MIPS malta boards

@MrKevinWeiss
Copy link
Contributor

Other than that I think it is good!

@MrKevinWeiss
Copy link
Contributor

Do we need to deprecate this?

@jcarrano
Copy link
Contributor Author

@MrKevinWeiss

If I remove the comment, nobody knows why that ".space 32" is there and if I remove the line altogether I don't know what I may be breaking. I would keep it as is.

Normally we would deprecate. The purpose of the deprecation is to warn people of the removal and give them time to complain about it or fix it or switch to another thing. In this case the board is already broken and I don't think there is anyone using it.

@MrKevinWeiss
Copy link
Contributor

Agree and agree

@MrKevinWeiss MrKevinWeiss added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Jul 12, 2019
Copy link
Contributor

@MrKevinWeiss MrKevinWeiss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK

@MrKevinWeiss MrKevinWeiss merged commit da3a172 into RIOT-OS:master Jul 13, 2019
@cladmi
Copy link
Contributor

cladmi commented Jul 15, 2019

Note, right now, nothing is using cpu/mips32r2_generic anymore. So I think it could go too.

@jcarrano
Copy link
Contributor Author

@cladmi good observation, I'll handle it tomorrow.

@jcarrano jcarrano deleted the farewell-mips-malta branch July 15, 2019 17:18
jcarrano added a commit to jcarrano/RIOT that referenced this pull request Jul 16, 2019
The `mips32r2_generic` CPU was only used by the `mips-malta` board which has
been removed. The reasons for this removal are the same as for the board:

- No hardware to test.
- The board that used this CPU is not available off the shelf.
- No UART input.
- No integrated flasher (one needs to use a separate Windows tool)

For more information and discussion around MIPS, see issues:

- RIOT-OS#11831 (Removal of mips-malta)
- RIOT-OS#11788 (General MIPS removal)
fjmolinas pushed a commit to fjmolinas/RIOT that referenced this pull request Aug 4, 2019
The `mips32r2_generic` CPU was only used by the `mips-malta` board which has
been removed. The reasons for this removal are the same as for the board:

- No hardware to test.
- The board that used this CPU is not available off the shelf.
- No UART input.
- No integrated flasher (one needs to use a separate Windows tool)

For more information and discussion around MIPS, see issues:

- RIOT-OS#11831 (Removal of mips-malta)
- RIOT-OS#11788 (General MIPS removal)
@kb2ma kb2ma added this to the Release 2019.10 milestone Sep 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Platform: MIPS Platform: This PR/issue effects MIPS-based platforms Type: cleanup The issue proposes a clean-up / The PR cleans-up parts of the codebase / documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants