Update README.md

v1.3 from Upstream
PC typo, include EL version of gcc, provision script
This commit is contained in:
Aadi Desai 2020-11-25 18:50:36 +00:00
parent dd5789d8cc
commit 044132117c

View file

@ -22,6 +22,10 @@ Revision log
- 2020/10/20 : v1.0 - Updated with harvard and bus to provide simpler learning curve.
- 2020/11/16 : v1.1 - Minor tweaks based on lab results.
- 2020/11/20 : v1.2 - Added missing environment/standards part.
- 2020/11/25 : v1.3 - Various tweaks and clarifications
- Added the ability to include a provision script
- Fixed the typo related to PC on reset.
- Added gcc-mipsel-linux-gnu as explicitly available package.
Overall goals
=============
@ -352,7 +356,7 @@ The reason for this choice is intimately related to the reset conditions
and [MIPS O32 ABI](https://en.wikipedia.org/wiki/MIPS_architecture#Calling_conventions);
in particular, this choice exploits the following existing requirements:
- For the reset, we require that all registers (including the PC) are set to 0.
- For the reset, we require that all registers (excluding the PC) are set to 0.
- The MIPS ABI also specifies that integer return values from functions are placed in register $v0, which is defined to be register 2.
- The MIPS ABI also specifies that the return address for a function is stored in register $ra, which is defined to be register 31.
@ -617,7 +621,7 @@ packages will be installed, along with the following packages:
- `build-essential` (g++, make)
- `git`
- `gcc-mips-linux-gnu`
- `gcc-mipsel-linux-gnu` and `gcc-mips-linux-gnu`
- `qemu-system-mips`
- `python3`
- `cmake`
@ -625,6 +629,25 @@ packages will be installed, along with the following packages:
- `libboost-dev`
- `parallel`
Provisioning
------------
If there is a particular package that you want to use, such as a python
library or standard Ubuntu package, then you can include a script called `provision.sh`
which can install such packages. You can assume that this package will be
run once as root before your test-bench is installed.
Note that this script is completely optional. Most teams probably won't need one.
Exactly two types of package are allowed:
- Ubuntu package installation via `apt install`. This must be a standard Ubuntu package,
with no use of PPAs or other package sources.
- Python package installation via `pip install` or `pip3 install`. This must be a package
coming from the standard pip set of packages.
Clarifying notes
================
@ -655,4 +678,3 @@ decode and execute logic is mostly the same. It is only the
parts that deal with instruction timing and memory that are
different. So you can have a single shared execution core
that is used by two variants.