31 Commits (master)

Author SHA1 Message Date
James Zow 52b7ac9b2f
fix ci/cd error (#195)
* fix ci/cd error

* update copyright year

* Modify remaining years

* solve ci report settings.json code style

* update .prettierrc.json

* prettierrc fix code style

* fix rb file i.to_s and code style

* fix error Line is too long. [101/100]

* Modify the Ruby file format and restore other file formats

* update makefile and readme file space
8 months ago
Andre Richter d901ae6cfe
Update copyright 2 years ago
Andre Richter 02c01c821b
Refactor memory subsystem code
This patch refactors big chunks of the memory subsystem code.

Most of all, it does away with the the design being based around the raw pointer
type "*const Page". While raw pointers to an actual page seemed like a
compelling idea, in practice it turned out difficult. Rust feels a bit
inconsistent with respect to raw pointers. While it is safe to create them out
of nowhere (only dereferencing is unsafe), it gets weird when multi-threading
comes into picture.

For example, wrapping them into synchronization primitives caused issues because
they don't implement Send. For this reason, we switch to the PageAddress type
which is based on usize, which makes things a lot easier.

Other changes/benefits include:

- Gets rid of unsafe code in the removed PageSlice type.

- Decouple the translation table code and MMIO VA allocation.

- For the translation table tool, make better use of what the ELF format already
  provides with respect to memory segmentation and translation. For example, the
  tool now queries the ELF file for VA->PA translations and other segment
  attributes. This has also the added benefit of reduced BSP code and more
  generic code in the tool.

- Packs rbelftools in the Docker image now (used by translation table tool).

- In tutorials 14/15/16, rearrange the PA and VA layout.
2 years ago
Andre Richter 89472abea5
Support for multi-arch Docker images 3 years ago
Andre Richter dee575bb18
Bump QEMU to 6.1; Tag Docker images from now on 3 years ago
Alex 39a066c246 Update Dockerfile
Use https when git clone qemu to avoid connect timeout errors.
3 years ago
Andre Richter 9d74e021ef
Docker utils: Bump various versions 3 years ago
Andre Richter 44bb3f8942
Update copyright year 3 years ago
Andre Richter b30bc518c4
Switch to GCC objdump and nm
The GCC versions of `objdump` and `nm` seem to have better out-of-the-box
support (for AArch64). Demangling works better, and instructions in objdump are
presented as 4 bytes instead of 4 * 1 bytes, which helps a lot.

Hence, switch to the GCC versions for now until LLVM has caught up.
4 years ago
Andre Richter 80071ed5aa
Bump Ubuntu Docker Version; QEMU 4 years ago
Andre Richter 812ba841f3
Revert to Ubuntu 19.10
20.04 comes with Ruby 2.7, which emits some annoying deprecation warnigs that
can't be silenced even when using the RUBYOPT variables suggested for doing so.

Work around that for now by reverting to Ubuntu 19.10 which still uses 2.5 and
does not have this bug.
4 years ago
Andre Richter 63cc349379
docker: Upgrade to Ubuntu 20.04 and QEMU 5.0.0 4 years ago
Andre Richter c5d0f63ede
Parallel jobs for container build 4 years ago
Andre Richter c8238de4e7
Fix some old links 4 years ago
Andre Richter bb78c779ca
Introducing Minipush, a raspbootcom replacement.
Gets rid of compiled C++, uses Ruby 💎
4 years ago
Andre Richter e690f8e7e4
Copyright bump to 2020 🎆 4 years ago
Andre Richter 8d6ddfca24
Add VCS ref to docker image 4 years ago
Andre Richter f11a076c04
Docker: Bump to 19.10; Add ruby 4 years ago
Andre Richter 54137e8b38
Relicense as dual MIT OR Apache-2.0 5 years ago
Andre Richter b4d202ff99
Fix qemu version to 4.1.0 5 years ago
Andre Richter 8d6c58ad57
Add code for tutorial 09 5 years ago
Andre Richter 1ded3fb42a
Change some more license headers to SPDX 5 years ago
Andre Richter fed22475d1
Make utils container name board agnostic 5 years ago
Andre Richter 2a97946f92
Initial preparations for rewrite 5 years ago
Andre Richter 53821fe654
Add docker folder README 5 years ago
Berkus Decker 71f0e8caf7 Allow overriding JTAG interface device when running docker image
This will require any non-standard use of this container to also
specify the rpi3.cfg path when invoking.

For example:
`docker run ... -f /openocd/tcl/interface/jlink.cfg -f /openocd/rpi3.cfg`
to work with JLink interface.
5 years ago
Andre Richter f6a0fb497d Revert "Allow overriding JTAG interface device when running docker image"
This reverts commit 30f83b260f.
5 years ago
Berkus Decker 30f83b260f Allow overriding JTAG interface device when running docker image 5 years ago
Andre Richter 0844823805 Minor corrections 5 years ago
Andre Richter 59c6c15c1d Add container for openocd and gdb 5 years ago
Andre Richter 4a716adcce
Add utils container to repository 5 years ago