Skip to content

OpenIPC/toolchains

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

HiSilicon Cross-Compilation Toolchains

Cross-compiler toolchains extracted from HiSilicon SDKs, hosted as release assets for use in CI pipelines.

Toolchain Reference

Toolchain GCC Libc Float Default arch Multilib targets CROSS_COMPILE Source SDKs
arm-hisiv300-linux 4.8.3 (Linaro) uClibc 0.9.33.2 softfp armv5te ARM926, A9, A7 arm-hisiv300-linux-uclibcgnueabi- Hi3518E_SDK_V1.0.4.0, Hi3516A_SDK_V1.0.5.0
arm-hisiv500-linux 4.9.4 (Linaro) uClibc 0.9.33.2 softfp armv5te ARM926, A9, A7 arm-hisiv500-linux-uclibcgnueabi- Hi3516CV300_SDK, Hi3516C V300R001C01SPC040
arm-hisiv510-linux 6.2.1 (Linaro) uClibc 0.9.33.2 softfp armv5te ARM926, A9, A7, A17, A53, A73, M7 arm-hisiv510-linux-uclibcgnueabi- Hi3518E V200R001C01SPC050, Hi3516A V100R001C01SPC080
arm-hisiv600-linux 4.9.4 (Linaro) glibc 2.20 softfp armv5te ARM926, A9, A7 arm-hisiv600-linux-gnueabi- Hi3516C V300R001C02SPC040
arm-himix100-linux 6.3.0 uClibc 0.9.33.2 softfp armv5te ARM926, A9, A7, A17, A53, A73 arm-himix100-linux- Hi3516EV200 series
arm-himix200-linux 6.3.0 glibc 2.24 softfp armv5te ARM926, A9, A7, A17, A53, A73 arm-himix200-linux- Hi3516CV500, Hi3519V101

All toolchains default to soft-float ABI (gnueabi). Hard-float variants are available via multilib flags, e.g.:

-mcpu=cortex-a7 -mfloat-abi=hard -mfpu=neon-vfpv4

Archive Format

Most archives are .tgz files with a nested structure:

<name>.tgz
  +-- <name>/
      +-- <name>.tar.bz2    # actual toolchain
      +-- <name>.install     # vendor install script (not needed for CI)
      +-- runtime_*.tgz     # runtime libraries

Exceptions:

  • arm-hisiv300-linux.tar.bz2 is the inner archive directly (no .tgz wrapper).
  • arm-himix200-linux.tgz is split into two parts due to the 2 GB GitHub release asset limit.

Usage in CI

Extracting

# Standard .tgz archives (two-step extraction)
tar xzf arm-hisiv510-linux.tgz
tar xjf arm-hisiv510-linux/arm-hisiv510-linux.tar.bz2

# arm-hisiv300 (single-step, bare tar.bz2)
tar xjf arm-hisiv300-linux.tar.bz2

# arm-himix200 (reassemble split parts first)
cat arm-himix200-linux.tgz.part* > arm-himix200-linux.tgz
tar xzf arm-himix200-linux.tgz
tar xjf arm-himix200-linux/arm-himix200-linux.tar.bz2

Building

The vendor install script creates target/bin/ with absolute symlinks to /opt/hisi-linux/... which only work on the original install path. For CI, use the full CROSS_COMPILE prefix (from the table above) with the bin/ directory on PATH:

export PATH="$PWD/arm-hisiv510-linux/bin:$PATH"
make CROSS_COMPILE=arm-hisiv510-linux-uclibcgnueabi-

Downloading in GitHub Actions

- name: Download toolchain
  env:
    GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  run: gh release download v1 -R OpenIPC/toolchains -p 'arm-hisiv510-linux.tgz'

About

HiSilicon cross-compilation toolchains for OpenIPC

Topics

Resources

Code of conduct

Stars

Watchers

Forks

Contributors