From ad2d0d11828b3881793928a2f906ca4f506f9979 Mon Sep 17 00:00:00 2001 From: Andre Richter Date: Sat, 22 Dec 2018 20:06:35 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Update=20to=20Rust=202018=20?= =?UTF-8?q?=F0=9F=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 01_bareminimum/Cargo.toml | 1 + 01_bareminimum/kernel8 | Bin 66040 -> 66040 bytes 02_multicore_rust/Cargo.toml | 1 + 02_multicore_rust/kernel8 | Bin 66464 -> 66464 bytes 02_multicore_rust/raspi3_boot/Cargo.toml | 1 + 02_multicore_rust/raspi3_boot/src/lib.rs | 1 - 02_multicore_rust/src/main.rs | 5 +---- 03_uart1/Cargo.lock | 12 +++++------ 03_uart1/Cargo.toml | 3 ++- 03_uart1/kernel8 | Bin 67944 -> 67944 bytes 03_uart1/kernel8.img | Bin 849 -> 849 bytes 03_uart1/raspi3_boot/Cargo.toml | 1 + 03_uart1/raspi3_boot/src/lib.rs | 1 - 03_uart1/src/gpio.rs | 2 +- 03_uart1/src/main.rs | 8 +------ 03_uart1/src/uart.rs | 4 ++-- 04_mailboxes/Cargo.lock | 12 +++++------ 04_mailboxes/Cargo.toml | 3 ++- 04_mailboxes/kernel8 | Bin 69112 -> 69120 bytes 04_mailboxes/kernel8.img | Bin 1787 -> 1795 bytes 04_mailboxes/raspi3_boot/Cargo.toml | 1 + 04_mailboxes/raspi3_boot/src/lib.rs | 1 - 04_mailboxes/src/gpio.rs | 2 +- 04_mailboxes/src/main.rs | 8 +------ 04_mailboxes/src/mbox.rs | 5 ++++- 04_mailboxes/src/uart.rs | 4 ++-- 05_uart0/Cargo.lock | 12 +++++------ 05_uart0/Cargo.toml | 4 +++- 05_uart0/kernel8 | Bin 69424 -> 69440 bytes 05_uart0/kernel8.img | Bin 2011 -> 2027 bytes 05_uart0/raspi3_boot/Cargo.toml | 1 + 05_uart0/raspi3_boot/src/lib.rs | 1 - 05_uart0/src/gpio.rs | 2 +- 05_uart0/src/main.rs | 8 +------ 05_uart0/src/mbox.rs | 5 ++++- 05_uart0/src/uart.rs | 6 +++--- 06_raspbootin64/Cargo.lock | 12 +++++------ 06_raspbootin64/Cargo.toml | 3 ++- 06_raspbootin64/kernel8 | Bin 66312 -> 66320 bytes 06_raspbootin64/kernel8.img | Bin 1280 -> 1288 bytes 06_raspbootin64/raspi3_boot/Cargo.toml | 1 + 06_raspbootin64/raspi3_boot/src/lib.rs | 1 - 06_raspbootin64/src/gpio.rs | 2 +- 06_raspbootin64/src/main.rs | 8 +------ 06_raspbootin64/src/mbox.rs | 5 ++++- 06_raspbootin64/src/uart.rs | 6 +++--- 07_abstraction/Cargo.lock | 22 ++++++++++---------- 07_abstraction/Cargo.toml | 5 +++-- 07_abstraction/kernel8 | Bin 69432 -> 69448 bytes 07_abstraction/kernel8.img | Bin 2007 -> 2023 bytes 07_abstraction/raspi3_boot/Cargo.toml | 3 ++- 07_abstraction/raspi3_boot/src/lib.rs | 2 -- 07_abstraction/src/gpio.rs | 2 +- 07_abstraction/src/main.rs | 10 +-------- 07_abstraction/src/mbox.rs | 5 ++++- 07_abstraction/src/uart.rs | 6 +++--- 08_random/Cargo.lock | 22 ++++++++++---------- 08_random/Cargo.toml | 5 +++-- 08_random/kernel8 | Bin 70256 -> 70208 bytes 08_random/kernel8.img | Bin 1866 -> 1874 bytes 08_random/raspi3_boot/Cargo.toml | 3 ++- 08_random/raspi3_boot/src/lib.rs | 2 -- 08_random/src/gpio.rs | 2 +- 08_random/src/main.rs | 10 +-------- 08_random/src/mbox.rs | 5 ++++- 08_random/src/rand.rs | 2 +- 08_random/src/uart.rs | 6 +++--- 09_delays/Cargo.lock | 22 ++++++++++---------- 09_delays/Cargo.toml | 5 +++-- 09_delays/kernel8 | Bin 69080 -> 69088 bytes 09_delays/kernel8.img | Bin 1617 -> 1625 bytes 09_delays/raspi3_boot/Cargo.toml | 3 ++- 09_delays/raspi3_boot/src/lib.rs | 2 -- 09_delays/src/gpio.rs | 2 +- 09_delays/src/main.rs | 10 +-------- 09_delays/src/mbox.rs | 5 ++++- 09_delays/src/uart.rs | 8 +++---- 0A_power/Cargo.lock | 22 ++++++++++---------- 0A_power/Cargo.toml | 5 +++-- 0A_power/kernel8 | Bin 69264 -> 69264 bytes 0A_power/kernel8.img | Bin 1734 -> 1734 bytes 0A_power/raspi3_boot/Cargo.toml | 3 ++- 0A_power/raspi3_boot/src/lib.rs | 2 -- 0A_power/src/gpio.rs | 2 +- 0A_power/src/main.rs | 10 +-------- 0A_power/src/mbox.rs | 5 ++++- 0A_power/src/power.rs | 6 +++--- 0A_power/src/uart.rs | 8 +++---- 0B_exception_levels/Cargo.lock | 22 ++++++++++---------- 0B_exception_levels/Cargo.toml | 5 +++-- 0B_exception_levels/kernel8 | Bin 70472 -> 70512 bytes 0B_exception_levels/kernel8.img | Bin 2623 -> 2631 bytes 0B_exception_levels/raspi3_boot/Cargo.toml | 3 ++- 0B_exception_levels/raspi3_boot/src/lib.rs | 2 -- 0B_exception_levels/src/gpio.rs | 2 +- 0B_exception_levels/src/main.rs | 10 +-------- 0B_exception_levels/src/mbox.rs | 5 ++++- 0B_exception_levels/src/uart.rs | 6 +++--- 0C_virtual_memory/Cargo.lock | 22 ++++++++++---------- 0C_virtual_memory/Cargo.toml | 5 +++-- 0C_virtual_memory/kernel8 | Bin 71376 -> 71568 bytes 0C_virtual_memory/kernel8.img | Bin 2568 -> 2576 bytes 0C_virtual_memory/raspi3_boot/Cargo.toml | 3 ++- 0C_virtual_memory/raspi3_boot/src/lib.rs | 2 -- 0C_virtual_memory/src/gpio.rs | 2 +- 0C_virtual_memory/src/main.rs | 10 +-------- 0C_virtual_memory/src/mbox.rs | 5 ++++- 0C_virtual_memory/src/mmu.rs | 4 +++- 0C_virtual_memory/src/uart.rs | 6 +++--- 0D_cache_performance/Cargo.lock | 22 ++++++++++---------- 0D_cache_performance/Cargo.toml | 5 +++-- 0D_cache_performance/kernel8 | Bin 72016 -> 72016 bytes 0D_cache_performance/kernel8.img | Bin 3496 -> 3504 bytes 0D_cache_performance/raspi3_boot/Cargo.toml | 3 ++- 0D_cache_performance/raspi3_boot/src/lib.rs | 2 -- 0D_cache_performance/src/benchmark.rs | 6 +++--- 0D_cache_performance/src/gpio.rs | 2 +- 0D_cache_performance/src/main.rs | 12 ++--------- 0D_cache_performance/src/mbox.rs | 5 ++++- 0D_cache_performance/src/mmu.rs | 1 + 0D_cache_performance/src/uart.rs | 6 +++--- 121 files changed, 259 insertions(+), 304 deletions(-) diff --git a/01_bareminimum/Cargo.toml b/01_bareminimum/Cargo.toml index 8cec3a4b..26996a7f 100644 --- a/01_bareminimum/Cargo.toml +++ b/01_bareminimum/Cargo.toml @@ -2,6 +2,7 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] panic-abort = "0.3.1" diff --git a/01_bareminimum/kernel8 b/01_bareminimum/kernel8 index 10851529cf17114d698c605e010b1c0f567dcf9d..9aa7b8cb2c7756c5942e0d81cad9a2f3aa53f08c 100755 GIT binary patch delta 24 fcmey-%<`j|rC|!=Bo5OOlT^bDW8cLddCQ! delta 24 fcmey-%<`j|rC|!=B#u<`+{_Bo?EI~>7~>cLfXxY3 diff --git a/02_multicore_rust/Cargo.toml b/02_multicore_rust/Cargo.toml index 16212d5b..dd59a6da 100644 --- a/02_multicore_rust/Cargo.toml +++ b/02_multicore_rust/Cargo.toml @@ -2,6 +2,7 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } diff --git a/02_multicore_rust/kernel8 b/02_multicore_rust/kernel8 index 38246bf09d3e71cdd35b81e4c79d4d6a04bcee9a..f267d3397f866251e9ec445fd3322a826ebe9f5a 100755 GIT binary patch delta 40 wcmZ3`&a$ALrC|%>c1Dh*^3?3Yit^&=`xzM}I84%tbCL@UEwc1DiW3WFreQj@Id`xzM}IE*b!D$"] +edition = "2018" [dependencies] panic-abort = "0.3.1" diff --git a/02_multicore_rust/raspi3_boot/src/lib.rs b/02_multicore_rust/raspi3_boot/src/lib.rs index 721b75f9..d12fcc88 100644 --- a/02_multicore_rust/raspi3_boot/src/lib.rs +++ b/02_multicore_rust/raspi3_boot/src/lib.rs @@ -31,7 +31,6 @@ //! Low-level boot of the Raspberry's processor extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/02_multicore_rust/src/main.rs b/02_multicore_rust/src/main.rs index be34c210..a35bd169 100644 --- a/02_multicore_rust/src/main.rs +++ b/02_multicore_rust/src/main.rs @@ -25,10 +25,7 @@ #![no_std] #![no_main] -#[macro_use] -extern crate raspi3_boot; - -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { loop {} diff --git a/03_uart1/Cargo.lock b/03_uart1/Cargo.lock index 8f59b9c3..90f2de94 100644 --- a/03_uart1/Cargo.lock +++ b/03_uart1/Cargo.lock @@ -3,7 +3,7 @@ name = "kernel8" version = "0.1.0" dependencies = [ "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -26,19 +26,19 @@ dependencies = [ [[package]] name = "register" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a0f44a6dc9a98359515541a0c46ef4e3630a30879c1d7a4038f31dd533570bfb" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/03_uart1/Cargo.toml b/03_uart1/Cargo.toml index 0bc9ef3c..96119dfc 100644 --- a/03_uart1/Cargo.toml +++ b/03_uart1/Cargo.toml @@ -2,10 +2,11 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -register = "0.2.0" +register = "0.3.2" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot" diff --git a/03_uart1/kernel8 b/03_uart1/kernel8 index 7b90ae5d7b4fc5cb4dc1814f326699dc68c39056..92f12ee2324d80c0a3900a00bd7d3ca66ccce88f 100755 GIT binary patch delta 614 zcmZ{eOG_JZ6vglPXJRZ=s^WtnMZqjw=r~U&Syc)Zi@5Ny5I1pNnP{RhnN+&deuE;) z-B^kX!B3$05ejZaT!|~CJNJT)CZdseH;4N>mwV35wsf;CZS6qeJg|g6{0}%s!21Hd zu=zxw4~u*zFuJSY5UJe@^e2P+d!EPEtRU*@ABdgh#rR1#sI!MVfWc%N(axoy!WGf{ zv)$7jpG)vG(8p2?25vbM!`uiFNTF7GJsyaJc;S1|{y3kx9E(aBHJPf3!}}5Z9z0!u zPSNZfc_!LO|O#kAbusm-z09P9kC1;d*eOVJ$D9kY#e&eAmFTl4F8 zB2B86+(NeE2g_mAuY|I<;cXOhzV=d9qlz7_FY8&SRI18GE-bobHC^|!{J#YgpY+U_ o>S&f}nyQudZ2po!s@+#?*RymhV=KC&tKM;#KpQZ_zgltq0J=+#?*IS* delta 604 zcmZvWze`(D6vyxPz88OhVrdn5C`QmiY3=jo-Pqkn;YO(Imu8P50c;rl&&?{>|*U2}a8f-Zm~Y||n~ z)aqtzZxZX{oU!(3uW?o2pHDl$Ua!(Gjy?o*$|lE2bVF zC;y!FoE(KQt0OY;hBkmMw9pS=kW2##Tciz4P+*`vL@?1gqS(Iy6RfFnJuO{1z*2b5 zheFQ(^9xiHGqhlY?KZ1&P?g^md4FE}Re13$8)i8Nd*X+nEfb^GV9o#TMJGiMVP$A) zjv&EPpf3^pe4BJu3bP`<@G+BLv;`}A{+u_Hw4dP^4L4w5%}WR!7p^CCS|o&&U+cS_ z`dHS-sy_b2`j>6Rf>Ne9<$L+*a^QXN%XZxNm-2q@d#!EgahRVj&ri!Kw^RyjnN-Vp yzv$9U14i3o*^G4DoYb+bcC<&sjp%=sRywJ2X`Pd<%F2X3E;phT_(mH|xcv*+UW%Ro diff --git a/03_uart1/kernel8.img b/03_uart1/kernel8.img index 266d317b915e0a4599b8e0103dce0d0b5cd7fe2e..3acb27e581899c89dafc33cd42e346d09c0b7234 100755 GIT binary patch delta 132 zcmcb}c9Cs@!Q>3a1jf0OPcmL-OrN}vNt`ip@=hjc#;D0xne-prV3=~Bi6Q$T149T*R!o#Nn0>M@qx57J fW)sPeK>Z2~3RgT*b8_+(f=Y`^5|dLC^Ax!N5g#d= delta 132 zcmV-~0DJ$@2GItPFq6yyr~!+Ubpjt58~^~6Q~`ie0ssIMA0PwOXaYdF6#)PeeUq&M zBLQ@i(E=9%Zj"] +edition = "2018" [dependencies] panic-abort = "0.3.1" diff --git a/03_uart1/raspi3_boot/src/lib.rs b/03_uart1/raspi3_boot/src/lib.rs index 721b75f9..d12fcc88 100644 --- a/03_uart1/raspi3_boot/src/lib.rs +++ b/03_uart1/raspi3_boot/src/lib.rs @@ -31,7 +31,6 @@ //! Low-level boot of the Raspberry's processor extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/03_uart1/src/gpio.rs b/03_uart1/src/gpio.rs index 9ec2bda6..408af5ab 100644 --- a/03_uart1/src/gpio.rs +++ b/03_uart1/src/gpio.rs @@ -23,7 +23,7 @@ */ use super::MMIO_BASE; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/03_uart1/src/main.rs b/03_uart1/src/main.rs index d82b5ebc..7e31dedf 100644 --- a/03_uart1/src/main.rs +++ b/03_uart1/src/main.rs @@ -26,18 +26,12 @@ #![no_main] #![feature(asm)] -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; mod gpio; mod uart; -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let uart = uart::MiniUart::new(); diff --git a/03_uart1/src/uart.rs b/03_uart1/src/uart.rs index 894eca33..26cf6d79 100644 --- a/03_uart1/src/uart.rs +++ b/03_uart1/src/uart.rs @@ -23,9 +23,9 @@ */ use super::MMIO_BASE; +use crate::gpio; use core::ops; -use gpio; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; /// Auxilary mini UART registers // diff --git a/04_mailboxes/Cargo.lock b/04_mailboxes/Cargo.lock index 8f59b9c3..90f2de94 100644 --- a/04_mailboxes/Cargo.lock +++ b/04_mailboxes/Cargo.lock @@ -3,7 +3,7 @@ name = "kernel8" version = "0.1.0" dependencies = [ "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -26,19 +26,19 @@ dependencies = [ [[package]] name = "register" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a0f44a6dc9a98359515541a0c46ef4e3630a30879c1d7a4038f31dd533570bfb" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/04_mailboxes/Cargo.toml b/04_mailboxes/Cargo.toml index 0bc9ef3c..96119dfc 100644 --- a/04_mailboxes/Cargo.toml +++ b/04_mailboxes/Cargo.toml @@ -2,10 +2,11 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -register = "0.2.0" +register = "0.3.2" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot" diff --git a/04_mailboxes/kernel8 b/04_mailboxes/kernel8 index 105f1e78f5e4a0d3eb1943b2efe17541052b95c3..822794ab9fed42fe03cc8315e7b47911bb937851 100755 GIT binary patch delta 1514 zcmZ`&L2MgU5S{t!*y|>tY1PznOzSvQDh;Yx@7h@#kO)Xrkq`w!dI5=aZEw=n#)del zDuiOA3Y1Glj3^^S04b*)%7Iow?TIu*91536Z4q2ZP=%nmzyT3a!7_inrj6zN!=JzJ z&6}A&JAdw1W;Xy&Imj%W|4jr zc&l%OJ)#N}jyulSm&^OFToA)o!@V6ZJ&kl-!9MXg(k}{@`l9UT2q>%rjLB$o>=$Cc zFjC2fgMAM$|5FRUmw6TGk`MLpU1+cWlm7AHBjGztx0Bzdr#jFGf4_}-mCkjr`kQUk zOSCH0m$y-WPW$|Yx7W(60*Wp9!@P6X5#9#v=7akN=SQ z^~ms5>HD`lhZ^U<_$=eaE=1~*`&j|K17MGfUG%WPzKH%VJC0#(R4^(3)(Nh)7h(5a zpaFpc)ow2E{&q`V{wa0r%Sn+QSe%8Zpw%~Ifey0UL=iwVI z`1>x7koIkjPYrw!YAu2VCIs9QjCi-Y-Y9#$VK!YuYbvTZN583f5NByu5JQ<}!sf$v z^YG>+g!z_yL)@L+oNtaSmW!I7-V9o8?iUO#D!XUpa3cygjr z%)OCFd;B;(*NI1V8kwO)RyR|rRKiT>En4ivhjwbIgst0FE@5VktY*=TPCU?KYgR6A z8fM1QjI5E!liG#zxI!Ow;iJLk7_QK27n(se(3l#9c6B2^A9_)m->ELmep>CugZ}|k CIdj-AfpBiITn>iYlv@C*BT>?W4_XC4 zqoiY^`$p3T;r_SS`MrRAini5YSo9+8t-;qux4U?MxjcXX%ii|1xPT(u}rlVpXJr!t(9#`B(I}{f6iny6R zR#*%>Vvuf0X*Hn-gQ!xg2gC8ZO1N`I**B;1<*B%?w<5WP~GPX_;Q92!iH5 z!EXMWa-60JZ^N^d@Kq(uRKl-Lc;^qth%mA&7ke(gZ}EN#%MP$*B0HgSL;6E%ncw9O&|F&ieogz zwpQ>}4V83F+(M$#O~74m874d5H~vB8X?r?Z9?8?42q?QB&C#MjN6(p@$RJP>3P!y1!sKnF|^dOmO;=F(Vr@vrkG@8%E zk*&zY09K&O&iaIw1gmxtw!dB1v_k3*zyN)?)AQ^n zfGRDfDSlDCWDSjo@roch!QEbq`jJPyUCTX1aolwi2#{IMj-H1<>YPSe8GM{1Ckn9r zqR`$aBN-;hd&1Fxb5P{1!gGQ6h4yB2Z5HZHsr9^YI^bybq`>w{puDzG)Jp3Ec2JB7 zTp9dJJFU|qRMsNfC5_Pv$@d_ka{vjwjK($9-l4Lhu5&MB8_wV42j*ONCj_Ber)`{G z!P&a+IFaF&f~0nxiR(zZ{nC9b`lm7@F=2>>$(q#)I|SatSy~77Q4OVln<#>doFkLw zfoI63sXW37KBX2M)&vLmi`uET0J^zPwV<5`t-Pk%$3kal@&j0`b diff --git a/04_mailboxes/raspi3_boot/Cargo.toml b/04_mailboxes/raspi3_boot/Cargo.toml index e080b254..1c3c1c69 100644 --- a/04_mailboxes/raspi3_boot/Cargo.toml +++ b/04_mailboxes/raspi3_boot/Cargo.toml @@ -2,6 +2,7 @@ name = "raspi3_boot" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] panic-abort = "0.3.1" diff --git a/04_mailboxes/raspi3_boot/src/lib.rs b/04_mailboxes/raspi3_boot/src/lib.rs index 721b75f9..d12fcc88 100644 --- a/04_mailboxes/raspi3_boot/src/lib.rs +++ b/04_mailboxes/raspi3_boot/src/lib.rs @@ -31,7 +31,6 @@ //! Low-level boot of the Raspberry's processor extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/04_mailboxes/src/gpio.rs b/04_mailboxes/src/gpio.rs index 9ec2bda6..408af5ab 100644 --- a/04_mailboxes/src/gpio.rs +++ b/04_mailboxes/src/gpio.rs @@ -23,7 +23,7 @@ */ use super::MMIO_BASE; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/04_mailboxes/src/main.rs b/04_mailboxes/src/main.rs index 75a09b6b..f3bfe851 100644 --- a/04_mailboxes/src/main.rs +++ b/04_mailboxes/src/main.rs @@ -26,12 +26,6 @@ #![no_main] #![feature(asm)] -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; mod gpio; @@ -40,7 +34,7 @@ mod uart; use core::sync::atomic::{compiler_fence, Ordering}; -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let mut mbox = mbox::Mbox::new(); diff --git a/04_mailboxes/src/mbox.rs b/04_mailboxes/src/mbox.rs index 2c0ceab9..88f8fadd 100644 --- a/04_mailboxes/src/mbox.rs +++ b/04_mailboxes/src/mbox.rs @@ -24,7 +24,10 @@ use super::MMIO_BASE; use core::ops; -use register::mmio::{ReadOnly, WriteOnly}; +use register::{ + mmio::{ReadOnly, WriteOnly}, + register_bitfields, +}; register_bitfields! { u32, diff --git a/04_mailboxes/src/uart.rs b/04_mailboxes/src/uart.rs index 95d7f740..6a88659c 100644 --- a/04_mailboxes/src/uart.rs +++ b/04_mailboxes/src/uart.rs @@ -23,9 +23,9 @@ */ use super::MMIO_BASE; +use crate::gpio; use core::ops; -use gpio; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; /// Auxilary mini UART registers // diff --git a/05_uart0/Cargo.lock b/05_uart0/Cargo.lock index 8f59b9c3..d1906eda 100644 --- a/05_uart0/Cargo.lock +++ b/05_uart0/Cargo.lock @@ -3,7 +3,7 @@ name = "kernel8" version = "0.1.0" dependencies = [ "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2", ] [[package]] @@ -26,19 +26,17 @@ dependencies = [ [[package]] name = "register" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" +version = "0.3.2" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/05_uart0/Cargo.toml b/05_uart0/Cargo.toml index 0bc9ef3c..b748c4a5 100644 --- a/05_uart0/Cargo.toml +++ b/05_uart0/Cargo.toml @@ -2,10 +2,12 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -register = "0.2.0" +register = { path = '../../register-rs' } +#register = "0.2.0" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot" diff --git a/05_uart0/kernel8 b/05_uart0/kernel8 index bbaff05bb71c0f0b437791304a59114db532cad4..3a94d9505d00be43bb85b1adb13a5a429b70ff74 100755 GIT binary patch delta 1209 zcmZvaT}YEr7{|}^ZnC|8tQp$d2RdhgGjQAcv3KtXRFFO{qDU8ZQ?}10^JD5}62VmH zLcPd=<4_k0Q5S)bQITFqR#$arA$FG*M6oV}x+n5x!{P>sgUQf8<-EDRH&7sfjol2naG zh|$_=eb)ef3~;n1MErdu{P{c*YUn+Y|y5GTR17KWZgc>-7tBt_H<=ht6 zw&aZV3=CQ{7_}(>GfVku5l>V8u87~I{CyE$&^RC`D(rth$B!c;QExNOkJy#o2iRS^tA7kNAMdK91z35 zS!jY8Y%K@Qlb;Edo(YW=-GNM+?I$C}@DM2nBc3V;$DzDR$~i#-v1CR%w1d}G)einv z4yTjh{=|*`>rzYLTEgx`(a`Wfs86vg|6;y07D{8WG?q$ZaA9u+oM@Ds0p8_u%Dfm3 zDFL5y@;^DQs)Pnxa5Oj?4Tl8k_t=_Dw&=~KI1YDw95PTvzO%?=?Urk!fZY9i1qNpgo5U(h*q|$?2 zED;|eC2}wrbjni5?{`Zc(a+3;M#SVR>i~&*;wfL$DY~;?T TOwh&{EAU$rw1SM;ebDq5oX8e9 delta 1125 zcmZ{iQAkr!7{|ZwZn51tmxXeZaLW>%4{dk%ZujmIs3DOLl~F>zL~irmP1Iad$%@bg zK@UORa2zBtDthQaC<@XCLG-1^ARu5}*H_nqJQzVH0cch1VZ z_4&MY+KWlORc6<1P#Ehk243dzU8VuMF`gMle?0?G>p5h3pI|zcYHxbZFCff3WMD9o zSw;^&$!uUJ-Y1QSwa%nlKg>*>%f=Y}4mnQAsaJ0Ou}P)?W^xBRmWBWw=|um4g)(0Z)vZLaf3A4 zX^ZG<80J~gtQ5_MqUj?0Sma2OMSG;zvirOrg(3()t-JX>TApEc_z?XP##lDFohinj zHD!D=c`y0Mq96MR>%bQDlYj#`rF2>N&t(&3&5>xa{q(MVBu$gG2Y%2HJE2>=8t zsRk^NB{?H1OMW@j>h8SJ{|_u)Ma%j>sFuSk4U<&_98 z^P+g7ajp`9Ek>{uo&r=6eXsT?rPL=j^wJ*&z8Ra9I1DqT$ME+DQiPL cT}P5G^wOTsy0D$ua*$6hY{OL|%dUDoAWSRIG90R(Zyy z6R$egPXUVTXJW`s{Qp0Mk%3`CeN)^H#SL;3m6#fW9wakO>|$V;@`9PsXg(81wjvV) zSdHQrxrvLQ@=ZYbhtdu^L293Y*y0fOV;~!3o}!2RM3CGgW(Ffx1_lwZm=9EpT~^Ad z2&gcGu_1^FC<$_A2GE(Jf-J##lQ%Ld>!t#ocOU4y2T)IdWW_{TgX5v%AZM30$?bUk z|G#+GWJacN#p^&7&R}nb!@Uj?vxAB?ZZ2f{!=iCeej+E(d741lo{{7AA)xtiek;Qd Pkl10M*)u0kWp@Jr&t7%l delta 268 zcmaFOf17`T4CCdAvi^+e6La+?nHU&E(1T>Ai5-(28AW`y$W2@X6=+~!nDS8CVJArP35YEYVLt@2 z85tNRD00Y81j#*OW-wv}+6NZnfr_!q8Wl`l$SBU3GkGVYGGp@OyNu$Zu|QYc2f5<^ z|B%uqxgD?n{}=C>%*hlEckchPN0pNK-!*>@d*G*^`&Dy8!@F^;x_C diff --git a/05_uart0/raspi3_boot/Cargo.toml b/05_uart0/raspi3_boot/Cargo.toml index e080b254..1c3c1c69 100644 --- a/05_uart0/raspi3_boot/Cargo.toml +++ b/05_uart0/raspi3_boot/Cargo.toml @@ -2,6 +2,7 @@ name = "raspi3_boot" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] panic-abort = "0.3.1" diff --git a/05_uart0/raspi3_boot/src/lib.rs b/05_uart0/raspi3_boot/src/lib.rs index 721b75f9..d12fcc88 100644 --- a/05_uart0/raspi3_boot/src/lib.rs +++ b/05_uart0/raspi3_boot/src/lib.rs @@ -31,7 +31,6 @@ //! Low-level boot of the Raspberry's processor extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/05_uart0/src/gpio.rs b/05_uart0/src/gpio.rs index 3ff0c1e9..da6a5be4 100644 --- a/05_uart0/src/gpio.rs +++ b/05_uart0/src/gpio.rs @@ -23,7 +23,7 @@ */ use super::MMIO_BASE; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/05_uart0/src/main.rs b/05_uart0/src/main.rs index 3b297ffa..b1493f97 100644 --- a/05_uart0/src/main.rs +++ b/05_uart0/src/main.rs @@ -26,12 +26,6 @@ #![no_main] #![feature(asm)] -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; mod gpio; @@ -40,7 +34,7 @@ mod uart; use core::sync::atomic::{compiler_fence, Ordering}; -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let mut mbox = mbox::Mbox::new(); diff --git a/05_uart0/src/mbox.rs b/05_uart0/src/mbox.rs index 279b3129..daff3771 100644 --- a/05_uart0/src/mbox.rs +++ b/05_uart0/src/mbox.rs @@ -24,7 +24,10 @@ use super::MMIO_BASE; use core::ops; -use register::mmio::{ReadOnly, WriteOnly}; +use register::{ + mmio::{ReadOnly, WriteOnly}, + register_bitfields, +}; register_bitfields! { u32, diff --git a/05_uart0/src/uart.rs b/05_uart0/src/uart.rs index a2afdfec..722cb034 100644 --- a/05_uart0/src/uart.rs +++ b/05_uart0/src/uart.rs @@ -23,13 +23,13 @@ */ use super::MMIO_BASE; +use crate::gpio; +use crate::mbox; use core::{ ops, sync::atomic::{compiler_fence, Ordering}, }; -use gpio; -use mbox; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; // PL011 UART registers. // diff --git a/06_raspbootin64/Cargo.lock b/06_raspbootin64/Cargo.lock index 8f59b9c3..90f2de94 100644 --- a/06_raspbootin64/Cargo.lock +++ b/06_raspbootin64/Cargo.lock @@ -3,7 +3,7 @@ name = "kernel8" version = "0.1.0" dependencies = [ "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -26,19 +26,19 @@ dependencies = [ [[package]] name = "register" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a0f44a6dc9a98359515541a0c46ef4e3630a30879c1d7a4038f31dd533570bfb" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/06_raspbootin64/Cargo.toml b/06_raspbootin64/Cargo.toml index b4a1316c..0728dd60 100644 --- a/06_raspbootin64/Cargo.toml +++ b/06_raspbootin64/Cargo.toml @@ -2,10 +2,11 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -register = "0.2.0" +register = "0.3.2" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot/pic" diff --git a/06_raspbootin64/kernel8 b/06_raspbootin64/kernel8 index 2a58f62ce71acb03c882166da555b2741b435384..a176ab6b6b9161ac32cf6f5766f8d8f703991a0e 100755 GIT binary patch delta 894 zcmZva-D}fO7{jhHa?qAc_37N1A z7Tf2rN7$@$3 zrU)s#Vu-Go=ETh7o9}07?jc|7x!mi%auvsFEL_G*@)!HERqpyC#+eec*7tuGJ70=M*!!&h2D)mtJri(ki?uu_T@OR?|YR!Y*JP<-R zK_;D}n4;Pm5(-TgF4{F=Rb|oU3?a>(L$f6<59|*hZ>#Nm#Nj_1?fePl4EgVuT(*&v z>|UR(isLOmY~eyH;N9s8B<8Gd$4k3nsl|5h_Nd^u7Tde!bn-Z+H&|}5*kk&kf`Z9{ z2QQc-P{c)ZY)PC6rM3B6q2c88T|P*3HFH~?i}Gz)AVc?fq4S*B8HYM!i43K9(TWR_ z`1MN>9k)$(X*3cP6LK=FNKq{!iqhH6Kg*qQnB>w)J)TjgXR|pqljT$SR9@Fq(b*Dh zCX$Sjy)zq%C(`L0FKOAigI8&3gdVJtpKT(khDOv>6lsML zq=&TAupkH(1b;3PR8UbWo~j zu!cXk2jCOBN`3Gi2TKCH#&KpBai+8np5T`f$3I|YE0m-nmK9FUo_l$L4!v^n*=N4p z_R)LQ4A60tW#?=59pp^`W|{4@cejn+z%ynaT*hhhkSocA1RF_h5E8Bqmt;acOeBhL zO&Q0GVHYLDS&gi+2zOH$9b^?&wKaY)1S%8!ZhY+6unF#Ww)5)`amyUvLy2M5cdjkY zK*5nRC#f|T$b4yMG{ksHfQ&VMO0m`JCUJk6gWEN{Tf<@%-A$dPe{`+_)1g3`d>HUp zB?RAax-x*nWd}a0bh(tq5Y02xTM?q-RD}Z`!QvJz2c0irr{!_|Xe{Drq`hG+y4bJ; zN35f;j5F3rCFq?_UKIUPM`DR99+9N9%q49y=-EL_q(AQQlKw19U?3Ha1Aj{kh^k+V zYN8qu1EMUSYF+DXP0Oumr8VvQpDrvyx5J;wTuWpot{0v{k3$YB*+eE4EqsR4yQFwb z_C_aURf?-#Rnrdx^mfUj6p6%q6G5+E3Iw#MeimSf8g~5`fTy#0cEi-&6hfG;wCiaK QD&+LX6iz@<-=r|`7aBqN8~^|S diff --git a/06_raspbootin64/kernel8.img b/06_raspbootin64/kernel8.img index 393e2e429ad9aad2241b3b6ec686c2fa83d33440..fe41d9f59543eb6b3778fad4f2f788ccc1ee1354 100755 GIT binary patch delta 277 zcmZqR>foASp;lvBt@NndO<77$?iIoSGQnz%mnP=)^g)tV|{ow<=BCca5=O@>E83#7xCqHDAXH1>U$fPVA!@w|QJ`+QB;{X348BK9JGJ%GQ$U00i6=Vqxo$SaY&geh+ zAd~Rq93~D%4=~>e%wGWHTZ8$gK)yVq?&OC+wd#|9GAT34O_pWWmJ|k>EYHl4{Q&CR o44}ypKvQ`qCo&sLJYbgBI=~!%?GMnQ3JeNYf}A}4%uIN>06&3Li~s-t delta 264 zcmeC+YT%k+p`iEw|MV~a|BEyHU}pe<1wbsXz8Bg5G zG+B!28spW;ADPq{PfwO)R%Sdj*_K(Jao6NnAbaEFMrLWoRg*6=i_0znYTM7mke&Gd ze@I4C+>T5phn*s_6`M^3S%T++R4`7T{1T{o0+`)3S(Zhfu?ff)VG(5wu9+OlqRd!4 zxspX&G6QIkJTpV~0|tf=kmE9d21x)7Nt(Qu#du;wfFu(Gg9u3C1W-b}RzBDksNp}z o=7}fenT#1GzB(oGfLUJa0CW7c"] +edition = "2018" [dependencies] panic-abort = "0.3.1" diff --git a/06_raspbootin64/raspi3_boot/src/lib.rs b/06_raspbootin64/raspi3_boot/src/lib.rs index aa08edd3..3e57d0a8 100644 --- a/06_raspbootin64/raspi3_boot/src/lib.rs +++ b/06_raspbootin64/raspi3_boot/src/lib.rs @@ -31,7 +31,6 @@ //! Low-level boot of the Raspberry's processor extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/06_raspbootin64/src/gpio.rs b/06_raspbootin64/src/gpio.rs index 3ff0c1e9..da6a5be4 100644 --- a/06_raspbootin64/src/gpio.rs +++ b/06_raspbootin64/src/gpio.rs @@ -23,7 +23,7 @@ */ use super::MMIO_BASE; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/06_raspbootin64/src/main.rs b/06_raspbootin64/src/main.rs index 63a2aeaf..2396cb9a 100644 --- a/06_raspbootin64/src/main.rs +++ b/06_raspbootin64/src/main.rs @@ -26,19 +26,13 @@ #![no_main] #![feature(asm)] -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; mod gpio; mod mbox; mod uart; -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let mut mbox = mbox::Mbox::new(); diff --git a/06_raspbootin64/src/mbox.rs b/06_raspbootin64/src/mbox.rs index b33d2dab..d6343bee 100644 --- a/06_raspbootin64/src/mbox.rs +++ b/06_raspbootin64/src/mbox.rs @@ -24,7 +24,10 @@ use super::MMIO_BASE; use core::ops; -use register::mmio::{ReadOnly, WriteOnly}; +use register::{ + mmio::{ReadOnly, WriteOnly}, + register_bitfields, +}; register_bitfields! { u32, diff --git a/06_raspbootin64/src/uart.rs b/06_raspbootin64/src/uart.rs index e148331b..26b7a0b7 100644 --- a/06_raspbootin64/src/uart.rs +++ b/06_raspbootin64/src/uart.rs @@ -23,13 +23,13 @@ */ use super::MMIO_BASE; +use crate::gpio; +use crate::mbox; use core::{ ops, sync::atomic::{compiler_fence, Ordering}, }; -use gpio; -use mbox; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; // PL011 UART registers. // diff --git a/07_abstraction/Cargo.lock b/07_abstraction/Cargo.lock index cd6dccb9..16ef5e23 100644 --- a/07_abstraction/Cargo.lock +++ b/07_abstraction/Cargo.lock @@ -1,18 +1,18 @@ [[package]] name = "cortex-a" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kernel8" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -29,27 +29,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "raspi3_boot" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "register" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] -"checksum cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fe913628f34718bc9e7d0d07e13ca1374638f64f0edc6eb063ec8abe581d395d" +"checksum cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12425c4491f31f28f539c74382ade69ee9db4f1f597aa177f43e072595562e46" "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a0f44a6dc9a98359515541a0c46ef4e3630a30879c1d7a4038f31dd533570bfb" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/07_abstraction/Cargo.toml b/07_abstraction/Cargo.toml index b7f40114..bc742cac 100644 --- a/07_abstraction/Cargo.toml +++ b/07_abstraction/Cargo.toml @@ -2,11 +2,12 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -cortex-a = "2.2.1" -register = "0.2.0" +cortex-a = "2.3.1" +register = "0.3.2" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot" diff --git a/07_abstraction/kernel8 b/07_abstraction/kernel8 index 8ef8e5fb61e1be94eaff592ef1c456c8df2d7948..3f058c28240ac7fbeb5de31a408bf0f872e28ca0 100755 GIT binary patch delta 1575 zcmZ`&PfQ$D7=PdFF1v%2wgkE^24=S**0#FN-<>6?q5dPWCsCpo6=!E=>ADCFJCM>C zx5YHU7)+Oxd>%}-9+ZowL~FoAC3;a0Y7?c=G?AJ{h`rdvgBM-DH_Q?syYKMc%sTS{IR}R__!Kd1$HsXl0V_u2pkK)#Mnh#iGZB)gyYLs ziIZL#EUqv%C?!KbbL>ihokOt+B;kF)BTeu~d7j`e1y;1G)j?qFLV5ayrPRCKm4m|B zr`Bwt@&*;&2!Z;J5G$qx=4(>7x-0Jm{A~S*gOg-$P7| zFxKv4#{w+c6;Vqh#J`%LT^Ivwio!uTPmzA3NNYj*la&5IN95@j1Dr>lnC@P>U9HAn zuU2tB34^KYBznx>;xAPrvr5dGZcQ9z!bvQf4hA9a#wt zt;XmeW0$3hNb6x*`yh7vD>|L6_w(!@j(trh^VWYj7lk?eI|}X4k9VRFhv)re!1J%K zz!suZaNC#)@a0|js{#J~E}ZTh4T1fDAVLS;8-q4w*2m~}2|H`g`AT3tY!kmh5w##d?k`dz@~DG;H7^$!Phu8T!jc zaVncN^V$RU@I+c>MR$DE9m%G5z)F2stq*JUVV(6jX_ZeJpZr&Yi9M&OD@_Vsz6-j_ zmhI}i{BFH4TJRL}q+uFLR(EwjH-d9r$AMPpqw}k5F4y>S0Qc{OL;nMP Cgo0}T delta 1575 zcmZ`&TWnNC7@mLjZ1+N2P}`nX!d^%XLc?}<&)!Z#ESO02p)c(kqaoIFZP#5}*h_3l z$Tk=f5);!U)Tstb6cZ)!MG+_%#Y>{Z1Rn^N`l78*kUsUT55(g?XU`IL)6T>B|MPv{ zeDlvgGq)ForA1-xd6=&4Py6nBh&}Fqox5TQcY&N|0)=cJC8R4Da{YOm9=;)-3XWbw z#-b#zuo((L`0Dyc6b67Qz!~;Vvk|#j2+~P~L=9;yc@je`5#R zP<*p4{+7+Oq4@GP;!Es%F8;7Co?|`_iqD|&zSKIxRFxo@dHvoI99WCwQJa0VS5c@!Q;g!>YrFF{^-^WEmBy?}p6+G~x zYi!wz1$dQU&4+P6#v$;o|BUDR`2P&qFg8NiIbvII-Zlp)Tya*B>i?OKQU8OZ9YcE*l;`a?viCK zC985&QcP9SGf`G)hgWvSbWMt@rXhczDBSa>Jw`yUoDhE@Oo diff --git a/07_abstraction/kernel8.img b/07_abstraction/kernel8.img index 7f6ce7ca5b1b5873ced8f5060d97e3eb6f4cd1b5..63c5a4b060ff7bc9167c6d1b1d07b353e82e2180 100755 GIT binary patch delta 657 zcmZ`$JuC!46n-;%d$$@IT-MLct&UU32~iOLy>Ow!MS{4XKqHbnL_$PjJwoTFKto6n zDi=DPgp+6-5rjsmVZAv^G+WJ^@8`|;=G|mGXUykm2?mRP@Lyp}t#tJPEMi0$%VOz6JQi2Xr~S^)Jgb zsl23`!hR*7j}rSosbpo+Vcb_r^&SUr7(dC|>fmj{T34xF@8GS%IafdrI(UomlDxvf zt7E;C;+nK_FxYZz8Vc~TKYait@n(c-jqVW!bpNM|+E-p*(rfA=Z)kk~ox KV&w}LJdNMnoX%SS delta 625 zcmZ`$O(;ZB6h8O9_q?%?)XY3Dyf-5jOiE*`{H$zjW~O9=7fOv-U}2$=Qp#p-S45$( zpsf7=B%-jf5yOgMgJxwn3wh3+c_d|Z&pqFFzVGy%m;Af@c(Hs630R zY5l%7Vup7Ruqi|>K1@xrzBx++gj$53O9`y_g6uWQk&>3Q$~p<6Kp-N4LQg# zxA<^QKwtZZxy+A{Ih|p~d9E7J$B}vb$K8YOG2X12tgKd^`?P0RSM^UcJ-ECZqiMmx zMG+0#Hfb}kL}RSh(XwniLIC2iv9>*bhrvqeXeil9*&#~3N+h^QT~R-U49CA>uq6lI zMEt3!eqV4k8*43FyRjB}{S``U}Zw&0hcj diff --git a/07_abstraction/raspi3_boot/Cargo.toml b/07_abstraction/raspi3_boot/Cargo.toml index cd382ba4..09732955 100644 --- a/07_abstraction/raspi3_boot/Cargo.toml +++ b/07_abstraction/raspi3_boot/Cargo.toml @@ -2,8 +2,9 @@ name = "raspi3_boot" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] -cortex-a = "2.2.1" +cortex-a = "2.3.1" panic-abort = "0.3.1" r0 = "0.2.2" diff --git a/07_abstraction/raspi3_boot/src/lib.rs b/07_abstraction/raspi3_boot/src/lib.rs index d5d873cb..38e1c8f7 100644 --- a/07_abstraction/raspi3_boot/src/lib.rs +++ b/07_abstraction/raspi3_boot/src/lib.rs @@ -29,9 +29,7 @@ //! Low-level boot of the Raspberry's processor -extern crate cortex_a; extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/07_abstraction/src/gpio.rs b/07_abstraction/src/gpio.rs index 3ff0c1e9..da6a5be4 100644 --- a/07_abstraction/src/gpio.rs +++ b/07_abstraction/src/gpio.rs @@ -23,7 +23,7 @@ */ use super::MMIO_BASE; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/07_abstraction/src/main.rs b/07_abstraction/src/main.rs index 2ebcd1a0..82237308 100644 --- a/07_abstraction/src/main.rs +++ b/07_abstraction/src/main.rs @@ -25,14 +25,6 @@ #![no_std] #![no_main] -extern crate cortex_a; - -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; mod gpio; @@ -41,7 +33,7 @@ mod uart; use core::sync::atomic::{compiler_fence, Ordering}; -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let mut mbox = mbox::Mbox::new(); diff --git a/07_abstraction/src/mbox.rs b/07_abstraction/src/mbox.rs index 3a2bc67f..5b7e3589 100644 --- a/07_abstraction/src/mbox.rs +++ b/07_abstraction/src/mbox.rs @@ -25,7 +25,10 @@ use super::MMIO_BASE; use core::ops; use cortex_a::asm; -use register::mmio::{ReadOnly, WriteOnly}; +use register::{ + mmio::{ReadOnly, WriteOnly}, + register_bitfields, +}; register_bitfields! { u32, diff --git a/07_abstraction/src/uart.rs b/07_abstraction/src/uart.rs index a25f0d13..db4c639a 100644 --- a/07_abstraction/src/uart.rs +++ b/07_abstraction/src/uart.rs @@ -23,14 +23,14 @@ */ use super::MMIO_BASE; +use crate::gpio; +use crate::mbox; use core::{ ops, sync::atomic::{compiler_fence, Ordering}, }; use cortex_a::asm; -use gpio; -use mbox; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; // PL011 UART registers. // diff --git a/08_random/Cargo.lock b/08_random/Cargo.lock index cd6dccb9..16ef5e23 100644 --- a/08_random/Cargo.lock +++ b/08_random/Cargo.lock @@ -1,18 +1,18 @@ [[package]] name = "cortex-a" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kernel8" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -29,27 +29,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "raspi3_boot" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "register" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] -"checksum cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fe913628f34718bc9e7d0d07e13ca1374638f64f0edc6eb063ec8abe581d395d" +"checksum cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12425c4491f31f28f539c74382ade69ee9db4f1f597aa177f43e072595562e46" "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a0f44a6dc9a98359515541a0c46ef4e3630a30879c1d7a4038f31dd533570bfb" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/08_random/Cargo.toml b/08_random/Cargo.toml index b7f40114..bc742cac 100644 --- a/08_random/Cargo.toml +++ b/08_random/Cargo.toml @@ -2,11 +2,12 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -cortex-a = "2.2.1" -register = "0.2.0" +cortex-a = "2.3.1" +register = "0.3.2" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot" diff --git a/08_random/kernel8 b/08_random/kernel8 index cbda4203d7ac1d2b185028efa42ad2f829698ae8..f8cdc8477dbb93de435e87097043396a6d4f1dc6 100755 GIT binary patch delta 2037 zcmZ{le`p(J7{}k|F3pd%G)bGTq^wIaI_Q3#xnH?N)K2Wm_K&Vz(Sbke<#MedX;Ra) zwpD05Hz>%Ufp)KmO#dis4mK$MVEb!DL56=R=r#ng4pdZdiZJFM8lTJEwI*C&INp0d z&-490&->=?^2eHMW6ibP3k#J4if_n6YGY_U`(f3)4rC=tqF>X6CV0$sjF1(&(F8q@ zt{|UhNKUO*hk=mgn`d6S9y__GvX5C9+SHiJ1+p}>``)F}5-M)B9=-7k+bS4&u@$=4 z4g30EN8XO>5MGl{bXQgex+@GJp-7bd<}!2iMrY7}7@V&=Igdf=UD>BLpL%E6?Nlr)stHTD3}7qc9x1gLeIB6?x;i+y)`TMhS!US!{9jJVZeL z_$nL%=2t?$1-RYy5xPWJbAO+l*?ZmSDcsR?>KdV6Fwg~;=#LB(!*5}l(c-4%yJWPE zY3JxT3x~pU82-K?yc@%1y3T?a9@{~!(tix~vpc9y(kET0ergBx)xr+y!}Kdd z9oa!0rrk}bZpHA;hR!>%b1zk!Ad=W*BL_Fwk=tJU`Mhd(#fS3&ocqB0+oyOITkCV= zp}{`G$K>sQsoMh==vfbhV1O=qpc7s+r*dtY$J4~YkdOy`|2LLv_YB$Jz*jB)Oap(% z;)4zRy&4D7L+bt4On#8$p+4{d1{ks}IF667G47cCS~^m0ko{gu0`etOZ}*qQ^R9Y6 z$6^@B26Uff>5E z3-1HXaD3iAi%oZZFZP~D!x=rmo{Xcg^Ch!I62o5Fkl(d@Y&W;dNtTv*ii={HBzcTacoRE|(qb-m5 zZ4=4CgcqHl>;RqmauPRG88kN#cW`v7qB!Iw>lwY;3Slq*TB;zFveWc_D|BtIf_@11 z+p$_{qo47KY+f&oq^Gj^a<(wZ)g`1zNu8X?iX-V_vCJujx!J_@s7ecdhz1h6l9Kp% zJgsLWS;=Vhq90E9#Z-b%3yLhuypqhQ^no8Dfp|s}M2u)+CX>-6p6(AIl@*y!O1h-+ z@rhhm z0^{$X(y)r4B4>*mg>%k+8e;|~+s4zS054P)s5z=0S1jRsZC?=mE^$#h@3g32$AhVKgU zKGOI71``-sV^X(W=<0f=x9-Mv5Ze)O{eGR0iJkuIWLst5VDeiH+UbPzRB}OgEvg+U zkU2n$`wDOHZl;;P&k$n6qcZt4u0bu|8azn!cy)`^vTbnF|AN5}p=Kvrbk+%8n4~2q z?)tRW)LzpD+DM19dFnF;?``348vMBy{DKCHFV4kNw`JNy5U#&la|`yEtsXS3sUemz1R-EnmO-}E%wH|I7#!gK6UGG zS~FfhDngDR-;Mm1;bV?^%&v1YeUl&1d1PmTptev#k|=lxL&jP*=!nUww*#K7MU$n< z{6cBw32~|#3X`0yXo^)#wGWfj zi^mg2B5Xu|Ny+(&GS4PX@p2-=MFl<@PskjbjvckOk6Gh*E3WAaPmoGM%%v20DqF6| zN;wo)l-VgIvtVosrWGM#L6JjJZkFZKrGh4~VG9^0#dJO^rqV(|sf73|pXOoo>^ygv6` zwrDl2RHBn=mCa`>c-z7WE-54>UW^KvcqaD0;l*mDjNw9Dj%Csun-nEckVXC|nMr5! zM9Vp)9z7L3`1iBsfj;PK3I8OU_L*QR4w(}(b diff --git a/08_random/kernel8.img b/08_random/kernel8.img index 19f141aeb025cc502d7e931a7fa0e20fda4829b9..1ca65a6b8b98d0936586eae2961a6e74e386b98e 100755 GIT binary patch delta 582 zcmX@bcZqL;497-BhA9dR3RfmKu-dS=GB8Y;e1KKOY6?)ao{1ql@&Er2Mh1on`7viH$s#elLUlQ%LOOQz${n>hI|P;VFxy#bRQS&Su}ap<+3+{>aZ zX@oJ$ gS`$dyGjhB>1PlW>zm?$!NbE2$SUM>2+u<9u$~^6GNw3To9X>~O?g&mg ze3Yi$AsnQ2w~4)!bz8E!RbTs2X*pco+yaoAwHM$a5g>Uo-hW@*0xZ*yxs+(CHX8?)+d;z{} NcFvQ3Dl+oAegUh8lY#&M diff --git a/08_random/raspi3_boot/Cargo.toml b/08_random/raspi3_boot/Cargo.toml index cd382ba4..09732955 100644 --- a/08_random/raspi3_boot/Cargo.toml +++ b/08_random/raspi3_boot/Cargo.toml @@ -2,8 +2,9 @@ name = "raspi3_boot" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] -cortex-a = "2.2.1" +cortex-a = "2.3.1" panic-abort = "0.3.1" r0 = "0.2.2" diff --git a/08_random/raspi3_boot/src/lib.rs b/08_random/raspi3_boot/src/lib.rs index d5d873cb..38e1c8f7 100644 --- a/08_random/raspi3_boot/src/lib.rs +++ b/08_random/raspi3_boot/src/lib.rs @@ -29,9 +29,7 @@ //! Low-level boot of the Raspberry's processor -extern crate cortex_a; extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/08_random/src/gpio.rs b/08_random/src/gpio.rs index 3ff0c1e9..da6a5be4 100644 --- a/08_random/src/gpio.rs +++ b/08_random/src/gpio.rs @@ -23,7 +23,7 @@ */ use super::MMIO_BASE; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/08_random/src/main.rs b/08_random/src/main.rs index 8a842acc..31d7c371 100644 --- a/08_random/src/main.rs +++ b/08_random/src/main.rs @@ -25,14 +25,6 @@ #![no_std] #![no_main] -extern crate cortex_a; - -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; mod gpio; @@ -40,7 +32,7 @@ mod mbox; mod rand; mod uart; -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let mut mbox = mbox::Mbox::new(); diff --git a/08_random/src/mbox.rs b/08_random/src/mbox.rs index 18fe5787..aeae88bb 100644 --- a/08_random/src/mbox.rs +++ b/08_random/src/mbox.rs @@ -25,7 +25,10 @@ use super::MMIO_BASE; use core::ops; use cortex_a::asm; -use register::mmio::{ReadOnly, WriteOnly}; +use register::{ + mmio::{ReadOnly, WriteOnly}, + register_bitfields, +}; register_bitfields! { u32, diff --git a/08_random/src/rand.rs b/08_random/src/rand.rs index 866fce83..140e03d1 100644 --- a/08_random/src/rand.rs +++ b/08_random/src/rand.rs @@ -25,7 +25,7 @@ use super::MMIO_BASE; use core::ops; use cortex_a::asm; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; register_bitfields! { u32, diff --git a/08_random/src/uart.rs b/08_random/src/uart.rs index a25f0d13..db4c639a 100644 --- a/08_random/src/uart.rs +++ b/08_random/src/uart.rs @@ -23,14 +23,14 @@ */ use super::MMIO_BASE; +use crate::gpio; +use crate::mbox; use core::{ ops, sync::atomic::{compiler_fence, Ordering}, }; use cortex_a::asm; -use gpio; -use mbox; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; // PL011 UART registers. // diff --git a/09_delays/Cargo.lock b/09_delays/Cargo.lock index cd6dccb9..16ef5e23 100644 --- a/09_delays/Cargo.lock +++ b/09_delays/Cargo.lock @@ -1,18 +1,18 @@ [[package]] name = "cortex-a" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kernel8" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -29,27 +29,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "raspi3_boot" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "register" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] -"checksum cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fe913628f34718bc9e7d0d07e13ca1374638f64f0edc6eb063ec8abe581d395d" +"checksum cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12425c4491f31f28f539c74382ade69ee9db4f1f597aa177f43e072595562e46" "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a0f44a6dc9a98359515541a0c46ef4e3630a30879c1d7a4038f31dd533570bfb" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/09_delays/Cargo.toml b/09_delays/Cargo.toml index b7f40114..bc742cac 100644 --- a/09_delays/Cargo.toml +++ b/09_delays/Cargo.toml @@ -2,11 +2,12 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -cortex-a = "2.2.1" -register = "0.2.0" +cortex-a = "2.3.1" +register = "0.3.2" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot" diff --git a/09_delays/kernel8 b/09_delays/kernel8 index da3c6d6de4a3eda5c6699f76fc6e76252c3cff56..afaec440cd830c9c172fa68593257a06bff9794e 100755 GIT binary patch delta 1125 zcmZ{iUr1AN6vuz(s&m&((j3iEGAF^dpn31^?(Q81mh=athY%qKk=|{0Yb^Y;P1_>a z4C=*)c4OlQ`5;CS`5?#!Dx}yy=q2by>cI!yLl7m@TRqwD&b!dD&dcHVIp=)OIltfU z%Ut8mTw~4w-HKD7{W?@J|8lgr5B@?I#Q1Z7^79mmN&EZ5fKV=T|K_Ug(+Q=A$`0)W zDdi(Vd6nBtW`$}xU>^$WaH_jxR@8)YGjeZKlQzvtPvb$-THz1$vL+&*A@W&G-cjz` zvK^}IfQLi+wDq{7d~&N}=S6%0`vDl^#ZF~FYxYf);M7% zGAjq!q5ObF(IaG1M^u~cHkcO64IPWsW)XaW0z16JQ3@iq&(!&~m!#Ty?|N(#p4ZY8wGjFF=J6^(!fc4Kj^=|A*uh)572Lwy(OD+E6wcj9LM70)*2vdNzv0qOvAcYt7V7Dw)Vt}$WlNa%> zs*%M&6U7v^(4=M*OX_J9r)jvH;bUo06vEuuU}Vb0pqLyVlW&WzBbcp^-Ssh7AA9Oz z%Ee=63k+tYpzIL??qE2``y`JPxKuaYa#1u-Ns_>lpuZM?v@G8)g6i delta 1130 zcmZvaUr19?9LLY^Oy}LEHUH!`D&|Dmd`Nfi-QC?S!V1cWUNociP_REY8Kx{nP@$$q zAw=Mf$?rkIiXak$B+vwXF_5639u#`iK~V%jP*6|noVkULorm)~=W~9)@Ar4^JzLXd zpQg(uec&{jRZEAN8sJ?ZU32!Gh&`r|~4;Ym%`# zW+208XS&g42!zyeQ{E;w-8R+DWlXhm+)&3;6uhv82@2gV$}-&zrp>qXEi0;*UjN9xO zKA>S{;mb~#!D<2Auz?~A)%?NmVP&6>QXm@`5!m&U_*?+53v*{oxaa~i_>C323OJBU zBV?S3)es;_^jM(X6)x(wi+R|IiG*>?0%ucNZ+CD+8A%?Ebq}`qNsr#&r{4&*?7?Db zES1J`X&fL;@fL|sGM{o=h2T{yD3|=28r9<=H5e3QfvBvUDJ`Lt#zE3F#6*i*$B$O1 z7Xqq05Rv;5_`?cLAu%BJN;mtGxX%U+`$KXx6pIISF{H_=U%?YLIB$=uqF>e+)MI{0 zydFTbf!nU>(P$*5s=6qNilhW^ozsXaOF>zcW!AbX>l*&H!F`y=u}WyQ6yEJTE?0tT fEBuGB8H}+5Xs-evgi))4HkiO+9u{%A3cUXSN^%Tc diff --git a/09_delays/kernel8.img b/09_delays/kernel8.img index 668bc5cad0757637618c390156493ef169ec04c2..4547f6e3a44da42c9ba37db71bdfb8fc3f225b0b 100755 GIT binary patch delta 350 zcmcb}bCYL+3}fU(*=$oAMusW#nHaJY|NjqRWMG(3-xRk)@q*YyC8ma;2gytm&oVGf z0f{S$h)-lw?b delta 342 zcmcb~bCG9)3}g62*=$oQMusW#nHaJY|NjqRWMG(3-xRk)af8@IC8ma;2gytmPctw~ z0f{Sq5u3=w3K2Utaj%TR6!D25`A6&wMtfjt7Kl$&Vu7gHKJll%p%BpUdZ6JAK*Kd2 zSziSi#8D|Pq==+htiUo7* diff --git a/09_delays/raspi3_boot/Cargo.toml b/09_delays/raspi3_boot/Cargo.toml index cd382ba4..09732955 100644 --- a/09_delays/raspi3_boot/Cargo.toml +++ b/09_delays/raspi3_boot/Cargo.toml @@ -2,8 +2,9 @@ name = "raspi3_boot" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] -cortex-a = "2.2.1" +cortex-a = "2.3.1" panic-abort = "0.3.1" r0 = "0.2.2" diff --git a/09_delays/raspi3_boot/src/lib.rs b/09_delays/raspi3_boot/src/lib.rs index d5d873cb..38e1c8f7 100644 --- a/09_delays/raspi3_boot/src/lib.rs +++ b/09_delays/raspi3_boot/src/lib.rs @@ -29,9 +29,7 @@ //! Low-level boot of the Raspberry's processor -extern crate cortex_a; extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/09_delays/src/gpio.rs b/09_delays/src/gpio.rs index 3ff0c1e9..da6a5be4 100644 --- a/09_delays/src/gpio.rs +++ b/09_delays/src/gpio.rs @@ -23,7 +23,7 @@ */ use super::MMIO_BASE; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/09_delays/src/main.rs b/09_delays/src/main.rs index 199d5ab9..027c72a0 100644 --- a/09_delays/src/main.rs +++ b/09_delays/src/main.rs @@ -25,14 +25,6 @@ #![no_std] #![no_main] -extern crate cortex_a; - -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; mod delays; @@ -40,7 +32,7 @@ mod gpio; mod mbox; mod uart; -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let mut mbox = mbox::Mbox::new(); diff --git a/09_delays/src/mbox.rs b/09_delays/src/mbox.rs index 18fe5787..aeae88bb 100644 --- a/09_delays/src/mbox.rs +++ b/09_delays/src/mbox.rs @@ -25,7 +25,10 @@ use super::MMIO_BASE; use core::ops; use cortex_a::asm; -use register::mmio::{ReadOnly, WriteOnly}; +use register::{ + mmio::{ReadOnly, WriteOnly}, + register_bitfields, +}; register_bitfields! { u32, diff --git a/09_delays/src/uart.rs b/09_delays/src/uart.rs index 4748bb56..75310d17 100644 --- a/09_delays/src/uart.rs +++ b/09_delays/src/uart.rs @@ -23,15 +23,15 @@ */ use super::MMIO_BASE; +use crate::delays; +use crate::gpio; +use crate::mbox; use core::{ ops, sync::atomic::{compiler_fence, Ordering}, }; use cortex_a::asm; -use delays; -use gpio; -use mbox; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; // PL011 UART registers. // diff --git a/0A_power/Cargo.lock b/0A_power/Cargo.lock index cd6dccb9..16ef5e23 100644 --- a/0A_power/Cargo.lock +++ b/0A_power/Cargo.lock @@ -1,18 +1,18 @@ [[package]] name = "cortex-a" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kernel8" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -29,27 +29,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "raspi3_boot" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "register" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] -"checksum cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fe913628f34718bc9e7d0d07e13ca1374638f64f0edc6eb063ec8abe581d395d" +"checksum cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12425c4491f31f28f539c74382ade69ee9db4f1f597aa177f43e072595562e46" "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a0f44a6dc9a98359515541a0c46ef4e3630a30879c1d7a4038f31dd533570bfb" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/0A_power/Cargo.toml b/0A_power/Cargo.toml index b7f40114..bc742cac 100644 --- a/0A_power/Cargo.toml +++ b/0A_power/Cargo.toml @@ -2,11 +2,12 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -cortex-a = "2.2.1" -register = "0.2.0" +cortex-a = "2.3.1" +register = "0.3.2" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot" diff --git a/0A_power/kernel8 b/0A_power/kernel8 index 56581bf77b020d1591f4114d2d0d9f5448ffda40..03daaaf5bddd4d5a4b443992b2d90297f0ea3a94 100755 GIT binary patch delta 1047 zcmZvYO-K}B7{}jdW_De5{X!Spgx!^tFlwEh?*R{8iiE<%h3Hdec4x%a40IJYgmpdD zL0Cb1`p`=Vrg-V1Sp-JVxl4HIpwhtzI&=#HduMmHSljn7^S;0T|9Sq;`{tLq{4zJQ z03%lpI1-<@L)ND5GF>;SNK>|+{Cduu-yQ+75T3r7+94z!jqiNRBOwG1_l@3LpMWyFaCr#xWvIFE>6e-9&*sZ_yFrY5aOOXg!jPN&N;fZC-yw&!vusv}3S|8~Bbn51a}fP-&1QsXccXM?M+w41B?N9-4Uh2!D9sB5nX& zZQrHZ8uf>#ul*g~VJj}nVSs@!^NegM44eVzLxY9gV9=3ighB7NIU9QY(wTrpG-E#p zZQ#dy9CV}P1qnnP_QD7J>V+1#jr(3`g*0|m!RhK5Acd7F(tPo^iZLIw1~&>4LuS3c zqRaihLW9b^n}s8g6)2a}E|=JH{+4ov{PXAC>~Dq8>!q@uV`a30E+9|1@^+o{=@|w{ z$$!gj7k7Edzl7U9$OcQ(_8hxR8vCoEkC9k>Q4MohIhD~g)fUesh9;ssNm*l~)`%7@ z!?DU(sEozRSRx%$(f>MyiotT_8U+t)AeJ=}mZX_N!cNG#AsOa{%5K$3kSc3hWvr9* z{X}YT%o-XVPg`T-(d1-uGG$wW`y8~PKybPi>Z(Q`WRywUz{fqBKrSt#} delta 996 zcmZ{hPe>F|9LL}9&Frjywp7Y&5nQYFQ0Th5GmbN1&?U(_RJagD7CUd=Y`RuDDydLg zH#-z7xcn}9D1uP*7-AM<_JNBRj;P(A?B3P8*C)Zc4RtU!+5GTznUT zzlz{sjojUWPbi##FfLFL(135L*!0;S{6(P?H3c;IiMuzaUVM5_dRu8-FOA#rT?NFh zn!MdnHOtiWcCN;fZRbkcMrmx4;d?B7%jK!wp<(V0MReD_pK_gX9H@k#zfVu!9&;_s zRzhR7X)@ik%&3}lEY&umxLgTcRWX~Xam!K7m~F;Qjz&cC*%94+OGV#m| z*$<$u0Le;;vIgIoyq8s<$>;y%cdTxc*DwYsUI$971S*!V35PowB(?-9);L*|NuFsI z!)7xkEk;KF$%)L@B_%;}K*JM(-r3e9w_^p!YM|l5lLJ|#8F?n>vgl7XVKZSgo}9@R F3jnx}UuysW delta 248 zcmX@cdyIENj;#_aLr7^H!^(;*Ce0{z2ElqhhMyfw4m+i5<%6>s8K%@TGh{ztU{ zV7>|yPlbvnPFyI?7&~#NKGT8U6JPC`Y{MKN$;7}Q0#bVdXofh@3@)JB|4aPyWED!sNv; zS&T`Jr4+=sVA4^|1Tr2ZGfjNREV}9uv+$}^ARlJk3!rt9f-J$hlRKG|8C52)WfEtU bn|zc>pQ-QP"] +edition = "2018" [dependencies] -cortex-a = "2.2.1" +cortex-a = "2.3.1" panic-abort = "0.3.1" r0 = "0.2.2" diff --git a/0A_power/raspi3_boot/src/lib.rs b/0A_power/raspi3_boot/src/lib.rs index d5d873cb..38e1c8f7 100644 --- a/0A_power/raspi3_boot/src/lib.rs +++ b/0A_power/raspi3_boot/src/lib.rs @@ -29,9 +29,7 @@ //! Low-level boot of the Raspberry's processor -extern crate cortex_a; extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/0A_power/src/gpio.rs b/0A_power/src/gpio.rs index 2175cc3a..608ba532 100644 --- a/0A_power/src/gpio.rs +++ b/0A_power/src/gpio.rs @@ -24,7 +24,7 @@ use super::MMIO_BASE; use core::ops; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/0A_power/src/main.rs b/0A_power/src/main.rs index 5c147547..015ef27d 100644 --- a/0A_power/src/main.rs +++ b/0A_power/src/main.rs @@ -25,14 +25,6 @@ #![no_std] #![no_main] -extern crate cortex_a; - -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; mod delays; @@ -41,7 +33,7 @@ mod mbox; mod power; mod uart; -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let gpio = gpio::GPIO::new(); diff --git a/0A_power/src/mbox.rs b/0A_power/src/mbox.rs index 00abf8fc..f5a420a5 100644 --- a/0A_power/src/mbox.rs +++ b/0A_power/src/mbox.rs @@ -25,7 +25,10 @@ use super::MMIO_BASE; use core::ops; use cortex_a::asm; -use register::mmio::{ReadOnly, WriteOnly}; +use register::{ + mmio::{ReadOnly, WriteOnly}, + register_bitfields, +}; register_bitfields! { u32, diff --git a/0A_power/src/power.rs b/0A_power/src/power.rs index 41240021..4cce72d1 100644 --- a/0A_power/src/power.rs +++ b/0A_power/src/power.rs @@ -23,11 +23,11 @@ */ use super::MMIO_BASE; +use crate::delays; +use crate::gpio; +use crate::mbox; use core::ops; use core::sync::atomic::{compiler_fence, Ordering}; -use delays; -use gpio; -use mbox; use register::mmio::*; const POWER_BASE: u32 = MMIO_BASE + 0x100_01C; diff --git a/0A_power/src/uart.rs b/0A_power/src/uart.rs index c854edc7..8950fea6 100644 --- a/0A_power/src/uart.rs +++ b/0A_power/src/uart.rs @@ -23,15 +23,15 @@ */ use super::MMIO_BASE; +use crate::delays; +use crate::gpio; +use crate::mbox; use core::{ ops, sync::atomic::{compiler_fence, Ordering}, }; use cortex_a::asm; -use delays; -use gpio; -use mbox; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; // PL011 UART registers. // diff --git a/0B_exception_levels/Cargo.lock b/0B_exception_levels/Cargo.lock index cd6dccb9..16ef5e23 100644 --- a/0B_exception_levels/Cargo.lock +++ b/0B_exception_levels/Cargo.lock @@ -1,18 +1,18 @@ [[package]] name = "cortex-a" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kernel8" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -29,27 +29,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "raspi3_boot" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "register" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] -"checksum cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fe913628f34718bc9e7d0d07e13ca1374638f64f0edc6eb063ec8abe581d395d" +"checksum cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12425c4491f31f28f539c74382ade69ee9db4f1f597aa177f43e072595562e46" "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a0f44a6dc9a98359515541a0c46ef4e3630a30879c1d7a4038f31dd533570bfb" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/0B_exception_levels/Cargo.toml b/0B_exception_levels/Cargo.toml index b7f40114..bc742cac 100644 --- a/0B_exception_levels/Cargo.toml +++ b/0B_exception_levels/Cargo.toml @@ -2,11 +2,12 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -cortex-a = "2.2.1" -register = "0.2.0" +cortex-a = "2.3.1" +register = "0.3.2" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot" diff --git a/0B_exception_levels/kernel8 b/0B_exception_levels/kernel8 index dd2d163a990f1de9b79bd16fa8dd7b3d35820a2f..dfedbd823a05c633c472e4ad8e5b280c5f39a935 100755 GIT binary patch delta 2111 zcmaKsZ%i9?7{`ClU4gdzYb#iAY^AucHjA~r_IlUw0zyP^63wVaUzowQy$T-SWjm$ zVJ&-EkWDVVFl1frD#h#0X06Y@OKSmk`~SwkM_5FG72#X&DtQO@mCb61V4d~2eCxYP zzte*N`}{vwl0Usu{yjZ|^88JdYc1aG9*4q^H^ox;doCC|d`4Kir&+AgBYe!5*o#$J ze0Qo^LjHcIExv^QKcfF9gyR*7)N8 zo9*y=)$nTD@>+4F{(Z_8{B+12~1<8x@Hy`!}XUCyA!O2`hs zEOL(a@z4kp^hqA>Z%woIR?)@N&X-PcJ=gDTu8NP)A`cnwEnGf?63>aJGB|c!qOoqq z<`$bRP&MrJ7j1YZ{rKz#>#v`p^3M7s`AcIr@F>0V&n9gr?O*@GdoFC?F|w_-l@5@? z(CBJg3Co?glPg)fv#oS-rZ807(^mS8uNSP!-r}{K4Mu?G?9kNuqW;Bj#BRroyRIUI zT5#tn3%8iUuQT3Z;%_n@G4b<^_nG+HjL+M)Z~tDI=gC*5z;%}JjfsEA_;)6LgYlnC ze3@}D74!w;7M*wLEB$tp1!_zQw{#A~N49scLcMk1ZpGt7II=h%Be>SCZd_vAMZuq~(co3f!@+WoI zgA@Aol3G=^r^7U{aXlO|`fV|VSM&ma44Sw~&tRjEoJ3b`4o0{~mlLwgxM3Gz{5EnI z>WwOl{=cQr0Pffi*pL<`Z0bIiwt?J1crsvmOScV94>rKVc`-99%ThZ0K=SZZAV@N5 z_NaP94s64r%2=q3!;$(vJgUxwq|sn1DTGmw45v~lH4?&@$015$NRFtHWGI*tm8gQS#eHllH;D-e zSq+B6LOKx>qoOPY=^-bK)6bpI0jKGP6CSh~zlnM3b%A6v-f}-xT+rP-VAl==A+n`> c8mjT(qgP$99}090752*wWyK~($6c`JUoK|89smFU delta 2054 zcmaKsT}&KR6vywGg)+<6&Ms1<3q}T_ItwG}hO&ZrTvv+_UsQ2OC zncq40f6lq*&aBTDU7s(S@xgSaNwv3@5@WP}+En1Jkw_E1*0Lj@O2nLhvcGCEtcxup`5c^Wct zKCi_gOD(_N#jmzxqvh|7@n=4vWdQX}8)#U;BqlKl-&#vn56Hjhc6kpq<^@ZL%8{K0F~i z^hS_#w8I7t7@{X^@L+9{mA8s2ZjUWH%|$-jTU{JINi#MWsO3;Z$JY_poN-56(LIMj zV;|NRL2)-UW$bu0ns99e{*S9Dvibfh+0fZFyh3mPo1-4$`TjSXd*OF1;V7BxDkY0! z_8WECzSX)craE)+1!T^;>@8b`#J3&Hltt>YmtV3&4`9I@;Y!hI+n6w(Il^1`B;$gG zzsC4J3x9+0Ll%xL!@-ehJCE_V4eT!tj(lk^OlX$zuPuCz@oz1Bp7Eb7{37FbHo0mL zvd9c~Hw}4yiSe9;FVnVisHt5s%s@V{73TW|9Yr(zO=G3F*r`~7%L<)CnD*cYLI_U9 zg?k=ie0EPEKZ4hU!=H)C2k~7W~-EE=7NeR%Li0B6_bbiX}JLRSN5l*A!&3tU!+JS0i?%+!B|L4hBdKQ?e!NDTxOi8eUFErhjrJeE*ZO_W4MQUdgZPGhPp1!Yy1v1V1)!gR_B z&(d`#cwmY;UGSJ4{{Tier)j4P)H1V`ky6OKTut9~fv*~$4Hr*QzVCZ*X{0~9;1TGd S_9|$#zge00xI>Rsf%`x9PP4NB diff --git a/0B_exception_levels/kernel8.img b/0B_exception_levels/kernel8.img index 4c0be6f9271340f6a8ac1eab928f6d1cb8aa4b98..7d47414a630530ceff3476cdb4a0eafbb1387459 100755 GIT binary patch delta 797 zcmdlla$IDB0;Bgt#q4@TCWa~XObpqH|Nnr*hOu?lvH6of5LE?{?<&8LDVh(B(lQi%2cXbAF zJg~kR%(JM7qjvLTZbn(nUqJEwKsPi%-JtQv`l_OjI>an?1|yD2c_EEQ(pTS24rEl< ze1=VR1g7d+lNU0o*Ixpv2Kf)!>|n-*AjK4@4rbw1F!PTxK>gYSmE)H;Isg?jbppDH zMFZ}pT|n_|YMjBlfac!^ntzai0UUmc3Ba%enhy#GRtAQ85pdu+Ks7SU8m)m@B7iV# zImj?2j^O3^4Z|>NCd@1ugjrKSX34P!17i*7uzH*>!!WE3W|#)TutuQRRw=gNMxbG! z7kJtN2KLqLUaek;Qdkl0~h zBAW5<|8xZgg)1+ZuvR`C^0;A_d#q4@{CWa~XObpqH|NnElCKY-%en2oIKRBnKB$`CbeSL0k+QiZ~z2T+MhOa~0^!39BoBVuCVP-!StU RaX6|>"] +edition = "2018" [dependencies] -cortex-a = "2.2.1" +cortex-a = "2.3.1" panic-abort = "0.3.1" r0 = "0.2.2" diff --git a/0B_exception_levels/raspi3_boot/src/lib.rs b/0B_exception_levels/raspi3_boot/src/lib.rs index ccfc6370..d5ce1ae8 100644 --- a/0B_exception_levels/raspi3_boot/src/lib.rs +++ b/0B_exception_levels/raspi3_boot/src/lib.rs @@ -29,9 +29,7 @@ //! Low-level boot of the Raspberry's processor -extern crate cortex_a; extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/0B_exception_levels/src/gpio.rs b/0B_exception_levels/src/gpio.rs index 3ff0c1e9..da6a5be4 100644 --- a/0B_exception_levels/src/gpio.rs +++ b/0B_exception_levels/src/gpio.rs @@ -23,7 +23,7 @@ */ use super::MMIO_BASE; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/0B_exception_levels/src/main.rs b/0B_exception_levels/src/main.rs index 7df44465..6e501672 100644 --- a/0B_exception_levels/src/main.rs +++ b/0B_exception_levels/src/main.rs @@ -25,14 +25,6 @@ #![no_std] #![no_main] -extern crate cortex_a; - -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; mod delays; @@ -77,7 +69,7 @@ fn check_daif(uart: &uart::Uart) { } } -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let mut mbox = mbox::Mbox::new(); diff --git a/0B_exception_levels/src/mbox.rs b/0B_exception_levels/src/mbox.rs index 18fe5787..aeae88bb 100644 --- a/0B_exception_levels/src/mbox.rs +++ b/0B_exception_levels/src/mbox.rs @@ -25,7 +25,10 @@ use super::MMIO_BASE; use core::ops; use cortex_a::asm; -use register::mmio::{ReadOnly, WriteOnly}; +use register::{ + mmio::{ReadOnly, WriteOnly}, + register_bitfields, +}; register_bitfields! { u32, diff --git a/0B_exception_levels/src/uart.rs b/0B_exception_levels/src/uart.rs index a25f0d13..db4c639a 100644 --- a/0B_exception_levels/src/uart.rs +++ b/0B_exception_levels/src/uart.rs @@ -23,14 +23,14 @@ */ use super::MMIO_BASE; +use crate::gpio; +use crate::mbox; use core::{ ops, sync::atomic::{compiler_fence, Ordering}, }; use cortex_a::asm; -use gpio; -use mbox; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; // PL011 UART registers. // diff --git a/0C_virtual_memory/Cargo.lock b/0C_virtual_memory/Cargo.lock index cd6dccb9..16ef5e23 100644 --- a/0C_virtual_memory/Cargo.lock +++ b/0C_virtual_memory/Cargo.lock @@ -1,18 +1,18 @@ [[package]] name = "cortex-a" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kernel8" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -29,27 +29,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "raspi3_boot" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "register" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] -"checksum cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fe913628f34718bc9e7d0d07e13ca1374638f64f0edc6eb063ec8abe581d395d" +"checksum cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12425c4491f31f28f539c74382ade69ee9db4f1f597aa177f43e072595562e46" "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a0f44a6dc9a98359515541a0c46ef4e3630a30879c1d7a4038f31dd533570bfb" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/0C_virtual_memory/Cargo.toml b/0C_virtual_memory/Cargo.toml index b7f40114..bc742cac 100644 --- a/0C_virtual_memory/Cargo.toml +++ b/0C_virtual_memory/Cargo.toml @@ -2,11 +2,12 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -cortex-a = "2.2.1" -register = "0.2.0" +cortex-a = "2.3.1" +register = "0.3.2" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot" diff --git a/0C_virtual_memory/kernel8 b/0C_virtual_memory/kernel8 index 27b39c2dfa4d85edef7ef2d037bb5d2b5d6816f0..b4644b05badfe1d4acdffa21bc9ccaab6cf9a1cd 100755 GIT binary patch delta 2249 zcmah}U2GIp6uxJ6yIYF1+ipv{5NWLh3d&~h%$>P28lZ+BArUN4`~eb}nVp5EWvff6 z1(8}o;`F@VIx_}~LZ2#GNfj4v298qoM6>zUmhahKhAA8zJ; z-}%n@&Y3%N`GfG$55q@$;PS+RPZq#tI39&n;Z2Mk!zZH9rF;sQjl!J9(}cvM=GATc zw|sLN@U1A!YIvKlZH>KeoCLf;F|#J=42&Ip;J0~`*LNwCKSb|W4-+<&$3KZ*a)6$F z{6;9g@MaKe_7r17o$8B(-F~-sY6HByUSX`YvnzD<(5&96w&w7LR{+=7!#r~g*s<>w zHh7(}{(zs^R<|Kn!tH#%|4oHW`FU>U^XfHDA;AbWEHKli| z4}Sre4=c~LDXw89cYOh z(fJC8?c{I>U#f$L5_S#sX1wI9*Va(4!Wj`#FRr1MxGqBKg*DW3@r18V5Ph-2S{qr5 zT7BUu*!JLi4bYz0UpR*ti(W|=)C4n7;a_2!u4~NR}`4q2EGeP{BlI4vB zGvk3wRLF)(Wln|5(>-6pS4GP45KX|JOb~ynRHn18hzIdI==1T{nj+r7g2KEVZ zB53byeR=-##n}b)mlgEYB7Ljm?z;;5uX6Q|74#v5Mw)z}W)+trj+|)z6j}Et8K_0E z6E;D33*mv~juO5IC;hA{O(sUd%A5EoUh=bkLA0+9EC+4xqXGGN@IC{40)Ho&dZa{G z7JVe*SEFm13Is(r%Olv`1Z&3i!9AuaGuk3|`|f0l4SKn(H)JNuU|t)zZH%;!)s0OV9erX#!?OL*fK4Jr(#14<}Y_3E&JXJXJj zZo8f^9o5aax@8O7sgXpoxnsVkv1E;OX7wr-bBA*y-q=<vw!jI?wOrE_rpX=0NZZ0( z!M1K%D@!k1+qrYM7|0HcaJhq$+Lo$jRD7=WwS+;hMiaWoNF9HT!|ZXM zk{O%IaH;8zZgOr*&CoSZwWZ7$Je}mpp`p>8Ny{=*LZ~T?B2Cqjk~2FyoK60(UahGo z_d5R649l7{i>{3-bzP_AX&W!Zp`%^f;f?vt*wSzX_tKtb^HkdNo9SpTb*ib3BP=dm zLDr?T@kT4O;?FIxB-;OY&dwSFc^o!2bKw{%kFun+jHwE-0&lg#v)I=L*P$2rOpwrr Y12bW1&;F+3Kdz5Hx&N-xpYLDjANMrV)&Kwi delta 2157 zcmah}TWl0%6#ma_FWVAe==Q=EZHr=QRo0n*?#4u<3g6u(xR**o*CtJv8_sV|&{>5*NP_wqKaTnFMTwbLT%w zKo1BuV0|^bDwu$0tKlZ$4!|#};aplE>$1QGFGtp=Ten|mX{z4y7tYkcZNehMB>|e@ zH@s26YTLn$Y_(=}Oq|oyDNm z&$T!5dBWB%;SmAaw!BNv0e&Tsy0vXN(wbeNHqp*!iN`qsHVQX0{91rcAssd?q!>0Q zpbck}a7g%d`Fuki905F44~=Pu1((1k>yo9X_|}J?*F#HssPsL-SVuWMhOma{Nuq%f zEk?8$`d>#mpm`OQrlohWkUl`|1=q`H2lP)wgK+I^HDuWjcn_ToS4$s-u@VaGIFv_N zQz{1Rs!)!L5q`3&9N!;>iS?(VFdfxl$XMSmgfVu9c*DO3AC3%7xM3~DyFL6ki1R@& z@f_#=Gsi`u_l0v5*t+`iP(4vtR$Gq8O`lGdcjV>gSI94(PGpiH#iDxl-YjZxWWuozT*ftD!-b69cc1j`P{@dw{IdNu|a=)#2+#)sFh)jZJElb!A+|y&@016V3Anw!}x{>tp(S%G}E&^ z%jKG6_y`$2Ybi;zJXlcAJ1hnsy1m2 zACcV1M%g$Uw{wRFlwN0aG@s#qf8LOcp%O3S^akK}xvHV*x+7<^vSB%nvy-~nEz8&0 zv~fS@=Vhbc;JU7;zLd3GSCK7gC-yYLF40$Q-LY)d@;t@WJQM%k056FicVx%$9mVl9 z$B=A1(*QG;=5R}LG{Z48LsAr46P;#6FNZQbJfRMZ31?{4y zd0bH`gJ+qBt8zS>f=va@G)!BQ4elDAPq?i}lBICdwG7+SxSEkOLqn6p8B14WS+;ad zlBri+wM>oKBcmgk|1H2*FF?D0Dg~()rQe^T+!pt3+n@lRqx+uc2DvwOM@?Clq{>~4X(yRz#`e=h74{qnBA ILi8H)59XibZ2$lO diff --git a/0C_virtual_memory/kernel8.img b/0C_virtual_memory/kernel8.img index 1c5e6988f49c5d2a8baed9f90506a3daa0694d01..c0cfc9e8588acd527652f08ca1b382371f185b2a 100755 GIT binary patch delta 706 zcmZ9KPe>GT6vyB1H#@ttF5{nFZC9C^*;2FZV$&fzRGUPZRN7<&6|vp~C3L$8Wjh&_ zXvF?}lAwVh38DxlU6!D%EyYZ%UhU5`R~QOhX~(J)jh2Qo_!;^@6_D0nb!mw zX65{GlfVA;j(LN2OwAB~kB|C#R`IAicw))6gEGM61aF)Nkev8+YCa>VW6MIJzRI-; z5oWKhnZ_#D6GYC$Sl!Py5m=?{>+$bg(=Q7sm-t5OX=gbMOl{>Yk*`jB=exHji zw%s3qPQx(+uE+6k{ccw6*(~}#1gYDcafU4jfymO|CRG)i0R&aQ&NZx*LbQ`$tyEsp z&Vzj6i=}y3RTHePl4xpMk$5gnuv^-}D(b_Z_^Rifm2O;Up5CGyt$s_p#h6Nulc!VF zgl+)-Aj9-M-~io8-vGX#Q{*9r#UM=rb_)@52iv3|O#sdaI*DhU7Qhl$gfwQIOMq8g zIysYdY5>Q$bI5VX0bFtIClSXWrFc->TU^X{dHG-VBAz{f9iob(QmpFUZ@b?)zpwl# smOP+)7Zj@&Ort5SSQ7ui9GHyf6e!ksyJ`5MinT1ry2N%djC$Yx0oqOG?*IS* delta 744 zcmZ{hUr19?9LIm>+|Au7`{$-^>*l>nowA_xMj#P5CWJ|Q*?f`qFyEx2a=p|;Z5fCV z)Xq*2^pGO;vRI7j!9n!rrHo!gy*>p^AIg}2(%uAj`&~!TLp~fh{C=O`_xt^wll4q` zvWn?6g$KM_81hj7kE{sV91WLRZpv{tHgpOXNBC1grdIm$gAgHfmhgJ>482eIbMp~8 zLHL6Cg@2gT&@#Y~Au;Jki6(PAPWa=x5EUSN$HW2;>Suj|#%ZYfxw*mi;@SR7+qrNZLeT%#N8?XrjE^{WztV{B4Ol4w&1ei-K z?~Il+3$_`rCgPnX+KGqVmR(r_ueOQ(b5FH@v5z_{pIG70`AuDK`AQs>Y21500Bl>Z z=Qjmsehuq3fUEy5La@sJ?~g^3P1Huy<~83r`wnlPtPBW(L-6Yq;CkbMH|f zbySpGly{O2=Rhf)JNsl}!D@Q9BPw2vC&*RPsjB{v&l4q`z@?^)57PA^f^KR2xWHtP zMQA2gzDC&{1l^WiEqN=kcm`Qng4BCVYOsND2Q!#ehpgT}E@=W)y(`G=&&~&p*(h7J99A!2@sf^4Fdj3SZqsxs(A~)*mfFy-DJYE~W0"] +edition = "2018" [dependencies] -cortex-a = "2.2.1" +cortex-a = "2.3.1" panic-abort = "0.3.1" r0 = "0.2.2" diff --git a/0C_virtual_memory/raspi3_boot/src/lib.rs b/0C_virtual_memory/raspi3_boot/src/lib.rs index ccfc6370..d5ce1ae8 100644 --- a/0C_virtual_memory/raspi3_boot/src/lib.rs +++ b/0C_virtual_memory/raspi3_boot/src/lib.rs @@ -29,9 +29,7 @@ //! Low-level boot of the Raspberry's processor -extern crate cortex_a; extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/0C_virtual_memory/src/gpio.rs b/0C_virtual_memory/src/gpio.rs index 3ff0c1e9..da6a5be4 100644 --- a/0C_virtual_memory/src/gpio.rs +++ b/0C_virtual_memory/src/gpio.rs @@ -23,7 +23,7 @@ */ use super::MMIO_BASE; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/0C_virtual_memory/src/main.rs b/0C_virtual_memory/src/main.rs index 6378ebe7..741cf4b2 100644 --- a/0C_virtual_memory/src/main.rs +++ b/0C_virtual_memory/src/main.rs @@ -27,14 +27,6 @@ #![feature(asm)] #![feature(const_fn)] -extern crate cortex_a; - -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; mod gpio; @@ -42,7 +34,7 @@ mod mbox; mod mmu; mod uart; -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let mut mbox = mbox::Mbox::new(); diff --git a/0C_virtual_memory/src/mbox.rs b/0C_virtual_memory/src/mbox.rs index 18fe5787..aeae88bb 100644 --- a/0C_virtual_memory/src/mbox.rs +++ b/0C_virtual_memory/src/mbox.rs @@ -25,7 +25,10 @@ use super::MMIO_BASE; use core::ops; use cortex_a::asm; -use register::mmio::{ReadOnly, WriteOnly}; +use register::{ + mmio::{ReadOnly, WriteOnly}, + register_bitfields, +}; register_bitfields! { u32, diff --git a/0C_virtual_memory/src/mmu.rs b/0C_virtual_memory/src/mmu.rs index 8acdaa14..5282420f 100644 --- a/0C_virtual_memory/src/mmu.rs +++ b/0C_virtual_memory/src/mmu.rs @@ -24,6 +24,7 @@ use super::uart; use cortex_a::{barrier, regs::*}; +use register::register_bitfields; /// Parse the ID_AA64MMFR0_EL1 register for runtime information about supported /// MMU features. @@ -130,7 +131,8 @@ pub unsafe fn init() { let lvl3_base: u64 = SINGLE_LVL3_TABLE.base_addr() >> 12; LVL2_TABLE[0] = (STAGE1_DESCRIPTOR::VALID::True + STAGE1_DESCRIPTOR::TYPE::Table - + STAGE1_DESCRIPTOR::NEXT_LVL_TABLE_ADDR_4KiB.val(lvl3_base)).value; + + STAGE1_DESCRIPTOR::NEXT_LVL_TABLE_ADDR_4KiB.val(lvl3_base)) + .value; // For educational purposes and fun, let the start of the second 2 MiB block // point to the 2 MiB aperture which contains the UART's base address. diff --git a/0C_virtual_memory/src/uart.rs b/0C_virtual_memory/src/uart.rs index cf8739ef..492b3b78 100644 --- a/0C_virtual_memory/src/uart.rs +++ b/0C_virtual_memory/src/uart.rs @@ -23,14 +23,14 @@ */ use super::MMIO_BASE; +use crate::gpio; +use crate::mbox; use core::{ ops, sync::atomic::{compiler_fence, Ordering}, }; use cortex_a::asm; -use gpio; -use mbox; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; // PL011 UART registers. // diff --git a/0D_cache_performance/Cargo.lock b/0D_cache_performance/Cargo.lock index cd6dccb9..16ef5e23 100644 --- a/0D_cache_performance/Cargo.lock +++ b/0D_cache_performance/Cargo.lock @@ -1,18 +1,18 @@ [[package]] name = "cortex-a" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "kernel8" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "raspi3_boot 0.1.0", - "register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -29,27 +29,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "raspi3_boot" version = "0.1.0" dependencies = [ - "cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "register" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "tock-registers" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] -"checksum cortex-a 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fe913628f34718bc9e7d0d07e13ca1374638f64f0edc6eb063ec8abe581d395d" +"checksum cortex-a 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "12425c4491f31f28f539c74382ade69ee9db4f1f597aa177f43e072595562e46" "checksum panic-abort 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2c14a66511ed17b6a8b4256b868d7fd207836d891db15eea5195dbcaf87e630f" "checksum r0 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a38df5b15c8d5c7e8654189744d8e396bddc18ad48041a500ce52d6948941f" -"checksum register 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "157a11ac0b1882ff4a527a92f911dd288df17367faaaa0c36f188cd61ec36fc1" -"checksum tock-registers 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a385d94f3f62e60445a0adb9ff8d9621faa272234530d4c0f848ec98f88e316" +"checksum register 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a0f44a6dc9a98359515541a0c46ef4e3630a30879c1d7a4038f31dd533570bfb" +"checksum tock-registers 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c758f5195a2e0df9d9fecf6f506506b2766ff74cf64db1e995c87e2761a5c3e2" diff --git a/0D_cache_performance/Cargo.toml b/0D_cache_performance/Cargo.toml index b7f40114..bc742cac 100644 --- a/0D_cache_performance/Cargo.toml +++ b/0D_cache_performance/Cargo.toml @@ -2,11 +2,12 @@ name = "kernel8" version = "0.1.0" authors = ["Andre Richter "] +edition = "2018" [dependencies] raspi3_boot = { path = "raspi3_boot" } -cortex-a = "2.2.1" -register = "0.2.0" +cortex-a = "2.3.1" +register = "0.3.2" [package.metadata.cargo-xbuild] sysroot_path = "../xbuild_sysroot" diff --git a/0D_cache_performance/kernel8 b/0D_cache_performance/kernel8 index 5d70db03b04ad37467bd4243d131fd8fe14339c6..3f0fed005c82e10ee645f07d5778d87d21a3b130 100755 GIT binary patch delta 2515 zcmZ{kZ)_8F7{`ClwQOCtv2LvEHXI#F!W5{z>$P_kCfmYrFPtwr5)we0>)n+#g>G55 zIYixvCXU1jO(u`135dL4Q(wqP_$LujUI=KWVG?7|f&b8`flNX)k@>rSur}SjxaanH zzR%y^ubVt-pFCloMqc+&}O_C`WRaZNGQ5AI>e=mCZ#rP=IpumqOiK^tsv zucspK^Ba?AP06n@ z!it)H+FZU`-Pm3T0gw&x)3{#~N9GYfiB~o8T0>0c}i`Q($ z+_Y`c_|NoPKi2_1bBLaw#-7#vPThai^1sh#uG_pi>!R%Sy|86)lXWSMQD+&^oe?YG zCS?Ui!uB}{CoKP*f~|A>?^*si1sf^*&E_3%m|i_K&a`EUKieJo!{)>!KzsG_JWY6M z08RqbZQK^h9HQ5?j9yE9%u7MqsWHYdg-Un= zua(l<7&T14VMYvd*f6J2Dg)0Tz3B9@5mN8azpU4J{R2n?$>tX*2TkuXxyy+7*Wy+l zlkca$O@_IjXA513_OR62$t}E72IbI(x9<1CkRv78HKTeALr&#z#pGY-aI5#1Av;e( z*8@4hWb+i|41o$_1@O9%khhJ#thlo|aT8`fzdbwO36o!5kj>ASe2pWUKT6lB?a0dC zZI*w=;4Q=|aM*O5H3O_fmreec$*sbjbottIPM-r#WBI~+N6wHXrP*y*YhIDVtu?R8 z;os_28L}pae{b@14*${Mn@A?dal;IFD~DU>=yGN^I%1A#@dwN?|J29C$#U@1|6x!; ze*p=sseowY996jJ8Q;6L#$L!poonT@D||zF1-<7h&6{O;Pt(d8Kf&OI3K$s-CU=OU z5D%=9xAyt`B&qhK)NP_K3$yd!`Q-EHxjbo_Y1Kd;PBEV!2gx$U$7(N*EF19oaY-e3 zU13&?hq(|NlLSTJRSw%LVfkQ8Rau!2P$$m^WkG7qpE8sm3tEwY_TsflEQxMhqgP4)KdV1-UeR(UbT$#FRtmUtd&+Q2H$0gm*;eZ=BS1=^TS)TPv zsvyhZn24v`us9r2g)oKwn5ytWL6KYM&KB6dy^l|%61{XRDwM(;7w1BBK0y$%-UBuG zyBpTI0%5vtP6!5rtRO0qA0Mv*Pqh^o;9@a8%nC9e6j?!#OmBBzZ67WxPNyx@wo(EJPG;`hxp!`iq*fqhAtWua21?rd8rt+l`Y;Wk ztqH^~0G$Ll(M=ItwD?#628%IZ+!%$VHARC7vA{xI7y(6AIG+DLVrMek#eb&XcmD4? zkG~5S{0kTSQzv0V+2g%m%>iTYJ?enDrZXZo6hm-p6xhi-zE$F~@0s&Rzj;E_u~_OX zOto`tqsJ(x&{J*d;42r%b3mjy&HZhbvNHpOf&B2C|VxB z!twD6exJv$aQu^aY*__8HMcx=h2tV;zgPwJom27DSz)TZjIk=asbwmm%qe)baA%T#9)(?ybkAia@|vstMCa=E^v|ocND;;x__v@ zT*~(uo+tpZ?jG^!Eawn8-)8u80X$##1Mye0_#pAu89rMGCtwyoEu^kyaFK`8_=tz& zSX)Hl2)@L_A=G#n!J|C%;T#V=c!P&dd{6`pcm$x$U-xesaRH!lQX4kmo9fqKX!}pu60o!{}LE2 zqhfa1VKQl>z|QzG#rs{nJTDVJ;Nq9^Gx2d3UsIHcKco@xk$Cu$okztw)wMEDsMnp< zPPc5&_#^kiZ!Yc?>J-A*L8qOR(~kFq#&eYh zl>&oG=3S87vVU~S`@;^nPyrG8mxoGPKoV;!p}YNk>bsH_xYn&GEbGx^GODP$uH%&;tgcW*S&m6oB&ixkEUHGf;o53wtFRTbXO*3Z1&BQh= z2|;~@p+;3*l;dK=RO6bi*>I@3*P4hby{c$wni7jdOkK82)4=o9H0*fX6k`%um}){X zBoS{Bnn;LA#gr9AS1j4IXx80(b}H_(iVY5qOMOFqW27lsx=6#ZOe<*`rWC=_YN*Aj eYN)GL)rb^Lie}Q(HO&%9V^HfGy4)9nU*SL4Y%q2J diff --git a/0D_cache_performance/kernel8.img b/0D_cache_performance/kernel8.img index 3e9be258c252bdb4eddbce861cd53158272dfc6f..05fdca45799270f2545ea5e68f185705920a0c1f 100755 GIT binary patch delta 1161 zcmZ{jS!fec6o&7eNz7!DsoFNSCXq?3Vh|M_t0JPN#ifd+I1vP`;sT<$S6sj)69tX9 zUQe;=OJnuHL<`mSrC{B~hgzZ4(I;^#C@n2kTSX9bJV_G>VqOk+zW@B^oV&~|Pm|}O zkLELfL7>VSyeAUU^ohoQyf=P7ZsAV@#c2%^7FA2V4-EMg_2-P$IF@8t* z0!M1=IkJ7DX|AH!B+La{{V|1=bDC=G<5-lC+9db)C@lH?(Kb#wflM>ax)iUN$;PL1 zk0MXz3{g`1y*}6)qMFJPQYia)J?aj&x<*?<`>@}`biXJUgfo`0?rq3EATtPAmB}6B zvW7Nu@W8Um{|-l5f+_Nm)!QGXQE&6dj*AjyW(D$!#$V6di!Me zv>fgLg$8tca=2X-zMxw~IeC`Z=jOtVStuytd1}C8v4p;ZPZ(c;-BCiH!&Hp-VI{_9 z*pD#*S213PHjG!G8{-AAI_0fD*S5uz*ZU(x8^gE^OBQK}eZe-9;tHWzDZ>a^vkt8Lm z8N*j(BZdoBW)*DC=vfUHXX&>ydRD{v$a?Vy3K;YB1XsZv&rYlTya+G2%Hm1?nL);U zn8J@+y<;|Oz&DORVPR^MFK6ML!<&e5uJ%H^ek~7kqt4+uBgX`fl&QC9HY-mb$k5^P z_>WLo{O8)Ix41uM5lnEFR$TsV*7=CH^+?NSbQI(O&)b jAx(7zy?Q?{DMIIT7QnT$%&QxG{oAA;c1rUg=IrXe=gp;&iK_X;-1TiP22;uPh z8iIc`3vvs=)Ix>Gh^P>$wCfKEyjp>#X|qIiBcI-!Brwo)?W zr?KN%TPLUTn7E}kLZ7L0B@i&oQq58~A?M#E6T#2M`c~LD-vZ(>gtThVeTn6L%dF1Y zhwiJmR=&F(eSgkOt>UUjZMjggc}+%y%ox?}Jz1X4JVvu*X)A$LdN8hVq`s}_e$%8P zYHW?OB#7XmX_}4Fr(TNY>rU!Tc3Xj0>QALo(muzktP&gVYr*FrpIn(O^ia1Wi18s_ z8R8qme0R1m&+;M6fEd&$U6l;8Bkn~~Lqg;x*}*;|Cf_z(M{JJWHY^PrMhyHG!8^lz z#K14egI!gg@HR|F415(NhgC@z%56dq<96U{)P+tomV=?T6E`#Zah*c!e1g5r>g`Ys zH#pPdu-_4zP_T3QAGHPEb!WbJqx40u553?Pt)z1BQ(f5*cHso+IwLfpQ)tR>n-JX3 zM<-bu5c{2XnKrRM_?c4p%"] +edition = "2018" [dependencies] -cortex-a = "2.2.1" +cortex-a = "2.3.1" panic-abort = "0.3.1" r0 = "0.2.2" diff --git a/0D_cache_performance/raspi3_boot/src/lib.rs b/0D_cache_performance/raspi3_boot/src/lib.rs index ccfc6370..d5ce1ae8 100644 --- a/0D_cache_performance/raspi3_boot/src/lib.rs +++ b/0D_cache_performance/raspi3_boot/src/lib.rs @@ -29,9 +29,7 @@ //! Low-level boot of the Raspberry's processor -extern crate cortex_a; extern crate panic_abort; -extern crate r0; #[macro_export] macro_rules! entry { diff --git a/0D_cache_performance/src/benchmark.rs b/0D_cache_performance/src/benchmark.rs index d8bf9ebc..c63b343b 100644 --- a/0D_cache_performance/src/benchmark.rs +++ b/0D_cache_performance/src/benchmark.rs @@ -1,6 +1,6 @@ +use super::uart; use core::sync::atomic::{compiler_fence, Ordering}; use cortex_a::{barrier, regs::*}; -use super::uart; /// We assume that addr is cacheline aligned fn batch_modify_time(addr: u64) -> Option { @@ -63,7 +63,7 @@ pub fn run(uart: &uart::Uart) { uart.dec(t as u32); uart.puts(" miliseconds.\n\n"); t - }, + } None => { uart.puts(ERROR_STRING); return; @@ -81,7 +81,7 @@ pub fn run(uart: &uart::Uart) { uart.dec(t as u32); uart.puts(" miliseconds.\n\n"); t - }, + } None => { uart.puts(ERROR_STRING); return; diff --git a/0D_cache_performance/src/gpio.rs b/0D_cache_performance/src/gpio.rs index 3ff0c1e9..da6a5be4 100644 --- a/0D_cache_performance/src/gpio.rs +++ b/0D_cache_performance/src/gpio.rs @@ -23,7 +23,7 @@ */ use super::MMIO_BASE; -use register::mmio::ReadWrite; +use register::{mmio::ReadWrite, register_bitfields}; // Descriptions taken from // https://github.com/raspberrypi/documentation/files/1888662/BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf diff --git a/0D_cache_performance/src/main.rs b/0D_cache_performance/src/main.rs index 44849984..112e1b69 100644 --- a/0D_cache_performance/src/main.rs +++ b/0D_cache_performance/src/main.rs @@ -27,23 +27,15 @@ #![feature(asm)] #![feature(const_fn)] -extern crate cortex_a; - -#[macro_use] -extern crate raspi3_boot; - -#[macro_use] -extern crate register; - const MMIO_BASE: u32 = 0x3F00_0000; +mod benchmark; mod gpio; mod mbox; mod mmu; mod uart; -mod benchmark; -entry!(kernel_entry); +raspi3_boot::entry!(kernel_entry); fn kernel_entry() -> ! { let mut mbox = mbox::Mbox::new(); diff --git a/0D_cache_performance/src/mbox.rs b/0D_cache_performance/src/mbox.rs index 18fe5787..aeae88bb 100644 --- a/0D_cache_performance/src/mbox.rs +++ b/0D_cache_performance/src/mbox.rs @@ -25,7 +25,10 @@ use super::MMIO_BASE; use core::ops; use cortex_a::asm; -use register::mmio::{ReadOnly, WriteOnly}; +use register::{ + mmio::{ReadOnly, WriteOnly}, + register_bitfields, +}; register_bitfields! { u32, diff --git a/0D_cache_performance/src/mmu.rs b/0D_cache_performance/src/mmu.rs index 04eeb89e..996b8edf 100644 --- a/0D_cache_performance/src/mmu.rs +++ b/0D_cache_performance/src/mmu.rs @@ -23,6 +23,7 @@ */ use cortex_a::{barrier, regs::*}; +use register::register_bitfields; register_bitfields! {u64, // AArch64 Reference Manual page 2150 diff --git a/0D_cache_performance/src/uart.rs b/0D_cache_performance/src/uart.rs index efdafc7b..b8e160e7 100644 --- a/0D_cache_performance/src/uart.rs +++ b/0D_cache_performance/src/uart.rs @@ -23,14 +23,14 @@ */ use super::MMIO_BASE; +use crate::gpio; +use crate::mbox; use core::{ ops, sync::atomic::{compiler_fence, Ordering}, }; use cortex_a::asm; -use gpio; -use mbox; -use register::mmio::*; +use register::{mmio::*, register_bitfields}; // PL011 UART registers. //