nuttx icon indicating copy to clipboard operation
nuttx copied to clipboard

at32uc3a0: Initial work for SimpleMachines' Mizar32-A

Open ramangopalan opened this issue 1 year ago • 42 comments

Dear NuttX community, Greetings!

Summary

This is an initial working commit for the Mizar32-A platform. It is powered by the AT32UC3A0512 microcontroller. I started with the same Microchip Studio project I used to verify avr32dev1 (NuttX 6.0) to also fix the build and initial functionality for Mizar32-A.

For Mizar32, I had to fix the NuttX low level abstraction layer for the clock, the PLL0, the USART pins' alternate functions and finally, the USART clock source.

Impact

This PR won't affect the functionality of any other target. It won't also affect the build OR code for the existing avr32dev1 target.

Testing

I checked the NuttX build on GNU/Linux. I used dfu-programmer to verify `nsh' on Mizar32-A. It works great! I am attaching a snip from my hack sessions.

image

Please let me know if the PR is alright OR if there's something I have missed. Many thanks. Have a great weekend!

ramangopalan avatar Feb 17 '24 17:02 ramangopalan

@ramangopalan Please fix the following warning:

Error: /home/runner/work/nuttx/nuttx/nuttx/arch/avr/src/at32uc3/at32uc3_lowconsole.c:358:2: error: C comment opening on separate line
Error: /home/runner/work/nuttx/nuttx/nuttx/arch/avr/src/at32uc3/at32uc3_lowconsole.c:360:1: error: Missing blank line after comment
Warning: /home/runner/work/nuttx/nuttx/nuttx/arch/avr/src/at32uc3/chip.h:213:1: warning: #include outside of 'Included Files' section
Error: /home/runner/work/nuttx/nuttx/nuttx/boards/avr/at32uc3/mizar32a/src/avr32_buttons.c:2:1: error: Relative file path does not match actual file

to fix the ci error:

sh: 1: avr32-gcc: not found
sh: 1: avr32-gcc: not found
ERROR: avr32-gcc failed: 127
ERROR: avr32-gcc failed: 127

avr32-gcc need to be installed, please reference how avr-gcc install in: https://github.com/apache/nuttx/blob/master/tools/ci/cibuild.sh#L125 https://github.com/apache/nuttx/blob/master/tools/ci/docker/linux/Dockerfile#L277

xiaoxiang781216 avatar Feb 18 '24 03:02 xiaoxiang781216

Dear @xiaoxiang781216, Dear @acassis, Greetings!

Many thanks for your suggestions. I have fixed them except the ones pertaining to CI. I read the Dockerfile. It is easy to understand but I don't have much experience with it.

Is there a way I can test the Dockerfile changes for avr32-gcc in a sandbox before I squash my final commit? Can you please give me a hint on this one? Can you also please check if the other changes are OK?

ramangopalan avatar Feb 18 '24 15:02 ramangopalan

Dear @xiaoxiang781216, Dear @acassis, Greetings!

Many thanks for your suggestions. I have fixed them except the ones pertaining to CI. I read the Dockerfile. It is easy to understand but I don't have much experience with it.

Is there a way I can test the Dockerfile changes for avr32-gcc in a sandbox before I squash my final commit? Can you please give me a hint on this one?

You can download the image from https://github.com/apache/nuttx/pkgs/container/nuttx%2Fapache-nuttx-ci-linux, and try various docker commands.

Can you also please check if the other changes are OK?

The change looks good, please squash them. But please fix the remain warning before update the pr:

Error: /home/runner/work/nuttx/nuttx/nuttx/arch/avr/src/at32uc3/at32uc3_lowconsole.c:358:1: error: Missing blank line after comment

xiaoxiang781216 avatar Feb 18 '24 15:02 xiaoxiang781216

Dear @pkarashchenko,

@ramangopalan where I can find avr32-gcc published?

The 32-bit variant is at 1 and the 64-bit at 2. I have used both of them. Currently, I use 1 to compile NuttX for both the avr32dev1 and Mizar32-A targets.

ramangopalan avatar Feb 21 '24 05:02 ramangopalan

Dear All,

I just implemented this but haven't tested it yet. Do you think this will work?

diff --git a/tools/ci/cibuild.sh b/tools/ci/cibuild.sh
index 20c2858e..317b4211 100755
--- a/tools/ci/cibuild.sh
+++ b/tools/ci/cibuild.sh
@@ -138,6 +138,20 @@ function avr-gcc-toolchain {
   command avr-gcc --version
 }
 
+function avr32-gcc-toolchain {
+  if [ ! -d "${tools}/avr32-gnu-toolchain-linux_x86" ]; then
+    cd "${tools}"
+    git clone https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86
+  fi
+
+  case ${os} in
+    Linux)
+      add_path "${tools}"/avr32-gnu-toolchain-linux_x86/bin
+      command avr32-gcc --version
+      ;;
+  esac
+}
+

I still think I am missing an entry within linux/Dockerfile. I don't think avr32-gcc can be obtained with apt-get (like avr-gcc). So, perhaps something like this?

diff --git a/tools/ci/docker/linux/Dockerfile b/tools/ci/docker/linux/Dockerfile
index c1a3ff85..ec35132e 100644
--- a/tools/ci/docker/linux/Dockerfile
+++ b/tools/ci/docker/linux/Dockerfile
@@ -381,6 +381,10 @@ ENV PATH="/tools/gcc-arm-none-eabi/bin:$PATH"
 COPY --from=nuttx-toolchain-arm64 /tools/gcc-aarch64-none-elf/ gcc-aarch64-none-elf/
 ENV PATH="/tools/gcc-aarch64-none-elf/bin:$PATH"
 
+# AVR32 toolchain
+COPY --from=nuttx-toolchain-avr32 /tools/avr32-gnu-toolchain-linux_x86/bin/ avr32-gnu-toolchain-linux_x86/bin/
+ENV PATH="/tools/avr32-gnu-toolchain-linux_x86/bin:$PATH"
+

Please note: I haven't tested it. But can someone please help test OR correct it? Many thanks.

ramangopalan avatar Feb 21 '24 07:02 ramangopalan

Dear NuttX Community, Greetings!

So sorry about the delay in my response. I have squashed the review commits. Can you please check if these changes are OK? Please let me know if there's anything else I can help with.

ramangopalan avatar Mar 20 '24 05:03 ramangopalan

Dear All,

I just implemented this but haven't tested it yet. Do you think this will work?

diff --git a/tools/ci/cibuild.sh b/tools/ci/cibuild.sh
index 20c2858e..317b4211 100755
--- a/tools/ci/cibuild.sh
+++ b/tools/ci/cibuild.sh
@@ -138,6 +138,20 @@ function avr-gcc-toolchain {
   command avr-gcc --version
 }
 
+function avr32-gcc-toolchain {
+  if [ ! -d "${tools}/avr32-gnu-toolchain-linux_x86" ]; then
+    cd "${tools}"
+    git clone https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86
+  fi
+
+  case ${os} in
+    Linux)
+      add_path "${tools}"/avr32-gnu-toolchain-linux_x86/bin
+      command avr32-gcc --version
+      ;;
+  esac
+}
+

LGTM, let ci do the final check.

I still think I am missing an entry within linux/Dockerfile. I don't think avr32-gcc can be obtained with apt-get (like avr-gcc). So, perhaps something like this?

diff --git a/tools/ci/docker/linux/Dockerfile b/tools/ci/docker/linux/Dockerfile
index c1a3ff85..ec35132e 100644
--- a/tools/ci/docker/linux/Dockerfile
+++ b/tools/ci/docker/linux/Dockerfile
@@ -381,6 +381,10 @@ ENV PATH="/tools/gcc-arm-none-eabi/bin:$PATH"
 COPY --from=nuttx-toolchain-arm64 /tools/gcc-aarch64-none-elf/ gcc-aarch64-none-elf/
 ENV PATH="/tools/gcc-aarch64-none-elf/bin:$PATH"
 
+# AVR32 toolchain
+COPY --from=nuttx-toolchain-avr32 /tools/avr32-gnu-toolchain-linux_x86/bin/ avr32-gnu-toolchain-linux_x86/bin/
+ENV PATH="/tools/avr32-gnu-toolchain-linux_x86/bin:$PATH"
+

You can try the installed tool locally with the follow command:

https://github.com/apache/nuttx/blob/master/tools/ci/docker/linux/Dockerfile#L270-L277

Please note: I haven't tested it. But can someone please help test OR correct it? Many thanks.

You need split cibuild.sh/Dockerfile change into new patch. After it get merged, ci can verify the result with this patch.

xiaoxiang781216 avatar Mar 20 '24 12:03 xiaoxiang781216

Dear @xiaoxiang781216, Dear @acassis,

Greetings! I didn't have a chance to visit the NuttX code OR rebase it for a while. I revisited the files pertaining to AVR32 today. I noticed a couple of file changes within tools/ci.

You need split cibuild.sh/Dockerfile change into new patch. After it get merged, ci can verify the result with this patch.

I have just made an initial commit with AVR32 specific changes within Dockerfile and ubuntu.sh. I just hope the CI verifies it without much trouble.

I could be wrong; I didn't verify these changes locally. If it goes through, I can also touch tools/ci/platforms/linux.sh to have AVR32's recipe there. If there's a problem, I thought I can squash the fix.

Would this be OK? Please let me know if I got something wrong. Many thanks. Jolly good weekend.

ramangopalan avatar May 05 '24 10:05 ramangopalan

I tried pushing another commit moments ago but this problem persists:

Error: buildx failed with: ERROR: failed to solve:
nuttx-toolchain-avr32: failed to resolve source metadata for
docker.io/library/nuttx-toolchain-avr32:latest: pull access denied,
repository does not exist or may require authorization: server
message: insufficient_scope: authorization failed

Can you please give me a hint on this one? I am unable to see the full CI logs of what is happening after git clone for AVR32 from my repository. OR perhaps I am missing a setting on Github?

ramangopalan avatar May 05 '24 11:05 ramangopalan

Am I missing a similar step for AVR32 within Dockerfile? I am unable to wrap my head around this part.

# Download the latest ARM GCC toolchain prebuilt by ARM
RUN mkdir gcc-arm-none-eabi && \
  curl -s -L  "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi.tar.xz" \
  | tar -C gcc-arm-none-eabi --strip-components 1 -xJ

May I ask: A similar recipe exists within ubuntu.sh. i.e. to fetch a toolchain using Git OR curl. How is that different from what is happening in this file? I am unable to connect the dots. Can you please give me your thoughts?

ramangopalan avatar May 05 '24 11:05 ramangopalan

Am I missing a similar step for AVR32 within Dockerfile? I am unable to wrap my head around this part.

# Download the latest ARM GCC toolchain prebuilt by ARM
RUN mkdir gcc-arm-none-eabi && \
  curl -s -L  "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi.tar.xz" \
  | tar -C gcc-arm-none-eabi --strip-components 1 -xJ

May I ask: A similar recipe exists within ubuntu.sh. i.e. to fetch a toolchain using Git OR curl. How is that different from what is happening in this file? I am unable to connect the dots. Can you please give me your thoughts?

Hi @ramangopalan seems like the issue is some authorization issue (or missing folder/directory)

#4 [internal] load metadata for docker.io/library/nuttx-toolchain-avr32:latest
#4 ERROR: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

#5 [internal] load metadata for docker.io/library/ubuntu:22.04
#5 CANCELED
------
 > [internal] load metadata for docker.io/library/nuttx-toolchain-avr32:latest:
------
WARNING: No output specified with docker-container driver. Build result will only remain in the build cache. To push result image into registry use --push or to load image into docker use --load
Dockerfile:385
--------------------
 383 |     
 384 |     # AVR32 toolchain
 385 | >>> COPY --from=nuttx-toolchain-avr32 /tools/avr32-gnu-toolchain-linux_x86/ avr32-gnu-toolchain-linux_x86/
 386 |     ENV PATH="/tools/avr32-gnu-toolchain-linux_x86/bin:$PATH"
 387 |     
--------------------
ERROR: failed to solve: nuttx-toolchain-avr32: failed to resolve source metadata for docker.io/library/nuttx-toolchain-avr32:latest: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
Error: buildx failed with: ERROR: failed to solve: nuttx-toolchain-avr32: failed to resolve source metadata for docker.io/library/nuttx-toolchain-avr32:latest: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

acassis avatar May 05 '24 13:05 acassis

@xiaoxiang781216 any idea why is it happening?

acassis avatar May 05 '24 13:05 acassis

@ramangopalan it's better to move the docker change to the new pr since ci still use the old docker image util the patch get merged.

xiaoxiang781216 avatar May 05 '24 14:05 xiaoxiang781216

@simbit18 even with your suggestion still failing with same error message:

ERROR: failed to solve: process "/bin/sh -c mkdir -p gcc-avr32-gnu &&   git clone https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86 gcc-avr32-gnu" did not complete successfully: exit code: 127
Error: buildx failed with: ERROR: failed to solve: process "/bin/sh -c mkdir -p gcc-avr32-gnu &&   git clone https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86 gcc-avr32-gnu" did not complete successfully: exit code: 127

acassis avatar Jun 06 '24 17:06 acassis

@acassis dockerfile does not have this

###############################################################################
# Build image for tool required by AVR32 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-avr32
# Download the prebuilt AVR32 GCC toolchain
RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
  git
# Clone Main Repository 
RUN mkdir -p gcc-avr32-gnu && \
  git clone --depth 1 https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86 gcc-avr32-gnu

in the stage is missing git

RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq
git

simbit18 avatar Jun 06 '24 17:06 simbit18

@acassis @ramangopalan testing on my repository

docker image build process https://github.com/simbit18/nuttx-testing-ci/actions/runs/9407488507/job/25913339810#step:7:1175

#22 [nuttx-toolchain-avr32 2/2] RUN mkdir -p gcc-avr32-gnu &&   git clone --depth 1 https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86 gcc-avr32-gnu
#22 0.157 Cloning into 'gcc-avr32-gnu'...
#22 4.883 Updating files:  17% (921/5330)

Dockerfile https://github.com/simbit18/nuttx-testing-ci/blob/main/tools/Dockerfile

test the avr32 version in the docker image https://github.com/simbit18/nuttx-testing-ci/actions/runs/9415734071/job/25937327129#step:4:21

avr32-gcc (AVR_32_bit_GNU_Toolchain_3.4.2_435) 4.4.7
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

simbit18 avatar Jun 07 '24 10:06 simbit18

thank you @simbit18, so your Dockerfile looks very similar to that here, what you did different?

I compared your Dockerfile against mainline and there difference seem to exist in Raman docker as well:

###############################################################################
# Build image for tool required by AVR32 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-avr32
# Download the prebuilt AVR32 GCC toolchain
RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
  git
# Clone Main Repository 
RUN mkdir -p gcc-avr32-gnu && \
  git clone --depth 1 https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86 gcc-avr32-gnu

###############################################################################

...

RUN mkdir -p cmake && \
  curl -s -L wget https://cmake.org/files/v3.26/cmake-3.26.0.tar.gz \
  | tar -C cmake --strip-components=1 -xz && \
  cd cmake && ./bootstrap && make && make install && rm -rf cmake


...

# AVR32 toolchain
COPY --from=nuttx-toolchain-avr32 /tools/gcc-avr32-gnu/ gcc-avr32-gnu/
ENV PATH="/tools/gcc-avr32-gnu/bin:$PATH"

...

  ln -sf `which ccache` /tools/ccache/bin/avr32-gcc && \
  ln -sf `which ccache` /tools/ccache/bin/avr32-g++ && \

acassis avatar Jun 07 '24 12:06 acassis

in the docker https://github.com/apache/nuttx/blob/master/tools/ci/docker/linux/Dockerfile

it is necessary to add:

###############################################################################
# Build image for tool required by AVR32 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-avr32
# Download the prebuilt AVR32 GCC toolchain
RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
  git
# Clone Main Repository 
RUN mkdir -p gcc-avr32-gnu && \
  git clone --depth 1 https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86 gcc-avr32-gnu

# AVR32 toolchain
COPY --from=nuttx-toolchain-avr32 /tools/gcc-avr32-gnu/ gcc-avr32-gnu/
ENV PATH="/tools/gcc-avr32-gnu/bin:$PATH"
  ln -sf `which ccache` /tools/ccache/bin/avr32-gcc && \
  ln -sf `which ccache` /tools/ccache/bin/avr32-g++ && \

simbit18 avatar Jun 07 '24 12:06 simbit18

Dear @simbit18, Dear @acassis, Greetings!

Firstly, so sorry about the delay in my response. Many thanks for your suggestions. I have pushed another test commit which amends the Dockerfile recipe to apt-install git. Thanks again. Jolly good weekend!

ramangopalan avatar Jun 16 '24 12:06 ramangopalan

Dear @simbit18, Dear @acassis,

Aren't the tests for nsh and ostest for avr32dev1 performed by default? Not sure why they are skipped. I notice that the tests are not being skipped for the Mizar32-A target. I see the recipe also appends avr32-gcc to the PATH. Is something missing for avr32dev1?

====================================================================================
Skipping: avr32dev1/nsh
Configuration/Tool: avr32dev1/nsh
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Normalize avr32dev1/nsh
====================================================================================
Skipping: avr32dev1/ostest
Configuration/Tool: avr32dev1/ostest
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Normalize avr32dev1/ostest
====================================================================================
Configuration/Tool: mizar32a/nsh
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Building NuttX...
sh: 1: avr32-gcc: not found
ERROR: avr32-gcc failed: 127
       command: avr32-gcc -MT ./dummy.c.github.workspace.sources.apps.platform.o  -M '-fno-pic' '-muse-rodata-section' '-fno-strict-aliasing' '-fomit-frame-pointer' '-mpart=uc3b0256' '-isystem' '/github/workspace/sources/nuttx/include' '-D__NuttX__' '-DNDEBUG' '-D__KERNEL__' '-Wno-cpp' '-Werror' '-pipe' '-I' '/github/workspace/sources/apps/include' ./board/dummy.c
sh: 1: avr32-gcc: not found
sh: 1: avr32-gcc: not found

Could something be wrong here? The paths look fine to me.

# AVR32 toolchain
COPY --from=nuttx-toolchain-avr32 /tools/gcc-avr32-gnu/ gcc-avr32-gnu/
ENV PATH="/tools/gcc-avr32-gnu/bin:$PATH"

I am trying to find the log entries pertaining to fetching avr32-gcc.

ramangopalan avatar Jun 16 '24 13:06 ramangopalan

Dear @simbit18,

RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" TZ=Etc/UTC apt-get install -y -qq --no-install-recommends \
  -o APT::Immediate-Configure=0 \
  avr-libc \
  ccache \
  clang \
  clang-tidy \
  g++-12-multilib \
  gcc-avr \
  gcc-12-multilib \
  genromfs \
  gettext \
  git \

I see apt-install git here too. Is fetching git necessary for AVR32 specific actions too?

ramangopalan avatar Jun 16 '24 14:06 ramangopalan

Aren't the tests for nsh and ostest for avr32dev1 performed by default? Not sure why they are skipped

# We do not have a toolchain for avr32 outside of Microchip login wall.
# The work was never upstreamed to GCC.
/avr
-avr32dev1:nsh
-avr32dev1:ostest

I was just looking at the code. Should we remove these entries?

ramangopalan avatar Jun 16 '24 14:06 ramangopalan

Can you please point at where in the Docker recipe (from the logs) the code is looking for avr32-gcc? I am finding it a bit tough to navigate.

ramangopalan avatar Jun 16 '24 14:06 ramangopalan

avr32_gcc_toolchain() {
  add_path "${NUTTXTOOLS}"/avr32-gnu-toolchain-linux_x86/bin

  if [ ! -f "${NUTTXTOOLS}/avr32-gnu-toolchain-linux_x86/bin/avr32-gcc" ]; then
    local basefile
    basefile=avr32-gnu-toolchain-linux_x86
    cd "${NUTTXTOOLS}"
    # Download the AVR32 GCC toolchain
    git clone https://github.com/ramangopalan/${basefile}
  fi

  command avr32-gcc --version
}

From tools/ci/platforms/ubuntu.sh: Does this pass tests at all? Should this also be in linux.sh?

ramangopalan avatar Jun 16 '24 15:06 ramangopalan

@xiaoxiang781216 @acassis now the workflow for creating the Docker Nuttx image with @ramangopalan AVR32 toolchain is ok. https://github.com/apache/nuttx/actions/runs/9537180645/job/26284964386

I did a test with the Docker Nuttx image with the AVR32 toolchain from @ramangopalan https://github.com/simbit18/nuttx-testing-ci/blob/main/.github/workflows/dockerfile_test.yml

board mizar32a ./tools/configure.sh -l mizar32a:nsh https://github.com/simbit18/nuttx-testing-ci/actions/runs/9547344758 seems ok.

simbit18 avatar Jun 17 '24 12:06 simbit18

Dear @simbit18, Dear @acassis,

Aren't the tests for nsh and ostest for avr32dev1 performed by default? Not sure why they are skipped. I notice that the tests are not being skipped for the Mizar32-A target. I see the recipe also appends avr32-gcc to the PATH. Is something missing for avr32dev1?

====================================================================================
Skipping: avr32dev1/nsh
Configuration/Tool: avr32dev1/nsh
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Normalize avr32dev1/nsh
====================================================================================
Skipping: avr32dev1/ostest
Configuration/Tool: avr32dev1/ostest
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Normalize avr32dev1/ostest
====================================================================================
Configuration/Tool: mizar32a/nsh
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Building NuttX...
sh: 1: avr32-gcc: not found
ERROR: avr32-gcc failed: 127
       command: avr32-gcc -MT ./dummy.c.github.workspace.sources.apps.platform.o  -M '-fno-pic' '-muse-rodata-section' '-fno-strict-aliasing' '-fomit-frame-pointer' '-mpart=uc3b0256' '-isystem' '/github/workspace/sources/nuttx/include' '-D__NuttX__' '-DNDEBUG' '-D__KERNEL__' '-Wno-cpp' '-Werror' '-pipe' '-I' '/github/workspace/sources/apps/include' ./board/dummy.c
sh: 1: avr32-gcc: not found
sh: 1: avr32-gcc: not found

Could something be wrong here? The paths look fine to me.

# AVR32 toolchain
COPY --from=nuttx-toolchain-avr32 /tools/gcc-avr32-gnu/ gcc-avr32-gnu/
ENV PATH="/tools/gcc-avr32-gnu/bin:$PATH"

I am trying to find the log entries pertaining to fetching avr32-gcc.

Dear @simbit18, Dear @acassis,

Aren't the tests for nsh and ostest for avr32dev1 performed by default? Not sure why they are skipped. I notice that the tests are not being skipped for the Mizar32-A target. I see the recipe also appends avr32-gcc to the PATH. Is something missing for avr32dev1?

====================================================================================
Skipping: avr32dev1/nsh
Configuration/Tool: avr32dev1/nsh
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Normalize avr32dev1/nsh
====================================================================================
Skipping: avr32dev1/ostest
Configuration/Tool: avr32dev1/ostest
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Normalize avr32dev1/ostest
====================================================================================
Configuration/Tool: mizar32a/nsh
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Building NuttX...
sh: 1: avr32-gcc: not found
ERROR: avr32-gcc failed: 127
       command: avr32-gcc -MT ./dummy.c.github.workspace.sources.apps.platform.o  -M '-fno-pic' '-muse-rodata-section' '-fno-strict-aliasing' '-fomit-frame-pointer' '-mpart=uc3b0256' '-isystem' '/github/workspace/sources/nuttx/include' '-D__NuttX__' '-DNDEBUG' '-D__KERNEL__' '-Wno-cpp' '-Werror' '-pipe' '-I' '/github/workspace/sources/apps/include' ./board/dummy.c
sh: 1: avr32-gcc: not found
sh: 1: avr32-gcc: not found

Could something be wrong here? The paths look fine to me.

# AVR32 toolchain
COPY --from=nuttx-toolchain-avr32 /tools/gcc-avr32-gnu/ gcc-avr32-gnu/
ENV PATH="/tools/gcc-avr32-gnu/bin:$PATH"

I am trying to find the log entries pertaining to fetching avr32-gcc.

@ramangopalan on github still using the Docker Nuttx image without the AVR32 toolchain https://github.com/apache/nuttx/pkgs/container/nuttx%2Fapache-nuttx-ci-linux

@ramangopalan You have to wait for the merge :)

simbit18 avatar Jun 17 '24 13:06 simbit18

Dear @simbit18, Dear @acassis,

@xiaoxiang781216 @acassis now the workflow for creating the Docker Nuttx image with @ramangopalan AVR32 toolchain is ok. https://github.com/apache/nuttx/actions/runs/9537180645/job/26284964386

Great news! :) Thank you very much.

I did a test with the Docker Nuttx image with the AVR32 toolchain from @ramangopalan https://github.com/simbit18/nuttx-testing-ci/blob/main/.github/workflows/dockerfile_test.yml

Thank you for your inputs. I have seen the code in yml file.

board mizar32a ./tools/configure.sh -l mizar32a:nsh https://github.com/simbit18/nuttx-testing-ci/actions/runs/9547344758 seems ok.

Should we also enable the tests for avr32dev1? From the code I read yesterday:

# We do not have a toolchain for avr32 outside of Microchip login wall.
# The work was never upstreamed to GCC.
/avr
-avr32dev1:nsh
-avr32dev1:ostest

ramangopalan avatar Jun 17 '24 15:06 ramangopalan

Dear @simbit18,

@ramangopalan on github still using the Docker Nuttx image without the AVR32 toolchain https://github.com/apache/nuttx/pkgs/container/nuttx%2Fapache-nuttx-ci-linux

I understand.

@ramangopalan You have to wait for the merge :)

Sure. :)

ramangopalan avatar Jun 17 '24 15:06 ramangopalan

build avr32dev1:nsh https://github.com/simbit18/nuttx-testing-ci/actions/runs/9550639612/job/26323068947

build avr32dev1:ostest https://github.com/simbit18/nuttx-testing-ci/actions/runs/9550639600/job/26323068967

build seems ok

simbit18 avatar Jun 17 '24 15:06 simbit18

@simbit18 could you split docker related path to new pr? so, we can merge the new patch first and verify this patch on top of it.

xiaoxiang781216 avatar Jun 17 '24 18:06 xiaoxiang781216