CRIS Linux stuff

.. some CRIS OSS bits and pieces .. 

About

Axis ETRAX LX100 (cris) patches for uClibc buildroot from http://repo.or.cz/w/buildroot.git. At the moment following versions of packages were tested (for toolchain):

  • gcc 4.3.1
  • binutils 2.18
  • uClibc 0.9.29
  • linux headers 2.6.25.7

I was able to produce working uClibc toolchain based on package versions above. Other packages (applications, libraries) included in the uClibc buildroot were not thoroughly tested and might still need some missing cris architecture bits.

The patches below should also apply to openWRT SVN tree at https://dev.openwrt.org, although this was not tested by me (if anyone has time to try let me know).

Configs

For convenience uClibc buildroot, busybox, uClibc and kernel config files are provided here too. These are the working and tested config files that produce suitable uClibc based toolchain.

You can save the files in your favorite folder and run make menuconfig (in the top uClibc buildroot folder) to tell the SDK where to look for these configuration files.

Patches

These patches should be applied to the uClibc buildroot GIT source on 21 Aug 2008 (version 0.10.1-git). Gcc patches are against 4.3.1 but should be fine with 4.3.0 too. Same goes for kernel patches - should apply to newer versions of kernel too (>= 2.6.25). These patches should be included in in upcoming uClibc buildroot GIT tree. The patches should be copied to appropriate folders (possibly overwriting older versions of patches) once the uClibc buildroot GIT tree has been checked out.

  1. toolchain/gcc/4.3.1/999-gcc-4.3.0-cris-compiler-error-fix.patch
    Fix internal compiler errors that pop up even when compiling linux-2.6.25.xx kernel. See also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35492.
  2. toolchain/gcc/4.3.1/999-gcc-4.3.0-cris-pragma-pack-warning-remove.patch
    Fix warning.
  3. toolchain/kernel-headers/linux-2.6.25.7-100-cris-compile_fixes.patch
    Fix usage of correct GNU tools when building final kernel image. Axis provided tools include ELF based toolchain that is utilized in building kernel, which uClibc buildroot does not produce.
  4. toolchain/kernel-headers/linux-2.6.25.7-101-cris-eth-driver.patch
    Fix netpoll() callback arguments.
  5. toolchain/kernel-headers/linux-2.6.25.7-cris-missing-arch-include.patch
    Fix inclusion of missing arch-vxx headers when installing kernel headers.
  6. toolchain/uClibc/uClibc-0.9.29-cris-pthreads.patch
    Fix uClibc threads compilation.
  7. package/openssl/openssl-0.9.8h-02-cris.patch
    Add 'linux-cris' target for building openssl. 

This patch fixes some minor problems with uClibc buildroot that need broader consensus in order to be included in upcoming GIT tree. The patch should be applied after the uClibc buildroot GIT tree has been checked out.

  1. uClibc-buildroot-cris-fixes.patch
    Install some missing kernel headers and tell uClibc to search in 'include-fixed' gcc include path too.
  2. uClibc-buildroot-cris-enable-largefile.patch
    No reason not to use large file support on cris.
  3. uClibc-buildroot-cris-uClibc-arch.patch
    Fix uClibc ARCH setting for cris-v10 and cris-v32.

Please report broken links to Hinko Kočevar.