mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			Merge branch 'master' of github:OpenIPC/firmware
						commit
						f202e1ed66
					
				|  | @ -0,0 +1,12 @@ | |||
| ## @file | ||||
| # CODEOWNERS | ||||
| # | ||||
| # Copyright (c) 2022, Intel Corporation. All rights reserved.<BR> | ||||
| # SPDX-License-Identifier: BSD-2-Clause-Patent | ||||
| ## | ||||
| 
 | ||||
| * @ZigFisher | ||||
| * @p0i5k | ||||
| * @cronyx | ||||
| * @dimerr | ||||
| * @widgetii | ||||
|  | @ -1,149 +0,0 @@ | |||
| name: "Hi3516Dv200  " | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - production | ||||
|     tags: | ||||
|       - "v*" | ||||
|   schedule: | ||||
|       - cron: "00 03 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   build_core: | ||||
|     name: OpenIPC firmware for Hi3516Dv200 | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|             # Mitigate #325 issue | ||||
|             apt install -y pip && pip install cmake | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo swapoff -a | ||||
|           sudo rm -f /swapfile | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Prepare buildroot | ||||
|         id: prepare | ||||
|         run: | | ||||
|           HEAD_TAG=$(git tag --points-at HEAD) | ||||
|           GIT_HASH=$(git rev-parse --short $GITHUB_SHA) | ||||
|           BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) | ||||
|           if [ -z "$HEAD_TAG" ]; then | ||||
|             TAG_NAME="latest" | ||||
|             RELEASE_NAME="Development Build" | ||||
|             PRERELEASE=true | ||||
|           else | ||||
|             TAG_NAME=${{ github.ref }} | ||||
|             RELEASE_NAME="Release ${{ github.ref }}" | ||||
|             PRERELEASE=false | ||||
|           fi | ||||
|           echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV | ||||
|           echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||||
|           echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | ||||
|           echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV | ||||
|           echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make prepare | ||||
| 
 | ||||
|       - name: Build Hi3516Dv200 firmware | ||||
|         id: build-hi3516dv200-firmware | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3516dv200-br.tgz" | ||||
|           echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make PLATFORM=hisilicon BOARD=unknown_unknown_hi3516dv200_openipc all | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3516DV200" >> $GITHUB_ENV && exit 1 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3516DV200" >> $GITHUB_ENV && exit 1 | ||||
|           cd ${GITHUB_WORKSPACE}/output/images | ||||
|           mv uImage uImage.hi3516dv200 | ||||
|           mv rootfs.squashfs rootfs.squashfs.hi3516dv200 | ||||
|           md5sum rootfs.squashfs.hi3516dv200 > rootfs.squashfs.hi3516dv200.md5sum | ||||
|           md5sum uImage.hi3516dv200 > uImage.hi3516dv200.md5sum | ||||
|           tar -cvzf $ARCHIVE_FW *hi3516dv200* | ||||
| 
 | ||||
|       - name: Build Hi3516Dv200 SDK | ||||
|         id: build-hi3516dv200-sdk | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz" | ||||
|           echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE/output | ||||
|           make sdk | ||||
| 
 | ||||
|       - name: Send error message to telegram channel | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         if: steps.build-hi3516dv200-firmware.outcome != 'success' || steps.build-hi3516dv200-sdk.outcome != 'success' | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3516DV200}" | ||||
|           TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ | ||||
|             -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" | ||||
|           exit 2 | ||||
| 
 | ||||
|       - name: Create release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: actions/create-release@v1 | ||||
|         continue-on-error: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         with: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           release_name: ${{ env.RELEASE_NAME }} | ||||
|           draft: false | ||||
|           prerelease: ${{ env.PRERELEASE }} | ||||
| 
 | ||||
|       - name: Upload NOR FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW }} | ||||
|           asset_name: "openipc.hi3516dv200-br.tgz" | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Upload SDK to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_SDK }} | ||||
|           asset_name: "arm-openipc-hi3516dv200-linux-musleabi_sdk-buildroot.tar.gz" | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Send binary file to telegram channel | ||||
|         if: ${{ !env.ACT }} | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ | ||||
|             -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" | ||||
|  | @ -1,130 +0,0 @@ | |||
| name: "Hi3516Ev200 (fpv)" | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - production | ||||
|     tags: | ||||
|       - "v*" | ||||
|   schedule: | ||||
|       - cron: "00 03 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   build_core: | ||||
|     name: OpenIPC firmware for Hi3516Ev200 (fpv) | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|             # Mitigate #325 issue | ||||
|             apt install -y pip && pip install cmake | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo swapoff -a | ||||
|           sudo rm -f /swapfile | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Prepare buildroot | ||||
|         id: prepare | ||||
|         run: | | ||||
|           HEAD_TAG=$(git tag --points-at HEAD) | ||||
|           GIT_HASH=$(git rev-parse --short $GITHUB_SHA) | ||||
|           BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) | ||||
|           if [ -z "$HEAD_TAG" ]; then | ||||
|             TAG_NAME="latest" | ||||
|             RELEASE_NAME="Development Build" | ||||
|             PRERELEASE=true | ||||
|           else | ||||
|             TAG_NAME=${{ github.ref }} | ||||
|             RELEASE_NAME="Release ${{ github.ref }}" | ||||
|             PRERELEASE=false | ||||
|           fi | ||||
|           echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV | ||||
|           echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||||
|           echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | ||||
|           echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV | ||||
|           echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | ||||
|           echo "BOARD=hi3516ev200" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make prepare | ||||
| 
 | ||||
|       - name: Build Hi3516Ev200 (fpv) firmware | ||||
|         id: build-hi3516ev200-fpv-firmware | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-fpv-br.tgz" | ||||
|           echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_fpv all | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1 | ||||
|           cd ${GITHUB_WORKSPACE}/output/images | ||||
|           mv uImage uImage.${BOARD} | ||||
|           mv rootfs.squashfs rootfs.squashfs.${BOARD} | ||||
|           md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum | ||||
|           md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum | ||||
|           tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}* | ||||
| 
 | ||||
|       - name: Send error message to telegram channel | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         if: steps.build-hi3516ev200-fpv-firmware.outcome != 'success' | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (fpv)}" | ||||
|           TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ | ||||
|             -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" | ||||
|           exit 2 | ||||
| 
 | ||||
|       - name: Create release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: actions/create-release@v1 | ||||
|         continue-on-error: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         with: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           release_name: ${{ env.RELEASE_NAME }} | ||||
|           draft: false | ||||
|           prerelease: ${{ env.PRERELEASE }} | ||||
| 
 | ||||
|       - name: Upload NOR FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW }} | ||||
|           asset_name: openipc.${{ env.BOARD }}-fpv-br.tgz | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Send binary file to telegram channel | ||||
|         if: ${{ !env.ACT }} | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ | ||||
|             -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" | ||||
|  | @ -1,149 +0,0 @@ | |||
| name: "Hi3516Ev200  " | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - production | ||||
|     tags: | ||||
|       - "v*" | ||||
|   schedule: | ||||
|       - cron: "00 03 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   build_core: | ||||
|     name: OpenIPC firmware for Hi3516Ev200 | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|             # Mitigate #325 issue | ||||
|             apt install -y pip && pip install cmake | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo swapoff -a | ||||
|           sudo rm -f /swapfile | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Prepare buildroot | ||||
|         id: prepare | ||||
|         run: | | ||||
|           HEAD_TAG=$(git tag --points-at HEAD) | ||||
|           GIT_HASH=$(git rev-parse --short $GITHUB_SHA) | ||||
|           BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) | ||||
|           if [ -z "$HEAD_TAG" ]; then | ||||
|             TAG_NAME="latest" | ||||
|             RELEASE_NAME="Development Build" | ||||
|             PRERELEASE=true | ||||
|           else | ||||
|             TAG_NAME=${{ github.ref }} | ||||
|             RELEASE_NAME="Release ${{ github.ref }}" | ||||
|             PRERELEASE=false | ||||
|           fi | ||||
|           echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV | ||||
|           echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||||
|           echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | ||||
|           echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV | ||||
|           echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make prepare | ||||
| 
 | ||||
|       - name: Build Hi3516Ev200 firmware | ||||
|         id: build-hi3516ev200-firmware | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3516ev200-br.tgz" | ||||
|           echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make PLATFORM=hisilicon BOARD=unknown_unknown_hi3516ev200_openipc all | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3516EV200" >> $GITHUB_ENV && exit 1 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3516EV200" >> $GITHUB_ENV && exit 1 | ||||
|           cd ${GITHUB_WORKSPACE}/output/images | ||||
|           mv uImage uImage.hi3516ev200 | ||||
|           mv rootfs.squashfs rootfs.squashfs.hi3516ev200 | ||||
|           md5sum rootfs.squashfs.hi3516ev200 > rootfs.squashfs.hi3516ev200.md5sum | ||||
|           md5sum uImage.hi3516ev200 > uImage.hi3516ev200.md5sum | ||||
|           tar -cvzf $ARCHIVE_FW *hi3516ev200* | ||||
| 
 | ||||
|       - name: Build Hi3516Ev200 SDK | ||||
|         id: build-hi3516ev200-sdk | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz" | ||||
|           echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE/output | ||||
|           make sdk | ||||
| 
 | ||||
|       - name: Send error message to telegram channel | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         if: steps.build-hi3516ev200-firmware.outcome != 'success' || steps.build-hi3516ev200-sdk.outcome != 'success' | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3516EV200}" | ||||
|           TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ | ||||
|             -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" | ||||
|           exit 2 | ||||
| 
 | ||||
|       - name: Create release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: actions/create-release@v1 | ||||
|         continue-on-error: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         with: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           release_name: ${{ env.RELEASE_NAME }} | ||||
|           draft: false | ||||
|           prerelease: ${{ env.PRERELEASE }} | ||||
| 
 | ||||
|       - name: Upload NOR FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW }} | ||||
|           asset_name: "openipc.hi3516ev200-br.tgz" | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Upload SDK to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_SDK }} | ||||
|           asset_name: "arm-openipc-hi3516ev200-linux-musleabi_sdk-buildroot.tar.gz" | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Send binary file to telegram channel | ||||
|         if: ${{ !env.ACT }} | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ | ||||
|             -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" | ||||
|  | @ -0,0 +1,266 @@ | |||
| name: build | ||||
| 
 | ||||
| on: | ||||
|   pull_request: | ||||
|     types: | ||||
|       - synchronize | ||||
|       - reopened | ||||
|       - opened | ||||
|     paths-ignore: | ||||
|        - '**.md' | ||||
|   push: | ||||
|     branches: | ||||
|       - production | ||||
|     tags: | ||||
|       - "v*" | ||||
|     paths-ignore: | ||||
|        - '**.md' | ||||
|   schedule: | ||||
|       - cron: "00 03 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   toolchain: | ||||
|     name: Build toolchain | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     env: | ||||
|       CHIP: hi3516ev200 | ||||
| 
 | ||||
|     outputs: | ||||
|       sdk-file: ${{ steps.build-sdk.outputs.sdk-file }} | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           fetch-depth: 0  # OR "2" -> To retrieve the preceding commit. | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Build Buildroot SDK | ||||
|         id: build-sdk | ||||
|         run: | | ||||
|           set -x | ||||
|           make prepare | ||||
|           make BOARD=unknown_unknown_${CHIP}_openipc br-sdk | ||||
|           SDK_PATH=$(find output/images -name "*_sdk-buildroot.tar.gz") | ||||
|           echo "SDK_PATH=$SDK_PATH" >> $GITHUB_ENV | ||||
|           SDK_FILE=$(basename $SDK_PATH) | ||||
|           echo "SDK_FILE=$SDK_FILE" >> $GITHUB_ENV | ||||
|           echo "::set-output name=sdk-file::$SDK_FILE" | ||||
| 
 | ||||
|       - uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: ${{ env.SDK_FILE }} | ||||
|           path: ${{ env.SDK_PATH }} | ||||
|           retention-days: 1 | ||||
| 
 | ||||
|   buildroot: | ||||
|     name: Build firmware | ||||
|     needs: toolchain | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         platform: | ||||
|           - hi3516ev200 | ||||
|           - hi3516ev300 | ||||
|           - hi3518ev300 | ||||
|           - hi3516dv200 | ||||
|         release: | ||||
|           - lite | ||||
|           - ultimate | ||||
|         include: | ||||
|           - platform: hi3516ev200 | ||||
|             release: fpv | ||||
|           - platform: hi3516ev300 | ||||
|             release: fpv | ||||
|         exclude: | ||||
|           - platform: hi3516dv200 | ||||
|             release: ultimate | ||||
| 
 | ||||
|     env: | ||||
|       HAS_NAND: ${{ matrix.release == 'ultimate' }} && (${{ matrix.platform == 'hi3516ev300' }} || ${{ matrix.platform == 'hi3516ev200' }}) | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           fetch-depth: 0  # OR "2" -> To retrieve the preceding commit. | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Prepare buildroot | ||||
|         id: prepare | ||||
|         run: | | ||||
|           HEAD_TAG=$(git tag --points-at HEAD) | ||||
|           GIT_HASH=$(git rev-parse --short $GITHUB_SHA) | ||||
|           BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3) | ||||
|           if [ -z "$HEAD_TAG" ]; then | ||||
|             TAG_NAME="latest" | ||||
|             RELEASE_NAME="Development Build" | ||||
|             PRERELEASE=true | ||||
|           else | ||||
|             TAG_NAME=${{ github.ref }} | ||||
|             RELEASE_NAME="Release ${{ github.ref }}" | ||||
|             PRERELEASE=false | ||||
|           fi | ||||
|           echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV | ||||
|           echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||||
|           echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | ||||
|           echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV | ||||
|           echo "BRANCH=$BRANCH" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make prepare | ||||
| 
 | ||||
|       - uses: actions/download-artifact@v3 | ||||
|         with: | ||||
|           name: ${{ needs.toolchain.outputs.sdk-file }} | ||||
| 
 | ||||
|       - name: Build firmware | ||||
|         run: | | ||||
|           BOARD=unknown_unknown_${{ matrix.platform }} | ||||
|           if [ "${{ matrix.release }}" != "lite" ]; then | ||||
|             SUFF="${{ matrix.release }}-" | ||||
|             BOARD="${BOARD}_${{ matrix.release }}" | ||||
|           else | ||||
|             BOARD="${BOARD}_openipc" | ||||
|           fi | ||||
| 
 | ||||
|           NORFW_PATH="${GITHUB_WORKSPACE}/output/images/openipc.${{ matrix.platform }}-${SUFF}br.tgz" | ||||
|           echo "NORFW_PATH=$NORFW_PATH" >> $GITHUB_ENV | ||||
|           NORFW_FILE=$(basename $NORFW_PATH) | ||||
|           echo "NORFW_FILE=$NORFW_FILE" >> $GITHUB_ENV | ||||
| 
 | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           CONF_PATH=$(find . -name "${BOARD}_defconfig") | ||||
| 
 | ||||
|           echo Using ${{ needs.toolchain.outputs.sdk-file }} | ||||
|           echo "BR2_TOOLCHAIN_EXTERNAL=y" >> $CONF_PATH | ||||
|           echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y" >> $CONF_PATH | ||||
|           echo "BR2_TOOLCHAIN_EXTERNAL_PREINSTALLED=y" >> $CONF_PATH | ||||
|           echo "BR2_TOOLCHAIN_EXTERNAL_PATH=\"/tmp/extsdk\"" >> $CONF_PATH | ||||
|           echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX=\"arm-openipc-linux-musleabi\"" >> $CONF_PATH | ||||
|           echo "BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y" >> $CONF_PATH | ||||
|           echo "BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y" >> $CONF_PATH | ||||
|           echo "BR2_TOOLCHAIN_EXTERNAL_GCC_8=y" >> $CONF_PATH | ||||
|           LIBC="musl" | ||||
|           echo "BR2_ROOTFS_POST_BUILD_SCRIPT=\"\$(TOPDIR)/../scripts/executing_commands_for_${LIBC}.sh\"" >> $CONF_PATH | ||||
|           mkdir /tmp/extsdk | ||||
|           tar xvf ${{ needs.toolchain.outputs.sdk-file }} --strip-components=1 -C /tmp/extsdk >/dev/null | ||||
| 
 | ||||
|           make BOARD=$BOARD all | ||||
| 
 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${{ matrix.platform }} (${{ matrix.release }})" >> $GITHUB_ENV && exit 1 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${{ matrix.platform }} (${{ matrix.release }})" >> $GITHUB_ENV && exit 1 | ||||
|           cd ${GITHUB_WORKSPACE}/output/images | ||||
|           mv uImage uImage.${{ matrix.platform }} | ||||
|           mv rootfs.squashfs rootfs.squashfs.${{ matrix.platform }} | ||||
|           md5sum rootfs.squashfs.${{ matrix.platform }} > rootfs.squashfs.${{ matrix.platform }}.md5sum | ||||
|           md5sum uImage.${{ matrix.platform }} > uImage.${{ matrix.platform }}.md5sum | ||||
|           tar -cvzf $NORFW_PATH uImage* *rootfs.squashfs.${{ matrix.platform }}* | ||||
| 
 | ||||
|           # TODO: infer from configs | ||||
|           if [ "$HAS_NAND" == "true" ]; then | ||||
|             NANDFW_PATH="${GITHUB_WORKSPACE}/output/images/openipc.${{ matrix.platform }}-nand-br.tgz" | ||||
|             echo "NANDFW_PATH=$NANDFW_PATH" >> $GITHUB_ENV | ||||
|             NANDFW_FILE=$(basename $NANDFW_PATH) | ||||
|             echo "NANDFW_FILE=$NANDFW_FILE" >> $GITHUB_ENV | ||||
| 
 | ||||
|             mv rootfs.ubi rootfs.ubi.${{ matrix.platform }} | ||||
|             mv rootfs.ubifs rootfs.ubifs.${{ matrix.platform }} | ||||
|             md5sum rootfs.ubifs.${{ matrix.platform }} > rootfs.ubifs.${{ matrix.platform }}.md5sum | ||||
|             tar -cvzf $NANDFW_PATH uImage* *rootfs.ubi*.${{ matrix.platform }}* | ||||
|           fi | ||||
| 
 | ||||
|       - name: Send error message to telegram channel | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         if: ${{ !env.ACT && failure() && github.event_name != 'pull_request' }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${{ matrix.platform }} (${{ matrix.release }})}" | ||||
|           TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ | ||||
|             -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" | ||||
|           exit 2 | ||||
| 
 | ||||
|       - name: Create release | ||||
|         if: ${{ !env.ACT && github.event_name != 'pull_request' }} | ||||
|         uses: actions/create-release@v1 | ||||
|         continue-on-error: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         with: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           release_name: ${{ env.RELEASE_NAME }} | ||||
|           draft: false | ||||
|           prerelease: ${{ env.PRERELEASE }} | ||||
| 
 | ||||
|       - name: Upload NOR FW to release | ||||
|         if: ${{ !env.ACT && github.event_name != 'pull_request' }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.NORFW_PATH }} | ||||
|           asset_name: ${{ env.NORFW_FILE }} | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Upload NAND FW to release | ||||
|         if: ${{ !env.ACT && github.event_name != 'pull_request' && env.HAS_NAND }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.NANDFW_PATH }} | ||||
|           asset_name: ${{ env.NANDFW_FILE }} | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Send binary file to telegram channel | ||||
|         if: ${{ !env.ACT && github.event_name != 'pull_request' }} | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ | ||||
|             -F chat_id=$TG_CHANNEL -F document="@$NORFW_PATH" -F caption="$TG_HEADER" | ||||
|  | @ -1,148 +0,0 @@ | |||
| name: "Hi3516Ev200 (ultimate)" | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - production | ||||
|     tags: | ||||
|       - "v*" | ||||
|   schedule: | ||||
|       - cron: "00 03 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   build_core: | ||||
|     name: OpenIPC firmware for Hi3516Ev200 (ultimate) | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|             # Mitigate #325 issue | ||||
|             apt install -y pip && pip install cmake | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo swapoff -a | ||||
|           sudo rm -f /swapfile | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Prepare buildroot | ||||
|         id: prepare | ||||
|         run: | | ||||
|           HEAD_TAG=$(git tag --points-at HEAD) | ||||
|           GIT_HASH=$(git rev-parse --short $GITHUB_SHA) | ||||
|           BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) | ||||
|           if [ -z "$HEAD_TAG" ]; then | ||||
|             TAG_NAME="latest" | ||||
|             RELEASE_NAME="Development Build" | ||||
|             PRERELEASE=true | ||||
|           else | ||||
|             TAG_NAME=${{ github.ref }} | ||||
|             RELEASE_NAME="Release ${{ github.ref }}" | ||||
|             PRERELEASE=false | ||||
|           fi | ||||
|           echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV | ||||
|           echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||||
|           echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | ||||
|           echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV | ||||
|           echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | ||||
|           echo "BOARD=hi3516ev200" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make prepare | ||||
| 
 | ||||
|       - name: Build Hi3516Ev200 (ultimate) firmware | ||||
|         id: build-hi3516ev200-ultimate-firmware | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-ultimate-br.tgz" | ||||
|           ARCHIVE_FW_NAND="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-nand-br.tgz" | ||||
|           echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV | ||||
|           echo "ARCHIVE_FW_NAND=$ARCHIVE_FW_NAND" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_ultimate all | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 | ||||
|           cd ${GITHUB_WORKSPACE}/output/images | ||||
|           mv uImage uImage.${BOARD} | ||||
|           mv rootfs.squashfs rootfs.squashfs.${BOARD} | ||||
|           mv rootfs.ubi rootfs.ubi.${BOARD} | ||||
|           mv rootfs.ubifs rootfs.ubifs.${BOARD} | ||||
|           md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum | ||||
|           md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum | ||||
|           md5sum rootfs.ubifs.${BOARD} > rootfs.ubifs.${BOARD}.md5sum | ||||
|           md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum | ||||
|           tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}* | ||||
|           tar -cvzf $ARCHIVE_FW_NAND uImage* *rootfs.ubi*.${BOARD}* | ||||
| 
 | ||||
|       - name: Send error message to telegram channel | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         if: steps.build-hi3516ev200-ultimate-firmware.outcome != 'success' | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (ultimate)}" | ||||
|           TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ | ||||
|             -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" | ||||
|           exit 2 | ||||
| 
 | ||||
|       - name: Create release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: actions/create-release@v1 | ||||
|         continue-on-error: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         with: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           release_name: ${{ env.RELEASE_NAME }} | ||||
|           draft: false | ||||
|           prerelease: ${{ env.PRERELEASE }} | ||||
| 
 | ||||
|       - name: Upload NOR FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW }} | ||||
|           asset_name: openipc.${{ env.BOARD }}-ultimate-br.tgz | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Upload NAND FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW_NAND }} | ||||
|           asset_name: openipc.${{ env.BOARD }}-nand-br.tgz | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Send binary file to telegram channel | ||||
|         if: ${{ !env.ACT }} | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ | ||||
|             -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" | ||||
|  | @ -1,130 +0,0 @@ | |||
| name: "Hi3516Ev300 (fpv)" | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - production | ||||
|     tags: | ||||
|       - "v*" | ||||
|   schedule: | ||||
|       - cron: "00 03 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   build_core: | ||||
|     name: OpenIPC firmware for Hi3516Ev300 (fpv) | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|             # Mitigate #325 issue | ||||
|             apt install -y pip && pip install cmake | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo swapoff -a | ||||
|           sudo rm -f /swapfile | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Prepare buildroot | ||||
|         id: prepare | ||||
|         run: | | ||||
|           HEAD_TAG=$(git tag --points-at HEAD) | ||||
|           GIT_HASH=$(git rev-parse --short $GITHUB_SHA) | ||||
|           BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) | ||||
|           if [ -z "$HEAD_TAG" ]; then | ||||
|             TAG_NAME="latest" | ||||
|             RELEASE_NAME="Development Build" | ||||
|             PRERELEASE=true | ||||
|           else | ||||
|             TAG_NAME=${{ github.ref }} | ||||
|             RELEASE_NAME="Release ${{ github.ref }}" | ||||
|             PRERELEASE=false | ||||
|           fi | ||||
|           echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV | ||||
|           echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||||
|           echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | ||||
|           echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV | ||||
|           echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | ||||
|           echo "BOARD=hi3516ev300" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make prepare | ||||
| 
 | ||||
|       - name: Build Hi3516Ev300 (fpv) firmware | ||||
|         id: build-hi3516ev300-fpv-firmware | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-fpv-br.tgz" | ||||
|           echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_fpv all | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (fpv)" >> $GITHUB_ENV && exit 1 | ||||
|           cd ${GITHUB_WORKSPACE}/output/images | ||||
|           mv uImage uImage.${BOARD} | ||||
|           mv rootfs.squashfs rootfs.squashfs.${BOARD} | ||||
|           md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum | ||||
|           md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum | ||||
|           tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}* | ||||
| 
 | ||||
|       - name: Send error message to telegram channel | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         if: steps.build-hi3516ev300-fpv-firmware.outcome != 'success' | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (fpv)}" | ||||
|           TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ | ||||
|             -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" | ||||
|           exit 2 | ||||
| 
 | ||||
|       - name: Create release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: actions/create-release@v1 | ||||
|         continue-on-error: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         with: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           release_name: ${{ env.RELEASE_NAME }} | ||||
|           draft: false | ||||
|           prerelease: ${{ env.PRERELEASE }} | ||||
| 
 | ||||
|       - name: Upload NOR FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW }} | ||||
|           asset_name: openipc.${{ env.BOARD }}-fpv-br.tgz | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Send binary file to telegram channel | ||||
|         if: ${{ !env.ACT }} | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ | ||||
|             -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" | ||||
|  | @ -1,149 +0,0 @@ | |||
| name: "Hi3516Ev300  " | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - production | ||||
|     tags: | ||||
|       - "v*" | ||||
|   schedule: | ||||
|       - cron: "00 03 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   build_core: | ||||
|     name: OpenIPC firmware for Hi3516Ev300 | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|             # Mitigate #325 issue | ||||
|             apt install -y pip && pip install cmake | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo swapoff -a | ||||
|           sudo rm -f /swapfile | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Prepare buildroot | ||||
|         id: prepare | ||||
|         run: | | ||||
|           HEAD_TAG=$(git tag --points-at HEAD) | ||||
|           GIT_HASH=$(git rev-parse --short $GITHUB_SHA) | ||||
|           BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) | ||||
|           if [ -z "$HEAD_TAG" ]; then | ||||
|             TAG_NAME="latest" | ||||
|             RELEASE_NAME="Development Build" | ||||
|             PRERELEASE=true | ||||
|           else | ||||
|             TAG_NAME=${{ github.ref }} | ||||
|             RELEASE_NAME="Release ${{ github.ref }}" | ||||
|             PRERELEASE=false | ||||
|           fi | ||||
|           echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV | ||||
|           echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||||
|           echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | ||||
|           echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV | ||||
|           echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make prepare | ||||
| 
 | ||||
|       - name: Build Hi3516Ev300 firmware | ||||
|         id: build-hi3516ev300-firmware | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3516ev300-br.tgz" | ||||
|           echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make PLATFORM=hisilicon BOARD=unknown_unknown_hi3516ev300_openipc all | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3516EV300" >> $GITHUB_ENV && exit 1 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3516EV300" >> $GITHUB_ENV && exit 1 | ||||
|           cd ${GITHUB_WORKSPACE}/output/images | ||||
|           mv uImage uImage.hi3516ev300 | ||||
|           mv rootfs.squashfs rootfs.squashfs.hi3516ev300 | ||||
|           md5sum rootfs.squashfs.hi3516ev300 > rootfs.squashfs.hi3516ev300.md5sum | ||||
|           md5sum uImage.hi3516ev300 > uImage.hi3516ev300.md5sum | ||||
|           tar -cvzf $ARCHIVE_FW *hi3516ev300* | ||||
| 
 | ||||
|       - name: Build Hi3516Ev300 SDK | ||||
|         id: build-hi3516ev300-sdk | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz" | ||||
|           echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE/output | ||||
|           make sdk | ||||
| 
 | ||||
|       - name: Send error message to telegram channel | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         if: steps.build-hi3516ev300-firmware.outcome != 'success' || steps.build-hi3516ev300-sdk.outcome != 'success' | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3516EV300}" | ||||
|           TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ | ||||
|             -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" | ||||
|           exit 2 | ||||
| 
 | ||||
|       - name: Create release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: actions/create-release@v1 | ||||
|         continue-on-error: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         with: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           release_name: ${{ env.RELEASE_NAME }} | ||||
|           draft: false | ||||
|           prerelease: ${{ env.PRERELEASE }} | ||||
| 
 | ||||
|       - name: Upload NOR FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW }} | ||||
|           asset_name: "openipc.hi3516ev300-br.tgz" | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Upload SDK to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_SDK }} | ||||
|           asset_name: "arm-openipc-hi3516ev300-linux-musleabi_sdk-buildroot.tar.gz" | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Send binary file to telegram channel | ||||
|         if: ${{ !env.ACT }} | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ | ||||
|             -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" | ||||
|  | @ -1,148 +0,0 @@ | |||
| name: "Hi3516Ev300 (ultimate)" | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - production | ||||
|     tags: | ||||
|       - "v*" | ||||
|   schedule: | ||||
|       - cron: "00 03 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   build_core: | ||||
|     name: OpenIPC firmware for Hi3516Ev300 (ultimate) | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|             # Mitigate #325 issue | ||||
|             apt install -y pip && pip install cmake | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo swapoff -a | ||||
|           sudo rm -f /swapfile | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Prepare buildroot | ||||
|         id: prepare | ||||
|         run: | | ||||
|           HEAD_TAG=$(git tag --points-at HEAD) | ||||
|           GIT_HASH=$(git rev-parse --short $GITHUB_SHA) | ||||
|           BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) | ||||
|           if [ -z "$HEAD_TAG" ]; then | ||||
|             TAG_NAME="latest" | ||||
|             RELEASE_NAME="Development Build" | ||||
|             PRERELEASE=true | ||||
|           else | ||||
|             TAG_NAME=${{ github.ref }} | ||||
|             RELEASE_NAME="Release ${{ github.ref }}" | ||||
|             PRERELEASE=false | ||||
|           fi | ||||
|           echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV | ||||
|           echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||||
|           echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | ||||
|           echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV | ||||
|           echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | ||||
|           echo "BOARD=hi3516ev300" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make prepare | ||||
| 
 | ||||
|       - name: Build Hi3516Ev300 (ultimate) firmware | ||||
|         id: build-hi3516ev300-ultimate-firmware | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-ultimate-br.tgz" | ||||
|           ARCHIVE_FW_NAND="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-nand-br.tgz" | ||||
|           echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV | ||||
|           echo "ARCHIVE_FW_NAND=$ARCHIVE_FW_NAND" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_ultimate all | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 | ||||
|           cd ${GITHUB_WORKSPACE}/output/images | ||||
|           mv uImage uImage.${BOARD} | ||||
|           mv rootfs.squashfs rootfs.squashfs.${BOARD} | ||||
|           mv rootfs.ubi rootfs.ubi.${BOARD} | ||||
|           mv rootfs.ubifs rootfs.ubifs.${BOARD} | ||||
|           md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum | ||||
|           md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum | ||||
|           md5sum rootfs.ubifs.${BOARD} > rootfs.ubifs.${BOARD}.md5sum | ||||
|           md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum | ||||
|           tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}* | ||||
|           tar -cvzf $ARCHIVE_FW_NAND uImage* *rootfs.ubi*.${BOARD}* | ||||
| 
 | ||||
|       - name: Send error message to telegram channel | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         if: steps.build-hi3516ev300-ultimate-firmware.outcome != 'success' | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (ultimate)}" | ||||
|           TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ | ||||
|             -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" | ||||
|           exit 2 | ||||
| 
 | ||||
|       - name: Create release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: actions/create-release@v1 | ||||
|         continue-on-error: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         with: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           release_name: ${{ env.RELEASE_NAME }} | ||||
|           draft: false | ||||
|           prerelease: ${{ env.PRERELEASE }} | ||||
| 
 | ||||
|       - name: Upload NOR FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW }} | ||||
|           asset_name: openipc.${{ env.BOARD }}-ultimate-br.tgz | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Upload NAND FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW_NAND }} | ||||
|           asset_name: openipc.${{ env.BOARD }}-nand-br.tgz | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Send binary file to telegram channel | ||||
|         if: ${{ !env.ACT }} | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ | ||||
|             -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" | ||||
|  | @ -1,149 +0,0 @@ | |||
| name: "Hi3518Ev300  " | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - production | ||||
|     tags: | ||||
|       - "v*" | ||||
|   schedule: | ||||
|       - cron: "00 03 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   build_core: | ||||
|     name: OpenIPC firmware for Hi3518Ev300 | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|             # Mitigate #325 issue | ||||
|             apt install -y pip && pip install cmake | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo swapoff -a | ||||
|           sudo rm -f /swapfile | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Prepare buildroot | ||||
|         id: prepare | ||||
|         run: | | ||||
|           HEAD_TAG=$(git tag --points-at HEAD) | ||||
|           GIT_HASH=$(git rev-parse --short $GITHUB_SHA) | ||||
|           BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) | ||||
|           if [ -z "$HEAD_TAG" ]; then | ||||
|             TAG_NAME="latest" | ||||
|             RELEASE_NAME="Development Build" | ||||
|             PRERELEASE=true | ||||
|           else | ||||
|             TAG_NAME=${{ github.ref }} | ||||
|             RELEASE_NAME="Release ${{ github.ref }}" | ||||
|             PRERELEASE=false | ||||
|           fi | ||||
|           echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV | ||||
|           echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||||
|           echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | ||||
|           echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV | ||||
|           echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make prepare | ||||
| 
 | ||||
|       - name: Build Hi3518Ev300 firmware | ||||
|         id: build-hi3518ev300-firmware | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.hi3518ev300-br.tgz" | ||||
|           echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make PLATFORM=hisilicon BOARD=unknown_unknown_hi3518ev300_openipc all | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 2097152 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) vs 2097152... HI3518EV300" >> $GITHUB_ENV && exit 1 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 5242880 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 5242880... HI3518EV300" >> $GITHUB_ENV && exit 1 | ||||
|           cd ${GITHUB_WORKSPACE}/output/images | ||||
|           mv uImage uImage.hi3518ev300 | ||||
|           mv rootfs.squashfs rootfs.squashfs.hi3518ev300 | ||||
|           md5sum rootfs.squashfs.hi3518ev300 > rootfs.squashfs.hi3518ev300.md5sum | ||||
|           md5sum uImage.hi3518ev300 > uImage.hi3518ev300.md5sum | ||||
|           tar -cvzf $ARCHIVE_FW *hi3518ev300* | ||||
| 
 | ||||
|       - name: Build Hi3518Ev300 SDK | ||||
|         id: build-hi3518ev300-sdk | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_SDK="${GITHUB_WORKSPACE}/output/images/arm-openipc-linux-musleabi_sdk-buildroot.tar.gz" | ||||
|           echo "ARCHIVE_SDK=$ARCHIVE_SDK" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE/output | ||||
|           make sdk | ||||
| 
 | ||||
|       - name: Send error message to telegram channel | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         if: steps.build-hi3518ev300-firmware.outcome != 'success' || steps.build-hi3518ev300-sdk.outcome != 'success' | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... HI3518EV300}" | ||||
|           TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ | ||||
|             -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" | ||||
|           exit 2 | ||||
| 
 | ||||
|       - name: Create release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: actions/create-release@v1 | ||||
|         continue-on-error: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         with: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           release_name: ${{ env.RELEASE_NAME }} | ||||
|           draft: false | ||||
|           prerelease: ${{ env.PRERELEASE }} | ||||
| 
 | ||||
|       - name: Upload NOR FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW }} | ||||
|           asset_name: "openipc.hi3518ev300-br.tgz" | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Upload SDK to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_SDK }} | ||||
|           asset_name: "arm-openipc-hi3518ev300-linux-musleabi_sdk-buildroot.tar.gz" | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Send binary file to telegram channel | ||||
|         if: ${{ !env.ACT }} | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ | ||||
|             -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" | ||||
|  | @ -1,148 +0,0 @@ | |||
| name: "Hi3518Ev300 (ultimate)" | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - production | ||||
|     tags: | ||||
|       - "v*" | ||||
|   schedule: | ||||
|       - cron: "00 03 * * *" | ||||
|   workflow_dispatch: | ||||
| 
 | ||||
| jobs: | ||||
|   build_core: | ||||
|     name: OpenIPC firmware for Hi3518Ev300 (ultimate) | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
| 
 | ||||
|       - name: Checkout | ||||
|         id: checkout | ||||
|         uses: actions/checkout@v2 | ||||
| 
 | ||||
|       - name: Install build dependencies | ||||
|         run: | | ||||
|           make install-deps | ||||
|           mkdir -p tmp | ||||
|           if [ ! -z "$ACT" ]; then | ||||
|             apt install -y cpio rsync bc | ||||
|             echo "FORCE_UNSAFE_CONFIGURE=1" >> $GITHUB_ENV | ||||
|             # Mitigate #325 issue | ||||
|             apt install -y pip && pip install cmake | ||||
|           fi | ||||
| 
 | ||||
|       - name: Free disk space | ||||
|         if: ${{ !env.ACT }} | ||||
|         run: | | ||||
|           sudo swapoff -a | ||||
|           sudo rm -f /swapfile | ||||
|           sudo apt clean | ||||
|           docker rmi $(docker image ls -aq) | ||||
|           df -h | ||||
| 
 | ||||
|       - name: Prepare buildroot | ||||
|         id: prepare | ||||
|         run: | | ||||
|           HEAD_TAG=$(git tag --points-at HEAD) | ||||
|           GIT_HASH=$(git rev-parse --short $GITHUB_SHA) | ||||
|           BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3) | ||||
|           if [ -z "$HEAD_TAG" ]; then | ||||
|             TAG_NAME="latest" | ||||
|             RELEASE_NAME="Development Build" | ||||
|             PRERELEASE=true | ||||
|           else | ||||
|             TAG_NAME=${{ github.ref }} | ||||
|             RELEASE_NAME="Release ${{ github.ref }}" | ||||
|             PRERELEASE=false | ||||
|           fi | ||||
|           echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV | ||||
|           echo "TAG_NAME=$TAG_NAME" >> $GITHUB_ENV | ||||
|           echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | ||||
|           echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV | ||||
|           echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | ||||
|           echo "BOARD=hi3518ev300" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make prepare | ||||
| 
 | ||||
|       - name: Build Hi3518Ev300 (ultimate) firmware | ||||
|         id: build-hi3518ev300-ultimate-firmware | ||||
|         continue-on-error: true | ||||
|         run: | | ||||
|           ARCHIVE_FW="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-ultimate-br.tgz" | ||||
|           ARCHIVE_FW_NAND="${GITHUB_WORKSPACE}/output/images/openipc.${BOARD}-nand-br.tgz" | ||||
|           echo "ARCHIVE_FW=$ARCHIVE_FW" >> $GITHUB_ENV | ||||
|           echo "ARCHIVE_FW_NAND=$ARCHIVE_FW_NAND" >> $GITHUB_ENV | ||||
|           cd $GITHUB_WORKSPACE | ||||
|           make PLATFORM=hisilicon BOARD=unknown_unknown_${BOARD}_ultimate all | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) -gt 3145728 ]] && echo "TG_NOTIFY=Warning, kernel size exceeded : $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/uImage) ... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 | ||||
|           [[ $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) -gt 10485760 ]] && echo "TG_NOTIFY=Warning, rootfs size exceeded - $(stat --printf="%s" ${GITHUB_WORKSPACE}/output/images/rootfs.squashfs) vs 10485760... ${BOARD} (ultimate)" >> $GITHUB_ENV && exit 1 | ||||
|           cd ${GITHUB_WORKSPACE}/output/images | ||||
|           mv uImage uImage.${BOARD} | ||||
|           mv rootfs.squashfs rootfs.squashfs.${BOARD} | ||||
|           mv rootfs.ubi rootfs.ubi.${BOARD} | ||||
|           mv rootfs.ubifs rootfs.ubifs.${BOARD} | ||||
|           md5sum rootfs.squashfs.${BOARD} > rootfs.squashfs.${BOARD}.md5sum | ||||
|           md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum | ||||
|           md5sum rootfs.ubifs.${BOARD} > rootfs.ubifs.${BOARD}.md5sum | ||||
|           md5sum uImage.${BOARD} > uImage.${BOARD}.md5sum | ||||
|           tar -cvzf $ARCHIVE_FW uImage* *rootfs.squashfs.${BOARD}* | ||||
|           tar -cvzf $ARCHIVE_FW_NAND uImage* *rootfs.ubi*.${BOARD}* | ||||
| 
 | ||||
|       - name: Send error message to telegram channel | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         if: steps.build-hi3518ev300-ultimate-firmware.outcome != 'success' | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_NOTIFY="${TG_NOTIFY:=Warning, Buildroot compiling error... ${BOARD} (ultimate)}" | ||||
|           TG_HEADER=$(echo -e "\r\n$TG_NOTIFY \r\n\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9A\xA0 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendMessage \ | ||||
|             -F chat_id=$TG_CHANNEL -F text="$TG_HEADER" | ||||
|           exit 2 | ||||
| 
 | ||||
|       - name: Create release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: actions/create-release@v1 | ||||
|         continue-on-error: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|         with: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           release_name: ${{ env.RELEASE_NAME }} | ||||
|           draft: false | ||||
|           prerelease: ${{ env.PRERELEASE }} | ||||
| 
 | ||||
|       - name: Upload NOR FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW }} | ||||
|           asset_name: openipc.${{ env.BOARD }}-ultimate-br.tgz | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Upload NAND FW to release | ||||
|         if: ${{ !env.ACT }} | ||||
|         uses: svenstaro/upload-release-action@v2 | ||||
|         continue-on-error: true | ||||
|         with: | ||||
|           repo_token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           file: ${{ env.ARCHIVE_FW_NAND }} | ||||
|           asset_name: openipc.${{ env.BOARD }}-nand-br.tgz | ||||
|           tag: ${{ env.TAG_NAME }} | ||||
|           overwrite: true | ||||
| 
 | ||||
|       - name: Send binary file to telegram channel | ||||
|         if: ${{ !env.ACT }} | ||||
|         env: | ||||
|           TG_TOKEN: ${{ secrets.TELEGRAM_TOKEN_BOT_OPENIPC }} | ||||
|           TG_CHANNEL: ${{ secrets.TELEGRAM_CHANNEL_OPENIPC_DEV }} | ||||
|         run: | | ||||
|           TG_OPTIONS="-s --connect-timeout 30 --max-time 30" | ||||
|           TG_HEADER=$(echo -e "\r\nCommit: $GIT_HASH \r\nBranch: $BRANCH_NAME \r\nTag: $TAG_NAME \r\n\r\n\xE2\x9C\x85 GitHub Actions") | ||||
|           curl $TG_OPTIONS -H "Content-Type: multipart/form-data" -X POST https://api.telegram.org/bot$TG_TOKEN/sendDocument \ | ||||
|             -F chat_id=$TG_CHANNEL -F document="@$ARCHIVE_FW" -F caption="$TG_HEADER" | ||||
								
									
									
										
											14
										
									
									Makefile
									
									
									
									
								
								
							
							
										
											14
										
									
									Makefile
									
									
									
									
								|  | @ -2,6 +2,20 @@ | |||
| ROOT_DIR      := $(CURDIR) | ||||
| BR_VER        := 2021.02.12 | ||||
| BR_DIR        := $(ROOT_DIR)/buildroot-$(BR_VER) | ||||
| 
 | ||||
| ifeq ($(PLATFORM),) | ||||
|     ifneq ($(BOARD),) | ||||
| 		FULL_PATH := $(shell find br-ext-chip-* -name "$(BOARD)*_defconfig") | ||||
| 		ifeq ($(FULL_PATH),) | ||||
| 			FULL_PATH := $(error Cannot find anything for $(BOARD)) | ||||
| 		else ifneq ($(shell echo $(FULL_PATH) | wc -w), 1) | ||||
| 			FULL_PATH := $(error For provided '$(BOARD)' multiple options found: $(FULL_PATH)) | ||||
| 		endif | ||||
| 
 | ||||
| 		PLATFORM := $(shell echo $(FULL_PATH) | cut -d '/' -f 1 | cut -d '-' -f 4 ) | ||||
|     endif | ||||
| endif | ||||
| 
 | ||||
| BR_EXT_DIR    := $(ROOT_DIR)/br-ext-chip-$(PLATFORM) | ||||
| SCRIPTS_DIR   := $(ROOT_DIR)/scripts | ||||
| #BOARDS       := $(shell ls -1 $(BR_EXT_DIR)/configs)
 | ||||
|  |  | |||
|  | @ -0,0 +1 @@ | |||
| ../../../../../patches/linux/3.0.x-3.3.x/gcc8_err_encountered.patch | ||||
|  | @ -0,0 +1 @@ | |||
| ../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch | ||||
|  | @ -0,0 +1 @@ | |||
| ../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch | ||||
|  | @ -0,0 +1 @@ | |||
| ../../../../../patches/linux/3.10.x/gcc8_err_encountered.patch | ||||
|  | @ -0,0 +1 @@ | |||
| ../../../../../patches/linux/3.18.x/ARM-vfp-force-non-conditional-encoding-for-external-Thumb2-tail-call.patch | ||||
								
									
									
										
											729
										
									
									building.sh
									
									
									
									
								
								
							
							
										
											729
										
									
									building.sh
									
									
									
									
								|  | @ -1,6 +1,6 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # OpenIPC.org | v.20220813 | ||||
| # OpenIPC.org (c) | ||||
| # | ||||
| 
 | ||||
| BR_VER=2021.02.12 | ||||
|  | @ -11,11 +11,6 @@ MAX_KERNEL_SIZE_EXPERIMENTAL=0x3E8480  # ~3.9MiB,  4097152 | |||
| MAX_ROOTFS_SIZE=0x500000              #    5MiB,  5242880 | ||||
| MAX_ROOTFS_SIZE_ULTIMATE=0xA00000     #   10MiB,  10485760 | ||||
| 
 | ||||
| clone() { | ||||
|   sudo apt-get update -y ; apt-get install -y bc build-essential git unzip rsync autotools-dev automake libtool | ||||
|   git clone --depth=1 https://github.com/OpenIPC/firmware.git | ||||
| } | ||||
| 
 | ||||
| fresh() { | ||||
|   echo -e "\nThe start-stop times\n" >/tmp/openipc_buildtime.txt | ||||
|   date >>/tmp/openipc_buildtime.txt | ||||
|  | @ -44,18 +39,18 @@ rename() { | |||
|     should_fit uImage $MAX_KERNEL_SIZE | ||||
|     should_fit rootfs.squashfs $MAX_ROOTFS_SIZE | ||||
|   fi | ||||
|   mv -v ./output/images/uImage ./output/images/uImage.${soc} | ||||
|   mv -v ./output/images/rootfs.squashfs ./output/images/rootfs.squashfs.${soc} | ||||
|   mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${soc}.cpio | ||||
|   mv -v ./output/images/rootfs.tar ./output/images/rootfs.${soc}.tar | ||||
|   mv -v ./output/images/uImage ./output/images/uImage.${SOC} | ||||
|   mv -v ./output/images/rootfs.squashfs ./output/images/rootfs.squashfs.${SOC} | ||||
|   mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${SOC}.cpio | ||||
|   mv -v ./output/images/rootfs.tar ./output/images/rootfs.${SOC}.tar | ||||
|   date >>/tmp/openipc_buildtime.txt | ||||
| } | ||||
| 
 | ||||
| rename_initramfs() { | ||||
|   should_fit uImage $MAX_KERNEL_SIZE_EXPERIMENTAL | ||||
|   mv -v ./output/images/uImage ./output/images/uImage.initramfs.${soc} | ||||
|   mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${soc}.cpio | ||||
|   mv -v ./output/images/rootfs.tar ./output/images/rootfs.${soc}.tar | ||||
|   mv -v ./output/images/uImage ./output/images/uImage.initramfs.${SOC} | ||||
|   mv -v ./output/images/rootfs.cpio ./output/images/rootfs.${SOC}.cpio | ||||
|   mv -v ./output/images/rootfs.tar ./output/images/rootfs.${SOC}.tar | ||||
|   date >>/tmp/openipc_buildtime.txt | ||||
|   echo -e "\n\n$(cat /tmp/openipc_buildtime.txt)" | ||||
| } | ||||
|  | @ -64,561 +59,170 @@ autoup_rootfs() { | |||
|   echo -e "\n" | ||||
|   curl -L -o ./output/images/u-boot-hi3518ev200-universal.bin https://github.com/OpenIPC/firmware/releases/download/latest/u-boot-hi3518ev200-universal.bin | ||||
|   echo -e "\n" | ||||
|   ./output/host/bin/mkimage -A arm -O linux -T firmware -n 'OpenIPC v.2.2.7' -a 0x000000000000 -e 0x000000050000 -d ./output/images/u-boot-hi3518ev200-universal.bin ./output/images/autoupdate-uboot.img | ||||
|   D=$(date "+%y.%m.%d") | ||||
|   RELEASE=$(echo OpenIPC v${D:0:1}.${D:1}) | ||||
|   ./output/host/bin/mkimage -A arm -O linux -T firmware -n $RELEASE -a 0x0 -e 0x50000 -d ./output/images/u-boot-hi3518ev200-universal.bin ./output/images/autoupdate-uboot.img | ||||
|   echo -e "\n" | ||||
|   ./output/host/bin/mkimage -A arm -O linux -T kernel -C none -n 'OpenIPC v2.2.7' -a 0x000000050000 -e 0x000000250000 -d ./output/images/uImage.${soc} ./output/images/autoupdate-kernel.img | ||||
|   ./output/host/bin/mkimage -A arm -O linux -T kernel -C none -n $RELEASE -a 0x50000 -e 0x250000 -d ./output/images/uImage.${SOC} ./output/images/autoupdate-kernel.img | ||||
|   echo -e "\n" | ||||
|   ./output/host/bin/mkimage -A arm -O linux -T filesystem -n 'OpenIPC v.2.2.7' -a 0x000000250000 -e 0x000000750000 -d ./output/images/rootfs.squashfs.${soc} ./output/images/autoupdate-rootfs.img | ||||
| } | ||||
| 
 | ||||
| sdk() { | ||||
|   make br-sdk | ||||
| } | ||||
| 
 | ||||
| upload() { | ||||
|   TFTP_SERVER="root@172.17.32.17:/mnt/bigger-2tb/Rotator/TFTP" | ||||
|   echo -e "\n\nStart transferring files to the TFTP server...\n" | ||||
|   scp -P 22 -r ./output/images/rootfs.squashfs.* ./output/images/uImage.* ${TFTP_SERVER} | ||||
| } | ||||
| 
 | ||||
| tg_message() { | ||||
|   #TG_TOKEN= | ||||
|   #TG_CHANNEL= | ||||
|   TG_REPLY="${TG_REPLY:=No comment.\nAll details will come later.}" | ||||
|   TG_MESSAGE=$(echo -e "\xF0\x9F\x8C\x8D PARADOX" "%0A${TG_REPLY}") | ||||
|   # | ||||
|   curl -s -k --connect-timeout 30 --max-time 30 -X POST \ | ||||
|     https://api.telegram.org/bot${TG_TOKEN}/sendMessage -d chat_id="${TG_CHANNEL}" -d disable_notification="true" -d text="${TG_MESSAGE}" >/dev/null 2>&1 | ||||
|   ./output/host/bin/mkimage -A arm -O linux -T filesystem -n $RELEASE -a 0x250000 -e 0x750000 -d ./output/images/rootfs.squashfs.${SOC} ./output/images/autoupdate-rootfs.img | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| ambarella-s3l() { | ||||
|   soc="s3l" | ||||
|   fresh && make PLATFORM=ambarella BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| ak3918ev200() { | ||||
|   soc="ak3918ev200" | ||||
|   fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ak3916ev300() { | ||||
|   soc="ak3916ev300" | ||||
|   fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ak3918ev300() { | ||||
|   soc="ak3918ev300" | ||||
|   fresh && make PLATFORM=anyka BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| fh8833v100() { | ||||
|   soc="fh8833v100" | ||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| fh8852v100() { | ||||
|   soc="fh8852v100" | ||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| fh8852v200() { | ||||
|   soc="fh8852v200" | ||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| fh8852v210() { | ||||
|   soc="fh8852v210" | ||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| fh8856v100() { | ||||
|   soc="fh8856v100" | ||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| fh8856v200() { | ||||
|   soc="fh8856v200" | ||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| fh8856v210() { | ||||
|   soc="fh8856v210" | ||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| fh8858v200() { | ||||
|   soc="fh8858v200" | ||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| fh8858v210() { | ||||
|   soc="fh8858v210" | ||||
|   fresh && make PLATFORM=fullhan BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| gk7101() { | ||||
|   soc="gk7101" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| gk7101s() { | ||||
|   soc="gk7101s" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| gk7102() { | ||||
|   soc="gk7102" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| gk7102s() { | ||||
|   soc="gk7102s" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| gk7205v200() { | ||||
|   soc="gk7205v200" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| gk7205v200_ultimate() { | ||||
|   soc="gk7205v200" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ultimate all && rename | ||||
| } | ||||
| 
 | ||||
| gk7205v200_fpv() { | ||||
|   soc="gk7205v200" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_fpv all && rename | ||||
| } | ||||
| 
 | ||||
| gk7205v200_iscom() { | ||||
|   soc="gk7205v200" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_iscom all && rename | ||||
| } | ||||
| 
 | ||||
| gk7205v200_ufanet() { | ||||
|   soc="gk7205v200" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ufanet all && rename | ||||
| } | ||||
| 
 | ||||
| gk7205v210() { | ||||
|   soc="gk7205v210" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| gk7205v300() { | ||||
|   soc="gk7205v300" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| gk7205v300_ultimate() { | ||||
|   soc="gk7205v300" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_ultimate all && rename | ||||
| } | ||||
| 
 | ||||
| gk7205v300_fpv() { | ||||
|   soc="gk7205v300" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_fpv all && rename | ||||
| } | ||||
| 
 | ||||
| gk7605v100() { | ||||
|   soc="gk7605v100" | ||||
|   fresh && make PLATFORM=goke BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| gm8135() { | ||||
|   soc="gm8135" | ||||
|   fresh && make PLATFORM=grainmedia BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| gm8136() { | ||||
|   soc="gm8136" | ||||
|   fresh && make PLATFORM=grainmedia BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| hi3516cv100() { | ||||
|   soc="hi3516cv100" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3518ev100() { | ||||
|   soc="hi3518ev100" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| hi3516cv200() { | ||||
|   soc="hi3516cv200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3518ev200() { | ||||
|   soc="hi3518ev200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3518ev200_domsip() { | ||||
|   soc="hi3518ev200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_domsip all && rename | ||||
| } | ||||
| 
 | ||||
| hi3518ev200_hs303() { | ||||
|   soc="hi3518ev200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename && autoup_rootfs | ||||
|   #PLATFORM=hisilicon  make br-linux-{dirclean,rebuild} | ||||
|   #PLATFORM=hisilicon  make br-mbedtls-openipc-{dirclean,rebuild} | ||||
| } | ||||
| 
 | ||||
| hi3518ev200_ultimate() { | ||||
|   soc="hi3518ev200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| hi3516cv300() { | ||||
|   soc="hi3516cv300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516cv300_ultimate() { | ||||
|   soc="hi3516cv300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev100() { | ||||
|   soc="hi3516ev100" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| ################################################################################# | ||||
| 
 | ||||
| hi3516av100() { | ||||
|   soc="hi3516av100" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516av100_ultimate() { | ||||
|   soc="hi3516av100" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516dv100() { | ||||
|   soc="hi3516dv100" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516dv100_ultimate() { | ||||
|   soc="hi3516dv100" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| hi3519v101() { | ||||
|   soc="hi3519v101" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516av200() { | ||||
|   soc="hi3516av200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516av200_ultimate() { | ||||
|   soc="hi3516av200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| hi3516av300() { | ||||
|   soc="hi3516av300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516cv500() { | ||||
|   soc="hi3516cv500" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516dv300() { | ||||
|   soc="hi3516dv300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| hi3516dv200() { | ||||
|   soc="hi3516dv200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev200() { | ||||
|   soc="hi3516ev200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev200_dozor() { | ||||
|   soc="hi3516ev200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_dozor all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev200_eltis() { | ||||
|   soc="hi3516ev200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_eltis all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev200_vixand() { | ||||
|   soc="hi3516ev200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_vixand all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev200_ultimate() { | ||||
|   soc="hi3516ev200" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev300() { | ||||
|   soc="hi3516ev300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev300_dev() { | ||||
|   soc="hi3516ev300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_dev all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev300_fpv() { | ||||
|   soc="hi3516ev300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_fpv all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev300_glibc() { | ||||
|   soc="hi3516ev300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_glibc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev300_tehshield() { | ||||
|   soc="hi3516ev300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_tehshield all && rename | ||||
| } | ||||
| 
 | ||||
| hi3516ev300_ultimate() { | ||||
|   soc="hi3516ev300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename | ||||
| } | ||||
| 
 | ||||
| hi3518ev300() { | ||||
|   soc="hi3518ev300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3518ev300_ultimate() { | ||||
|   soc="hi3518ev300" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_ultimate all && rename | ||||
| } | ||||
| 
 | ||||
| hi3536cv100() { | ||||
|   soc="hi3536cv100" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3536dv100() { | ||||
|   soc="hi3536dv100" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| hi3536dv100_vixand() { | ||||
|   soc="hi3536dv100" | ||||
|   fresh && make PLATFORM=hisilicon BOARD=unknown_unknown_${soc}_vixand all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| msc313e() { | ||||
|   soc="msc313e" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| msc313e_baresip() { | ||||
|   soc="msc313e" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_baresip all && rename | ||||
| } | ||||
| 
 | ||||
| msc316dc() { | ||||
|   soc="msc316dc" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| msc316dm() { | ||||
|   soc="msc316dm" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| nt98562() { | ||||
|   soc="nt98562" | ||||
|   fresh && make PLATFORM=novatek BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
|   #PLATFORM=novatek make br-linux-{dirclean,rebuild} | ||||
| } | ||||
| 
 | ||||
| nt98566() { | ||||
|   soc="nt98566" | ||||
|   fresh && make PLATFORM=novatek BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| nt98566_polcam() { | ||||
|   soc="nt98566" | ||||
|   fresh && make PLATFORM=novatek BOARD=unknown_unknown_${soc}_polcam all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| rv1109() { | ||||
|   soc="rv1109" | ||||
|   fresh && make PLATFORM=rockchip BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| rv1126() { | ||||
|   soc="rv1126" | ||||
|   fresh && make PLATFORM=rockchip BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| ssc325() { | ||||
|   soc="ssc325" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| ssc333() { | ||||
|   soc="ssc333" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ssc335() { | ||||
|   soc="ssc335" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ssc335_blackbird() { | ||||
|   soc="ssc335" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_blackbird all && rename | ||||
| } | ||||
| 
 | ||||
| ssc335_goodcam() { | ||||
|   soc="ssc335" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_goodcam all && rename | ||||
| } | ||||
| 
 | ||||
| ssc335_initramfs() { | ||||
|   soc="ssc335" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_initramfs all && rename_initramfs | ||||
| } | ||||
| 
 | ||||
| ssc335_musl() { | ||||
|   soc="ssc335" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_musl all && rename | ||||
| } | ||||
| 
 | ||||
| ssc335_portal() { | ||||
|   soc="ssc335" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_portal all && rename | ||||
| } | ||||
| 
 | ||||
| ssc335_rotek() { | ||||
|   soc="ssc335" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_rotek all && rename | ||||
| } | ||||
| 
 | ||||
| ssc335_tiandy() { | ||||
|   soc="ssc335" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_tiandy all && rename | ||||
| } | ||||
| 
 | ||||
| ssc337() { | ||||
|   soc="ssc337" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ssc337_kama() { | ||||
|   soc="ssc337" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_kama all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| ssc335de() { | ||||
|   soc="ssc335de" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ssc337de() { | ||||
|   soc="ssc337de" | ||||
|   fresh && make PLATFORM=sigmastar BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| t10() { | ||||
|   soc="t10" | ||||
|   fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| t20() { | ||||
|   soc="t20" | ||||
|   fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| t30() { | ||||
|   soc="t30" | ||||
|   fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| t31() { | ||||
|   soc="t31" | ||||
|   fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| t31_vixand() { | ||||
|   soc="t31" | ||||
|   fresh && make PLATFORM=ingenic BOARD=unknown_unknown_${soc}_vixand all && rename | ||||
| } | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
| xm510() { | ||||
|   soc="xm510" | ||||
|   fresh && make PLATFORM=xiongmai BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| xm530() { | ||||
|   soc="xm530" | ||||
|   fresh && make PLATFORM=xiongmai BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| 
 | ||||
| xm550() { | ||||
|   soc="xm550" | ||||
|   fresh && make PLATFORM=xiongmai BOARD=unknown_unknown_${soc}_openipc all && rename | ||||
| } | ||||
| FUNCS=( | ||||
|   ambarella-s3l | ||||
| 
 | ||||
|   ak3918ev200 | ||||
|   ak3916ev300 | ||||
|   ak3918ev300 | ||||
| 
 | ||||
|   fh8833v100 | ||||
|   fh8852v100 | ||||
|   fh8852v200 | ||||
|   fh8852v210 | ||||
|   fh8856v100 | ||||
|   fh8856v200 | ||||
|   fh8856v210 | ||||
|   fh8858v200 | ||||
|   fh8858v210 | ||||
| 
 | ||||
|   gk7101 | ||||
|   gk7101s | ||||
|   gk7102 | ||||
|   gk7102s | ||||
| 
 | ||||
|   gk7205v200 | ||||
|   gk7205v200_ultimate | ||||
|   gk7205v200_fpv | ||||
|   gk7205v200_iscom | ||||
|   gk7205v200_ufanet | ||||
|   gk7205v210 | ||||
|   gk7205v300 | ||||
|   gk7205v300_ultimate | ||||
|   gk7205v300_fpv | ||||
|   gk7605v100 | ||||
| 
 | ||||
|   gm8135 | ||||
|   gm8136 | ||||
| 
 | ||||
|   hi3516cv100 | ||||
|   hi3518ev100 | ||||
| 
 | ||||
|   hi3516cv200 | ||||
|   hi3518ev200 | ||||
|   hi3518ev200_domsip | ||||
|   hi3518ev200_hs303 | ||||
|   hi3518ev200_ultimate | ||||
| 
 | ||||
|   hi3516cv300 | ||||
|   hi3516cv300_ultimate | ||||
|   hi3516ev100 | ||||
| 
 | ||||
|   hi3516av100 | ||||
|   hi3516av100_ultimate | ||||
|   hi3516dv100 | ||||
|   hi3516dv100_ultimate | ||||
| 
 | ||||
|   hi3519v101 | ||||
|   hi3516av200 | ||||
|   hi3516av200_ultimate | ||||
| 
 | ||||
|   hi3516av300 | ||||
|   hi3516cv500 | ||||
|   hi3516dv300 | ||||
| 
 | ||||
|   hi3516dv200 | ||||
|   hi3516ev200 | ||||
|   hi3516ev200_dozor | ||||
|   hi3516ev200_eltis | ||||
|   hi3516ev200_vixand | ||||
|   hi3516ev200_ultimate | ||||
|   hi3516ev300 | ||||
|   hi3516ev300_dev | ||||
|   hi3516ev300_fpv | ||||
|   hi3516ev300_glibc | ||||
|   hi3516ev300_tehshield | ||||
|   hi3516ev300_ultimate | ||||
|   hi3518ev300 | ||||
|   hi3518ev300_ultimate | ||||
| 
 | ||||
|   hi3536cv100 | ||||
|   hi3536dv100 | ||||
|   hi3536dv100_vixand | ||||
| 
 | ||||
|   msc313e | ||||
|   msc313e_baresip | ||||
|   msc316dc | ||||
|   msc316dm | ||||
| 
 | ||||
|   nt98562 | ||||
|   nt98566 | ||||
|   nt98566_polcam | ||||
| 
 | ||||
|   rv1109 | ||||
|   rv1126 | ||||
| 
 | ||||
|   ssc325 | ||||
|   ssc333 | ||||
|   ssc335 | ||||
|   ssc335_blackbird | ||||
|   ssc335_goodcam | ||||
|   ssc335_initramfs | ||||
|   ssc335_musl | ||||
|   ssc335_portal | ||||
|   ssc335_rotek | ||||
|   ssc335_tiandy | ||||
|   ssc337 | ||||
|   ssc337_kama | ||||
| 
 | ||||
|   ssc335de | ||||
|   ssc337de | ||||
| 
 | ||||
|   t10 | ||||
|   t20 | ||||
|   t30 | ||||
|   t31 | ||||
|   t31_vixand | ||||
| 
 | ||||
|   xm510 | ||||
|   xm530 | ||||
|   xm550 | ||||
| ) | ||||
| 
 | ||||
| copy_function() { | ||||
|   test -n "$(declare -f "$1")" || return | ||||
|   eval "${_/$1/$2}" | ||||
| } | ||||
| 
 | ||||
| uni_build() { | ||||
|   BOARD=$FUNCNAME | ||||
|   SOC=$(echo $BOARD | cut -d '_' -f 1) | ||||
| 
 | ||||
|   set -e | ||||
|   if [ "$(echo $BOARD | cut -d '_' -f 2)" == "" ]; then | ||||
|     BOARD="${BOARD}_openipc" | ||||
|   elif [ "$BOARD" == "hi3518ev200_hs303" ]; then | ||||
|     BOARD=hi3518ev200_openipc | ||||
|     NEED_AUTOUP=1 | ||||
|   fi | ||||
| 
 | ||||
|   fresh | ||||
|   make BOARD=unknown_unknown_${BOARD} all | ||||
|   if [ "$BOARD" == "ssc335_initramfs" ]; then | ||||
|     rename_initramfs | ||||
|   else | ||||
|     rename | ||||
|   fi | ||||
| 
 | ||||
|   if [ ! -z "$NEED_AUTOUP" ]; then | ||||
|     autoup_rootfs | ||||
|   fi | ||||
| } | ||||
| 
 | ||||
| for i in "${FUNCS[@]}"; do | ||||
|   copy_function uni_build $i | ||||
| done | ||||
| 
 | ||||
| ################################################################################# | ||||
| 
 | ||||
|  | @ -782,4 +386,3 @@ xm550() { | |||
| # | ||||
| 
 | ||||
| echo -e "\n\n$(cat /tmp/openipc_buildtime.txt)" | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
| #
 | ||||
| ################################################################################
 | ||||
| 
 | ||||
| LIBEVENT_OPENIPC_VERSION = 99fd68abde4a59b90148db733fc51a7256cbd320 | ||||
| LIBEVENT_OPENIPC_VERSION = 86b5d2e951eaa88cb5fed2be23fa5af85facad4a | ||||
| LIBEVENT_OPENIPC_SITE = $(call github,libevent,libevent,$(LIBEVENT_OPENIPC_VERSION)) | ||||
| LIBEVENT_OPENIPC_INSTALL_STAGING = YES | ||||
| LIBEVENT_OPENIPC_LICENSE = BSD-3-Clause, OpenBSD | ||||
|  |  | |||
|  | @ -0,0 +1,149 @@ | |||
| From patchwork Thu Sep 17 06:19:48 2020 | ||||
| Content-Type: text/plain; charset="utf-8" | ||||
| MIME-Version: 1.0 | ||||
| Content-Transfer-Encoding: 7bit | ||||
| X-Patchwork-Submitter: Ard Biesheuvel <ardb@kernel.org> | ||||
| X-Patchwork-Id: 11781619 | ||||
| Return-Path:  | ||||
|  <SRS0=6281=C2=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org> | ||||
| Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org | ||||
|  [172.30.200.123]) | ||||
| 	by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E7EA96CA | ||||
| 	for <patchwork-linux-arm@patchwork.kernel.org>; | ||||
|  Thu, 17 Sep 2020 06:20:24 +0000 (UTC) | ||||
| Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) | ||||
| 	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) | ||||
| 	(No client certificate requested) | ||||
| 	by mail.kernel.org (Postfix) with ESMTPS id 758BF208E4 | ||||
| 	for <patchwork-linux-arm@patchwork.kernel.org>; | ||||
|  Thu, 17 Sep 2020 06:20:24 +0000 (UTC) | ||||
| Authentication-Results: mail.kernel.org; | ||||
| 	dkim=pass (2048-bit key) header.d=lists.infradead.org | ||||
|  header.i=@lists.infradead.org header.b="asIIUop8"; | ||||
| 	dkim=fail reason="signature verification failed" (1024-bit key) | ||||
|  header.d=kernel.org header.i=@kernel.org header.b="Dfh0zH+Q" | ||||
| DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 758BF208E4 | ||||
| Authentication-Results: mail.kernel.org; | ||||
|  dmarc=fail (p=none dis=none) header.from=kernel.org | ||||
| Authentication-Results: mail.kernel.org; | ||||
|  spf=none | ||||
|  smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org | ||||
| DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; | ||||
| 	d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: | ||||
| 	Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive: | ||||
| 	List-Unsubscribe:List-Id:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: | ||||
| 	Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc | ||||
| 	:Resent-Message-ID:In-Reply-To:References:List-Owner; | ||||
| 	bh=Lo1QvkycLV/7qa6tRuaKU+043GrCtYRFDvZNpiyIHFs=; b=asIIUop8zx9VLyP8RxH3FSnpIB | ||||
| 	goa+Fn9zbDfPdm1XBArYJdBUQkptX0eK5ggte4+RtYnD6jtYPnDQ1atbG+LXFXdCGBPPGD7Ec0NCz | ||||
| 	2rf7GocaLxeNTnfrTrLiyeLitFTbrFsfog6LNatG/wbNnekF7ykhcZ7bzwvfMVNbAYwx0vMjCBUDv | ||||
| 	yaOUflwQYiTda6AkoJnj1IISdIYLgkCEIzyDVq3rIFW3BA+m5EhmhXKI2gcksipSVuIsbux+px9ZV | ||||
| 	v42wJcIXgnVA+qJct1MFfxvPN1vQBL9aLZclNOcXNmKZD8Q09LA4yNxvFkRoNLlBOPKYSN6XHmtJn | ||||
| 	mAF9oPSw==; | ||||
| Received: from localhost ([::1] helo=merlin.infradead.org) | ||||
| 	by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) | ||||
| 	id 1kInGx-0003LG-UJ; Thu, 17 Sep 2020 06:20:00 +0000 | ||||
| Received: from mail.kernel.org ([198.145.29.99]) | ||||
|  by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) | ||||
|  id 1kInGv-0003Kq-Ma | ||||
|  for linux-arm-kernel@lists.infradead.org; Thu, 17 Sep 2020 06:19:58 +0000 | ||||
| Received: from e123331-lin.nice.arm.com (unknown [91.140.120.15]) | ||||
|  (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) | ||||
|  (No client certificate requested) | ||||
|  by mail.kernel.org (Postfix) with ESMTPSA id 9D4CD20707; | ||||
|  Thu, 17 Sep 2020 06:19:54 +0000 (UTC) | ||||
| DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; | ||||
|  s=default; t=1600323596; | ||||
|  bh=ziD1S262d4AhvP0HlkLo4WCfu8gkBuZJo+18GfJki9c=; | ||||
|  h=From:To:Cc:Subject:Date:From; | ||||
|  b=Dfh0zH+QgFdYO0gLoboRtZhySJAl+bjUHgIo8kCQVGjvzCWF7i2BSPEKZiFbSIEGm | ||||
|  fFSTDES62ApoJHYwFnIAtXQMpjV7DYbIoeuFScbKPT4lMxCYpo/X7ffl/+OEWMkRAK | ||||
|  4Unu4CMR1SVL+8a4DZhSoF74nrvGspRqV5Nh1iTI= | ||||
| From: Ard Biesheuvel <ardb@kernel.org> | ||||
| To: linux-arm-kernel@lists.infradead.org | ||||
| Subject: [PATCH] ARM: vfp: force non-conditional encoding for external Thumb2 | ||||
|  tail call | ||||
| Date: Thu, 17 Sep 2020 09:19:48 +0300 | ||||
| Message-Id: <20200917061948.12403-1-ardb@kernel.org> | ||||
| X-Mailer: git-send-email 2.17.1 | ||||
| X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3  | ||||
| X-CRM114-CacheID: sfid-20200917_021957_811961_126E0A54  | ||||
| X-CRM114-Status: GOOD (  13.51  ) | ||||
| X-Spam-Score: -8.2 (--------) | ||||
| X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary: | ||||
|  Content analysis details:   (-8.2 points) | ||||
|  pts rule name              description | ||||
|  ---- ---------------------- | ||||
|  -------------------------------------------------- | ||||
|  -5.0 RCVD_IN_DNSWL_HI       RBL: Sender listed at https://www.dnswl.org/, | ||||
|  high trust [198.145.29.99 listed in list.dnswl.org] | ||||
|  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record | ||||
|  -0.0 SPF_PASS               SPF: sender matches SPF record | ||||
|  0.1 DKIM_SIGNED            Message has a DKIM or DK signature, | ||||
|  not necessarily | ||||
|  valid | ||||
|  -0.1 DKIM_VALID_EF          Message has a valid DKIM or DK signature from | ||||
|  envelope-from domain | ||||
|  -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from | ||||
|  author's domain | ||||
|  -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature | ||||
|  -3.0 DKIMWL_WL_HIGH         DKIMwl.org - Whitelisted High sender | ||||
| X-BeenThere: linux-arm-kernel@lists.infradead.org | ||||
| X-Mailman-Version: 2.1.29 | ||||
| Precedence: list | ||||
| List-Id: <linux-arm-kernel.lists.infradead.org> | ||||
| List-Unsubscribe:  | ||||
|  <http://lists.infradead.org/mailman/options/linux-arm-kernel>, | ||||
|  <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe> | ||||
| List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/> | ||||
| List-Post: <mailto:linux-arm-kernel@lists.infradead.org> | ||||
| List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help> | ||||
| List-Subscribe:  | ||||
|  <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>, | ||||
|  <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe> | ||||
| Cc: ndesaulniers@google.com, linux@armlinux.org.uk, stable@vger.kernel.org, | ||||
|  Ard Biesheuvel <ardb@kernel.org> | ||||
| MIME-Version: 1.0 | ||||
| Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org> | ||||
| Errors-To:  | ||||
|  linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org | ||||
| 
 | ||||
| Nick reports that the following error is produced in some cases when | ||||
| using GCC+ld.bfd to build the ARM defconfig with Thumb2 enabled: | ||||
| 
 | ||||
|   arch/arm/vfp/vfphw.o: in function `vfp_support_entry': | ||||
|   (.text+0xa): relocation truncated to fit: R_ARM_THM_JUMP19 against | ||||
|   symbol `vfp_kmode_exception' defined in .text.unlikely section in | ||||
|   arch/arm/vfp/vfpmodule.o | ||||
| 
 | ||||
|   $ arm-linux-gnueabihf-ld --version | ||||
|   GNU ld (GNU Binutils for Debian) 2.34 | ||||
| 
 | ||||
| Generally, the linker should be able to fix up out of range branches by | ||||
| emitting veneers, but apparently, it fails to do so in this particular | ||||
| case, i.e., a conditional 'tail call' to vfp_kmode_exception(), which | ||||
| is not defined in the same object file. | ||||
| 
 | ||||
| So let's force the use of a non-conditional encoding of the B instruction, | ||||
| which has more space for an immediate offset. | ||||
| 
 | ||||
| Cc: <stable@vger.kernel.org> | ||||
| Reported-by: Nick Desaulniers <ndesaulniers@google.com> | ||||
| Tested-by: Nick Desaulniers <ndesaulniers@google.com> | ||||
| Signed-off-by: Ard Biesheuvel <ardb@kernel.org> | ||||
| ---
 | ||||
|  arch/arm/vfp/vfphw.S | 1 + | ||||
|  1 file changed, 1 insertion(+) | ||||
| 
 | ||||
| diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S
 | ||||
| index 4fcff9f59947..f1468702fbc9 100644
 | ||||
| --- a/arch/arm/vfp/vfphw.S
 | ||||
| +++ b/arch/arm/vfp/vfphw.S
 | ||||
| @@ -82,6 +82,7 @@ ENTRY(vfp_support_entry)
 | ||||
|  	ldr	r3, [sp, #S_PSR]	@ Neither lazy restore nor FP exceptions | ||||
|  	and	r3, r3, #MODE_MASK	@ are supported in kernel mode | ||||
|  	teq	r3, #USR_MODE | ||||
| +THUMB(	it	ne			)
 | ||||
|  	bne	vfp_kmode_exception	@ Returns through lr | ||||
|   | ||||
|  	VFPFMRX	r1, FPEXC		@ Is the VFP enabled? | ||||
|  | @ -3,7 +3,8 @@ | |||
| # Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config | ||||
| # | ||||
| 
 | ||||
| date "+OPENIPC_VERSION=2.2.%m.%d" >>${TARGET_DIR}/usr/lib/os-release | ||||
| D=$(date "+%y.%m.%d") | ||||
| echo "OPENIPC_VERSION=${D:0:1}.${D:1}" >>${TARGET_DIR}/usr/lib/os-release | ||||
| date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release | ||||
| if grep -q fpv_defconfig ${BR2_CONFIG}; then | ||||
|     echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release | ||||
|  |  | |||
|  | @ -3,7 +3,8 @@ | |||
| # Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config | ||||
| # | ||||
| 
 | ||||
| date "+OPENIPC_VERSION=2.2.%m.%d" >>${TARGET_DIR}/usr/lib/os-release | ||||
| D=$(date "+%y.%m.%d") | ||||
| echo "OPENIPC_VERSION=${D:0:1}.${D:1}" >>${TARGET_DIR}/usr/lib/os-release | ||||
| date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release | ||||
| if grep -q fpv_defconfig ${BR2_CONFIG}; then | ||||
|     echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release | ||||
|  |  | |||
|  | @ -3,7 +3,8 @@ | |||
| # Please check BR2_ROOTFS_POST_BUILD_SCRIPT option in config | ||||
| # | ||||
| 
 | ||||
| date "+OPENIPC_VERSION=2.2.%m.%d" >>${TARGET_DIR}/usr/lib/os-release | ||||
| D=$(date "+%y.%m.%d") | ||||
| echo "OPENIPC_VERSION=${D:0:1}.${D:1}" >>${TARGET_DIR}/usr/lib/os-release | ||||
| date "+GITHUB_VERSION=\"${BRANCH_NAME}+${GIT_HASH}, %Y-%m-%d\"" >>${TARGET_DIR}/usr/lib/os-release | ||||
| if grep -q fpv_defconfig ${BR2_CONFIG}; then | ||||
|     echo "BUILD_OPTION=fpv" >>${TARGET_DIR}/usr/lib/os-release | ||||
|  |  | |||
|  | @ -0,0 +1,42 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| shopt -s nullglob | ||||
| 
 | ||||
| if [ $# -eq 0 ]; then | ||||
|   $0 1 | sort | ||||
|   #$0 1 | sort | uniq | ||||
| else | ||||
|   for D in br-ext-chip-*; do | ||||
|     for CF in $D/configs/*; do | ||||
|       BR2_VER=$(grep BR2_DEFAULT_KERNEL_VERSION $CF) | ||||
|       if [ ! -z $BR2_VER ]; then | ||||
|         VENDOR=$(echo $CF | cut -d - -f 4 | cut -d / -f 1 | sed -r 's/\<./\U&/g') | ||||
|         VER=$(echo $BR2_VER | cut -d \" -f 2 | awk -F . '{printf "%s_%s", $1, $2}') | ||||
|         GCC_VER=$(sed -rn "s/^BR2_GCC_VERSION_([0-9]*)_X=y/\1/p" $CF) | ||||
|         ARCH=$(sed -rn "s/^BR2_(arm[a-z0-9_]+)=y/\1/p" $CF) | ||||
|         if [ -z "$ARCH" ]; then | ||||
|           ARCH=$(sed -rn "s/^BR2_(cortex_[a-z0-9_]+)=y/\1/p" $CF) | ||||
|         fi | ||||
|         if [ -z "$ARCH" ]; then | ||||
|           ARCH=$(sed -rn "s/^BR2_(arm)=y/\1/p" $CF) | ||||
|         else | ||||
|           # Here we have something from ARM modern family | ||||
|           HF=$(sed -rn "s/^BR2_ARM_EABI(HF)=y/\1/p" $CF | tr '[:upper:]' '[:lower:]') | ||||
|           if [ ! -z "$HF" ]; then | ||||
|             ARCH="${ARCH}_${HF}" | ||||
|           fi | ||||
|         fi | ||||
| 
 | ||||
|         if [ -z "$ARCH" ]; then | ||||
|           ARCH=$(sed -rn "s/^BR2_(mips_[a-z]*)=y/\1/p" $CF) | ||||
|         fi | ||||
| 
 | ||||
|         LIBC=$(sed -rn "s/^BR2_TOOLCHAIN_BUILDROOT_LIBC=\"(.*)\"/\1/p" $CF) | ||||
| 
 | ||||
|         SOC=$(echo $CF | cut -d _ -f 3) | ||||
|         # $GCC_VER | ||||
|         echo $ARCH $LIBC $VER $VENDOR $CF | ||||
|       fi | ||||
|     done | ||||
|   done | ||||
| fi | ||||
		Loading…
	
		Reference in New Issue