Difference between revisions of "TS-7500"

From Openembedded.org
Jump to: navigation, search
(initial article on the ts-7500)
 
(delete old info; reference main site)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Overview ==
 
==Overview ==
The TS-7500 is based on a Cavium CNS2132 (aka Star Semi STR8132) which contains a Faraday FA-526 core which basically resembles a ARM920T but has NO thumb or thumb interworking support
+
The TS-7500 is based on a Cavium CNS2132 (aka Star Semi STR8132) which contains a Faraday FA-526 core and as a ARMv4 it has NO thumb or thumb interworking support. Most major linux distributions have decided to make ARMv4T (not ARMv4) the minimum supported architecture for their packages so OE is the best way to roll your own. [http://wiki.debian.org/ArmEabiPort#ChoiceofminimumCPU see the Debian discussion]. That is why you need to use openembedded.
which makes it not a fully EABI compliant architecture. However, as of GCC-4.4.2 (recommend at least GCC-4.4.4) EABI binaries can be built for ARMv4 architectures like this one. This guide helps you setup a openembedded toolchain and new kernel w/ EABI support. Most major linux distributions have decided to make ARMv4T (not ARMv4) the minimum supported architecture for their packages so OE is the best way to roll your own EABI Linux for this board. [http://wiki.debian.org/ArmEabiPort#ChoiceofminimumCPU see the Debian discussion]
 
  
==Kernel==
+
==Basic Setup==
The kernel that comes default from Technologic Systems TS-7500 only supports OABI, so we first need to recompile the kernel [ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7500-linux/sources/linux-2.6.24-cavium_source_aug052010.tar.gz linux-2.6.24-cavium_source_aug052010.tar.gz] and see [http://www.embeddedarm.com/about/resource.php?item=410#compile this] for a reference for how-to get to kernel on your board.
 
  
Only a few changes need to be make to the default TS-7500 kernel .config
+
[http://wiki.embeddedarm.com/wiki/TS-75xx_OpenEmbedded See here for the image and instructions for oe]
  #this first two are the most important options
+
[http://wiki.embeddedarm.com/wiki/TS-7500 Main Wiki]
  CONFIG_AEABI=y
 
  #allows old OABI to still work like in the TS-7500's default initrd
 
  CONFIG_OABI_COMPAT=y
 
  #lets be able to check our configuration
 
  CONFIG_IKCONFIG=y
 
  CONFIG_IKCONFIG_PROC=y
 
  #speed up floating point (not for scientific computing)
 
  # CONFIG_FPE_NWFPE is not set
 
  CONFIG_FPE_FASTFPE=y
 
  
Or you can use the prebuild kernel from here:
+
==Kernel==
[http://www.lug.udel.edu/projects/ts7500/ ts7500/]
 
make sure to cp [http://www.lug.udel.edu/projects/ts7500/modules.tar.gz modules.tar.gz] into your initrd partition overwriting the old one.
 
 
 
==Machine==
 
 
 
A ts75xx.conf and tune-fa526.inc  are here
 
[http://www.lug.udel.edu/projects/ts7500/ ts7500/]
 
but they should be added into OE soon.
 
 
 
==Angstrom==
 
 
 
There is a couple of changes you need to make to Angstrom in my experience to get it working
 
 
 
distro/include/angstrom.inc
 
  #comment this line out .. it was adding thumb when it shouldn't have for a armv4 (bug?)
 
  #DISTRO_FEATURES += ' ${@["", "thumb-interwork"][bb.data.getVar('THUMB_INTERWORK', d, 1) == "yes"]}'
 
  #force 32-bit at all times
 
  ARM_INSTRUCTION_SET = "arm"
 
  #no BX instructions  (maybe this fixed the above problem)
 
  THUMB_INTERWORK = "no"
 
  
distro/angstrom-2008.1.conf
+
If you need to build your own kernel
  #gcc-4.4.4 seems to work better
+
See https://github.com/embeddedarm/linux-3.4-ts75xx/network
  ANGSTROM_GCC_VERSION_armv4              ?= "4.4.4"
 
  
an inittab from a base-image that works
+
==Cflags==
  ::sysinit:/etc/init.d/rcS
 
  ::restart:/sbin/init
 
  ::ctrlaltdel:/sbin/reboot
 
  ::shutdown:/bin/umount -a -r
 
  ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
 
  
You need to move some scripts out of rc.S get get it working with the standard chroot boot method for this board. Notice the lack of udev using busybox's mdev -s seems to work fine.
+
These flags let you build code with almost any gcc-arm toolkit.  
  root@ts75xx:/etc/rcS.d# ls
+
-march=armv4 -mno-thumb-interwork -marm -mfloat-abi=soft
  S02banner      S38devpts.sh    S39hostname.sh
 

Latest revision as of 18:29, 3 July 2016

Overview

The TS-7500 is based on a Cavium CNS2132 (aka Star Semi STR8132) which contains a Faraday FA-526 core and as a ARMv4 it has NO thumb or thumb interworking support. Most major linux distributions have decided to make ARMv4T (not ARMv4) the minimum supported architecture for their packages so OE is the best way to roll your own. see the Debian discussion. That is why you need to use openembedded.

Basic Setup

See here for the image and instructions for oe Main Wiki

Kernel

If you need to build your own kernel See https://github.com/embeddedarm/linux-3.4-ts75xx/network

Cflags

These flags let you build code with almost any gcc-arm toolkit. -march=armv4 -mno-thumb-interwork -marm -mfloat-abi=soft