Skip to content

lupyuen/nuttx-pinevox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

PineVox Smart Speaker with 64-bit RISC-V BL606P on Apache NuttX RTOS

PineVox Smart Speaker with 64-bit RISC-V BL606P on Apache NuttX RTOS

Let's boot Apache NuttX RTOS on PineVox!

  • BL606P is the newer, scaled-down variant of BL808 (minus the Low-Power Core)
  • NuttX already supports Ox64 BL808
  • So NuttX might boot on PineVox BL606P!

BL606P looks something like this (minus the Low-Power Core)...

BL808 SoC

What's inside PineVox?

According to the PineVox Schematic...

  • Mainboard PCB contains Bouffalo Lab BL606P SoC, Serial Console, Flash Memory, USB-C Port, Power Mgmt

  • Sideboard PCB contains Directional Microphone, Buttons, LEDs

  • Connected by a 20-pin Ribbon Cable

USB-C Port connects to a Special USB Cable for PineVox that exposes (pic below)...

  • Boot Switch (GPIO 29)

    1: Boot from UART (Flashing Mode?)

    0: Boot from Flash

  • UART TX / RX (GPIO 20 / 21)

    (We assume it's for Flashing via BLDevCube)

  • USB Data (+ve and -ve)

    (For USB Peripherals? Maybe DFU?)

(Schematics will be published soon by PINE64)

PineVox USB Cable

How to flash PineVox with OpenSBI and U-Boot Bootloader?

Let's try flashing PineVox with BLDevCube...

TODO: Flash OpenSBI and U-Boot Bootloader

How to boot NuttX on PineVox?

We have a problem...

  • NuttX boots on Ox64 via microSD. But PineVox doesn't have a microSD Port! (Though BL606P supports microSD)

  • Ox64 supports booting over Ethernet (with U-Boot Bootloader). But BL606P doesn't support Ethernet!

  • We need a way to load NuttX Image into RAM at 0x5020_0000

  • Maybe the M0 Wireless Core (32-bit) will load NuttX Image into RAM? Over WiFi?

Why use U-Boot Bootloader? Why not flash NuttX directly as Firmware?

  • U-Boot might be simpler for now? Today NuttX boots in RISC-V Supervisor Mode, so we don't need to tweak it to boot in Machine Mode.

  • Isolate the Toolchain: BL606P needs a special T-Head C906 Toolchain plus Bouffalo Lab SDK. It's better to isolate OpenSBI + U-Boot, compile them with the special toolchain.

    We'll keep them separate from NuttX, which compiles with the popular GCC Toolchain.

  • Support Direct Firmware Update (DFU): In future we might support DFU to upgrade the NuttX Image wirelessly. We'll implement DFU with U-Boot (or something similar).

TODO: Load NuttX Image into RAM

About

PineVox Smart Speaker with 64-bit RISC-V BL606P on Apache NuttX RTOS

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published