From 909b05b23fa2610bf6bacb7ef91cd45d6bca9ea5 Mon Sep 17 00:00:00 2001 From: Andre Richter Date: Mon, 11 Oct 2021 12:33:33 +0200 Subject: [PATCH] Bump compiler version --- 06_uart_chainloader/demo_payload_rpi3.img | Bin 6664 -> 6872 bytes 06_uart_chainloader/demo_payload_rpi4.img | Bin 6512 -> 6712 bytes .../README.md | 14 ++++++-------- .../src/_arch/aarch64/memory/mmu.rs | 2 +- .../src/main.rs | 2 -- 11_exceptions_part1_groundwork/README.md | 4 ++-- .../src/_arch/aarch64/memory/mmu.rs | 2 +- 11_exceptions_part1_groundwork/src/main.rs | 2 -- 12_integrated_testing/README.md | 14 +++++--------- .../src/_arch/aarch64/memory/mmu.rs | 2 +- 12_integrated_testing/src/lib.rs | 2 -- 13_exceptions_part2_peripheral_IRQs/README.md | 6 +++--- .../src/_arch/aarch64/memory/mmu.rs | 2 +- .../src/lib.rs | 2 -- 14_virtual_mem_part2_mmio_remap/README.md | 18 +++++++++--------- 14_virtual_mem_part2_mmio_remap/src/lib.rs | 4 +--- .../README.md | 12 ++++++------ .../src/lib.rs | 4 +--- .../translation_table_tool/arch.rb | 2 +- .../translation_table_tool/generic.rb | 10 +++++----- .../README.md | 2 +- .../src/lib.rs | 4 +--- .../translation_table_tool/arch.rb | 2 +- .../translation_table_tool/generic.rb | 10 +++++----- X1_JTAG_boot/jtag_boot_rpi3.img | Bin 7848 -> 8032 bytes X1_JTAG_boot/jtag_boot_rpi4.img | Bin 6552 -> 6736 bytes rust-toolchain.toml | 2 +- 27 files changed, 52 insertions(+), 72 deletions(-) diff --git a/06_uart_chainloader/demo_payload_rpi3.img b/06_uart_chainloader/demo_payload_rpi3.img index d2c22dd2c7beef03a3ff785d293686b2d3b1e652..c3bf075513e0384378ae56a40d10fbcc2d6676da 100755 GIT binary patch delta 4173 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 II#MA18*}>9KL7v# delta 3996 zcmcImeQ*@z8GrURm+W0W?~=PD$H#3rLvo2koDh;wova~*oi^lxvfZ=@+VbHaxFjvYikFZDOas;R!5sGxzw z-bQ(!$2yNKB&qi>Cts-Iauo-+(shXHYA5)tNERn0E9a8E8ZrksOX8qOd75+8>@tzh zuP@2B)*;m$bCA6XVqFeb^~IBX?~4XMig^wAo!~o^7+08m`b*6hwz;aA;Q}SwRJi0Y zD7$S1IwiqpS6JaH!MiJlEjbS#UF50`bD0&P`Sb9p?XYz!8 znMNZl-RNbKOC*PUi6^<&L?bhEq@>1k@(JF5VSzxS0!c|PnZgO4i)?nBs2iF`_F47}IUN1xz*rlax%Bj>!aM zI)Oav!_6Di~OH97fWOBXm`~rlcs{g)@jWbg%(Sn0MALTznRFX zRHqG9o^;BW)5zE94Zn9L@5r??zxv?X)fe|PPr6@dhNH;KyZ?6WO6>dgu6rXv<-@cE z0D!h1d!D{%KW}TwnL}n$3eESHv-~E~`kNbeb5o0u_Z66^yqD~oq1O4-(dWCe`t6-x zwx3s?H19IS7XF-1zs6O?7RuiHoN~PEw`w$lQ==%>H55xE@qHF)^l13Ke#en(EtBW2 z9qjt6;t_sY@;Ll7m}zPt5BX+E$stpIcpPDNrqk$Ez95pL!~}OGS5(1O^5=bu{1?HLkR~NxN~2LmyC3V0o1q`E|IA%Do#ZRL z5b2uo*L9a-7n@!7v-sZROub(7uKgD=uQm_uAGXj`3|$*C35ivlB`m_nph*a`DrB;ksS`3Ejc(Wb1H5f z4sg~81A-u7lX1vKh+Lo13bo~?cV|45yt&b=PW#i<8;@nEpR5y<>sh6t(>NsqIZ|@# zqmtUdITF9vv1|X*Od2gF+VdG;DmqDWy^<^6iV{p6LNZpHCA``!J(%=! z#rnQu{W(!as`bcIY6VAcuv5}|b^CcsATaI4$ytG$Y?eRtpN5znC6QecvhW+GV>n?1 zIG|EV6%pKtG^%|(gQkiull)mD$uXRhNU)&8nM&NPCqB6UC)lff2$&^4{XY^GO;pH0#nW44I?hKb$By|?C7NVshl48|lhxRAy9zbPQ zqC)qpH#e?OXFRyemYejuOc}{4cOU0ygk5w|J|Cqmi1caN-cQywsrse2oKxJn^GySb zm4;lW`L#M(h$)ZfF62aIAh*!J99JCZ0gpP`$quA9JXEa<=H%k=E_>gq>g(ybsW!taSyMa`BK}|>#*ksdxiiW`Np43YP^ip2LLa#t(`Zk-d499*V5E-(5@fhRcw&tJFwNC zM>R~wiI4ead~eJxU%0eTf6}m9lG(h@Q*zvsrfjp>#9u?NC5LK&r!GHoxD4G;5Q*ng zauf1XUb4+|zK+fMBFQ6{MBOioh2`)U+dRhsmIF5GdeB%GeGa`XO18bo1c5Spi95_3 z2x#ndDanHKmWX_#yGX1+8i!vw9T8>2I#E(bz;A$(0ToW6e?yS%w`ejCbG;WnDoD$0@x9 z-w6F5os~0ZhZf2c8I+8A2)iT=yM#}5JKkq;6l(FMQzXBQ?SgY>2_Zskmpwc_Vj!L< zmD{9+attz$7$7Qf$6RjeQeJVl%38$ zhK?8iJAZ&3GZ+X(A1i{vo?zqhwc^T$R;>diZpfc@rsO7#^`x=>s_2B=lzfpf8*<7v zm#uA(Pw}2J=H}MEEl;!ugWnY&3W(K2okmR9x%#+0#ukI0Y4CrDIU8SJuJ<1Ekb5~8~q%h1gu*fn(vtwR_kHNkr80g*#+!^ZwLoSysFm8pc1d7*{%v$@s wA!SPm5t}7^#}&>s*HdEEt+sXt+WgyE1I)B_O?$AreY3cQ5toTp<+w}y2V{u7$N&HU diff --git a/06_uart_chainloader/demo_payload_rpi4.img b/06_uart_chainloader/demo_payload_rpi4.img index 554d4a9e72f7d2dbed024fae7e0990c1141b49c8..03cddd9e44cd41bb8a0b48e143c35bc4327d17c8 100755 GIT binary patch delta 4179 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 b8H@iO^fo05ecZV8`{EO;o?NM}DiZ$#ac1R> delta 4053 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 diff --git a/10_virtual_mem_part1_identity_mapping/README.md b/10_virtual_mem_part1_identity_mapping/README.md index 9b16747d..6eb88329 100644 --- a/10_virtual_mem_part1_identity_mapping/README.md +++ b/10_virtual_mem_part1_identity_mapping/README.md @@ -801,7 +801,7 @@ diff -uNr 09_privilege_level/src/_arch/aarch64/memory/mmu.rs 10_virtual_mem_part + // Populate translation tables. + KERNEL_TABLES + .populate_tt_entries() -+ .map_err(|e| MMUEnableError::Other(e))?; ++ .map_err(MMUEnableError::Other)?; + + // Set the "Translation Table Base Register". + TTBR0_EL1.set_baddr(KERNEL_TABLES.phys_base_address()); @@ -1042,19 +1042,17 @@ diff -uNr 09_privilege_level/src/bsp.rs 10_virtual_mem_part1_identity_mapping/sr diff -uNr 09_privilege_level/src/main.rs 10_virtual_mem_part1_identity_mapping/src/main.rs --- 09_privilege_level/src/main.rs +++ 10_virtual_mem_part1_identity_mapping/src/main.rs -@@ -105,7 +105,11 @@ +@@ -105,7 +105,9 @@ //! 2. Once finished with architectural setup, the arch code calls `kernel_init()`. #![allow(clippy::upper_case_acronyms)] +#![allow(incomplete_features)] #![feature(const_fn_fn_ptr_basics)] -+#![feature(const_generics)] -+#![feature(const_panic)] +#![feature(core_intrinsics)] #![feature(format_args_nl)] #![feature(global_asm)] #![feature(panic_info_message)] -@@ -118,6 +122,7 @@ +@@ -118,6 +120,7 @@ mod cpu; mod driver; mod exception; @@ -1062,7 +1060,7 @@ diff -uNr 09_privilege_level/src/main.rs 10_virtual_mem_part1_identity_mapping/s mod panic_wait; mod print; mod synchronization; -@@ -128,9 +133,17 @@ +@@ -128,9 +131,17 @@ /// # Safety /// /// - Only a single core must be active and running this function. @@ -1081,7 +1079,7 @@ diff -uNr 09_privilege_level/src/main.rs 10_virtual_mem_part1_identity_mapping/s for i in bsp::driver::driver_manager().all_device_drivers().iter() { if let Err(x) = i.init() { -@@ -159,6 +172,9 @@ +@@ -159,6 +170,9 @@ ); info!("Booting on: {}", bsp::board_name()); @@ -1091,7 +1089,7 @@ diff -uNr 09_privilege_level/src/main.rs 10_virtual_mem_part1_identity_mapping/s let (_, privilege_level) = exception::current_privilege_level(); info!("Current privilege level: {}", privilege_level); -@@ -182,6 +198,13 @@ +@@ -182,6 +196,13 @@ info!("Timer test, spinning for 1 second"); time::time_manager().spin_for(Duration::from_secs(1)); diff --git a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu.rs b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu.rs index eaeff321..2af44aac 100644 --- a/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu.rs +++ b/10_virtual_mem_part1_identity_mapping/src/_arch/aarch64/memory/mmu.rs @@ -137,7 +137,7 @@ impl memory::mmu::interface::MMU for MemoryManagementUnit { // Populate translation tables. KERNEL_TABLES .populate_tt_entries() - .map_err(|e| MMUEnableError::Other(e))?; + .map_err(MMUEnableError::Other)?; // Set the "Translation Table Base Register". TTBR0_EL1.set_baddr(KERNEL_TABLES.phys_base_address()); diff --git a/10_virtual_mem_part1_identity_mapping/src/main.rs b/10_virtual_mem_part1_identity_mapping/src/main.rs index 3a1958d6..f7c949be 100644 --- a/10_virtual_mem_part1_identity_mapping/src/main.rs +++ b/10_virtual_mem_part1_identity_mapping/src/main.rs @@ -107,8 +107,6 @@ #![allow(clippy::upper_case_acronyms)] #![allow(incomplete_features)] #![feature(const_fn_fn_ptr_basics)] -#![feature(const_generics)] -#![feature(const_panic)] #![feature(core_intrinsics)] #![feature(format_args_nl)] #![feature(global_asm)] diff --git a/11_exceptions_part1_groundwork/README.md b/11_exceptions_part1_groundwork/README.md index 629f5f09..3a471317 100644 --- a/11_exceptions_part1_groundwork/README.md +++ b/11_exceptions_part1_groundwork/README.md @@ -971,7 +971,7 @@ diff -uNr 10_virtual_mem_part1_identity_mapping/src/exception.rs 11_exceptions_p diff -uNr 10_virtual_mem_part1_identity_mapping/src/main.rs 11_exceptions_part1_groundwork/src/main.rs --- 10_virtual_mem_part1_identity_mapping/src/main.rs +++ 11_exceptions_part1_groundwork/src/main.rs -@@ -141,6 +141,8 @@ +@@ -139,6 +139,8 @@ use driver::interface::DriverManager; use memory::mmu::interface::MMU; @@ -980,7 +980,7 @@ diff -uNr 10_virtual_mem_part1_identity_mapping/src/main.rs 11_exceptions_part1_ if let Err(string) = memory::mmu::mmu().enable_mmu_and_caching() { panic!("MMU: {}", string); } -@@ -198,13 +200,28 @@ +@@ -196,13 +198,28 @@ info!("Timer test, spinning for 1 second"); time::time_manager().spin_for(Duration::from_secs(1)); diff --git a/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu.rs b/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu.rs index eaeff321..2af44aac 100644 --- a/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu.rs +++ b/11_exceptions_part1_groundwork/src/_arch/aarch64/memory/mmu.rs @@ -137,7 +137,7 @@ impl memory::mmu::interface::MMU for MemoryManagementUnit { // Populate translation tables. KERNEL_TABLES .populate_tt_entries() - .map_err(|e| MMUEnableError::Other(e))?; + .map_err(MMUEnableError::Other)?; // Set the "Translation Table Base Register". TTBR0_EL1.set_baddr(KERNEL_TABLES.phys_base_address()); diff --git a/11_exceptions_part1_groundwork/src/main.rs b/11_exceptions_part1_groundwork/src/main.rs index cd9d0786..637684b0 100644 --- a/11_exceptions_part1_groundwork/src/main.rs +++ b/11_exceptions_part1_groundwork/src/main.rs @@ -107,8 +107,6 @@ #![allow(clippy::upper_case_acronyms)] #![allow(incomplete_features)] #![feature(const_fn_fn_ptr_basics)] -#![feature(const_generics)] -#![feature(const_panic)] #![feature(core_intrinsics)] #![feature(format_args_nl)] #![feature(global_asm)] diff --git a/12_integrated_testing/README.md b/12_integrated_testing/README.md index c25e3047..651b8ae0 100644 --- a/12_integrated_testing/README.md +++ b/12_integrated_testing/README.md @@ -1281,7 +1281,7 @@ diff -uNr 11_exceptions_part1_groundwork/src/exception.rs 12_integrated_testing/ diff -uNr 11_exceptions_part1_groundwork/src/lib.rs 12_integrated_testing/src/lib.rs --- 11_exceptions_part1_groundwork/src/lib.rs +++ 12_integrated_testing/src/lib.rs -@@ -0,0 +1,187 @@ +@@ -0,0 +1,185 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +// +// Copyright (c) 2018-2021 Andre Richter @@ -1393,8 +1393,6 @@ diff -uNr 11_exceptions_part1_groundwork/src/lib.rs 12_integrated_testing/src/li +#![allow(clippy::upper_case_acronyms)] +#![allow(incomplete_features)] +#![feature(const_fn_fn_ptr_basics)] -+#![feature(const_generics)] -+#![feature(const_panic)] +#![feature(core_intrinsics)] +#![feature(format_args_nl)] +#![feature(global_asm)] @@ -1473,7 +1471,7 @@ diff -uNr 11_exceptions_part1_groundwork/src/lib.rs 12_integrated_testing/src/li diff -uNr 11_exceptions_part1_groundwork/src/main.rs 12_integrated_testing/src/main.rs --- 11_exceptions_part1_groundwork/src/main.rs +++ 12_integrated_testing/src/main.rs -@@ -6,127 +6,12 @@ +@@ -6,125 +6,12 @@ #![doc(html_logo_url = "https://git.io/JeGIp")] //! The `kernel` binary. @@ -1578,8 +1576,6 @@ diff -uNr 11_exceptions_part1_groundwork/src/main.rs 12_integrated_testing/src/m -#![allow(clippy::upper_case_acronyms)] -#![allow(incomplete_features)] -#![feature(const_fn_fn_ptr_basics)] --#![feature(const_generics)] --#![feature(const_panic)] -#![feature(core_intrinsics)] + #![feature(format_args_nl)] @@ -1603,7 +1599,7 @@ diff -uNr 11_exceptions_part1_groundwork/src/main.rs 12_integrated_testing/src/m /// Early init code. /// -@@ -137,6 +22,7 @@ +@@ -135,6 +22,7 @@ /// - MMU + Data caching must be activated at the earliest. Without it, any atomic operations, /// e.g. the yet-to-be-introduced spinlocks in the device drivers (which currently employ /// NullLocks instead of spinlocks), will fail to work (properly) on the RPi SoCs. @@ -1611,7 +1607,7 @@ diff -uNr 11_exceptions_part1_groundwork/src/main.rs 12_integrated_testing/src/m unsafe fn kernel_init() -> ! { use driver::interface::DriverManager; use memory::mmu::interface::MMU; -@@ -163,15 +49,9 @@ +@@ -161,15 +49,9 @@ fn kernel_main() -> ! { use bsp::console::console; use console::interface::All; @@ -1628,7 +1624,7 @@ diff -uNr 11_exceptions_part1_groundwork/src/main.rs 12_integrated_testing/src/m info!("Booting on: {}", bsp::board_name()); info!("MMU online. Special regions:"); -@@ -197,31 +77,6 @@ +@@ -195,31 +77,6 @@ info!(" {}. {}", i + 1, driver.compatible()); } diff --git a/12_integrated_testing/src/_arch/aarch64/memory/mmu.rs b/12_integrated_testing/src/_arch/aarch64/memory/mmu.rs index 99991b6f..f2326700 100644 --- a/12_integrated_testing/src/_arch/aarch64/memory/mmu.rs +++ b/12_integrated_testing/src/_arch/aarch64/memory/mmu.rs @@ -137,7 +137,7 @@ impl memory::mmu::interface::MMU for MemoryManagementUnit { // Populate translation tables. KERNEL_TABLES .populate_tt_entries() - .map_err(|e| MMUEnableError::Other(e))?; + .map_err(MMUEnableError::Other)?; // Set the "Translation Table Base Register". TTBR0_EL1.set_baddr(KERNEL_TABLES.phys_base_address()); diff --git a/12_integrated_testing/src/lib.rs b/12_integrated_testing/src/lib.rs index b8370a54..723b2a80 100644 --- a/12_integrated_testing/src/lib.rs +++ b/12_integrated_testing/src/lib.rs @@ -109,8 +109,6 @@ #![allow(clippy::upper_case_acronyms)] #![allow(incomplete_features)] #![feature(const_fn_fn_ptr_basics)] -#![feature(const_generics)] -#![feature(const_panic)] #![feature(core_intrinsics)] #![feature(format_args_nl)] #![feature(global_asm)] diff --git a/13_exceptions_part2_peripheral_IRQs/README.md b/13_exceptions_part2_peripheral_IRQs/README.md index b8cf351c..a3ec743e 100644 --- a/13_exceptions_part2_peripheral_IRQs/README.md +++ b/13_exceptions_part2_peripheral_IRQs/README.md @@ -2416,10 +2416,10 @@ diff -uNr 12_integrated_testing/src/lib.rs 13_exceptions_part2_peripheral_IRQs/s +#![feature(asm)] #![feature(const_fn_fn_ptr_basics)] +#![feature(const_fn_trait_bound)] - #![feature(const_generics)] - #![feature(const_panic)] #![feature(core_intrinsics)] -@@ -134,6 +136,7 @@ + #![feature(format_args_nl)] + #![feature(global_asm)] +@@ -132,6 +134,7 @@ pub mod exception; pub mod memory; pub mod print; diff --git a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu.rs b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu.rs index 99991b6f..f2326700 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu.rs @@ -137,7 +137,7 @@ impl memory::mmu::interface::MMU for MemoryManagementUnit { // Populate translation tables. KERNEL_TABLES .populate_tt_entries() - .map_err(|e| MMUEnableError::Other(e))?; + .map_err(MMUEnableError::Other)?; // Set the "Translation Table Base Register". TTBR0_EL1.set_baddr(KERNEL_TABLES.phys_base_address()); diff --git a/13_exceptions_part2_peripheral_IRQs/src/lib.rs b/13_exceptions_part2_peripheral_IRQs/src/lib.rs index 9c67f1ed..af4f6240 100644 --- a/13_exceptions_part2_peripheral_IRQs/src/lib.rs +++ b/13_exceptions_part2_peripheral_IRQs/src/lib.rs @@ -111,8 +111,6 @@ #![feature(asm)] #![feature(const_fn_fn_ptr_basics)] #![feature(const_fn_trait_bound)] -#![feature(const_generics)] -#![feature(const_panic)] #![feature(core_intrinsics)] #![feature(format_args_nl)] #![feature(global_asm)] diff --git a/14_virtual_mem_part2_mmio_remap/README.md b/14_virtual_mem_part2_mmio_remap/README.md index d178e9c1..c91302f8 100644 --- a/14_virtual_mem_part2_mmio_remap/README.md +++ b/14_virtual_mem_part2_mmio_remap/README.md @@ -798,7 +798,7 @@ diff -uNr 13_exceptions_part2_peripheral_IRQs/src/_arch/aarch64/memory/mmu.rs 14 - // Populate translation tables. - KERNEL_TABLES - .populate_tt_entries() -- .map_err(|e| MMUEnableError::Other(e))?; +- .map_err(MMUEnableError::Other)?; - // Set the "Translation Table Base Register". - TTBR0_EL1.set_baddr(KERNEL_TABLES.phys_base_address()); @@ -2149,15 +2149,15 @@ diff -uNr 13_exceptions_part2_peripheral_IRQs/src/driver.rs 14_virtual_mem_part2 diff -uNr 13_exceptions_part2_peripheral_IRQs/src/lib.rs 14_virtual_mem_part2_mmio_remap/src/lib.rs --- 13_exceptions_part2_peripheral_IRQs/src/lib.rs +++ 14_virtual_mem_part2_mmio_remap/src/lib.rs -@@ -109,6 +109,7 @@ - #![allow(clippy::upper_case_acronyms)] - #![allow(incomplete_features)] - #![feature(asm)] -+#![feature(const_evaluatable_checked)] - #![feature(const_fn_fn_ptr_basics)] +@@ -113,6 +113,7 @@ #![feature(const_fn_trait_bound)] - #![feature(const_generics)] -@@ -130,6 +131,7 @@ + #![feature(core_intrinsics)] + #![feature(format_args_nl)] ++#![feature(generic_const_exprs)] + #![feature(global_asm)] + #![feature(linkage)] + #![feature(panic_info_message)] +@@ -128,6 +129,7 @@ mod synchronization; pub mod bsp; diff --git a/14_virtual_mem_part2_mmio_remap/src/lib.rs b/14_virtual_mem_part2_mmio_remap/src/lib.rs index 002e14b9..78baa7d8 100644 --- a/14_virtual_mem_part2_mmio_remap/src/lib.rs +++ b/14_virtual_mem_part2_mmio_remap/src/lib.rs @@ -109,13 +109,11 @@ #![allow(clippy::upper_case_acronyms)] #![allow(incomplete_features)] #![feature(asm)] -#![feature(const_evaluatable_checked)] #![feature(const_fn_fn_ptr_basics)] #![feature(const_fn_trait_bound)] -#![feature(const_generics)] -#![feature(const_panic)] #![feature(core_intrinsics)] #![feature(format_args_nl)] +#![feature(generic_const_exprs)] #![feature(global_asm)] #![feature(linkage)] #![feature(panic_info_message)] diff --git a/15_virtual_mem_part3_precomputed_tables/README.md b/15_virtual_mem_part3_precomputed_tables/README.md index b6a2b5b6..c285c067 100644 --- a/15_virtual_mem_part3_precomputed_tables/README.md +++ b/15_virtual_mem_part3_precomputed_tables/README.md @@ -1613,7 +1613,7 @@ diff -uNr 14_virtual_mem_part2_mmio_remap/translation_table_tool/arch.rb 15_virt + + def self.attr_bitfield(name, offset, num_bits) + define_method("#{name}=") do |bits| -+ mask = 2**num_bits - 1 ++ mask = (2**num_bits) - 1 + + raise "Input out of range: #{name} = 0x#{bits.to_s(16)}" if (bits & ~mask).positive? + @@ -2167,7 +2167,7 @@ diff -uNr 14_virtual_mem_part2_mmio_remap/translation_table_tool/generic.rb 15_v + + num_pages = size / granule_size + super(num_pages) do |i| -+ i * granule_size + start_addr ++ (i * granule_size) + start_addr + end + end +end @@ -2232,8 +2232,8 @@ diff -uNr 14_virtual_mem_part2_mmio_remap/translation_table_tool/generic.rb 15_v + print ' Kernel table struct at physical ' + puts BSP.phys_table_struct_start_addr.to_hex_underscore + -+ IO.binwrite(kernel_binary, TRANSLATION_TABLES.to_binary, -+ BSP.table_struct_offset_in_kernel_elf) ++ File.binwrite(kernel_binary, TRANSLATION_TABLES.to_binary, ++ BSP.table_struct_offset_in_kernel_elf) +end + +def kernel_patch_base_addr(kernel_binary) @@ -2243,8 +2243,8 @@ diff -uNr 14_virtual_mem_part2_mmio_remap/translation_table_tool/generic.rb 15_v + print ') at physical ' + puts BSP.phys_tables_base_addr.to_hex_underscore + -+ IO.binwrite(kernel_binary, TRANSLATION_TABLES.phys_tables_base_addr_binary, -+ BSP.phys_tables_base_addr_offset_in_kernel_elf) ++ File.binwrite(kernel_binary, TRANSLATION_TABLES.phys_tables_base_addr_binary, ++ BSP.phys_tables_base_addr_offset_in_kernel_elf) +end diff -uNr 14_virtual_mem_part2_mmio_remap/translation_table_tool/main.rb 15_virtual_mem_part3_precomputed_tables/translation_table_tool/main.rb diff --git a/15_virtual_mem_part3_precomputed_tables/src/lib.rs b/15_virtual_mem_part3_precomputed_tables/src/lib.rs index 002e14b9..78baa7d8 100644 --- a/15_virtual_mem_part3_precomputed_tables/src/lib.rs +++ b/15_virtual_mem_part3_precomputed_tables/src/lib.rs @@ -109,13 +109,11 @@ #![allow(clippy::upper_case_acronyms)] #![allow(incomplete_features)] #![feature(asm)] -#![feature(const_evaluatable_checked)] #![feature(const_fn_fn_ptr_basics)] #![feature(const_fn_trait_bound)] -#![feature(const_generics)] -#![feature(const_panic)] #![feature(core_intrinsics)] #![feature(format_args_nl)] +#![feature(generic_const_exprs)] #![feature(global_asm)] #![feature(linkage)] #![feature(panic_info_message)] diff --git a/15_virtual_mem_part3_precomputed_tables/translation_table_tool/arch.rb b/15_virtual_mem_part3_precomputed_tables/translation_table_tool/arch.rb index a6e5cf68..3a8b41d9 100644 --- a/15_virtual_mem_part3_precomputed_tables/translation_table_tool/arch.rb +++ b/15_virtual_mem_part3_precomputed_tables/translation_table_tool/arch.rb @@ -12,7 +12,7 @@ class BitField def self.attr_bitfield(name, offset, num_bits) define_method("#{name}=") do |bits| - mask = 2**num_bits - 1 + mask = (2**num_bits) - 1 raise "Input out of range: #{name} = 0x#{bits.to_s(16)}" if (bits & ~mask).positive? diff --git a/15_virtual_mem_part3_precomputed_tables/translation_table_tool/generic.rb b/15_virtual_mem_part3_precomputed_tables/translation_table_tool/generic.rb index 2ab666af..ca952bc8 100644 --- a/15_virtual_mem_part3_precomputed_tables/translation_table_tool/generic.rb +++ b/15_virtual_mem_part3_precomputed_tables/translation_table_tool/generic.rb @@ -44,7 +44,7 @@ class PageArray < Array num_pages = size / granule_size super(num_pages) do |i| - i * granule_size + start_addr + (i * granule_size) + start_addr end end end @@ -109,8 +109,8 @@ def kernel_patch_tables(kernel_binary) print ' Kernel table struct at physical ' puts BSP.phys_table_struct_start_addr.to_hex_underscore - IO.binwrite(kernel_binary, TRANSLATION_TABLES.to_binary, - BSP.table_struct_offset_in_kernel_elf) + File.binwrite(kernel_binary, TRANSLATION_TABLES.to_binary, + BSP.table_struct_offset_in_kernel_elf) end def kernel_patch_base_addr(kernel_binary) @@ -120,6 +120,6 @@ def kernel_patch_base_addr(kernel_binary) print ') at physical ' puts BSP.phys_tables_base_addr.to_hex_underscore - IO.binwrite(kernel_binary, TRANSLATION_TABLES.phys_tables_base_addr_binary, - BSP.phys_tables_base_addr_offset_in_kernel_elf) + File.binwrite(kernel_binary, TRANSLATION_TABLES.phys_tables_base_addr_binary, + BSP.phys_tables_base_addr_offset_in_kernel_elf) end diff --git a/16_virtual_mem_part4_higher_half_kernel/README.md b/16_virtual_mem_part4_higher_half_kernel/README.md index 15629a2a..02c914e3 100644 --- a/16_virtual_mem_part4_higher_half_kernel/README.md +++ b/16_virtual_mem_part4_higher_half_kernel/README.md @@ -584,7 +584,7 @@ diff -uNr 15_virtual_mem_part3_precomputed_tables/src/bsp/raspberrypi/memory/mmu diff -uNr 15_virtual_mem_part3_precomputed_tables/src/lib.rs 16_virtual_mem_part4_higher_half_kernel/src/lib.rs --- 15_virtual_mem_part3_precomputed_tables/src/lib.rs +++ 16_virtual_mem_part4_higher_half_kernel/src/lib.rs -@@ -154,11 +154,6 @@ +@@ -152,11 +152,6 @@ ) } diff --git a/16_virtual_mem_part4_higher_half_kernel/src/lib.rs b/16_virtual_mem_part4_higher_half_kernel/src/lib.rs index c75a96ea..31d988d9 100644 --- a/16_virtual_mem_part4_higher_half_kernel/src/lib.rs +++ b/16_virtual_mem_part4_higher_half_kernel/src/lib.rs @@ -109,13 +109,11 @@ #![allow(clippy::upper_case_acronyms)] #![allow(incomplete_features)] #![feature(asm)] -#![feature(const_evaluatable_checked)] #![feature(const_fn_fn_ptr_basics)] #![feature(const_fn_trait_bound)] -#![feature(const_generics)] -#![feature(const_panic)] #![feature(core_intrinsics)] #![feature(format_args_nl)] +#![feature(generic_const_exprs)] #![feature(global_asm)] #![feature(linkage)] #![feature(panic_info_message)] diff --git a/16_virtual_mem_part4_higher_half_kernel/translation_table_tool/arch.rb b/16_virtual_mem_part4_higher_half_kernel/translation_table_tool/arch.rb index a6e5cf68..3a8b41d9 100644 --- a/16_virtual_mem_part4_higher_half_kernel/translation_table_tool/arch.rb +++ b/16_virtual_mem_part4_higher_half_kernel/translation_table_tool/arch.rb @@ -12,7 +12,7 @@ class BitField def self.attr_bitfield(name, offset, num_bits) define_method("#{name}=") do |bits| - mask = 2**num_bits - 1 + mask = (2**num_bits) - 1 raise "Input out of range: #{name} = 0x#{bits.to_s(16)}" if (bits & ~mask).positive? diff --git a/16_virtual_mem_part4_higher_half_kernel/translation_table_tool/generic.rb b/16_virtual_mem_part4_higher_half_kernel/translation_table_tool/generic.rb index 2ab666af..ca952bc8 100644 --- a/16_virtual_mem_part4_higher_half_kernel/translation_table_tool/generic.rb +++ b/16_virtual_mem_part4_higher_half_kernel/translation_table_tool/generic.rb @@ -44,7 +44,7 @@ class PageArray < Array num_pages = size / granule_size super(num_pages) do |i| - i * granule_size + start_addr + (i * granule_size) + start_addr end end end @@ -109,8 +109,8 @@ def kernel_patch_tables(kernel_binary) print ' Kernel table struct at physical ' puts BSP.phys_table_struct_start_addr.to_hex_underscore - IO.binwrite(kernel_binary, TRANSLATION_TABLES.to_binary, - BSP.table_struct_offset_in_kernel_elf) + File.binwrite(kernel_binary, TRANSLATION_TABLES.to_binary, + BSP.table_struct_offset_in_kernel_elf) end def kernel_patch_base_addr(kernel_binary) @@ -120,6 +120,6 @@ def kernel_patch_base_addr(kernel_binary) print ') at physical ' puts BSP.phys_tables_base_addr.to_hex_underscore - IO.binwrite(kernel_binary, TRANSLATION_TABLES.phys_tables_base_addr_binary, - BSP.phys_tables_base_addr_offset_in_kernel_elf) + File.binwrite(kernel_binary, TRANSLATION_TABLES.phys_tables_base_addr_binary, + BSP.phys_tables_base_addr_offset_in_kernel_elf) end diff --git a/X1_JTAG_boot/jtag_boot_rpi3.img b/X1_JTAG_boot/jtag_boot_rpi3.img index b216c1e7ce7c72e4d28dc6eadd347147aee75e8e..672a66406909bc5295e4faf3dcb7ab54002e3960 100755 GIT binary patch delta 4539 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 delta 4258 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 delta 3653 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 diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 119b34fa..6051e9b6 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "nightly-2021-07-12" +channel = "nightly-2021-10-10" components = ["llvm-tools-preview"] targets = ["aarch64-unknown-none-softfloat"]