Neotron Pico - BIOS

Neotron Pico BIOS.

back to main Neotron Pico page.

History

2024-12-20: try to flash and run it

    Finished `release` profile [optimized + debuginfo] target(s) in 0.10s
tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ cargo run --release
    Finished `release` profile [optimized + debuginfo] target(s) in 0.11s
     Running `probe-rs run --chip RP2040 --speed 10000 target/thumbv6m-none-eabi/release/neotron-pico-bios`
     Erasing sectors  [00:00:00] [#######################################################################################] 60.00 KiB/60.00 KiB @ 70.65 KiB/s (eta 0s )
 Programming pages    [00:00:01] [#######################################################################################] 60.00 KiB/60.00 KiB @ 33.84 KiB/s (eta 0s )    Finished in 2.668s
Error: An ARM specific error occurred.

Caused by:
    0: Error using access port
    1: Failed to read register DRW at address 0x0000000c
    2: An error occurred in the communication with an access port or debug port.
    3: Target device did not respond to request.

ok, put the Pi Pico in bootloader mode (by resetting it while holding the BOOT button on the Pico itself) and try again

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ cargo run --release
    Finished `release` profile [optimized + debuginfo] target(s) in 0.11s
     Running `probe-rs run --chip RP2040 --speed 10000 target/thumbv6m-none-eabi/release/neotron-pico-bios`
     Erasing sectors  [00:00:00] [#######################################################################################] 60.00 KiB/60.00 KiB @ 69.06 KiB/s (eta 0s )
 Programming pages    [00:00:01] [#######################################################################################] 60.00 KiB/60.00 KiB @ 33.54 KiB/s (eta 0s )    Finished in 2.697s
INFO WD Scratch is 0x00000000
└─ src/main.rs:549
INFO Painting Core 1 stack: 2003ffc0..20041c00
└─ src/main.rs:740
INFO Painting Core 1 stack @ 2003f7a8..2003fba8
└─ src/main.rs:747
INFO Neotron BIOS v0.7.0 (git:v0.7.0-56-ga60e260) starting...
└─ src/main.rs:374
[..]

2024-12-20: build the updated one

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ cargo build --release
    Updating crates.io index
  Downloaded portable-atomic v1.10.0
  Downloaded grounded v0.2.0
  Downloaded 2 crates (184.8 KB) in 0.85s
   Compiling cortex-m v0.7.7
   Compiling portable-atomic v1.10.0
   Compiling neotron-pico-bios v0.7.0 (/zs/tingo/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS)
   Compiling rp2040-pac v0.6.0
   Compiling panic-probe v0.2.1
   Compiling usb-device v0.3.2
   Compiling grounded v0.2.0
   Compiling rp2040-hal v0.10.1
    Finished `release` profile [optimized + debuginfo] target(s) in 25.57s

2024-12-20: update to latest fixes via git pull

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ git log
commit a60e260a02dae9c55f931d2f0aa67a0c24ea560c (HEAD -> develop)
Merge: e60ab7c e7e72c9
Author: Torfinn Ingolfsen <tingox@gmail.com>
Date:   Fri Dec 20 18:10:37 2024 +0100

    Merge branch 'develop' of https://github.com/Neotron-Compute/Neotron-Pico-BIOS into develop

commit e7e72c950a928da92f3b441859329ff386217eb0 (origin/develop, origin/HEAD)
Merge: 4efc06a 41cee80
Author: Jonathan 'theJPster' Pallant <github@thejpster.org.uk>
Date:   Thu Dec 19 18:32:37 2024 +0000

    Merge pull request #114 from Neotron-Compute/fix-pixel-timings

    Fix pixel timings

commit 41cee805fe35451feed1d24beb08172b02fbe43e (origin/fix-pixel-timings)
Author: Jonathan 'theJPster' Pallant <github@thejpster.org.uk>
Date:   Sun Dec 15 22:52:38 2024 +0000

    Nudge the video left.

    Makes my VGA to HDMI converter a bit happier. Need to check with an oscilloscope to see whether it's right or not.
[..]

2024-12-20: build bios again, now with rust 1.83: rust version

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ rustc --version
rustc 1.83.0 (90b35a623 2024-11-26)

build

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ cargo build --release
   Compiling proc-macro2 v1.0.85
   Compiling unicode-ident v1.0.12
   Compiling autocfg v1.3.0
   Compiling syn v1.0.109
   Compiling libc v0.2.155
   Compiling version_check v0.9.4
   Compiling num-traits v0.2.19
   Compiling nb v1.1.0
   Compiling proc-macro-error-attr v1.0.4
   Compiling nb v0.1.3
   Compiling void v1.0.2
   Compiling cfg-if v1.0.0
   Compiling embedded-hal v0.2.7
   Compiling quote v1.0.36
   Compiling proc-macro-error v1.0.4
   Compiling syn v2.0.66
   Compiling semver-parser v0.7.0
   Compiling thiserror v1.0.61
   Compiling semver v0.9.0
   Compiling lock_api v0.4.12
   Compiling parking_lot_core v0.9.10
   Compiling memchr v2.7.2
   Compiling defmt v0.3.2
   Compiling cortex-m v0.7.7
   Compiling rustc_version v0.2.3
   Compiling aho-corasick v1.1.3
   Compiling dirs-sys-next v0.1.2
   Compiling scopeguard v1.2.0
   Compiling cortex-m-rt v0.7.3
   Compiling crunchy v0.2.2
   Compiling smallvec v1.13.2
   Compiling byteorder v1.5.0
   Compiling paste v1.0.15
   Compiling regex-syntax v0.8.3
   Compiling defmt-macros v0.3.9
   Compiling regex-automata v0.4.6
   Compiling dirs-next v2.0.0
   Compiling bare-metal v0.2.5
   Compiling thiserror-impl v1.0.61
   Compiling num_enum_derive v0.5.11
   Compiling equivalent v1.0.1
   Compiling siphasher v0.3.11
   Compiling hashbrown v0.14.5
   Compiling critical-section v1.1.2
   Compiling tiny-keccak v2.0.2
   Compiling stable_deref_trait v1.2.0
   Compiling semver v1.0.23
   Compiling indexmap v2.2.6
   Compiling phf_shared v0.10.0
   Compiling cortex-m-rt-macros v0.7.0
   Compiling defmt-parser v0.3.4
   Compiling term v0.7.0
   Compiling parking_lot v0.12.3
   Compiling regex v1.10.4
   Compiling vcell v0.1.3
   Compiling new_debug_unreachable v1.0.6
   Compiling fixedbitset v0.4.2
   Compiling bitflags v1.3.2
   Compiling bit-vec v0.6.3
   Compiling arrayvec v0.7.4
   Compiling once_cell v1.19.0
   Compiling precomputed-hash v0.1.1
   Compiling log v0.4.21
   Compiling either v1.12.0
   Compiling string_cache v0.8.7
   Compiling itertools v0.10.5
   Compiling ena v0.14.3
   Compiling bit-set v0.5.3
   Compiling petgraph v0.6.5
   Compiling lalrpop-util v0.19.12
   Compiling volatile-register v0.2.2
   Compiling ascii-canvas v3.0.0
   Compiling num_enum v0.5.11
   Compiling is-terminal v0.4.12
   Compiling frunk_core v0.4.2
   Compiling unicode-xid v0.2.4
   Compiling heapless v0.8.0
   Compiling diff v0.1.13
   Compiling portable-atomic v1.6.0
   Compiling bitfield v0.13.2
   Compiling regex-syntax v0.6.29
   Compiling rustc_version v0.4.0
   Compiling chrono v0.4.38
   Compiling hash32 v0.3.1
   Compiling embedded-hal v1.0.0
   Compiling rp2040-pac v0.6.0
   Compiling debug-helper v0.3.13
   Compiling frunk_proc_macro_helpers v0.1.2
   Compiling atomic-polyfill v1.0.3
   Compiling embedded-hal-async v1.0.0
   Compiling lalrpop v0.19.12
   Compiling frunk_derives v0.4.2
   Compiling crc-any v2.5.0
   Compiling heapless v0.7.17
   Compiling vte_generate_state_changes v0.1.1
   Compiling pc-keyboard v0.7.0
   Compiling gcd v2.3.0
   Compiling neotron-ffi v0.1.0
   Compiling utf8parse v0.2.1
   Compiling vte v0.11.1
   Compiling neotron-common-bios v0.12.0
   Compiling pio v0.2.1
   Compiling fugit v0.3.7
   Compiling rp2040-hal-macros v0.1.0
   Compiling frunk v0.4.2
   Compiling usb-device v0.3.2
   Compiling rp2040-boot2 v0.3.0
   Compiling rtcc v0.3.2
   Compiling embedded-hal-nb v1.0.0
   Compiling embedded-dma v0.2.0
   Compiling hash32 v0.2.1
   Compiling bitfield v0.14.0
   Compiling defmt-rtt v0.4.1
   Compiling termcolor v1.4.1
   Compiling unicode-width v0.1.13
   Compiling panic-probe v0.2.1
   Compiling rp-pico v0.9.0
   Compiling embedded-io v0.6.1
   Compiling rand_core v0.6.4
   Compiling codespan-reporting v0.11.1
   Compiling neotron-pico-bios v0.7.0 (/zs/tingo/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS)
   Compiling embedded-sdmmc v0.6.0
   Compiling ds1307 v0.5.0
   Compiling mcp794xx v0.3.0
   Compiling neotron-bmc-protocol v0.1.0
   Compiling neotron-bmc-commands v0.2.0
   Compiling shared-bus v0.3.0 (https://github.com/thejpster/shared-bus?rev=639a2e6#639a2e68)
   Compiling tlv320aic23 v0.1.0
   Compiling rp2040-hal v0.10.1
   Compiling pio-parser v0.2.2
   Compiling pio-proc v0.2.2
warning: unnecessary `unsafe` block
    --> src/main.rs:1918:12
     |
1918 |                 start: unsafe { addr_of!(_ram_os_start) } as *mut u8,
     |                        ^^^^^^ unnecessary `unsafe` block
     |
     = note: `#[warn(unused_unsafe)]` on by default

warning: unnecessary `unsafe` block
    --> src/main.rs:1919:13
     |
1919 |                 length: unsafe { addr_of!(_ram_os_len) } as usize,
     |                         ^^^^^^ unnecessary `unsafe` block

warning: creating a shared reference to mutable static is discouraged
   --> src/main.rs:745:40
    |
745 |         info!("Painting Core 1 stack: {:?}", CORE1_STACK.as_ptr_range());
    |                                              ^^^^^^^^^^^ shared reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
    = note: `#[warn(static_mut_refs)]` on by default

warning: creating a mutable reference to mutable static is discouraged
   --> src/main.rs:746:12
    |
746 |         for b in CORE1_STACK.iter_mut() {
    |                  ^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
    --> src/main.rs:2668:13
     |
2668 |     static mut LOCAL_IRQ_PIN: Option<IrqPin> = None;
     |                ^^^^^^^^^^^^^ mutable reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
   --> src/i2s.rs:185:42
    |
185 |     let (q_producer, q_consumer) = unsafe { SAMPLE_QUEUE.split() };
    |                                             ^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
   --> src/i2s.rs:190:3
    |
190 | /         PLAYBACK_TO_PIO.replace(PlaybackToPio {
191 | |             pio_fifo: pio_tx_fifo,
192 | |             ram_fifo: q_consumer,
193 | |         });
    | |__________^ mutable reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a mutable reference to mutable static is discouraged
   --> src/i2s.rs:212:29
    |
212 |     let Some(fifo) = (unsafe { PLAYBACK_TO_PIO.as_mut() }) else {
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
    |
    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives

warning: creating a shared reference to mutable static is discouraged
    --> src/vga/mod.rs:1882:30
     |
1882 |         .write(|w| unsafe { w.bits(TIMING_BUFFER.visible_line.data.as_ptr() as usize as u32) });
     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
    --> src/vga/mod.rs:1888:30
     |
1888 |         .write(|w| unsafe { w.bits(TIMING_BUFFER.visible_line.data.len() as u32) });
     |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
    --> src/vga/mod.rs:1932:12
     |
1932 |         unsafe { super::CORE1_STACK.as_ptr() },
     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
    --> src/vga/mod.rs:1933:12
     |
1933 |         unsafe { super::CORE1_STACK.len() * core::mem::size_of::<usize>() }
     |                  ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
    --> src/vga/mod.rs:1943:4
     |
1943 |             super::CORE1_STACK.len(),
     |             ^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives

warning: creating a shared reference to mutable static is discouraged
    --> src/vga/mod.rs:2156:3
     |
2156 |         &TIMING_BUFFER.visible_line
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer
     |
2156 |         &raw const TIMING_BUFFER.visible_line
     |         ~~~~~~~~~~

warning: creating a shared reference to mutable static is discouraged
    --> src/vga/mod.rs:2159:3
     |
2159 |         &TIMING_BUFFER.vblank_porch_buffer
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer
     |
2159 |         &raw const TIMING_BUFFER.vblank_porch_buffer
     |         ~~~~~~~~~~

warning: creating a shared reference to mutable static is discouraged
    --> src/vga/mod.rs:2162:3
     |
2162 |         &TIMING_BUFFER.vblank_sync_buffer
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer
     |
2162 |         &raw const TIMING_BUFFER.vblank_sync_buffer
     |         ~~~~~~~~~~

warning: creating a shared reference to mutable static is discouraged
    --> src/vga/mod.rs:2165:3
     |
2165 |         &TIMING_BUFFER.vblank_porch_buffer
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
     |
     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html>
     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
help: use `&raw const` instead to create a raw pointer
     |
2165 |         &raw const TIMING_BUFFER.vblank_porch_buffer
     |         ~~~~~~~~~~

warning: `neotron-pico-bios` (bin "neotron-pico-bios") generated 17 warnings
    Finished `release` profile [optimized + debuginfo] target(s) in 1m 09s

2024-08-15: build and upload latest bios

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ DEFMT_LOG=debug cargo run --release
   Compiling defmt-macros v0.3.9
   Compiling defmt v0.3.2
   Compiling rp2040-hal v0.10.1
   Compiling defmt-rtt v0.4.1
   Compiling embedded-sdmmc v0.6.0
   Compiling neotron-bmc-protocol v0.1.0
   Compiling rp-pico v0.9.0
   Compiling neotron-pico-bios v0.7.0 (/zs/tingo/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS)
    Finished `release` profile [optimized + debuginfo] target(s) in 17.34s
     Running `probe-rs run --chip RP2040 --speed 10000 target/thumbv6m-none-eabi/release/neotron-pico-bios`
     Erasing sectors  [00:00:00] [#########################################################################################] 60.00 KiB/60.00 KiB @ 70.81 KiB/s (eta 0s )
 Programming pages    [00:00:01] [#########################################################################################] 60.00 KiB/60.00 KiB @ 34.00 KiB/s (eta 0s )    Finished in 2.657s
Error: An ARM specific error occurred.

Caused by:
    0: Error using access port
    1: Failed to read register DRW at address 0x0000000c
    2: An error occurred in the communication with an access port or debug port.
    3: Target device did not respond to request.

and now it says "System Hardfault". Try in bootloader mode

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ DEFMT_LOG=debug cargo run --release
    Finished `release` profile [optimized + debuginfo] target(s) in 0.11s
     Running `probe-rs run --chip RP2040 --speed 10000 target/thumbv6m-none-eabi/release/neotron-pico-bios`
     Erasing sectors  [00:00:00] [#########################################################################################] 60.00 KiB/60.00 KiB @ 71.50 KiB/s (eta 0s )
 Programming pages    [00:00:01] [#########################################################################################] 60.00 KiB/60.00 KiB @ 34.10 KiB/s (eta 0s )    Finished in 2.637s
ERROR probe_rs::cmd::run: Error attempting to attach to RTT: RTT control block not found in target memory.
- Make sure RTT is initialized on the target, AND that there are NO target breakpoints before RTT initalization.
- For VSCode and probe-rs-debugger users, using `halt_after_reset:true` in your `launch.json` file will prevent RTT 
    initialization from happening on time.
- Depending on the target, sleep modes can interfere with RTT. Continuing without RTT...     
DEBUG probe_rs::debug::unit_info: Found DIE, now checking for inlined functions: name=None
Frame 0: HardFault @ 0x10009bd8
Frame 1: __udf @ 0x1000945c inline
       ./asm/lib.rs:48:1
Frame 2: __udf @ 0x000000001000945c
       ./asm/lib.rs:51:17
Frame 3: <unknown function @ 0x10008ad0> @ 0x10008ad0
       /home/tingo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/pc-keyboard-0.7.0/src/scancodes/set2.rs:25:1

2024-08-15: check that the probe is detected

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ probe-run --list-probes
the following probes were found:
[0]: Picoprobe CMSIS-DAP (VID: 2e8a, PID: 000c, Serial: E660D4A0A71CA332, CmsisDap)

2024-08-15: I have updated the repo (and merged conflicts)

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ git log --oneline
e60ab7c (HEAD -> develop) fixed merge conflict
fadb760 (origin/develop, origin/HEAD) Merge pull request #108 from Neotron-Compute/update-flash-instructions
a4bee47 (origin/update-flash-instructions) Clarify which OS binary in README.md
478988f Fix clippy warnings about old chrono API
aaedb42 Update Cargo.lock
67dd556 Remove OS from build.
8ff598e Mark ELF file with .elf extension
cedd5e1 Use rustup to grab latest stable Rust.
0b2bc59 Merge pull request #105 from Neotron-Compute/add-elf2uf2
bbf73fe Merge pull request #104 from Neotron-Compute/update-os-to-081
d7f07d8 Remove more static mut referencing.
a1f5d57 Remove the static mut from the video.
ab1f620 OK, let's force us to fix those warnings
ae88562 Don't use clippy action.
60762ce Update/remove old actions.
352ca4f Upload artefacts from non-release builds.
8c7e30a Add UF2 file to output
5b35add (origin/update-os-to-081) Bump OS to 0.8.1
7f5be23 Merge pull request #102 from jannic-dev-forks/rp2040-hal-0-10
b7d5974 Update rp2040-hal to v0.10
a366c2c Merge pull request #101 from Neotron-Compute/update-video-api
1d8cd0e (origin/update-video-api) Use OS 0.8.0
4b1f9cd Run the debug probe faster
4b1fca0 Add Chunk2 and Chunk4 support.
1f2e0aa Drop the debug link speed.
9e63355 Update github actions.
5b2567d Remove vscode stuff.
0e34f32 Use new common API, and update video code.
182761c Merge pull request #100 from Neotron-Compute/vscode-config
24ea739 (origin/vscode-config) Clippy cleanups.
13b6d38 Use probe-rs for debugging.
668a46a Merge pull request #97 from Neotron-Compute/main
2e4b369 (tag: v0.7.0, origin/main) Merge pull request #96 from Neotron-Compute/release/v0.7.0
3aa8430 Update to 0.7.0
3185652 Merge pull request #95 from Neotron-Compute/update-os
2e65a13 Update to OS v0.7.1
519e3ef Merge pull request #93 from Neotron-Compute/support-i2c

2023-09-17: building latest bios

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ DEFMT_LOG=debug cargo run --release
    Finished release [optimized + debuginfo] target(s) in 0.09s
     Running `probe-rs run --chip RP2040 target/thumbv6m-none-eabi/release/neotron-pico-bios`
     Erasing sectors  [00:00:02] [#######################################################################################] 196.00 KiB/196.00 KiB @ 68.69 KiB/s (eta 0s )
 Programming pages    [00:00:08] [#######################################################################################] 196.00 KiB/196.00 KiB @ 22.14 KiB/s (eta 0s )    Finished in 11.762s
Error: An ARM specific error occurred.

Caused by:
    0: Error using access port
    1: Failed to read register DRW at address 0x0000000c
    2: An error occurred in the communication with an access port or debug port.
    3: Target device did not respond to request.

2023-09-17: installing probe-rs requires a parameter

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ cargo install probe-rs --features="cli"
[..]
  Installing /home/tingo/.cargo/bin/probe-rs
   Installed package `probe-rs v0.20.0` (executables `cargo-embed`, `cargo-flash`, `probe-rs`)

2023-09-17: building BIOS now requires probe-rs. Maybe it always did, I can't remember.

2023-09-17: building latest bios

tingo@kg-core1:~/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS $ DEFMT_LOG=debug cargo run --release
    Updating crates.io index
  Downloaded diff v0.1.13
  Downloaded vte v0.11.1
  Downloaded debug-helper v0.3.13
  Downloaded defmt-rtt v0.4.0
  Downloaded vte_generate_state_changes v0.1.1
  Downloaded crunchy v0.2.2
  Downloaded pio-parser v0.2.2
  Downloaded bit-set v0.5.3
  Downloaded io-lifetimes v1.0.10
  Downloaded bare-metal v0.2.5
  Downloaded tlv320aic23 v0.1.0
  Downloaded pio-proc v0.2.2
  Downloaded nb v0.1.3
  Downloaded lalrpop-util v0.19.12
  Downloaded gcd v2.3.0
  Downloaded ena v0.14.2
  Downloaded tiny-keccak v2.0.2
  Downloaded log v0.4.17
  Downloaded aho-corasick v1.0.1
  Downloaded syn v2.0.15
  Downloaded utf8parse v0.2.1
  Downloaded unicode-xid v0.2.4
  Downloaded termcolor v1.2.0
  Downloaded spin v0.9.8
  Downloaded siphasher v0.3.10
  Downloaded rustc_version v0.4.0
  Downloaded regex-syntax v0.6.29
  Downloaded precomputed-hash v0.1.1
  Downloaded phf_shared v0.10.0
  Downloaded parking_lot v0.12.1
  Downloaded num-integer v0.1.45
  Downloaded itertools v0.10.5
  Downloaded byteorder v1.4.3
  Downloaded petgraph v0.6.3
  Downloaded libc v0.2.142
  Downloaded regex-syntax v0.7.1
  Downloaded regex v1.8.1
  Downloaded rustix v0.37.19
  Downloaded chrono v0.4.24
  Downloaded lalrpop v0.19.12
  Downloaded string_cache v0.8.7
  Downloaded stable_deref_trait v1.2.0
  Downloaded new_debug_unreachable v1.0.4
  Downloaded indexmap v1.9.3
  Downloaded hashbrown v0.12.3
  Downloaded dirs-sys-next v0.1.2
  Downloaded dirs-next v2.0.0
  Downloaded bitflags v1.3.2
  Downloaded autocfg v1.1.0
  Downloaded codespan-reporting v0.11.1
  Downloaded term v0.7.0
  Downloaded usb-device v0.2.9
  Downloaded quote v1.0.26
  Downloaded num-traits v0.2.15
  Downloaded heapless v0.7.16
  Downloaded errno v0.3.1
  Downloaded rp2040-boot2 v0.3.0
  Downloaded proc-macro2 v1.0.56
  Downloaded cortex-m-rt v0.7.3
  Downloaded arrayvec v0.7.2
  Downloaded thiserror-impl v1.0.40
  Downloaded ascii-canvas v3.0.0
  Downloaded bit-vec v0.6.3
  Downloaded rustc_version v0.2.3
  Downloaded parking_lot_core v0.9.7
  Downloaded thiserror v1.0.40
  Downloaded embedded-hal v0.2.7
  Downloaded num_enum v0.5.11
  Downloaded lock_api v0.4.9
  Downloaded either v1.8.1
  Downloaded smallvec v1.10.0
  Downloaded semver v1.0.17
  Downloaded embedded-dma v0.2.0
  Downloaded is-terminal v0.4.7
  Downloaded hash32 v0.2.1
  Downloaded scopeguard v1.1.0
  Downloaded bitfield v0.13.2
  Downloaded volatile-register v0.2.1
  Downloaded semver v0.9.0
  Downloaded num_enum_derive v0.5.11
  Downloaded atomic-polyfill v0.1.11
  Downloaded fixedbitset v0.4.2
  Downloaded semver-parser v0.7.0
  Downloaded void v1.0.2
  Downloaded cortex-m-rt-macros v0.7.0
  Downloaded defmt-parser v0.3.2
  Downloaded shared-bus v0.2.5
  Downloaded neotron-bmc-protocol v0.1.0
  Downloaded neotron-bmc-commands v0.2.0
  Downloaded neotron-ffi v0.1.0
  Downloaded panic-probe v0.2.1
  Downloaded rp2040-hal-macros v0.1.0
  Downloaded atomic-polyfill v1.0.2
  Downloaded defmt v0.3.2
  Downloaded rtcc v0.3.0
  Downloaded ds1307 v0.5.0
  Downloaded defmt-macros v0.3.4
  Downloaded pio v0.2.1
  Downloaded neotron-common-bios v0.11.0
  Downloaded fugit v0.3.6
  Downloaded crc-any v2.4.3
  Downloaded mcp794xx v0.3.0
  Downloaded rp-pico v0.7.0
  Downloaded pc-keyboard v0.7.0
  Downloaded embedded-sdmmc v0.5.0
  Downloaded cortex-m v0.7.7
  Downloaded rp2040-hal v0.8.1
  Downloaded rp2040-pac v0.4.0
  Downloaded 108 crates (6.0 MB) in 1.77s
   Compiling proc-macro2 v1.0.56
   Compiling quote v1.0.26
   Compiling unicode-ident v1.0.8
   Compiling autocfg v1.1.0
   Compiling syn v1.0.109
   Compiling libc v0.2.142
   Compiling cfg-if v1.0.0
   Compiling nb v1.1.0
   Compiling version_check v0.9.4
   Compiling num-traits v0.2.15
   Compiling num-integer v0.1.45
   Compiling nb v0.1.3
   Compiling void v1.0.2
   Compiling embedded-hal v0.2.7
   Compiling semver-parser v0.7.0
   Compiling cortex-m v0.7.7
   Compiling memchr v2.5.0
   Compiling semver v0.9.0
   Compiling proc-macro-error-attr v1.0.4
   Compiling lock_api v0.4.9
   Compiling io-lifetimes v1.0.10
   Compiling parking_lot_core v0.9.7
   Compiling dirs-sys-next v0.1.2
   Compiling rustc_version v0.2.3
   Compiling proc-macro-error v1.0.4
   Compiling syn v2.0.15
   Compiling indexmap v1.9.3
   Compiling rustix v0.37.19
   Compiling smallvec v1.10.0
   Compiling crunchy v0.2.2
   Compiling thiserror v1.0.40
   Compiling paste v1.0.12
   Compiling scopeguard v1.1.0
   Compiling log v0.4.17
   Compiling cortex-m-rt v0.7.3
   Compiling aho-corasick v1.0.1
   Compiling bare-metal v0.2.5
   Compiling dirs-next v2.0.0
   Compiling errno v0.3.1
   Compiling hashbrown v0.12.3
   Compiling tiny-keccak v2.0.2
   Compiling siphasher v0.3.10
   Compiling regex-syntax v0.7.1
   Compiling defmt v0.3.2
   Compiling bitflags v1.3.2
   Compiling thiserror-impl v1.0.40
   Compiling regex v1.8.1
   Compiling phf_shared v0.10.0
   Compiling num_enum_derive v0.5.11
   Compiling cortex-m-rt-macros v0.7.0
   Compiling term v0.7.0
   Compiling parking_lot v0.12.1
   Compiling either v1.8.1
   Compiling once_cell v1.17.1
   Compiling bit-vec v0.6.3
   Compiling precomputed-hash v0.1.1
   Compiling semver v1.0.17
   Compiling arrayvec v0.7.2
   Compiling critical-section v1.1.1
   Compiling fixedbitset v0.4.2
   Compiling new_debug_unreachable v1.0.4
   Compiling defmt-macros v0.3.4
   Compiling vcell v0.1.3
   Compiling volatile-register v0.2.1
   Compiling petgraph v0.6.3
   Compiling string_cache v0.8.7
   Compiling bit-set v0.5.3
   Compiling itertools v0.10.5
   Compiling ena v0.14.2
   Compiling ascii-canvas v3.0.0
   Compiling num_enum v0.5.11
   Compiling defmt-parser v0.3.2
   Compiling lalrpop-util v0.19.12
   Compiling is-terminal v0.4.7
   Compiling unicode-xid v0.2.4
   Compiling bitfield v0.13.2
   Compiling regex-syntax v0.6.29
   Compiling diff v0.1.13
   Compiling chrono v0.4.24
   Compiling rp2040-pac v0.4.0
   Compiling debug-helper v0.3.13
   Compiling stable_deref_trait v1.2.0
   Compiling crc-any v2.4.3
   Compiling rustc_version v0.4.0
   Compiling lalrpop v0.19.12
   Compiling vte_generate_state_changes v0.1.1
   Compiling pc-keyboard v0.7.0
   Compiling atomic-polyfill v0.1.11
   Compiling utf8parse v0.2.1
   Compiling neotron-ffi v0.1.0
   Compiling gcd v2.3.0
   Compiling byteorder v1.4.3
   Compiling fugit v0.3.6
   Compiling neotron-common-bios v0.11.0
   Compiling vte v0.11.1
   Compiling pio v0.2.1
   Compiling rp2040-hal-macros v0.1.0
   Compiling heapless v0.7.16
   Compiling rp2040-boot2 v0.3.0
   Compiling embedded-dma v0.2.0
   Compiling rtcc v0.3.0
   Compiling termcolor v1.2.0
   Compiling panic-probe v0.2.1
   Compiling atomic-polyfill v1.0.2
   Compiling rand_core v0.6.4
   Compiling defmt-rtt v0.4.0
   Compiling usb-device v0.2.9
   Compiling unicode-width v0.1.10
   Compiling rp-pico v0.7.0
   Compiling codespan-reporting v0.11.1
   Compiling neotron-pico-bios v0.5.2 (/zs/tingo/personal/projects/2023/rust/embedded/neotron/Neotron-Pico-BIOS)
   Compiling hash32 v0.2.1
   Compiling mcp794xx v0.3.0
   Compiling ds1307 v0.5.0
   Compiling embedded-sdmmc v0.5.0
   Compiling neotron-bmc-protocol v0.1.0
   Compiling neotron-bmc-commands v0.2.0
   Compiling shared-bus v0.2.5
   Compiling tlv320aic23 v0.1.0
   Compiling rp2040-hal v0.8.1
   Compiling pio-parser v0.2.2
   Compiling pio-proc v0.2.2
    Finished release [optimized + debuginfo] target(s) in 1m 21s
     Running `probe-rs run --chip RP2040 target/thumbv6m-none-eabi/release/neotron-pico-bios`
error: could not execute process `probe-rs run --chip RP2040 target/thumbv6m-none-eabi/release/neotron-pico-bios` (never executed)

Caused by:
  No such file or directory (os error 2)

2023-09-17: I created this page.