Skip to content

Commit cd7d428

Browse files
Merge branch 'release/v0.4.1'
2 parents 3fd0da5 + 00ae9fa commit cd7d428

File tree

7 files changed

+537
-338
lines changed

7 files changed

+537
-338
lines changed

.github/workflows/build.yml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,25 @@
1-
name: Build
2-
31
on: [push, pull_request]
2+
name: Build (and Release)
43

54
env:
65
CARGO_TERM_COLOR: always
76

87
jobs:
98
build:
9+
name: Build (and Release)
1010
runs-on: ubuntu-latest
1111
steps:
12-
- name: Checkout Code
12+
- name: Checkout
1313
uses: actions/checkout@v3
1414
with:
1515
submodules: true
1616
fetch-depth: 0
1717

18-
- name: Install Rust
19-
uses: actions-rs/toolchain@v1
20-
with:
21-
profile: minimal
22-
toolchain: stable
23-
override: true
24-
target: thumbv6m-none-eabi
18+
- name: Add targets
19+
run: |
20+
rustup target add thumbv6m-none-eabi
2521
26-
- name: Build Code
22+
- name: Build neotron-pico-bios
2723
run: |
2824
cargo build --release --verbose
2925

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@
44

55
* None
66

7+
## v0.4.1 ([Source](https://github.com/neotron-compute/neotron-pico-bios/tree/v0.4.1) | [Release](https://github.com/neotron-compute/neotron-pico-bios/release/tag/v0.4.1))
8+
9+
* Wait for interrupts from the BMC before reading PS/2 key codes
10+
* Requires Neotron Pico BMC v0.5.0
11+
* Debug LEDs change every time you get an interrupt from the IO controller
12+
* Doubled the speed of the RP2040's QSPI flash interface
13+
* Documentation updates to make programming your RP2040 easier
14+
715
## v0.4.0 ([Source](https://github.com/neotron-compute/neotron-pico-bios/tree/v0.4.0) | [Release](https://github.com/neotron-compute/neotron-pico-bios/release/tag/v0.4.0))
816

917
* Updated dependencies

Cargo.toml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@ resolver = "2"
55
readme = "README.md"
66
license = "GPL-3.0-or-later"
77
name = "neotron-pico-bios"
8-
version = "0.4.0"
8+
version = "0.4.1"
99

1010
[dependencies]
1111
# Useful Cortex-M specific functions (e.g. SysTick)
1212
cortex-m = "0.7"
1313
# The Raspberry Pi Pico HAL
14-
rp-pico = "0.5"
14+
rp-pico = { version = "0.6", default-features = false, features = [ "rt", "critical-section-impl", "rom-func-cache" ] }
1515
# Cortex-M run-time (or start-up) code
1616
cortex-m-rt = "0.7"
1717
# The BIOS to OS API
1818
neotron-common-bios = "0.7.0"
1919
# For the RP2040 bootloader
20-
rp2040-boot2 = "0.2"
20+
rp2040-boot2 = "0.3.0"
2121
# For hardware abstraction traits
2222
embedded-hal ="0.2"
2323
# Gives us formatted PC-side logging
@@ -27,7 +27,7 @@ defmt-rtt = "0.4"
2727
# Send panics to the debugger
2828
panic-probe = "0.2"
2929
# RP2040 PIO assembler
30-
pio = "0.2"
30+
pio = "0.2.1"
3131
# Macros for RP2040 PIO assembler
3232
pio-proc = "0.2"
3333
# Hardware locks for sharing data with interrupts
@@ -53,3 +53,6 @@ codegen-units = 1
5353
debug = true
5454
# better optimizations
5555
lto = true
56+
57+
[patch.crates-io]
58+
rp2040-boot2 = { version = "0.3.0", git = "https://github.com/rp-rs/rp2040-boot2" }

README.md

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,19 +45,19 @@ The Neotron BIOS uses the [defmt](https://crates.io/crates/defmt) crate to provi
4545
* connect Pin 5 on the *Debugger* Pico to SWDIO on the *Neotron* Pico
4646
* connect USB on the *Debugger* Pico to your PC
4747

48-
2. Flash your *Debugger* Pico with https://github.com/majbthrd/DapperMime firmware (e.g. by copying the UF2 file to the USB Mass Storage device)
48+
2. Flash your *Debugger* Pico with https://github.com/raspberrypi/picoprobe or https://github.com/majbthrd/DapperMime firmware (e.g. by copying the UF2 file to the USB Mass Storage device)
4949

50-
3. On your PC, install [*probe-rs*](https://github.com/knurling-rs/probe-run), the programming tool from [Ferrous System's](https://www.ferrous-systems.com) [Knurling Project](https://github.com/knurling).
50+
3. On your PC, install [*probe-run*](https://github.com/knurling-rs/probe-run), the programming tool from [Ferrous System's](https://www.ferrous-systems.com) [Knurling Project](https://github.com/knurling).
5151

5252
```console
53-
user@host ~ $ cargo install probe-rs
53+
user@host ~ $ cargo install probe-run
5454
```
5555

5656
4. Power on your Neotron Pico.
5757

5858
5. Build the Neotron OS
5959

60-
We use the "neotron-os-pico.ld" linker script to link it at `0x1002_0000`.
60+
We use the "neotron-flash-1002.ld" linker script to link it at `0x1002_0000`.
6161

6262
```console
6363
user@host ~/neotron-os $ cargo build --bin=flash1002 --release --target=thumbv6m-none-eabi
@@ -86,6 +86,28 @@ user@host ~/neotron-pico-bios $ DEFMT_LOG=debug cargo run --release
8686

8787
You should see your Neotron Pico boot, both over RTT in the `probe-run` output, and also on the VGA output.
8888

89+
6a. Multiple probes
90+
91+
If you have multiple probe-rs compatible probes attached to your computer,
92+
you will receive an error message.
93+
94+
You can set the PROBE_RUN_PROBE environment variable to select one of the
95+
available probes, like so:
96+
97+
```console
98+
$ probe-run --list-probes
99+
the following probes were found:
100+
[0]: Picoprobe CMSIS-DAP (VID: 2e8a, PID: 000c, Serial: Exxxxxxxxxxxxxx6, CmsisDap)
101+
[1]: STLink V2 (VID: 0483, PID: 3748, Serial: 0xxxxxxxxxxxxxxxxxxxxxxE, StLink)
102+
user@host ~/neotron-pico-bios $ PROBE_RUN_PROBE='0483:3748' DEFMT_LOG=debug cargo run --release
103+
```
104+
105+
You can also just provide the probe Serial, for example if you have multiple
106+
identical probes.
107+
108+
The documentation for this feature can be found at
109+
<https://github.com/knurling-rs/probe-run#12-multiple-probes>
110+
89111
## Changelog
90112

91113
See [CHANGELOG.md](./CHANGELOG.md)

build.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,15 @@ fn main() {
3232
// Generate a file containing the firmware version
3333
let version_output = std::process::Command::new("git")
3434
.current_dir(env::var_os("CARGO_MANIFEST_DIR").unwrap())
35-
.args(["describe", "--long", "--dirty"])
35+
.args(["describe", "--tags", "--dirty"])
3636
.output()
3737
.expect("running git-describe");
38+
39+
println!(
40+
"Version is {:?}",
41+
std::str::from_utf8(&version_output.stdout)
42+
);
43+
println!("Error is {:?}", std::str::from_utf8(&version_output.stderr));
3844
assert!(version_output.status.success());
3945

4046
// Remove the trailing newline

0 commit comments

Comments
 (0)