Repository navigation
Releases
007-pbp2y (tested): power-on to kernel in 5.3 s, no countdown
Tested: in use on my Pinebook Pro since 2026-10-17.
pbp2n + a much faster start: power-on to kernel start 5.3 s instead of 15.3 s on my Pinebook Pro, and no countdown. Hold ESC while powering on to get the Tow-Boot menu.
- U-Boot proper and SPL now run with the CPU caches on from the start (patches 0032, 0034, 0037, 0038). SPL's read of U-Boot and TF-A from SPI flash dropped from 1.5 s to 0.46 s, U-Boot's first stage from 2.0 s to 0.06 s.
- Frame buffer cleared after relocation instead of before (0029, 0.86 s), CRU assigned clocks dropped from U-Boot's device tree (0033, 0.68 s), kernel loaded at a 2 MB aligned address (0027, 0.54 s), SPI flash at 25 MHz (0026).
- Boot timing:
scripts/bootstage.shprints every stage from/proc/device-tree/bootstageafter boot.
Stage-by-stage numbers and details are in the README.
If you saved Tow-Boot settings before (saveenv/fw_setenv), they override the new countdown; see "Installing" in the README.
Files: Tow-Boot.spi.bin (flash from Linux with flashcp, the image running on my laptop) and spi.installer.img.xz (SD card installer, built from the same source, untested). Check them against SHA256SUMS.
007-pbp2n
Everything in 007-pbp2m (backlight fix, dim Tow-Boot screen, overlays, 1 s countdown, btrfs, stack fix, fast USB start, SD at 50 MHz, touchpad fix, XHCI fixes, keyboard fallback, several USB keyboards, big-core/GPU regulators off in suspend), plus:
- Faster eMMC: HS200 at up to 200 MHz instead of the 25 MHz cap (patch 0024).
- Faster boot: power-on to kernel start went from 17.8 s to 15.3 s on my Pinebook Pro, when booting the uncompressed
Imagefrom a/booton btrfs with compression turned off (chattr +m /boot). Unpacking is now the slow part: withImage.gzit's still about 17.8 s. See the README for the numbers. - HS400 was tried and doesn't work on this board (details in the README).
- Faster boot: power-on to kernel start went from 17.8 s to 15.3 s on my Pinebook Pro, when booting the uncompressed
Status: tested on my Pinebook Pro (2026-10-15): boots from SPI, and Linux takes over the eMMC cleanly in HS200.
If you ever saved Tow-Boot settings (saveenv/fw_setenv), run env default -a; saveenv after flashing.
e597f13b72e2dd828f4b5625ac4ff1f578d744a227780c93a8ac763ed9615c6c Tow-Boot.spi.bin
3fb8230a454e13c86db059fd32eb216af5d72c37fe381f8b3a97afcbb8c32ffc spi.installer.img
f5c079cb57a1a77f4451c0a28d026d358e117155001a58ad4de6c32884584c26 spi.installer.img.xz
007-pbp2m
Everything in 007-pbp2k (backlight fix, dim Tow-Boot screen, overlays, 1 s countdown, btrfs, stack fix, fast USB start, SD at 50 MHz, touchpad fix, XHCI fixes, keyboard fallback, several USB keyboards), plus:
- Big-core and GPU regulators off in deep suspend. They're fed from the battery side, so the PMIC going to sleep didn't cut them, and they stayed on all night. Their sleep pins (GPIO1_C1, GPIO1_B6) are now driven high in sleep by TF-A, as Rockchip's own firmware does. Patch
tfa-0001against TF-A v2.9; details in the README.
Status: tested on my Pinebook Pro (2026-10-15): boots from SPI, suspend and resume work, all cores and the GPU come back, and the sleep pins are confirmed switched by TF-A. How much it saves isn't measured yet (it was about 0.46 %/h in suspend before).
If you ever saved Tow-Boot settings (saveenv/fw_setenv), run env default -a; saveenv after flashing.
e6eaf790499c8a39b93a4acf2cd8ee56f5fb66a5c7981c39c31405f6c63f00d5 Tow-Boot.spi.bin
f0f05fe64fb67d3bae9fdbd791068828c958776ca744181d894443fe56ff2fad spi.installer.img
31498411d9589e1bfc0e31d5f7683f753da792e3e4de1b6dcef13cb099a9e5fd spi.installer.img.xz
007-pbp2k (tested): external USB keyboards work
Everything in 007-pbp2j (backlight fix, dim Tow-Boot screen, overlays, 1 s countdown, btrfs, stack fix, fast USB start, SD at 50 MHz, touchpad fix, XHCI fixes, keyboard fallback), plus:
- External USB keyboards work in the Tow-Boot menu, next to the internal one (Tow-Boot#153). Every USB keyboard registered as
usbkbdand U-Boot looked keyboards up by that name, so only the first one (the internal keyboard) was ever read. Patch 0023 gives each keyboard its own name and reads each one.- Use the right USB-A port, and pick "Rescan USB" first (only the internal keyboard's controller starts at power-on). The left (USB 3) port can't take a keyboard (no interrupt-queue support for XHCI in U-Boot).
Status: tested on my Pinebook Pro (2026-10-13): boots from SPI (power-on to kernel 17.8 s, unchanged); after "Rescan USB" the internal keyboard and a USB keyboard in the right port both work. Not tested: a device in the USB 3 port during a rescan, booting from a USB stick, the SD card installer image.
If you ever saved Tow-Boot settings (saveenv/fw_setenv), run env default -a; saveenv after flashing.
6713b4c7c7e06e5b2b5050edad79d3f211febf6260db0dbab9f66b161a3719d3 Tow-Boot.spi.bin
efa8ec1ef9981534ed37ce59e738c52d7b886c6f8f5584777fae4feac1977d7d spi.installer.img
66b22088ec0215c285d386492f5f3202efcabf28d11171e7386eddf9e36c2b3a spi.installer.img.xz
007-pbp2j (tested): XHCI fixes, keyboard fallback
Everything in 007-pbp2i (backlight fix, dim Tow-Boot screen, overlays, 1 s countdown, btrfs, stack fix, fast USB start, SD at 50 MHz, touchpad fix), plus:
- Upstream XHCI robustness fixes (patches 0012–0021, mostly Hector Martin's October 2023 series). In U-Boot 2023.07 a USB 3 (XHCI) event timeout panics and resets the board, a likely cause of "Rescan USB" reboots (Tow-Boot#141).
- Keyboard fallback (patch 0022): if the keyboard-only USB start at power-on finds no keyboard (internal keyboard broken or missing), all USB controllers are started, so a keyboard in the right USB-A port can be used instead.
Status: tested on my Pinebook Pro (2026-10-13): boots from SPI; fallback tested by simulating a missing keyboard from the console; "Rescan USB" 4 times without a reboot (keyboard in the right port). Not tested: a device in the USB 3 (left) port during a rescan, booting from a USB stick, the SD card installer image.
Known issues: external USB keyboards next to the internal one don't work in the menu (a U-Boot limitation, explained in the README; Tow-Boot#153).
If you ever saved Tow-Boot settings (saveenv/fw_setenv), run env default -a; saveenv after flashing.
34e4f358e1a4fd8f4067cb85deec55955d184aa2435c53957048145d37a58231 Tow-Boot.spi.bin
9c176bd1ac3d678460821585c3d3f833a57a2b33f419651b4ae740938d82c28f spi.installer.img
1fd674a6ba882215b820b4c15f02f569a630a17bf00d7484bb7950cb96adaefd spi.installer.img.xz
007-pbp2i (tested): touchpad no longer freezes the keyboard
Everything in 007-pbp2h (backlight fix, dim Tow-Boot screen, overlays, 1 s countdown, btrfs, stack fix, fast USB start, SD at 50 MHz), plus:
- Touching the touchpad no longer freezes the keyboard in the Tow-Boot menu. Stock Tow-Boot has had this bug since 2021 (Tow-Boot#57). The keyboard and touchpad are one USB device; U-Boot only read the keyboard's endpoint, and an unread touchpad report made the keyboard chip stop sending keystrokes. Patch 0011 makes U-Boot read and discard the touchpad's reports.
Status: tested on my Pinebook Pro (2026-10-13): boots from SPI; with pbp2h touching the touchpad froze the keyboard in the menu, with pbp2i it keeps working (chainloaded and native). Not tried: booting from a USB stick, the SD card installer image.
Known issues (also in stock Tow-Boot): "Rescan USB" can reboot (#141), external USB keyboards don't work in the menu (#153). See the README.
If you ever saved Tow-Boot settings (saveenv/fw_setenv), run env default -a; saveenv after flashing.
2980d7098a089a29a1da3e2ed055ca50254f40a001737b6f4cc9223660b4731c Tow-Boot.spi.bin
201cb130ddbec840cc688b347cda853f2c0f5dbca4a8853f59ade7de75a8e2bb spi.installer.img
069a8a885779140ac54ca0f4690679b2208c2827c56bbe6ccd10ea2d2b61c27e spi.installer.img.xz
007-pbp2h (tested): btrfs, fast USB, SD at 50 MHz
Everything in 007-pbp2f (backlight fix, dim Tow-Boot screen, overlays, 1 s countdown, btrfs, stack fix, keyboard-only USB start at power-on), plus:
- SD card at 50 MHz instead of 20 MHz (patch 0009). Loading from SD: 50 MB kernel 6.6 s → 4.0 s, 23 MB initramfs 3.7 s → 2.2 s.
- btrfs fix
c331efd087backported (patch 0010): crash inbtrsubvol, not on the boot path. - Version labels fixed: set via Tow-Boot's
releaseIdentifier, so every variant and the SBOM say007-pbp2h. - Patch 0008 (
usb_only) gets anENV_SUPPORTguard (no change for this board).
Status: tested on my Pinebook Pro (2026-10-13): boots from SPI; SD at 50 MHz measured with timed loads. Not tried: booting from a USB stick, the SD card installer image.
Known issues (also in stock Tow-Boot, see README): touching the touchpad freezes the keyboard in the Tow-Boot menu (#57; a fix is in testing), "Rescan USB" can reboot (#141), external USB keyboards don't work in the menu (#153).
If you ever saved Tow-Boot settings (saveenv/fw_setenv), run env default -a; saveenv after flashing, or the old settings override the new defaults.
e71f8819014b5641ef681aeed87ae1739e09d835d90c6368bd40c210b44af4a6 Tow-Boot.spi.bin
11185cbbf5647474fb682ae1cb9e409bc00a9d67a8e38e0f5e0a5a95138b24f4 spi.installer.img
bb45849087ce901bbdb674b4fffca6e96463a8ed5dcb36ee007de3358480ecc3 spi.installer.img.xz
007-pbp2f (tested): btrfs + faster USB start
Everything in 007-pbp2c (backlight fix, dim Tow-Boot screen, overlays, 1 s countdown, btrfs, stack fix), plus a faster USB start:
- At power-on only the internal keyboard's USB controllers are started (new
usb_onlyvariable, patch 0008). Before,usb startscanned all six controllers and took ~6.4 s. - "Rescan USB" (
usb reset) and "Boot from USB" / USB network boot (a laterusb start) still bring up every controller. - Power-on to kernel start on my Pinebook Pro: 23.5 s → 17.8 s.
Status: tested (2026-10-13): boots from SPI, keyboard works in the menu. Booting from a USB stick with pbp2f hasn't been tried yet. The SD card installer image wasn't tried either.
Files:
Tow-Boot.spi.bin: flash from Linux withflashcp(see the README; back up/dev/mtd0rofirst)spi.installer.img.xz: SD card installer ("Flash firmware to SPI")SHA256SUMS
2c846077830074f60fe0f8fb1307863b06740323ea58d587c54ed1967ecc174e Tow-Boot.spi.bin
6b4d0715fdbaa960e076e54378418142e31672218038072d7e41ee5eed57560c spi.installer.img
9c8b0fd0a3ada1e31eb952b17edc1f64cf2f33302c59a405648128ae3fe5b903 spi.installer.img.xz
007-pbp2c (tested): btrfs
Tow-Boot 2023.07-007 for the Pinebook Pro: everything in 007-pbp1, plus btrfs.
- Backlight turned off at kernel handoff: no garbage on screen between "Starting kernel" and the kernel's display driver (about 3 s into boot)
- Tow-Boot screen at brightness 40/255
FDTOVERLAYSin extlinux.conf works- 1 s boot menu countdown
- btrfs: Tow-Boot reads
/boot(extlinux.conf, kernel, initramfs, dtb) from btrfs, using the default subvolume; zlib/lzo/zstd. Includes 6 btrfs fixes backported from U-Boot master, among them6f0719e4c4(zstd-compressed small files written by the kernel, e.g. an edited extlinux.conf, failed withfailed to decompress: 70) - U-Boot's start-up stack moved from
0x300000to0x03f00000(as upstream U-Boot does now). Without this, adding btrfs makes the image overlap the stack and the board doesn't start: that's what happened to 007-pbp2
Status: tested on my Pinebook Pro (2026-10-13): boots from SPI; booted a kernel from a zstd-compressed btrfs (top-level subvolume, chainload test). Booting from a non-top-level default subvolume (@) not tested yet. The SD card installer image is built the same way as stock Tow-Boot's but wasn't tried.
Files:
Tow-Boot.spi.bin: flash from Linux withflashcp(see the README; back up/dev/mtd0rofirst)spi.installer.img.xz: SD card installer ("Flash firmware to SPI")SHA256SUMS
d828003d83da27fdbba8ea5f354707428c993421187bff38e9f98456f27d8d26 Tow-Boot.spi.bin
938c3c4aa405b1e97931b829a64b2ababf6677fda363e909a11c3765acb0963c spi.installer.img
4fb13ac158d004ae7d50a68922354a8fa0cd559185a9acce3e96ba666323b1fe spi.installer.img.xz
007-pbp1 (tested)
Tow-Boot 2023.07-007 for the Pinebook Pro, plus:
- Backlight turned off at kernel handoff: no more garbage on screen between "Starting kernel" and the desktop
- Tow-Boot screen at brightness 40/255 instead of 255
FDTOVERLAYSin extlinux.conf works (CONFIG_OF_LIBFDT_OVERLAY=y)- 1 s boot menu countdown
Status: tested, in daily use on my Pinebook Pro since 2026-10-13.
Files:
Tow-Boot.spi.bin: flash from Linux withflashcp(see the README; back up/dev/mtd0rofirst)spi.installer.img.xz: SD card installer ("Flash firmware to SPI")SHA256SUMS
76c68ff0259d2887a8872c3c73ff4989ea408fe158c7d744753f9f7fcb6dd410 Tow-Boot.spi.bin
9ccc4d9a90ed1be0325b0a123f2c1b9c5c31eaccb68302a12f68e53155c46203 spi.installer.img
861ac2a6189e2dca836c457de0d1514cdee11eba2caec431baa6fef1adaa3923 spi.installer.img.xz