== Embedded Linux auf dem TMPA9xx Controller von Toshiba == H. Hoegl, Oktober 2010 Zusatz am 2011-02-23: Siehe nun die Texte unter * http://elk.informatik.fh-augsburg.de/pub/tmpa9xx/ === Boards === * TMPA910 Kit von Toshiba ("Topas Board") Auf dem Board sind ausser dem TMPA910 auch noch ein Spansion S29GL256P10TF102 (32MByte NOR Flash), 2 x Micron 48LC16M16A2 (SDRAM, PC133, 256MBit, 4M x 16 x 4 banks = 32 MByte, insgesamt 64 MByte), ein Samsung K9F2G08UOA (NAND Flash, 2GBit/256MByte, 8-Bit), ein DM9000AEP (Ethernet Controller mit 10/100 PHY) und ein Toshiba LTM035C05B TFT (320x240 Pixel, 8.76 cm) mit LED Beleuchtung. http://www.toshiba-components.com/microcontroller/BMSKTOPAS900.html * TMPA900 Kit von Glyn ("Tonga Board") http://www.glyn.de/content.asp?wdid=2365&sid Der TMPA900 hat zusaetzlich zum TMPA910 noch einen USB Host Controller. === Erkenntnisse === * Der folgende Text beschreibt, wie man mit Hilfe von J-Link unter Windows den U-Boot Bootloader auf das Tonga-Board bringt (das sollte auch fuer das Topas Board gelten). http://toshiba-mikrocontroller.de/PDF/TMPA900/Developers%20Manual%20TongARM%20-%20V1%207_September-eng.pdf Wenn U-Boot auf dem Board installiert ist, kann man aus U-Boot alle weiteren Flash Operationen ausfuehren. Das ist auch im Text beschrieben. Das Flashen des U-Boot geht auch mit dem freien OpenOCD, allerdings ist es nicht im Dokument beschrieben. Wir sollten also versuchen, U-Boot mit [[http://openocd.org|OpenOCD]] auf das Tonga-Board zu bringen und zu dokumentieren, so dass wir komplett auf Windows verzichten koennen. Ein U-Boot Binary und ein vorkompiliertes Linux gibt es hier: http://labs.kernelconcepts.de/Projects/Topas-910/ Die Sourcen sind in Git Repositories: http://git.labs.kernelconcepts.de/ * Fuer das Tonga-Board mit TMPA900: http://labs.kernelconcepts.de/Projects/TMPA900-CPU-Board/ http://www.mucross.com/downloads/tonga-linux/Release-20100830/ * Die aktuellen OpenOCD Quellen enthalten folgenden Konfigurationsdateien fuer die Toshiba Controller: {{{ ./tcl/target/tmpa910.cfg ./tcl/target/tmpa900.cfg ./tcl/board/topas910.cfg ./tcl/board/topasa900.cfg }}} Bitte mit der aktuellen Version von OpenOCD arbeiten! Das heisst, Sourcen holen mit {{{ git clone git://openocd.git.sourceforge.net/gitroot/openocd/openocd }}} und selber kompilieren. * Weiteres Vorgehen * Sourcen des Linux Kernes fuer Toshiba Controller holen von http://www.mucross.com/downloads/tonga-linux/Release-20100830/ Siehe `linux-tmpa-2.6.34-100903.tar.bz2`. * Toolchain zum Kompilieren des Kernels holen * arm-mucross-linux-gnueabi-: http://www.mucross.com/downloads/tonga-demo/ * arm-angstrom-linux-gnueabi-: http://labs.kernelconcepts.de/Tools/Toolchains/ * Weiteres Vorgehen in Abschnitt 6.5.3 (Compiling the Linux Kernel) siehe wieder im Text `Developers%20Manual%20TongARM%20-%20V1%207_September-eng.pdf`. * An diesem Punkt sollte man zumindest schon mal ein selbstgebautes Kernel-Image haben. * Der naechste Schritt sollte das Root-Filesystem sein.