Giter VIP home page Giter VIP logo

nuttx-pinevox's Introduction

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

nuttx-pinevox's People

Contributors

lupyuen avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

cederom

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.