Article: LoRa SX1262 on NuttX

2021-12-21 Thread Lee, Lup Yuen
Here's my new article that explains how I ported the
LoRa Driver for Semtech SX1262 from Linux to NuttX...

https://lupyuen.github.io/articles/sx1262

Now that we can send and receive LoRa messages, I'll start porting the
LoRaWAN Stack to NuttX. Stay tuned :-)

Lup


Article: LoRaWAN on NuttX

2022-01-02 Thread Lee, Lup Yuen
This article explains how I ported Semtech's LoRaWAN Stack to NuttX. Have
an awesome 2022! :-)

https://lupyuen.github.io/articles/lorawan3

Lup


Re: Article: NuttX on BL602 / BL604

2021-11-24 Thread Lee, Lup Yuen
Hi Xiao Xiang: If you would like to reproduce or translate my article into
Chinese, please go ahead thanks :-)

On Thu, 25 Nov 2021, 2:03 pm Xiang Xiao,  wrote:

> On Thu, Nov 25, 2021 at 1:36 PM Lee, Lup Yuen  wrote:
>
> > Hi All: I have just published an article about NuttX on BL602 / BL604...
> >
> > https://lupyuen.github.io/articles/nuttx
> >
> >
> Nice article!
> For AES/SHA/RSA hardware support, I have talked with BL602 dev two month
> ago, and plan to port OpenBSD Cryptographic Framework - Wikipedia
> <https://en.wikipedia.org/wiki/OpenBSD_Cryptographic_Framework> in the
> next
> year and enhance mbedtls/tinycrypt/tomcrypto with the hardware accelerator.
>
>
> > NuttX works great, I'm really enjoying it. Thanks everyone for making
> NuttX
> > so awesome! :-)
> >
> >
>  Let's make NuttX better and better.
>
>
> > Lup
> >
>


Re: Article: NuttX on BL602 / BL604

2021-11-24 Thread Lee, Lup Yuen
Thanks that's great! Looking forward to it :-)

On Thu, 25 Nov 2021, 2:03 pm Xiang Xiao,  wrote:

> On Thu, Nov 25, 2021 at 1:36 PM Lee, Lup Yuen  wrote:
>
> > Hi All: I have just published an article about NuttX on BL602 / BL604...
> >
> > https://lupyuen.github.io/articles/nuttx
> >
> >
> Nice article!
> For AES/SHA/RSA hardware support, I have talked with BL602 dev two month
> ago, and plan to port OpenBSD Cryptographic Framework - Wikipedia
> <https://en.wikipedia.org/wiki/OpenBSD_Cryptographic_Framework> in the
> next
> year and enhance mbedtls/tinycrypt/tomcrypto with the hardware accelerator.
>
>
> > NuttX works great, I'm really enjoying it. Thanks everyone for making
> NuttX
> > so awesome! :-)
> >
> >
>  Let's make NuttX better and better.
>
>
> > Lup
> >
>


Article: NuttX on BL602 / BL604

2021-11-24 Thread Lee, Lup Yuen
Hi All: I have just published an article about NuttX on BL602 / BL604...

https://lupyuen.github.io/articles/nuttx

NuttX works great, I'm really enjoying it. Thanks everyone for making NuttX
so awesome! :-)

Lup


Article: SPI on BL602 and ESP32

2021-12-12 Thread Lee, Lup Yuen
Here's my new article about NuttX SPI on BL602 and ESP32...

https://lupyuen.github.io/articles/spi2

Now that NuttX is talking OK to Semtech SX1262 (LoRa Transceiver), I'll
start porting the LoRaWAN Stack to NuttX. Thanks :-)


Re: Article: SPI on BL602 and ESP32

2021-12-12 Thread Lee, Lup Yuen
Hi Xiao Xiang: Thanks for the suggestion! I'll check out the wireless
drivers in NuttX and figure out how to do this.

On Mon, Dec 13, 2021 at 11:47 AM Xiang Xiao 
wrote:

> It will be a good addition if you can mainline the integration of LoRa high
> level stack.
>
> On Mon, Dec 13, 2021 at 9:57 AM Lee, Lup Yuen  wrote:
>
> > Here's my new article about NuttX SPI on BL602 and ESP32...
> >
> > https://lupyuen.github.io/articles/spi2
> >
> > Now that NuttX is talking OK to Semtech SX1262 (LoRa Transceiver), I'll
> > start porting the LoRaWAN Stack to NuttX. Thanks :-)
> >
>


Article: Encode Sensor Data with CBOR

2022-01-09 Thread Lee, Lup Yuen
This article explains how we may encode Sensor Data with the TinyCBOR
Library on NuttX...

https://lupyuen.github.io/articles/cbor2

Up Next: Rust Embedded on NuttX :-)

Lup


Re: Article: Rust on NuttX

2022-01-11 Thread Lee, Lup Yuen
Thanks Alan! I'll do more IoT with Rust on NuttX in future articles :-)

On Wed, Jan 12, 2022 at 7:59 AM Alan Carvalho de Assis 
wrote:

> Nice you Lup! Kudos!!!
>
> On 1/11/22, Lee, Lup Yuen  wrote:
> > This article explains how we might run Rust apps on NuttX...
> >
> > https://lupyuen.github.io/articles/rust2
> >
> > I also tested the Rust Driver for LoRa SX1262 on NuttX.
> >
> > Up Next: Connecting NuttX to The Things Network over LoRaWAN
> >
> > Lup
> >
>


Article: Rust on NuttX

2022-01-11 Thread Lee, Lup Yuen
This article explains how we might run Rust apps on NuttX...

https://lupyuen.github.io/articles/rust2

I also tested the Rust Driver for LoRa SX1262 on NuttX.

Up Next: Connecting NuttX to The Things Network over LoRaWAN

Lup


Article: NuttX Driver for BME280 Sensor (ported from Zephyr OS)

2022-03-08 Thread Lee, Lup Yuen
This article explains how I ported the BME280 I2C Driver (Temperature /
Humidity / Pressure) from Zephyr OS to NuttX...

https://lupyuen.github.io/articles/bme280

Lup


Re: Article: Connect IKEA Air Quality Sensor to NuttX

2022-02-11 Thread Lee, Lup Yuen
Thanks Alan! Yep in the next article I'll package the code into a library,
so that it's easier to transmit the PM 2.5 data to The Things Network over
LoRaWAN.

Lup

On Fri, Feb 11, 2022 at 6:50 PM Alan Carvalho de Assis 
wrote:

> Great article, as usual.
>
> I suggest you to create an application lib, similar to the gps minmea lib
> to parser and to return the PM 2.5 dust value.
>
> BR,
>
> Alan
>
> On Friday, February 11, 2022, Lee, Lup Yuen  wrote:
>
> > This article explains how I read the PM 2.5 data from IKEA VINDRIKTNING
> Air
> > Quality Sensor (with some soldering)
> >
> > https://lupyuen.github.io/articles/ikea
> >
>


Article: Rust talks I2C on NuttX

2022-03-21 Thread Lee, Lup Yuen
This article explains how I ran the Rust Driver for BME280 Sensor on NuttX,
by creating a NuttX Embedded HAL...

https://lupyuen.github.io/articles/rusti2c

Lup


Article: ST7789 Display with LVGL Graphics

2022-03-31 Thread Lee, Lup Yuen
This article explains how I configured the Sitronix ST7789 SPI Display and
LVGL Graphics Library for NuttX:

https://lupyuen.github.io/articles/st7789

Lup


Re: nuttx imxrt board serial use for help

2022-03-22 Thread Lee, Lup Yuen
Sorry I haven't tried 3 serial ports. I have tested 2 serial ports on
BL602: https://lupyuen.github.io/articles/ikea

Lup

On Tue, Mar 22, 2022 at 3:04 PM prelude  wrote:

> A board of our own imxrt1052, refer to
> nuttx/boars/arms/imxrt/imxrt1050-evk, and plan to use these serial ports
>
> /* LPUART1 */
> #define GPIO_LPUART1_RX (GPIO_LPUART1_RX_1|IOMUX_UART_DEFAULT) /*
> GPIO_AD_B0_13 */
> #define GPIO_LPUART1_TX (GPIO_LPUART1_TX_1|IOMUX_UART_DEFAULT) /*
> GPIO_AD_B0_12 */
>
> /* LPUART2 */
> #define GPIO_LPUART2_RX (GPIO_LPUART2_RX_1|IOMUX_UART_DEFAULT) /*
> GPIO_AD_B1_03 */
> #define GPIO_LPUART2_TX (GPIO_LPUART2_TX_1|IOMUX_UART_DEFAULT) /*
> GPIO_AD_B1_02 */
>
> /* LPUART3 */
> #define GPIO_LPUART3_RX (GPIO_LPUART3_RX_1|IOMUX_UART_DEFAULT) /*
> GPIO_AD_B1_07 */
> #define GPIO_LPUART3_TX (GPIO_LPUART3_TX_1|IOMUX_UART_DEFAULT) /*
> GPIO_AD_B1_06 */
>
> /* LPUART4 */
> #define GPIO_LPUART4_RX (GPIO_LPUART4_RX_1|IOMUX_UART_DEFAULT) /*
> GPIO_SD_B1_01 */
> #define GPIO_LPUART4_TX (GPIO_LPUART4_TX_1|IOMUX_UART_DEFAULT) /*
> GPIO_SD_B1_00 */
>
> /* LPUART8 */
> #define GPIO_LPUART8_RX (GPIO_LPUART8_RX_1|IOMUX_UART_DEFAULT) /*
> GPIO_AD_B1_11 */
> #define GPIO_LPUART8_TX (GPIO_LPUART8_TX_1|IOMUX_UART_DEFAULT) /*
> GPIO_AD_B1_10 */
>
> UART1 is used as the console, but in the process of using it, it is found
> that if three or more serial ports are selected in the menconfig
> configuration, the console cannot be opened. If two serial ports are
> selected, the console will be opened normally. Have you encountered it?
>


Article: Connect IKEA Air Quality Sensor to NuttX

2022-02-10 Thread Lee, Lup Yuen
This article explains how I read the PM 2.5 data from IKEA VINDRIKTNING Air
Quality Sensor (with some soldering)

https://lupyuen.github.io/articles/ikea


Article: Auto Flash and Test NuttX on RISC-V BL602

2022-01-24 Thread Lee, Lup Yuen
This article explains how I created a Linux script to flash and test NuttX
automatically on the BL602 RISC-V SoC...

https://lupyuen.github.io/articles/auto

Lup


[Article] NuttX on Star64 JH7110: Power Up the Display Controller with U-Boot Bootloader

2023-09-02 Thread Lee, Lup Yuen
In olden days we’d "peek" and "poke" the Display Controller, to see weird
and wonderful displays. Today (46 years later), we poke around the Display
Controller of Star64 JH7110 RISC-V SBC with a modern tool (not BASIC):
U-Boot Bootloader!

In this article we discover…
(1) U-Boot Commands "md" and "mw" for Dumping and Writing Memory
(2) That we use to power up the Video Output and Display Controller on the
StarFive JH7110 SoC
(3) By modding the JH7110 Registers for Power Management Unit, Clock and
Reset
(4) Also how we’ll create our NuttX Display Driver for JH7110
(5) In spite of the Missing and Incorrect Docs

Here's the article: https://lupyuen.codeberg.page/articles/display3.html

Lup


Re: riscv64 libm link question

2023-09-17 Thread Lee, Lup Yuen
Here's what Ken and I have tried for the riscv64 libm linking problem:

(1) The recommended toolchain for NuttX on riscv64 is SiFive Freedom Tools.
But it doesn't support Raspberry Pi OS (64-bit Debian).

(2) So we used Debian gcc-riscv64-unknown-elf instead. Which shows the
missing libm error that Ken described.

(3) We're trying an alternative toolchain: xPack GNU RISC-V Embedded GCC.
Which might fix the libm problem, but we're not sure if it's supported for
NuttX.

Wonder if anyone has tried building riscv64 NuttX on Raspberry Pi OS /
Arm64 Linux? More details below. Thanks!

https://lupyuen.github.io/articles/riscv#appendix-xpack-gnu-risc-v-embedded-gcc-toolchain-for-64-bit-risc-v

https://lupyuen.github.io/articles/release#appendix-missing-mathh

Lup

On Mon, Sep 18, 2023 at 4:15 AM  wrote:

> On 2023-09-17 12:47, Petro Karashchenko wrote:
> > Hi,
> >
> > What kind of RISC-V toolchain are you using?
>
> Raspian:RasPi4:~/RISCV/NuttX/apps >>> apt search riscv64-unknown
> Sorting... Done
> Full Text Search... Done
> binutils-riscv64-unknown-elf/oldstable,now 2.32.2020.04+dfsg-2 arm64
> [installed]
>GNU assembler, linker and binary utilities for RISC-V processors
>
> gcc-riscv64-unknown-elf/oldstable,now 8.3.0.2019.08+dfsg-1 arm64
> [installed]
>GCC compiler for embedded RISC-V chips
>
> picolibc-riscv64-unknown-elf/oldstable,oldstable,now 1.5.1-2 all
> [installed]
>Smaller embedded C library for RISC-V development
>
> So just `sudo apt-get install ...` of the above.
>
> > Please try to remove  "CFLAGS += -lm " and feedback if that helps.
>
> No change.
>
> The problem is not that I am trying to use some released libm library
> but that the NuttX nuttx/libs/libm/libm.a is not being linked into the
> scheme binary file.
>
> I have not used other than trivial makefiles in a couple of decades,
> never used `make menuconfig`, which allows one to specify many
> non-bootable systems, and so have little clue how to specify linking the
> NuttX libm into the scheme executable or alternately getting nuttx to
> dynamically load the libm library.
>
> Note that there is no file 'kconfig-language.txt' in the NuttX tools
> repository.
>
> I am kinda stuck.  Thanks for any help!
> -KenD
>
>


[Article] NuttX on Star64 JH7110: OpenSBI (Supervisor Binary Interface)

2023-10-28 Thread Lee, Lup Yuen
Bare Metal Programming on a RISC-V SBC (Single-Board Computer) sounds
difficult. Thankfully we can get help from the OpenSBI Supervisor Binary
Interface! (A little like BIOS, but for RISC-V)

In this article, we boot NuttX on Star64 JH7110 RISC-V SBC (and
VisionFive2) to experiment with OpenSBI:

(1) Print to the Serial Console
(2) Set a System Timer
(3) Query the RISC-V CPUs
(4) Fetch the System Information
(5) And Shutdown / Reboot our SBC

Check out the article: https://lupyuen.codeberg.page/articles/sbi.html

Lup


[Article] NuttX on Ox64 BL808 RISC-V SBC

2023-11-04 Thread Lee, Lup Yuen
Pine64 Ox64 is an affordable RISC-V SBC ($8) based on Bouffalo Lab BL808
SoC with 3 (Asymmetric) RISC-V Cores:

(1) D0 Multimedia Core: 64-bit T-Head C906 with MIPI CSI, Neural Processing
Unit
(2) M0 Wireless Core: 32-bit T-Head E907 with WiFi, Bluetooth LE, Zigbee,
Audio, USB, Ethernet
(3) Low Power Core: 32-bit T-Head E902

In this article we explore how NuttX might run on Ox64 (with OpenSBI and
U-Boot Bootloader).

Check out the article: https://lupyuen.codeberg.page/articles/ox64.html

Lup


Re: [VOTE] Apache NuttX 12.3.0 RC1 release

2023-10-18 Thread Lee, Lup Yuen
+1 for PinePhone and Star64

Minor Issue: Building PinePhone on macOS shows the message "sed: illegal
option -- r" and still builds OK. The patch has been merged, we can add
this to the next release: https://github.com/apache/nuttx/pull/10881

= PinePhone Compiler
+ aarch64-none-elf-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-none-elf-gcc
COLLECT_LTO_WRAPPER=/Applications/ArmGNUToolchain/11.3.rel1/aarch64-none-elf/bin/../libexec/gcc/aarch64-none-elf/11.3.1/lto-wrapper
Target: aarch64-none-elf
Configured with:
/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/configure
--target=aarch64-none-elf
--prefix=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/install
--with-gmp=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-mpfr=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-mpc=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-isl=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--disable-shared --disable-nls --disable-threads --disable-tls
--enable-checking=release --enable-languages=c,c++,fortran --with-newlib
--with-gnu-as --with-gnu-ld
--with-sysroot=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/install/aarch64-none-elf
--with-pkgversion='Arm GNU Toolchain 11.3.Rel1' --with-bugurl=
https://bugs.linaro.org/
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 11.3.1 20220712 (Arm GNU Toolchain 11.3.Rel1)

= PinePhone Configuration
+ ./tools/configure.sh pinephone:nsh

= PinePhone Size
+ aarch64-none-elf-size nuttx
   text   databssdechex filename
 223903  12913  41612 278428  43f9c nuttx

= PinePhone NSH Info and Free
NuttShell (NSH) NuttX-12.3.0
nsh> uname -a
NuttX 12.3.0 8fdb56b5f2 Oct 18 2023 16:04:29 arm64 pinephone
nsh> free
   total   used   freelargest  nused  nfree
Umem:  133406712 551512  132855200  132855104 58  2

= Star64 Compiler
+ riscv64-unknown-elf-gcc -v
Using built-in specs.
COLLECT_GCC=riscv64-unknown-elf-gcc
COLLECT_LTO_WRAPPER=/Users/Luppy/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-apple-darwin/bin/../libexec/gcc/riscv64-unknown-elf/10.2.0/lto-wrapper
Target: riscv64-unknown-elf
Configured with:
/scratch/jenkins/workspace/tpp-freedom-tools/tpp01--build-binary-packages--parameterized/obj/x86_64-apple-darwin/build/riscv64-unknown-elf-gcc/riscv-gcc/configure
--target=riscv64-unknown-elf
--prefix=/scratch/jenkins/workspace/tpp-freedom-tools/tpp01--build-binary-packages--parameterized/obj/x86_64-apple-darwin/install/riscv64-unknown-elf-gcc-10.2.0-2020.12.8-x86_64-apple-darwin
--with-pkgversion='SiFive GCC-Metal 10.2.0-2020.12.8' --with-bugurl=
https://github.com/sifive/freedom-tools/issues --disable-shared
--disable-threads --enable-languages=c,c++ --enable-tls --with-newlib
--with-sysroot=/scratch/jenkins/workspace/tpp-freedom-tools/tpp01--build-binary-packages--parameterized/obj/x86_64-apple-darwin/install/riscv64-unknown-elf-gcc-10.2.0-2020.12.8-x86_64-apple-darwin/riscv64-unknown-elf
--with-native-system-header-dir=/include --disable-libmudflap
--disable-libssp --disable-libquadmath --disable-libgomp --disable-nls
--disable-tm-clone-registry --src=../riscv-gcc --with-system-zlib
--enable-checking=yes --enable-multilib --with-abi=lp64d
--with-arch=rv64imafdc CFLAGS=-O2 CXXFLAGS=-O2 'CFLAGS_FOR_TARGET=-Os
-mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-Os -mcmodel=medany'
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (SiFive GCC-Metal 10.2.0-2020.12.8)

= Star64 Configuration
+ ./tools/configure.sh star64:nsh

= Star64 Size
+ riscv64-unknown-elf-size nuttx
   text   databssdechex filename
 168996641  23984 193621  2f455 nuttx

= Star64 NSH Info and Free
NuttShell (NSH) NuttX-12.3.0
nsh> uname -a
NuttX 12.3.0 8fdb56b5f2 Oct 18 2023 16:09:46 risc-v star64
nsh> free
   total   used   freelargest  nused  nfree
Kmem:2065400  1460020508002049440 50  3
Page:   20971520 643072   20328448   20328448

PinePhone Script:
https://gist.github.com/lupyuen/cdd99bf29ac039b1d8ba185beb4aba00

PinePhone Log:
https://gist.github.com/lupyuen/34078e968667c9daff76843d0ef2745c

Star64 Script:
https://gist.github.com/lupyuen/6003914adc6473922712acb7fa9cad17

Star64 Log: https://gist.github.com/lupyuen/9c7f6e332045323134d2f34a586fea5d

Lup

On Wed, Oct 18, 2023 at 3:18 PM Alin Jerpelea  wrote:

> Hello all,
> Apache NuttX 12.3.0 RC1 has been staged under [1] and it's
> time to vote on accepting it for release. Voting will be open for 72hr.
>
> A minimum of 3 binding +1 votes and more binding +1 than binding -1 are
> required to pass.
>
> The Apache requirements for approving a release can be found here [3]
> "Before voting +1 PMC members 

Re: [VOTE] Apache NuttX 12.3.0 RC0 release

2023-10-09 Thread Lee, Lup Yuen
+1 for PinePhone and Star64

Minor Issue: Building on macOS shows "sed: illegal option -- r", probably
because macOS sed works differently from Linux. I'll track down the PR that
caused this.

Here are the sed messages:
https://gist.github.com/lupyuen/1c3f1f1d71993609bed3b31767595beb#file-pinephone-release-log-L282-L512

= PinePhone Compiler
+ aarch64-none-elf-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-none-elf-gcc
COLLECT_LTO_WRAPPER=/Applications/ArmGNUToolchain/11.3.rel1/aarch64-none-elf/bin/../libexec/gcc/aarch64-none-elf/11.3.1/lto-wrapper
Target: aarch64-none-elf
Configured with:
/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/configure
--target=aarch64-none-elf
--prefix=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/install
--with-gmp=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-mpfr=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-mpc=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-isl=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--disable-shared --disable-nls --disable-threads --disable-tls
--enable-checking=release --enable-languages=c,c++,fortran --with-newlib
--with-gnu-as --with-gnu-ld
--with-sysroot=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/install/aarch64-none-elf
--with-pkgversion='Arm GNU Toolchain 11.3.Rel1' --with-bugurl=
https://bugs.linaro.org/
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 11.3.1 20220712 (Arm GNU Toolchain 11.3.Rel1)

= PinePhone Configuration
+ ./tools/configure.sh pinephone:nsh

= PinePhone Size
+ aarch64-none-elf-size nuttx
   text   databssdechex filename
 223895  12913  41612 278420  43f94 nuttx

= PinePhone NSH Info and Free
NuttShell (NSH) NuttX-12.3.0
nsh> uname -a
NuttX 12.3.0 1d349a2a32 Oct  9 2023 16:15:01 arm64 pinephone
nsh> free
   total   used   freelargest  nused  nfree
Umem:  133406712 551512  132855200  132855104 58  2

= Star64 Compiler
+ riscv64-unknown-elf-gcc -v
Using built-in specs.
COLLECT_GCC=riscv64-unknown-elf-gcc
COLLECT_LTO_WRAPPER=/Users/Luppy/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-apple-darwin/bin/../libexec/gcc/riscv64-unknown-elf/10.2.0/lto-wrapper
Target: riscv64-unknown-elf
Configured with:
/scratch/jenkins/workspace/tpp-freedom-tools/tpp01--build-binary-packages--parameterized/obj/x86_64-apple-darwin/build/riscv64-unknown-elf-gcc/riscv-gcc/configure
--target=riscv64-unknown-elf
--prefix=/scratch/jenkins/workspace/tpp-freedom-tools/tpp01--build-binary-packages--parameterized/obj/x86_64-apple-darwin/install/riscv64-unknown-elf-gcc-10.2.0-2020.12.8-x86_64-apple-darwin
--with-pkgversion='SiFive GCC-Metal 10.2.0-2020.12.8' --with-bugurl=
https://github.com/sifive/freedom-tools/issues --disable-shared
--disable-threads --enable-languages=c,c++ --enable-tls --with-newlib
--with-sysroot=/scratch/jenkins/workspace/tpp-freedom-tools/tpp01--build-binary-packages--parameterized/obj/x86_64-apple-darwin/install/riscv64-unknown-elf-gcc-10.2.0-2020.12.8-x86_64-apple-darwin/riscv64-unknown-elf
--with-native-system-header-dir=/include --disable-libmudflap
--disable-libssp --disable-libquadmath --disable-libgomp --disable-nls
--disable-tm-clone-registry --src=../riscv-gcc --with-system-zlib
--enable-checking=yes --enable-multilib --with-abi=lp64d
--with-arch=rv64imafdc CFLAGS=-O2 CXXFLAGS=-O2 'CFLAGS_FOR_TARGET=-Os
-mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-Os -mcmodel=medany'
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (SiFive GCC-Metal 10.2.0-2020.12.8)

= Star64 Configuration
+ ./tools/configure.sh star64:nsh

= Star64 Size
+ riscv64-unknown-elf-size nuttx
   text   databssdechex filename
 168996641  23984 193621  2f455 nuttx

= Star64 NSH Info and Free
NuttShell (NSH) NuttX-12.3.0
nsh> uname -a
NuttX 12.3.0 1d349a2a32 Oct  9 2023 17:08:13 risc-v star64
nsh> free
   total   used   freelargest  nused  nfree
Kmem:2065400  1460020508002049440 50  3
Page:   20971520 643072   20328448   20328448

PinePhone Release Script:
https://gist.github.com/lupyuen/fbc2d0b7fb5dfbc62b4f9b3aae8626ea

PinePhone Release Log:
https://gist.github.com/lupyuen/1c3f1f1d71993609bed3b31767595beb

Star64 Release Script:
https://gist.github.com/lupyuen/f19eb54140a1d09811d42ed143810b36

Star64 Release Log:
https://gist.github.com/lupyuen/0ea8f3ac61e07d8b6e308e31ed5f7734

Lup

On Mon, Oct 9, 2023 at 3:27 PM Alin Jerpelea  wrote:

> Hello all,
> Apache NuttX 12.3.0 RC0 has been staged under [1] and it's
> time to vote on accepting it for release. Voting will be open for 72hr.
>
> A minimum of 3 binding +1 votes and more binding +1 than binding -1 are
> required to 

[Article] NuttX on Star64 JH7110: Inside the Display Controller

2023-08-22 Thread Lee, Lup Yuen
We’re building a HDMI Display Driver for NuttX on Star64 SBC, but the
JH7110 Display Controller isn't documented!

In this article, we decipher the Official Driver for JH7110 Display
Controller and figure out how it works...

(1) What’s inside the Direct Rendering Manager (DRM) Driver for JH7110
(2) How it controls the Display Registers
(3) To handle the Display Pipeline, Display Planes and Framebuffers
(4) And how it talks to HDMI and MIPI DSI (Display Serial Interface)
(5) How we might implement our NuttX Driver

Here's the article: https://lupyuen.codeberg.page/articles/display2.html

Lup


Article: NuttX Touch Panel Driver for PineDio Stack BL604

2022-04-20 Thread Lee, Lup Yuen
PineDio Stack BL604 is Pine64's newest RISC-V Board and it ships with a
Colour LCD Touchscreen. This article explains how I created the driver for
the Hynitron CST816S I2C Touch Panel...

https://lupyuen.github.io/articles/touch

Lup


Article: PineDio Stack BL604 runs NuttX

2022-04-10 Thread Lee, Lup Yuen
Pine64 will soon be selling the PineDio Stack BL604 RISC-V board with
ST7789 Display, Touch Panel, LoRa SX1262 and a bunch of I2C sensors onboard.

This article describes the NuttX features that will be supported on PineDio
Stack at launch...

https://lupyuen.github.io/articles/pinedio2

Lup


Article: Buttons on BL602 NuttX

2022-04-23 Thread Lee, Lup Yuen
Robert Lipe and I are working on Pine64's PineDio Stack BL604 RISC-V board
and adding NuttX support for the Push Button. In this article, Robert
explains the interesting things that we've learnt...

https://www.robertlipe.com/buttons-on-bl602-nuttx/

Lup


Article: Zig on RISC-V BL602

2022-06-01 Thread Lee, Lup Yuen
This article explains how I ran a simple Zig app on BL602 NuttX:

https://lupyuen.github.io/articles/zig

Lup


Article: Build an LVGL Touchscreen App with Zig

2022-07-11 Thread Lee, Lup Yuen
This article explains how I used Zig to write an LVGL application for NuttX:

https://lupyuen.github.io/articles/lvgl

Lup


Article: Build an IoT App with Zig and LoRaWAN

2022-06-13 Thread Lee, Lup Yuen
This article explains how I created a LoRaWAN App with Zig and NuttX:

https://lupyuen.github.io/articles/iot

Lup


Article: Automated Testing of NuttX on PineDio Stack BL604

2022-05-21 Thread Lee, Lup Yuen
This article explains how we do Automated Testing of every NuttX Release
for PineDio Stack BL604 RISC-V Board...

https://lupyuen.github.io/articles/auto2

Lup


Article: Read NuttX Sensor Data with Zig

2022-07-28 Thread Lee, Lup Yuen
This article explains the steps to read a NuttX Sensor with the new-ish Zig
programming language...

https://lupyuen.github.io/articles/sensor

Lup


Article: GPIO Expander for PineDio Stack BL604

2022-05-02 Thread Lee, Lup Yuen
This article explains how I created an I/O Expander to manage all 23 GPIOs
on PineDio Stack BL604 RISC-V Board:

https://lupyuen.github.io/articles/expander

Lup


Article: NuttX on Arm Cortex-A53 and PinePhone

2022-08-24 Thread Lee, Lup Yuen
NuttX now supports 64-bit Arm Cortex-A53 with Multi-Core SMP... Will it run
on Pine64's PinePhone? This article explores how we might run NuttX on a
real phone...

https://lupyuen.github.io/articles/arm

Lup


Re: Article: NuttX on Arm Cortex-A53 and PinePhone

2022-08-27 Thread Lee, Lup Yuen
Thank you so much Nathan! Yes it would be super interesting to see NuttX on
Pi, I hope to run it someday :-)

Lup

On Fri, Aug 26, 2022 at 7:51 AM Nathan Hartman 
wrote:

> On Wed, Aug 24, 2022 at 8:05 PM Lee, Lup Yuen  wrote:
> >
> > NuttX now supports 64-bit Arm Cortex-A53 with Multi-Core SMP... Will it
> run
> > on Pine64's PinePhone? This article explores how we might run NuttX on a
> > real phone...
> >
> > https://lupyuen.github.io/articles/arm
>
>
> Thank you for this article! That is very cool!
>
> Personally I hope to see NuttX running on Raspberry Pi 4 devices one
> of these days.
>
> Currently a project I'm working on is using a lightweight Linux distro
> on these devices, but despite being lightweight in comparison to
> desktop Linux, is still orders of magnitude larger and more complex
> than NuttX would be.
>
> Also, although there are realtime extensions available for Linux,
> after quite a lot of work I have still not succeeded to build a usable
> kernel for these devices which includes those extensions.
>
> NuttX is real-time by definition and would be much simpler, much more
> efficient, much less bloated, and much easier to work with, at least
> for the applications I'm concerned with.
>
> Based on my reading of the above article, perhaps NuttX booting on
> these devices isn't too far-fetched today, even if we'll be missing
> many device drivers for the time being.
>
> Great work! Kudos for the well-written article, and thanks for sharing!
>
> Cheers,
> Nathan
>


Article: PinePhone boots NuttX

2022-08-27 Thread Lee, Lup Yuen
NuttX now boots on Pine64's PinePhone! (Arm Cortex-A53) This article
explains the changes that I made...

https://lupyuen.github.io/articles/uboot

Lup


Article: NuttX on PinePhone: Fixing the Interrupts

2022-08-31 Thread Lee, Lup Yuen
NuttX on Pine64's PinePhone had some issues with Arm64 Interrupts. This
article explains how I fixed them, also how I ported NuttX's GIC v2 from
Arm32 to Arm64. (Generic Interrupt Controller)

https://lupyuen.github.io/articles/interrupt

Lup


Re: Article: PinePhone boots NuttX

2022-08-28 Thread Lee, Lup Yuen
Thanks :-) Right now PinePhone is failing at the interrupt controller (Arm
GIC), I'm finding
out why...

Lup

On Sun, Aug 28, 2022 at 2:16 AM Alin Jerpelea  wrote:

> Nice!
>
> On Sat, 27 Aug 2022, 19:06 Tomek CEDRO,  wrote:
>
> > wow! respect!! :-)
> >
> > --
> > CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
> >
> > On Sat, Aug 27, 2022, 13:25 Lee, Lup Yuen  wrote:
> >
> > > NuttX now boots on Pine64's PinePhone! (Arm Cortex-A53) This article
> > > explains the changes that I made...
> > >
> > > https://lupyuen.github.io/articles/uboot
> > >
> > > Lup
> > >
> >
>


Re: Pine64 / Drivers / Linux

2022-09-26 Thread Lee, Lup Yuen
Hi Tomek: Thanks for sharing, I have been following the Pine64 Community,
indeed these are interesting developments.

At the NuttX Online Workshop I was delighted to hear that NuttX on 64-bit
RISC-V has advanced so far.

Perhaps after porting NuttX to PinePhone, I should try porting NuttX to
STAR64 RISC-V Board :-)

Lup

On Tue, Sep 27, 2022 at 8:25 AM Tomek CEDRO  wrote:

> A bit offtopic but I found this interesting article from one of the
> Pine64 Linux Community Developers.. and I think it may be interesting
> in the context of porting NuttX to Pine64 devices :-)
>
> https://blog.brixit.nl/why-i-left-pine64/
>
> Quite interesting as I am waiting for the 2022Q4 release of "desktop
> class" (OSHW rPI alternative) STAR64 board to work with on FreeBSD :-)
>
> https://wiki.pine64.org/wiki/STAR64
>
> Here, in terms of kernel API stability and only one "OS as the
> distribution", both NuttX and FreeBSD may have clear advantage over
> Linux :-)
>
> I also have this feeling that only Open-Source-Software-AND-Hardware
> will be worth investing time in the long term, thus my focus on the
> RISC-V :-)
>
> --
> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>


Article: NuttX for PinePhone: Display Driver in Zig

2022-10-17 Thread Lee, Lup Yuen
Inside Pine64's PinePhone (Arm64) is an Sitronix ST7703 LCD Controller that
talks over MIPI Display Serial Interface.

This article explains how we created a Quick Prototype of the PinePhone
Display Driver with the Zig Programming Language...

https://lupyuen.github.io/articles/dsi2

Lup


Re: [VOTE] Apache NuttX Community Graduation

2022-10-21 Thread Lee, Lup Yuen
+1: Apache NuttX is ready to graduate to TLP. Yay!

On Fri, Oct 21, 2022 at 8:47 PM Nathan Hartman 
wrote:

> Dear Apache NuttX Community,
>
> Following the [DISCUSS] thread which has gone 72 hours without any
> further issues raised [1]:
>
> This is a call to VOTE on Graduation of Apache NuttX from the
> Incubator to Top-Level Project (TLP).
>
> Please vote:
>
> [ ] +1: Apache NuttX is ready to graduate to TLP
> [ ]  0: No opinion
> [ ] -1: Apache NuttX is NOT ready to graduate; please state reason(s)
>
> If this community vote passes, we will proceed to the next steps. The
> graduation process is documented at [2]. The vote will remain open for
> at least 72 hours. A minimum of 3 binding +1 votes and more binding +1
> than binding -1 are required to pass. The ASF requirements for voting
> can be found at [3].
>
> Project Highlights Since Incubation:
> * Incubating since 2019-12-09
> * Website migrated to nuttx.apache.org
> * Shipped 9 releases under the ASF Incubator
> * Merged 8000 PRs across incubator-nuttx and incubator-nuttx-apps
> * More than 1000 stars on GitHub
> * More than 500 forks on GitHub
> * More than 250 subscribers to dev@nuttx.apache.org
> * In Top 10 Apache projects of 2021 by number of commits [4]
> * 5 mentors
> * 18 PPMC members
> * 26 committers
> * 75 ICLAs
> * 2 CCLAs
> * 21 SGAs
> * 2 release managers
> * 3 NuttX online workshops
> * And much, much more
>
> Let me express a big ***THANK YOU*** to everyone for helping make this
> possible!
>
> [1] https://lists.apache.org/thread/vpj21ofyxmjs528n3b9s72wozh9hjz8f
>
> [2]
> https://incubator.apache.org/guides/graduation.html#graduating_to_a_top_level_project
>
> [3] https://www.apache.org/foundation/voting.html
>
> [4]
> https://thestack.technology/top-apache-projects-in-2021-from-superset-to-nuttx/
>
> Cheers,
> Nathan Hartman
>


Article: Rendering PinePhone's Display (DE and TCON0)

2022-10-29 Thread Lee, Lup Yuen
Inside Pine64's PinePhone (Arm64) is the Allwinner A64 SoC and its A64
Display Engine that renders graphics on the LCD Display.

This article explains how we might build a NuttX Display Driver for
PinePhone's A64 Display Engine.

https://lupyuen.github.io/articles/de

Lup


Re: Article: Rendering PinePhone's Display (DE and TCON0)

2022-10-30 Thread Lee, Lup Yuen
Thank you so much Alan! PinePhone has always been a super complicated and
mysterious gadget, I'm so glad that we can now use NuttX to explain
everything inside PinePhone :-)

Lup

On Sun, Oct 30, 2022 at 6:55 PM Alan C. Assis  wrote:

> Thank you very much Professor Lup!
>
> Your articles are always very detailed and easy to understand, you are
> a great teacher!
>
> BR,
>
> Alan
>
> On 10/29/22, Lee, Lup Yuen  wrote:
> > Inside Pine64's PinePhone (Arm64) is the Allwinner A64 SoC and its A64
> > Display Engine that renders graphics on the LCD Display.
> >
> > This article explains how we might build a NuttX Display Driver for
> > PinePhone's A64 Display Engine.
> >
> > https://lupyuen.github.io/articles/de
> >
> > Lup
> >
>


Article: NuttX for PinePhone: Blinking the LEDs

2022-09-21 Thread Lee, Lup Yuen
This article explains how we run the BASIC Interpreter on NuttX, to
experiment with the LEDs and GPIOs on Pine64's PinePhone...

https://lupyuen.github.io/articles/pio

Lup


Article: NuttX for PinePhone: UART Driver

2022-09-09 Thread Lee, Lup Yuen
PinePhone now boots to NSH Shell, and runs NuttX Commands perfectly OK!
This article explains how we created the UART Driver for PinePhone...

https://lupyuen.github.io/articles/serial

Lup


Article: Understanding PinePhone's Display (MIPI DSI)

2022-10-01 Thread Lee, Lup Yuen
This article explains what's inside PinePhone's LCD Display (MIPI Display
Serial Interface), and how we might build a NuttX Driver for PinePhone's
ST7703 LCD Controller...

https://lupyuen.github.io/articles/dsi

Lup


Re: Article: Visual Programming with NuttX

2022-08-07 Thread Lee, Lup Yuen
Hi Alan: Yes I would be delighted to talk about Visual Programming with Zig
and NuttX Sensors at the NuttX Workshop. I'll submit the proposal now,
thanks! :-)

Lup

On Sun, Aug 7, 2022 at 8:20 PM Alan Carvalho de Assis 
wrote:

> WOW! Very nice Lup!
>
> That could be old hot topic to present at NuttX Workshop if you still have
> more stamina to do so! :-)
>
> BR,
>
> Alan
>
> On Saturday, August 6, 2022, Lee, Lup Yuen  wrote:
>
> > This article explains how we might drag-and-drop NuttX Sensors to create
> > IoT Sensor Apps...
> >
> > https://lupyuen.github.io/articles/blockly
> >
> > Lup
> >
>


Article: Visual Programming with Zig and NuttX Sensors

2022-08-17 Thread Lee, Lup Yuen
What if we could drag-and-drop NuttX Sensors to create IoT Apps? This
article explains how...

https://lupyuen.github.io/articles/visual

Thanks to Alan C. Assis for the brilliant idea on "Visual Arduino"!

Lup


Article: Visual Programming with NuttX

2022-08-06 Thread Lee, Lup Yuen
This article explains how we might drag-and-drop NuttX Sensors to create
IoT Sensor Apps...

https://lupyuen.github.io/articles/blockly

Lup


Article: NuttX for PinePhone: Display Engine

2022-12-22 Thread Lee, Lup Yuen
NuttX Mainline now supports the Display Engine for Allwinner A64 SoC
(Arm64). Many thanks to my patient reviewers for wading through a thousand
lines of code :-)

This article explains how the A64 Display Engine will be called by the
upcoming LCD Driver for Pine64 PinePhone...

https://lupyuen.github.io/articles/de3

Lup


Re: Article: NuttX for PinePhone: Display Engine

2022-12-22 Thread Lee, Lup Yuen
Thanks everyone! The article landed on the front page of Hacker News,
there's a discussion about NuttX:

https://news.ycombinator.com/item?id=34100614

Lup

On Fri, Dec 23, 2022 at 8:35 AM Alan C. Assis  wrote:

> We all that need to talk you, not only for that driver, but also for
> these amazing documentation!
>
> Thank you Lup!
>
> On 12/22/22, Lee, Lup Yuen  wrote:
> > NuttX Mainline now supports the Display Engine for Allwinner A64 SoC
> > (Arm64). Many thanks to my patient reviewers for wading through a
> thousand
> > lines of code :-)
> >
> > This article explains how the A64 Display Engine will be called by the
> > upcoming LCD Driver for Pine64 PinePhone...
> >
> > https://lupyuen.github.io/articles/de3
> >
> > Lup
> >
>


Re: Article: NuttX for PinePhone: LCD Panel

2022-12-27 Thread Lee, Lup Yuen
Yep we should show our own logo! Anyone got an SVG file? I'll turn it into
the Startup Image for PinePhone :-)

Lup

On Wed, Dec 28, 2022 at 9:21 AM Nathan Hartman 
wrote:

> On Tue, Dec 27, 2022 at 8:06 PM Alan C. Assis  wrote:
>
> > Very nice Lup! Kudos!!!
> >
> > I think we need a drivers/video/logo/ like the Linux kernel to display
> > the NuttX logo.
> >
> >
> That's a fantastic idea! Shown by default on all video-enabled devices
> unless user provides their own.
>
> Cheers,
> Nathan
>


Article: NuttX for PinePhone: LCD Panel

2022-12-27 Thread Lee, Lup Yuen
NuttX Mainline now boots with a Test Pattern on Pine64 PinePhone! (Arm64 /
Allwinner A64 SoC)

This article explains what's inside our new NuttX Driver for PinePhone's
LCD Panel...

https://lupyuen.github.io/articles/lcd

Lup


Article: NuttX for PinePhone: Framebuffer

2022-12-30 Thread Lee, Lup Yuen
LVGL now renders OK on Pine64 PinePhone with NuttX Mainline! (No Touch
Input yet though)

This article explains what's inside our new Framebuffer Driver for
PinePhone, plus a mysterious problem of missing pixels...

https://lupyuen.github.io/articles/fb

The article was "leaked" earlier to Hacker News, we have some helpful
comments on the missing pixels...

https://news.ycombinator.com/item?id=34186806

Lup


Article: NuttX for PinePhone: What is it?

2023-01-01 Thread Lee, Lup Yuen
People often ask why we're porting NuttX to Pine64 PinePhone (Arm64 /
Allwinner A64 SoC). So I wrote an FAQ about NuttX for PinePhone. Have an
Awesome 2023 everyone! :-)

https://lupyuen.github.io/articles/what

Lup


Re: Article: NuttX for PinePhone: Touch Panel

2023-01-12 Thread Lee, Lup Yuen
Yep the NuttX Driver is actually designed for Goodix GT911. But it works
great with PinePhone's GT917S :-)

We're merging the Goodix GT9XX driver to NuttX Mainline now:
https://github.com/apache/nuttx/pull/8101

Lup

On Fri, Jan 13, 2023 at 7:41 AM Bernd Walter 
wrote:

> On Fri, Jan 13, 2023 at 07:12:37AM +0800, Lee, Lup Yuen wrote:
> > PinePhone on NuttX will soon support LVGL Touchscreen Apps! This article
> > explains how we created the NuttX Driver for PinePhone's I2C Touch
> Panel...
> >
> > https://lupyuen.github.io/articles/touch2
>
> Wow - this is quite interesting.
> There are quite a few touchpanel using GT911 controllers and so far
> there is no NuttX-driver for that chip.
> I don't know the GT917 and how similar it is, but I imagine they have
> a lot in common and you even mention the GT911 in that article.
>
> --
> B.Walter  https://www.bwct.de
> Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
>


Article: NuttX for PinePhone: Touch Panel

2023-01-12 Thread Lee, Lup Yuen
PinePhone on NuttX will soon support LVGL Touchscreen Apps! This article
explains how we created the NuttX Driver for PinePhone's I2C Touch Panel...

https://lupyuen.github.io/articles/touch2

Lup


Article: NuttX for PinePhone: MIPI Display Serial Interface

2022-12-14 Thread Lee, Lup Yuen
NuttX Mainline now supports MIPI DSI (Display Serial Interface) on Pine64
PinePhone! (Allwinner A64 SoC)

This article explains how MIPI DSI will be called by the upcoming PinePhone
Display Driver...

https://lupyuen.github.io/articles/dsi3

Lup


Re: Article: NuttX RTOS for PinePhone: Render Graphics in Zig

2022-11-15 Thread Lee, Lup Yuen
Thanks everyone! It's time for me to merge the PinePhone code into NuttX
Mainline :-)

On Tue, Nov 15, 2022 at 9:21 PM alin.jerpe...@sony.com <
alin.jerpe...@sony.com> wrote:

> NICE!
>
>
> -Original Message-
> From: Tomek CEDRO 
> Sent: den 15 november 2022 14:18
> To: dev@nuttx.apache.org
> Subject: Re: Article: NuttX RTOS for PinePhone: Render Graphics in Zig
>
> CONGRATZ! :-)
>
> --
> CeDeROM, SQ7MHZ,
> https://urldefense.com/v3/__http://www.tomek.cedro.info__;!!JmoZiZGBv3RvKRSx!7DpXb6g0WSb3fJwyPE1svv9Fqc4z9Y8fCGPJoHURahXPSK06X_Vj99tzpIhuPkZw-WaROCwlXuiRc5S8YQ$
>


PinePhone added to NuttX Mainline

2022-11-25 Thread Lee, Lup Yuen
Pine64 PinePhone is now supported by NuttX Mainline! If you have a
PinePhone (and PinePhone Serial Debug Cable), you're welcome to try NuttX
on PinePhone...

https://github.com/apache/nuttx/blob/master/Documentation/platforms/arm/a64/boards/pinephone/index.rst

Please lemme know if you see any issues. Thanks! :-)

Let's make NuttX the fun new way to teach the internals of Smartphone
Operating Systems!

Lup


Article: Preparing a Pull Request for NuttX

2022-11-28 Thread Lee, Lup Yuen
This article explains how I prepared my Pull Requests for NuttX. I hope
this will be helpful for folks contributing to NuttX for the very first
time :-)

https://lupyuen.github.io/articles/pr

Lup


Re: Article: Preparing a Pull Request for NuttX

2022-11-28 Thread Lee, Lup Yuen
Thanks everyone! Yep I think we can add some parts into the official docs,
minus the fishy jokes :-)

Lup

On Mon, Nov 28, 2022 at 8:51 PM Alan C. Assis  wrote:

> Kudos Lup!
>
> Maybe we could mix it with our current documentation to create a better
> doc.
>
> BR,
>
> Alan
>
> On 11/28/22, Lee, Lup Yuen  wrote:
> > This article explains how I prepared my Pull Requests for NuttX. I hope
> > this will be helpful for folks contributing to NuttX for the very first
> > time :-)
> >
> > https://lupyuen.github.io/articles/pr
> >
> > Lup
> >
>


Article: NuttX trips ChatGPT

2023-01-28 Thread Lee, Lup Yuen
ChatGPT (the AI chatbot) will gladly answer questions about NuttX! But the
answers aren't always correct.

Let's turn this into a learning opportunity, and understand why ChatGPT's
answers are incorrect...

https://lupyuen.github.io/articles/chatgpt

Lup


Article: NuttX for PinePhone: Boot to LVGL

2023-01-21 Thread Lee, Lup Yuen
NuttX now boots with an LVGL Touchscreen App on PinePhone! (Without a
Serial Cable)

This article explains how we configured NuttX to boot LVGL, and how we
tweaked LVGL to be more Touch-Friendly on PinePhone...

https://lupyuen.github.io/articles/lvgl2

Lup


Article: NuttX RTOS for PinePhone: Render Graphics in Zig

2022-11-15 Thread Lee, Lup Yuen
Inside Pine64's PinePhone (Arm64) is the Allwinner A64 Display Engine that
renders graphics on the LCD Display.

This article explains how we're building a NuttX Driver for the A64 Display
Engine, using the Zig Programming Language...

https://lupyuen.github.io/articles/de2

Lup


Article: NuttX for PinePhone: LVGL Terminal for NSH Shell

2023-02-01 Thread Lee, Lup Yuen
Now we can run NuttX Console Apps on PinePhone, without a Serial Cable!

This article explains how we call the LVGL GUI Library to create a
Touchscreen Terminal App that runs NSH Commands...

https://lupyuen.github.io/articles/terminal

Lup


Article: NuttX for PinePhone: Simpler USB with EHCI

2023-03-23 Thread Lee, Lup Yuen
Weeks ago we talked about porting NuttX to PinePhone, and how we might turn
it into a Feature Phone.

But to make phone calls and send text messages, we need to control the LTE
Modem over USB. Thus today we’ll build a USB Driver for NuttX on PinePhone…

1. What’s USB Enhanced Host Controller Interface (EHCI)

2. Why it’s simpler than USB On-The-Go (OTG)

3. How we ported the USB EHCI Driver from NuttX to PinePhone

4. Handling USB Clocks and USB Resets on PinePhone (with tips from U-Boot
Bootloader)

5. And the NuttX EHCI Driver boots OK on PinePhone! 

https://lupyuen.github.io/articles/usb3

Lup


Article: (Clickable) Call Graph for NuttX on PinePhone

2023-03-04 Thread Lee, Lup Yuen
Last week we ran NuttX on Unicorn Emulator and we hit a baffling Arm64
Exception. In this article we’ll create some tools to troubleshoot the
exception…

1.  Render the Dynamic Call Graph for NuttX, to understand how it boots

2.  Make it Clickable, so we can browse the NuttX Source Code as we explore
the Call Graph

3.  We’ll use a Block Execution Hook in Unicorn Emulator to generate the
Call Graph with Rust

4.  And call the Rust Libraries addr2line and gimli to map the Code
Addresses to NuttX Kernel Functions

5.  Thanks to the (Clickable) Call Graph, we’ll describe the complete Boot
Sequence of NuttX on PinePhone

6.  And explain how we might do Automated Daily Build and Test for NuttX on
PinePhone

https://lupyuen.github.io/articles/unicorn2

Lup


Article: NuttX for PinePhone: Exploring USB

2023-02-17 Thread Lee, Lup Yuen
We're about to turn PinePhone on NuttX into a Feature Phone... But to talk
to PinePhone's LTE Modem, we need a NuttX Driver for Allwinner A64 USB
Controller.

In this article we’ll dive into PinePhone’s USB Controller…

1. Why PinePhone needs USB for Voice Calls and SMS

2. What’s inside PinePhone’s Allwinner A64 USB Controller

3. Which is actually a Mentor Graphics Inventra USB Controller

4. We’ll study the FreeBSD Driver for the USB Controller

5. And how we might port the USB Driver to NuttX

6. By comparing with the STM32 USB Driver for NuttX

https://lupyuen.github.io/articles/usb2

Lup


Article: Emulate NuttX on PinePhone with Unicorn Emulator

2023-02-23 Thread Lee, Lup Yuen
Unicorn is a lightweight CPU Emulator Framework based on QEMU.

To make PinePhone testing easier, can we emulate NuttX on PinePhone with
Unicorn Emulator? In this article we’ll call Unicorn Emulator to…

1. Emulate Arm64 Machine Code

2. Attach Hooks to intercept Memory Access and Code Execution

3. Boot NuttX in the emulator

4. Simulate the UART Controller for PinePhone

5. Track an Exception in Arm64 Memory Management

https://lupyuen.github.io/articles/unicorn

Lup


Re: MCU/Board with WiFi, BT and USB Host

2023-04-20 Thread Lee, Lup Yuen
That's correct, NuttX on PinePhone doesn't support WiFi and BT yet.

We're still working on USB Host for PinePhone:
https://lupyuen.github.io/articles/usb3

Lup

On Thu, Apr 20, 2023 at 11:07 PM Alan C. Assis  wrote:

> Hi Mr. Zou,
>
> PinePhone is a nice idea, but I'm afraid that WiFi is not supported yet
> too.
>
> Mr. Lup, could you please confirm/deny my suspect?
>
> BR,
>
> Alan
>
> On 4/20/23, fft  wrote:
> > I think PinePhone is a great choice
> >
> >
> >
> > --Original--
> > From: "PetroKarashchenko" > Date: Thu, Apr 20, 2023 09:25 PM
> > To: "dev" >
> > Subject: MCU/Board with WiFi, BT and USB Host
> >
> > 
> >
> > Hello,
> >
> > I'm looking for an MCU or better a development board that has WiFi, BT
> and
> > USB host capabilities. Can anybody give me advice for that? I need to
> > connect a CDC ACM device to that USB, so maybe there are some
> alternatives
> > that can be used (there is a device that exposes its functionality via
> USB
> > to serial), so I need to communicate with that from my device.
> > If that MCU is supported by NuttX then it would be super fantastic!
> >
> > Best regards,
> > Petro
>


Re: How ro re-trigger CI workflow?

2023-04-22 Thread Lee, Lup Yuen
Hi Zou: Usually I rebase my branch with the Master Branch to re-trigger the
CI Workflow...

https://lupyuen.github.io/articles/pr#submit-the-pull-request

Hope this helps :-)

Lup

On Sat, Apr 22, 2023 at 4:25 PM fft  wrote:

> Hello,
>
>
> Two weeks ago, i created a PR #8999 to fix an issue of mpu60x0 drivers in
> SPI mode, but the PR was hanged due to nuttx's CI broken. it seems that the
> nuttx's CI was fixed by #9036 recently, but i don't know how to re-trigger
> CI workflow of PR #8999, I checked Github webpage, there's no button to
> re-trigger CI workflow, I searched online and there no answer as well.
> anyone who can give me some suggestion?
>
>
>
> Best regards,
> Zou


Article: NuttX for PinePhone: 4G LTE Modem

2023-04-10 Thread Lee, Lup Yuen
Right now we’re building a Feature Phone with NuttX on PinePhone. To make
things simpler, we’re writing down everything we know about the 4G LTE
Modem, and how it works inside PinePhone…

1. What’s the Quectel EG25-G LTE Modem

2. How it’s connected inside PinePhone

3. How we make Phone Calls and send Text Messages

4. How we power up the LTE Modem

5. Programming the LTE Modem with UART, USB and NuttX

Read on to learn all about PinePhone’s 4G LTE Modem…

https://lupyuen.github.io/articles/lte

Lup


Re: [VOTE] Apache NuttX 12.1.0 RC0 release

2023-04-11 Thread Lee, Lup Yuen
+1 for PinePhone

= Compiler
+ aarch64-none-elf-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-none-elf-gcc
COLLECT_LTO_WRAPPER=/Applications/ArmGNUToolchain/11.3.rel1/aarch64-none-elf/bin/../libexec/gcc/aarch64-none-elf/11.3.1/lto-wrapper
Target: aarch64-none-elf
Configured with:
/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/configure
--target=aarch64-none-elf
--prefix=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/install
--with-gmp=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-mpfr=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-mpc=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-isl=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--disable-shared --disable-nls --disable-threads --disable-tls
--enable-checking=release --enable-languages=c,c++,fortran --with-newlib
--with-gnu-as --with-gnu-ld
--with-sysroot=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/install/aarch64-none-elf
--with-pkgversion='Arm GNU Toolchain 11.3.Rel1' --with-bugurl=
https://bugs.linaro.org/
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 11.3.1 20220712 (Arm GNU Toolchain 11.3.Rel1)

= Configuration
+ ./tools/configure.sh pinephone:nsh

= Size
+ aarch64-none-elf-size nuttx
   text   databssdechex filename
 218576  12897  41575 273048  42a98 nuttx

= NSH Info and Free
NuttShell (NSH) NuttX-12.1.0
nsh> name -a
NuttX 12.1.0 d40f4032fc Apr 12 2023 07:11:20 arm64 pinephone
nsh> free
   total   used   freelargest  nused  nfree
Umem:  133414240 550768  132863472  132863376 56  2

Complete Log:
https://gist.github.com/lupyuen/5760e0375d44a06b3c730a10614e4d24

Validation Script:
https://gist.github.com/lupyuen/a08d3d478beefc5a492ed2dae39438f3

Lup

On Tue, Apr 11, 2023 at 4:52 PM Alin Jerpelea  wrote:

> Hello all,
> Apache NuttX 12.1.0 RC0 has been staged under [1] and it's
> time to vote on accepting it for release. Voting will be open for 72hr.
>
> A minimum of 3 binding +1 votes and more binding +1 than binding -1 are
> required to pass.
>
> The Apache requirements for approving a release can be found here [3]
> "Before voting +1 [P]PMC members are required to download the signed
> source code package, compile it as provided, and test the resulting
> executable on their own platform, along with also verifying that the
> package meets the requirements of the ASF policy on releases."
>
> A document to walk through some of this process has been published on
> our project wiki and can be found here [4].
>
> [ ] +1 accept (indicate what you validated - e.g. performed the non-RM
> items in [4])
> [ ] -1 reject (explanation required)
>
> Thank you all,
> Alin Jerpelea
>
> SCM Information:
>   Release tag: nuttx-12.1.0-RC0
>   Hash for the release nuttx tag: d40f4032fc5491d2aeb9fde37042a5be9eabeb15
>   Hash for the release nuttx-apps tag:
> 125cf7abe2d7f345c3bc58c0bdea2360fdefa170
>
> [1] https://dist.apache.org/repos/dist/dev/nuttx/12.1.0-RC0/
> [2]
> https://raw.githubusercontent.com/apache/nuttx/nuttx-12.1.0-RC0/ReleaseNotes
> [3] https://www.apache.org/dev/release.html#approving-a-release
> [4]
> https://cwiki.apache.org/confluence/display/NUTTX/Validating+a+staged+Release
>


Re: Video: NuttX for PinePhone

2023-02-07 Thread Lee, Lup Yuen
Thanks Tomek! The video was shot in 4K on a Pixel 7 phone (the non-pro
version). The post-processing (colour grading) really helps to improve the
contrast and bring out the colours.

The "Subscribe" button appears on my computer, lemme figure out why it's
not showing on yours :-)

Lup

On Wed, Feb 8, 2023 at 8:26 AM Tomek CEDRO  wrote:

> On Wed, Feb 8, 2023 at 1:10 AM Lee, Lup Yuen wrote:
> > If we're curious how we download and boot NuttX on PinePhone, this video
> > explains the steps...
> >
> > Watch on YouTube: https://youtu.be/kGI_0yK1vws
>
> Nice video Lup! What camera do you use? Very nice sharp and colorful
> picture :-)
>
> I also noticed that there is no SUBSCRIBE button on your channel?? Is
> it on purpose?? Here is the screenshot: https://ibb.co/WsYxNvj
>
> --
> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>


Video: NuttX for PinePhone

2023-02-07 Thread Lee, Lup Yuen
If we're curious how we download and boot NuttX on PinePhone, this video
explains the steps...

Watch on YouTube: https://youtu.be/kGI_0yK1vws

Download the video (1.4 GB):
https://github.com/lupyuen2/wip-pinephone-nuttx/releases/tag/nuttx-12.0.3

(Sorry some bits look murky, this is my first time shooting in 4K)

Lup


Re: Article: NuttX for PinePhone: LVGL Terminal for NSH Shell

2023-02-02 Thread Lee, Lup Yuen
Thanks Alan! Handling keypresses directly in the LVGL Terminal text box
might get complicated, lemme think about it. Right now the app waits for
the Enter Key and sends the entire command to NSH, which is a lot easier.

LVGL Terminal was inspired by nxterm, so yep I must try nxterm soon :-)

Lup

On Thu, Feb 2, 2023 at 8:28 PM Alan C. Assis  wrote:

> Hi Lup,
>
> Very nice article! Kudos!!!
>
> Is it possible to modify the demo to type direclty inside the "LVGL
> terminal" screen?
>
> Did you test PinePhone nxterm too?
>
> BR,
>
> Alan
>
> On 2/2/23, Lee, Lup Yuen  wrote:
> > Now we can run NuttX Console Apps on PinePhone, without a Serial Cable!
> >
> > This article explains how we call the LVGL GUI Library to create a
> > Touchscreen Terminal App that runs NSH Commands...
> >
> > https://lupyuen.github.io/articles/terminal
> >
> > Lup
> >
>


Re: Article: NuttX for PinePhone: Phone Calls and Text Messages

2023-05-03 Thread Lee, Lup Yuen
Thanks Alan! Yep an LVGL GUI for Feature Phone will be super helpful for
testing Phone Calls and SMS Messages on PinePhone.

First I need to figure out how to parse AT Command Responses reliably on
NuttX :-)

https://lupyuen.github.io/articles/lte2#at-modem-api

Lup

On Wed, May 3, 2023 at 8:08 PM Alan C. Assis  wrote:

> Hi Lup,
>
> Very nice!
>
> Are you planing to create FeaturePhone interface for PinePhone?
>
> BR,
>
> Alan
>
> On 5/3/23, Lee, Lup Yuen  wrote:
> > What makes PinePhone a phone? Because it will make Phone Calls and send
> > Text Messages! Today we turn NuttX on PinePhone into a Feature Phone…
> >
> > 1. Outgoing and Incoming Phone Calls over 4G
> >
> > 2. Send and receive SMS Text Messages
> >
> > 3. Why we prefer Encoded PDU Messages for SMS
> >
> > 4. Programming the 4G LTE Modem with NuttX
> >
> > 5. Doing all these over UART vs USB
> >
> > 6. Upcoming AT Modem API for robust parsing, graceful timeout (plus
> retry)
> > and notification callbacks
> >
> > Read about it here...
> >
> > https://lupyuen.github.io/articles/lte2
> >
> > Lup
> >
>


Re: [VOTE] Apache NuttX 12.2.1 RC0 release

2023-07-10 Thread Lee, Lup Yuen
+1 for PinePhone

= Compiler
+ aarch64-none-elf-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-none-elf-gcc
COLLECT_LTO_WRAPPER=/Applications/ArmGNUToolchain/11.3.rel1/aarch64-none-elf/bin/../libexec/gcc/aarch64-none-elf/11.3.1/lto-wrapper
Target: aarch64-none-elf
Configured with:
/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/configure
--target=aarch64-none-elf
--prefix=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/install
--with-gmp=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-mpfr=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-mpc=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-isl=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--disable-shared --disable-nls --disable-threads --disable-tls
--enable-checking=release --enable-languages=c,c++,fortran --with-newlib
--with-gnu-as --with-gnu-ld
--with-sysroot=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/install/aarch64-none-elf
--with-pkgversion='Arm GNU Toolchain 11.3.Rel1' --with-bugurl=
https://bugs.linaro.org/
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 11.3.1 20220712 (Arm GNU Toolchain 11.3.Rel1)

= Configuration
+ ./tools/configure.sh pinephone:nsh

= Size
+ aarch64-none-elf-size nuttx
   text   databssdechex filename
 221404  12921  41615 275940  435e4 nuttx

= NSH Info and Free
NuttShell (NSH) NuttX-12.2.1
nsh> uname -a
NuttX 12.2.1 148c631a2d Jul 11 2023 09:07:11 arm64 pinephone
nsh> free
   total   used   freelargest  nused  nfree
Umem:  133410808 551480  132859328  132859232 58  2

Complete Log:
https://gist.github.com/lupyuen/8ffc4633da0d5a22885e1ab51753f1f9

Validation Script:
https://gist.github.com/lupyuen/78238b05b94f3140a83ae187f6df4c98

Lup

On Mon, Jul 10, 2023 at 10:46 PM Alin Jerpelea  wrote:

> Hello all,
>
> Apache NuttX 12.2.1 RC0 has been staged under [1] and it's time to vote on
> accepting it for release. Voting will be open for 72hr.
>
>
>
> A minimum of 3 binding +1 votes and more binding +1 than binding -1 are
> required to pass.
>
>
>
> The Apache requirements for approving a release can be found here [3]
> "Before voting +1 [P]PMC members are required to download the signed source
> code package, compile it as provided, and test the resulting executable on
> their own platform, along with also verifying that the package meets the
> requirements of the ASF policy on releases."
>
>
>
> A document to walk through some of this process has been published on our
> project wiki and can be found here [4].
>
>
>
> [ ] +1 accept (indicate what you validated - e.g. performed the non-RM
> items in [4])
>
> [ ] -1 reject (explanation required)
>
>
>
> Thank you all,
>
> Alin Jerpelea
>
>
>
> SCM Information:
>
>   Release tag: nuttx-12.2.1-RC0
>
>   Hash for the release nuttx tag: 148c631a2d252d4d59ae4cd90d1890d2daed381d
>
>   Hash for the release nuttx-apps tag:
> 86efbcbee77bc0a29af07807080f4804a37f46a3
>
>
> [1] https://dist.apache.org/repos/dist/dev/nuttx/12.2.1-RC0/
> [2]
> https://raw.githubusercontent.com/apache/nuttx/nuttx-12.2.1-RC0/ReleaseNotes
> [3] https://www.apache.org/dev/release.html#approving-a-release
> [4]
> https://cwiki.apache.org/confluence/display/NUTTX/Validating+a+staged+Release
>


[Article] NuttX on RISC-V: Star64 JH7110 SBC

2023-07-08 Thread Lee, Lup Yuen
In this article we’ll boot a tiny bit of NuttX on the Pine64 Star64 64-bit
RISC-V Single-Board Computer. (Based on StarFive JH7110 SoC)

(1) Migrate NuttX from QEMU Emulator to Star64
(2) Print to the Serial Console in RISC-V Assembly
(3) Trick U-Boot Bootloader into thinking we’re Linux
(4) Downgrade from Machine to Supervisor Privilege Level
(5) Helped by OpenSBI Supervisor Interface

Check out the article:
https://lupyuen.codeberg.page/articles/nuttx2.html

Lup


[Article] Boot NuttX from Network with U-Boot and TFTP

2023-07-12 Thread Lee, Lup Yuen
Testing NuttX can get painfully tedious on a Single-Board Computer...
Swapping, reflashing and rebooting a MicroSD Card, again and again and
again! (Like how we tested NuttX on PinePhone)

Thankfully there’s a better way: Booting NuttX over the Local Network, with
U-Boot Bootloader and TFTP! In this article we’ll configure TFTP Network
Boot for testing NuttX on the new Star64 JH7110 RISC-V SBC...

https://lupyuen.codeberg.page/articles/tftp.html

Lup


Re: adding a new board - files?

2023-07-18 Thread Lee, Lup Yuen
Hi Krasimir: I wrote an article about submitting a NuttX Pull Request on
GitHub, I hope this helps :-)

https://lupyuen.codeberg.page/articles/pr.html

Lup

On Tue, Jul 18, 2023 at 6:44 PM Krasimir Cheshmedzhiev <
cheshmedzh...@gmail.com> wrote:

> Hi all,
>
> I added the support of nucleo-u5a5zj-q
> I made steps described in
> https://nuttx.apache.org/docs/latest/contributing/index.html
>
> There is a button on the branch page who says "Compare & pull request"
> Do I need to push it?
> or
> Do I need to do any additional steps?
>
> Sory for dumb questions but I have never used git.
>
> Best regards
>
> -Original Message-
> From: Alan C. Assis 
> Sent: Monday, July 10, 2023 9:24 PM
> To: dev@nuttx.apache.org
> Subject: Re: adding a new board - files?
>
> Hi Krasimir,
>
> On 7/10/23, Krasimir Cheshmedzhiev  wrote:
> > Hi all,
> >
> >
> >
> > I am working on adding a nucleo-u5a5zj-q to nuttx supported boards.
> > How (where I can read) to prepare files - those which I created and
> > those which I changed, to make them part of main source tree?
> >
>
> Please follow the contribution steps:
>
> https://nuttx.apache.org/docs/latest/contributing/index.html
>
> Any issue, please let us to know.
>
> BR,
>
> Alan
>
>


[Article] NuttX on Star64 JH7110: RISC-V Privilege Levels and UART Registers

2023-07-18 Thread Lee, Lup Yuen
We’re in the super-early stage of porting NuttX to the Pine64 Star64 64-bit
RISC-V SBC. (Based on StarFive JH7110 SoC)

In this article we’ll talk about the interesting things that we learnt
about RISC-V and Star64 JH7110…

(1) What are RISC-V Privilege Levels
 (And why they make NuttX a little more complicated)

(2) What is NuttX Kernel Mode
 (And how it differs from Flat Mode)

(3) All about JH7110’s UART Registers
 (And how they are different from other 16550 UARTs)

(4) Why (naively) porting NuttX from QEMU to Star64 might become really
challenging!
 (Thankfully we have the LiteX Arty-A7 and PolarFire Icicle ports)

https://lupyuen.codeberg.page/articles/privilege.html

Lup


Re: [Article] NuttX on Star64 JH7110: RISC-V Privilege Levels and UART Registers

2023-07-18 Thread Lee, Lup Yuen
Thanks Nathan! I'm still getting used to NuttX Kernel Mode and RISC-V
Machine / Supervisor Modes, so I thought I might stick with QEMU Kernel
Mode and make it work on Star64.

But you're right, when I'm more familiar with Star64, I ought to explore
more of CONFIG_ARCH_USE_S_MODE and RISC-V Machine Mode :-)

Lup

On Wed, Jul 19, 2023 at 10:25 AM Nathan Hartman 
wrote:

> On Tue, Jul 18, 2023 at 7:33 PM Lee, Lup Yuen  wrote:
>
> > We’re in the super-early stage of porting NuttX to the Pine64 Star64
> 64-bit
> > RISC-V SBC. (Based on StarFive JH7110 SoC)
> >
> > In this article we’ll talk about the interesting things that we learnt
> > about RISC-V and Star64 JH7110…
> >
> > (1) What are RISC-V Privilege Levels
> >  (And why they make NuttX a little more complicated)
> >
> > (2) What is NuttX Kernel Mode
> >  (And how it differs from Flat Mode)
> >
> > (3) All about JH7110’s UART Registers
> >  (And how they are different from other 16550 UARTs)
> >
> > (4) Why (naively) porting NuttX from QEMU to Star64 might become really
> > challenging!
> >  (Thankfully we have the LiteX Arty-A7 and PolarFire Icicle ports)
> >
> > https://lupyuen.codeberg.page/articles/privilege.html
> >
> > Lup
> >
>
> Beautiful article!
>
> Question: In section 6, "NuttX flat mode becomes kernel mode," isn't it
> possible to set CONFIG_ARCH_USE_S_MODE for the FLAT build as well? Since
> the board's built-in firmware switches from Machine Mode to Supervisor Mode
> before calling U-Boot -> NuttX, I think that all configurations running on
> this board should select CONFIG_ARCH_USE_S_MODE by default. This can be set
> in Kconfig by default whenever this board is selected, so there is no need
> to remember and add it in multiple places/configs; however if someone
> figures out an alternative firmware that lets us boot NuttX on this board
> in Machine Mode, it will be easy to override. Just a thought...
>
> Thanks for a great article as always!
>
> Cheers,
> Nathan
>


Re: Raspberry pi 4 Support

2023-07-19 Thread Lee, Lup Yuen
Hi Joseph: I think we could follow the same porting steps as I did for
PinePhone? (Allwinner A64 / Cortex-A53)

We started by booting NuttX with the U-Boot Bootloader:
https://lupyuen.github.io/articles/uboot

Then we built up the NuttX Drivers. Check out the articles here:
https://github.com/lupyuen/pinephone-nuttx#apache-nuttx-rtos-for-pinephone

Lup

On Thu, Jul 20, 2023 at 7:18 AM Joseph Gonzalez  wrote:

> Thanks for the info, this seems like a great side project. I am new into
> BSP development. What steps do you think are necessary to bring support to
> the RPi 4?
>
> > El 19 jul. 2023, a las 12:13, Gregory Nutt 
> escribió:
> >
> > Support for the RPi zero with the BCM2708 was started and was partially
> functional, but was never finished:
> >>
> >>  *
> https://bitbucket.org/patacongo/obsoleted/src/master/nuttx/arch/arm/src/bcm2708/
> >>  *
> https://bitbucket.org/patacongo/obsoleted/src/master/nuttx/configs/pizero/
> >>
> > This is, of course, all available in GIT as well.  Commits
> a0a537a9f0b8acb04c9d4873612d38c9ad35c6d3 and
> f50ff845108bbe182e5255b3d723f925cb560c30
> >
>
>


[Article] Booting on RISC-V Star64 JH7110 SBC

2023-07-03 Thread Lee, Lup Yuen
We managed to boot a tiny bit of NuttX on the RISC-V Star64 JH7110 SBC!
(Before crashing with a Privileged Instruction Exception)

This article explains how we patched a Linux Image to boot NuttX on Star64:
https://lupyuen.codeberg.page/articles/linux.html

Lup


Article: LVGL in WebAssembly with Zig Compiler

2023-05-30 Thread Lee, Lup Yuen
Right now we’re creating a Feature Phone UI (in LVGL and Zig) for PinePhone
on NuttX. Would be awesome if we could prototype the Feature Phone UI in
our Web Browser… To make the UI Coding a little easier!

In this article we’ll talk about porting LVGL from PinePhone to WebAssembly…
(1) Run a Zig LVGL App on PinePhone (with NuttX)
(2) How Zig works with WebAssembly (and C Libraries)
(3) Compile LVGL Library from C to WebAssembly (with Zig Compiler)
(4) Test it with our LVGL App (in Zig)
(5) Render Simple LVGL UIs (in Web Browser)

https://lupyuen.codeberg.page/articles/lvgl3.html

Lup


Re: CI tests (was: Re: [OT] Learning Makefiles)

2023-05-23 Thread Lee, Lup Yuen
Maybe we can run the CI Tests once a day, so it's easier to backtrack? FYI
I've run Automated Tests on BL602 NuttX over the past 365 days (except for
the brief Makefile outage last week):

https://github.com/lupyuen/nuttx/tags

Here's how it works:

https://lupyuen.github.io/articles/auto

Lup

On Tue, May 23, 2023 at 3:33 PM Sebastien Lorquet 
wrote:

> Hello,
>
> even if theoretically nice to do, do we really, actually, need to do
> that for the purpose of checking *every* pull request, which are quite
> numerous?
>
> Could that not be done once before a release?
>
> Sebastien
>
> Le 22/05/2023 à 22:31, Maciej Wójcik a écrit :
> > Checking different configurations is an academic problem, I think they
> call
> > it configuration sampling and it is part of variability modelling. There
> > were some papers about sampling of Linux configurations.
> >
> > The simplest approach is to enable all possible, disable all possible,
> but
> > it is not trivial. Each selection multiplies the number of configurations
> > by the number of available options. That has very bad complexity.
> >
> > They use SAT solvers to generate many configurations instead of brute
> > force. The goal is to sample configuration space in a uniform way.
> >
> > Am Mo., 22. Mai 2023 um 21:14 Uhr schrieb Nathan Hartman <
> > hartman.nat...@gmail.com>:
> >
> >> On Mon, May 22, 2023 at 9:29 AM Sebastien Lorquet  >
> >> wrote:
> >>
> >>> If the untold reason is to speed up github tests, then run less tests.
> >>> Do we really need to test build on 13 or 20 arm platforms when only one
> >>> config of the other architectures is tested, and the actual value of
> >>> these build test is dubious?
> >>
> >>
> >> This is an interesting point. It reminds me that (at least in the old
> days,
> >> I don't know now) FreeBSD had a build config that basically enabled all
> >> options, even if that's impossible for actually running, for build
> testing.
> >> I don't know if we can do that but maybe we need one ARM config that
> >> enables as many options as possible and then use other archs for other
> >> tests.
> >>
> >> Just a thought
> >>
> >> Nathan
> >>
>


Article: NuttX for PinePhone: Feature Phone UI in LVGL, Zig and WebAssembly

2023-06-09 Thread Lee, Lup Yuen
We have created an LVGL App that runs in a Web Browser and on NuttX for
PinePhone…

- We compiled LVGL Library from C to WebAssembly with Zig Compiler

- We wrote our LVGL App in the Zig Programming Language (instead of C)

- Exact same code runs in a Web Browser and on NuttX for PinePhone

Which is super helpful for prototyping LVGL Apps! Check out the details in
this article:

https://lupyuen.codeberg.page/articles/lvgl4.html

Lup


[Article] NuttX on Star64 JH7110: Creating the First Release

2023-08-07 Thread Lee, Lup Yuen
Good News! NuttX now officially supports the Pine64 Star64 64-bit RISC-V
SBC, based on the StarFive JH7110 SoC.

(StarFive VisionFive 2 SBC will probably work too, anyone would like to
test?)

In this article we explain how we created the First Release of NuttX for
Star64 JH7110…
(1) Building NuttX for Star64
(2) Creating a Bootable microSD with NuttX Kernel and Initial RAM Disk
(3) What happens during NuttX Startup
(4) Adding the NuttX Arch (JH7110) and NuttX Board (Star64)
(5) Upcoming Features for NuttX on Star64

Which is probably helpful for folks who wish to…
- Add a new NuttX Arch (SoC) or NuttX Board
- Create NuttX Drivers (or NuttX Apps) for Star64 (or VisionFive2)
- Or simply understand how we boot a Modern SBC from scratch!

Check out the article: https://lupyuen.codeberg.page/articles/release.html

Lup


[Article] NuttX on Star64 JH7110: RISC-V Semihosting and Initial RAM Disk

2023-07-27 Thread Lee, Lup Yuen
NuttX crashes on Star64 JH7110 RISC-V SBC because there's no Semihosting.
But no worries! We modified NuttX to boot with an Initial RAM Disk instead
(initrd).

In this article, we find out…
(1) What’s RISC-V Semihosting
(2) Why it crashes NuttX on Star64
(3) How it affects the Apps Filesystem in NuttX
(4) How we replaced Semihosting by Initial RAM Disk “initrd”
(5) After testing on QEMU Emulator
(6) Thanks to NuttX on LiteX Arty-A7 for the guidance!

Check out the article: https://lupyuen.codeberg.page/articles/semihost.html

Lup


[Article] NuttX on Star64 JH7110: RISC-V PLIC Interrupts and Serial I/O

2023-08-01 Thread Lee, Lup Yuen
NuttX on Star64 JH7110 RISC-V SBC is almost ready! But we're stuck with
16550 UART Controller firing too many Spurious Interrupts.

In this article, we explain…
(1) Why there’s No Console Output from NuttX Apps
(2) How Serial I/O works in NuttX QEMU
(3) How UART I/O differs for Star64 vs QEMU
(4) What’s the RISC-V Platform-Level Interrupt Controller (PLIC)
(5) Why we delegate RISC-V Machine-Mode Interrupts to Supervisor-Mode
(6) How NuttX Star64 handles UART Interrupts
(7) Which leads to a new problem: 16550 UART Controller fires too many
Spurious Interrupts!

Check out the article: https://lupyuen.codeberg.page/articles/plic.html

Lup


Re: [Article] NuttX on Star64 JH7110: RISC-V PLIC Interrupts and Serial I/O

2023-08-01 Thread Lee, Lup Yuen
Thanks Tomek! Here's the backup link for the article (since Codeberg is
down): https://lupyuen.github.io/articles/plic

I found out (from Hacker News) that JH7110 uses a Synopsys DesignWare 8250
UART that has a peculiar problem with the Line Control Register (LCR)... If
we write to LCR while the UART is busy, it will trigger spurious UART
Interrupts.

The fix is to wait for the UART to be not busy before writing to LCR.
Here's my proposed patch for the NuttX 16550 UART Driver
(drivers/serial/uart_16550.c):
https://github.com/lupyuen2/wip-pinephone-nuttx/pull/36/files#diff-f208234edbfb636de240a0fef1c85f9cecb37876d5bc91ffb759f70a1e96b1d1

We're all ready to merge NuttX for JH7110! :-)

Lup

On Wed, Aug 2, 2023 at 7:19 AM Tomek CEDRO  wrote:

> On Wed, Aug 2, 2023 at 1:14 AM Lee, Lup Yuen  wrote:
> > NuttX on Star64 JH7110 RISC-V SBC is almost ready! But we're stuck with
> > 16550 UART Controller firing too many Spurious Interrupts.
>
> Good luck Lup! IRQ storm is (was?) known problem on a desktop machines
> too! I hope you fight that beast soon :-) :-)
>
> --
> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>


Re: Article: NuttX for PinePhone: The First Year

2023-06-20 Thread Lee, Lup Yuen
Thanks Alan and Tomek! I had lots of fun proving that NuttX runs really
well on an Arm64 consumer gadget, now I'll do the same for NuttX on 64-bit
RISC-V :-)

Lup

On Tue, Jun 20, 2023 at 8:41 PM Alan C. Assis  wrote:

> Congratulations Lup!
>
> I think your work on PinePhone is an evolution of what people did with
> OsmocomBB and Fernvale many year ago:
>
> https://osmocom.org/projects/baseband/wiki/Fernvale
>
> I think this time we are near to get a usable feature phone running NuttX.
>
> BR,
>
> Alan
>
> On 6/19/23, Lee, Lup Yuen  wrote:
> > One year ago we started porting NuttX to PinePhone. Let’s look back and
> > talk about…
> >
> > 1. The Features that we’ve implemented
> > 2. Our Plans for the future
> > 3. Why we might move to a RISC-V Tablet!
> >
> > Check out the article here...
> >
> > https://lupyuen.codeberg.page/articles/pinephone2.html
> >
> > Lup
> >
>


Article: 64-bit RISC-V with NuttX

2023-06-23 Thread Lee, Lup Yuen
In this article we explore NuttX on 64-bit RISC-V...

(1) Boot NuttX on the QEMU Emulator for 64-bit RISC-V
(2) Study the Boot Code that starts NuttX on RISC-V
(3) And learn a little RISC-V Assembly!

Check out the article here:

https://lupyuen.codeberg.page/articles/riscv.html

Lup


Re: Article: 64-bit RISC-V with NuttX

2023-06-23 Thread Lee, Lup Yuen
Thanks Tomek! Yep I'm starting to port NuttX to the StarFive JH7110 SoC
(64-bit RISC-V) and Pine64 Star64 SBC. Should be really interesting :-)

https://doc-en.rvspace.org/Doc_Center/jh7110.html

https://wiki.pine64.org/wiki/STAR64

Lup

On Sat, Jun 24, 2023 at 8:05 AM Tomek CEDRO  wrote:

> VERY COOL!! :-)
>
> I have VisionFive2 SBC to play with.. would be nice to run NuttX on it :-)
>
> I made run Linux (available images) and FreeBSD (no drivers yet on BSD only
> kernel + apps over uart) on it already :-)
>
> --
> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
>


[Article] Inspecting the Star64 RISC-V SBC

2023-06-28 Thread Lee, Lup Yuen
Pine64 Star64 is a new 64-bit RISC-V Single-Board Computer, based on the
StarFive JH7110 SoC.

In this article we’ll…
(1) Look inside the brand new Linux Images for Star64
(2) Decompile (with Ghidra) the RISC-V Linux Kernel
(3) Figure out how NuttX might run on Star64

Check out the article here:
https://lupyuen.codeberg.page/articles/star64.html

Lup


Article: NuttX for PinePhone: The First Year

2023-06-19 Thread Lee, Lup Yuen
One year ago we started porting NuttX to PinePhone. Let’s look back and
talk about…

1. The Features that we’ve implemented
2. Our Plans for the future
3. Why we might move to a RISC-V Tablet!

Check out the article here...

https://lupyuen.codeberg.page/articles/pinephone2.html

Lup


Re: [VOTE] Apache NuttX 12.2.0 RC0 release

2023-06-30 Thread Lee, Lup Yuen
+1 for PinePhone

= Compiler
+ aarch64-none-elf-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-none-elf-gcc
COLLECT_LTO_WRAPPER=/Applications/ArmGNUToolchain/11.3.rel1/aarch64-none-elf/bin/../libexec/gcc/aarch64-none-elf/11.3.1/lto-wrapper
Target: aarch64-none-elf
Configured with:
/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/src/gcc/configure
--target=aarch64-none-elf
--prefix=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/install
--with-gmp=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-mpfr=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-mpc=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--with-isl=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/host-tools
--disable-shared --disable-nls --disable-threads --disable-tls
--enable-checking=release --enable-languages=c,c++,fortran --with-newlib
--with-gnu-as --with-gnu-ld
--with-sysroot=/Volumes/data/jenkins/workspace/GNU-toolchain/arm-11/build-aarch64-none-elf/install/aarch64-none-elf
--with-pkgversion='Arm GNU Toolchain 11.3.Rel1' --with-bugurl=
https://bugs.linaro.org/
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 11.3.1 20220712 (Arm GNU Toolchain 11.3.Rel1)

= Configuration
+ ./tools/configure.sh pinephone:nsh

= Size
+ aarch64-none-elf-size nuttx
   text   databssdechex filename
 221412  12921  41615 275948  435ec nuttx

= NSH Info and Free
NuttShell (NSH) NuttX-12.2.0
nsh> uname -a
NuttX 12.2.0 26f5e973f6 Jun 30 2023 18:41:32 arm64 pinephone
nsh> free
   total   used   freelargest  nused  nfree
Umem:  133410808 551480  132859328  132859232 58  2

Complete Log:
https://gist.github.com/lupyuen/3b6f7ab19e687e5d9ca57b85df36de2a

Validation Script:
https://gist.github.com/lupyuen/73bab36c5d9fa0ccd94fefe8ea1a7195

Lup


On Fri, Jun 30, 2023 at 4:48 PM Alin Jerpelea  wrote:

> Hello all,
>
> Apache NuttX 12.2.0 RC0 has been staged under [1] and it's time to vote on
> accepting it for release. Voting will be open for 72hr.
>
>
>
> A minimum of 3 binding +1 votes and more binding +1 than binding -1 are
> required to pass.
>
>
>
> The Apache requirements for approving a release can be found here [3]
> "Before voting +1 [P]PMC members are required to download the signed source
> code package, compile it as provided, and test the resulting executable on
> their own platform, along with also verifying that the package meets the
> requirements of the ASF policy on releases."
>
>
>
> A document to walk through some of this process has been published on our
> project wiki and can be found here [4].
>
>
>
> [ ] +1 accept (indicate what you validated - e.g. performed the non-RM
> items in [4])
>
> [ ] -1 reject (explanation required)
>
>
>
> Thank you all,
>
> Alin Jerpelea
>
>
>
> SCM Information:
>
>   Release tag: nuttx-12.2.0-RC0
>
>   Hash for the release nuttx tag: 26f5e973f68a7bb4ee66915fce2c723641d5e045
>
>   Hash for the release nuttx-apps tag:
> 86efbcbee77bc0a29af07807080f4804a37f46a3
>
>
> [1] https://dist.apache.org/repos/dist/dev/nuttx/12.2.0-RC0/
> [2]
> https://raw.githubusercontent.com/apache/nuttx/nuttx-12.2.0-RC0/ReleaseNotes
> [3] https://www.apache.org/dev/release.html#approving-a-release
> [4]
> https://cwiki.apache.org/confluence/display/NUTTX/Validating+a+staged+Release
>


Article: PinePhone Accelerometer with NuttX (InvenSense MPU-6050)

2023-05-17 Thread Lee, Lup Yuen
When we tilt our Smartphone from Portrait to Landscape... How does it know
that we're tilting our phone? Watch what happens when we snoop the
Accelerometer Data from PinePhone's MPU-6050 Accelerometer...

https://www.hackster.io/lupyuen/inside-a-smartphone-accelerometer-pinephone-with-nuttx-rtos-b92b58

Thanks to Filipe Cavalcanti for inspiring this tutorial! :-)

BTW Hackster.io has problems for me, it got stuck at "Saving..." and lost
my edits a few times. Remember to copy and paste your Article Text into
another Backup Project at Hackster.io! :-)

Lup


  1   2   >