----
{{:projekte:firebox:firebox-manual.pdf|Hersteller Unterlagen}}
====== Hardware ======
===== System =====
* CPU: Intel XScale IXP425
* 533 MHz
* 2*256 MB SDRAM
* http://www.newlife-tech.com/doc/p2v56s_0btp11_07024.pdf
* P2V56S40BTP-G6 (4-BANK x 4,194,304-WORD x 16-BIT)
* 16 MB Flash für BootROM (StrataFlash)
* XScale-IXP4xx/IXC11xx [690541f1] revision 1 (ARMv5TE)
* Developer’s Manual [[http://download.intel.com/design/intelxscale/27347302.pdf]]
* Machine: Intel IXDP425 Development Platform
* Plattform Information [[http://ecos.sourceware.org/boards/ixdp425.html]]
* Product Brief [[http://www.digchip.com/data/227/227-04723-0-IXDP425.pdf]]
* Memory: 128MB = 128MB total
* IXP425 Flash: Found 1 x 1MiB AMD AM29LV800BT at 0x0
* ab 0x50000000
* NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
===== Anschlüsse Intern =====
* 20 Pin JTAG
* 4 Pin TTY - ttyS1,115200
* Mini PCI
===== Anschlüsse Extern =====
^ WAN1 ^ WAN2 ^ OPT ^ LAN0 ^ LAN1 ^ LAN2 ^ Serial ^ Power ^
====== Software======
===== JTAG =====
SPEED: 1000KHz
TAP:
Info : JTAG tap: ixp42x.cpu tap/device found: 0x19277013 (mfg: 0x009, part: 0x9277, ver: 0x1)
cfg + :
adapter_khz 1000
reset_config trst_and_srst
Beispiel-Konfiguration für OpenOCD (fehlerhaft):
source [find interface/buspirate.cfg]
source [find target/ixp42x.cfg]
buspirate_vreg 0
buspirate_mode open-drain
buspirate_pullup 1
buspirate_port /dev/tty.usbserial-A700eFgS
dump flash (16mb)
dump_image filename 0x50000000 0x1000000
==== DUMP SDRAM CONFIG ====
in GDB:
target remote localhost:3333
monitor reset halt
x/100x 0xcc000000
dump:
0xcc000000: 0x10000000 0x84030000 0x00000000 0x00000000
0xcc000010: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc000020: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc000030: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc000040: 0x10000000 0x84030000 0x00000000 0x00000000
0xcc000050: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc000060: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc000070: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc000080: 0x10000000 0x84030000 0x00000000 0x00000000
0xcc000090: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc0000a0: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc0000b0: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc0000c0: 0x10000000 0x84030000 0x00000000 0x00000000
0xcc0000d0: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc0000e0: 0x00000000 0x00000000 0x00000000 0x00000000
0xcc0000f0: 0x00000000 0x00000000 0x00000000 0x00000000
==== Discovery ====
> scan_chain
TapName Enabled IdCode Expected IrLen IrCap IrMask
-- ------------------- -------- ---------- ---------- ----- ----- ------
0 ixp42x.cpu Y 0x00000000 0x19274013 7 0x01 0x7f
0x19275013
0x19277013
0x29274013
0x29275013
0x29277013
===== Bootloader =====
Als Bootloader wird RedBoot genutzt
PASSWORT: F5BA25AB44724fb5A6DD37554809CE34
Version:
RedBoot(tm) bootstrap and debug environment [ROM]
Red Hat certified release, version 1.92.32 - built 14:21:21, Apr 14 2006
Platform: Intel Generic Residential Gateway (XScale)
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
RAM: 0x00000000-0x08000000, 0x00022980-0x07fe1000 available
FLASH: 0x50000000 - 0x50200000, 32 blocks of 0x00010000 bytes each.
TTY-DUMP {{:projekte:firebox:firebox_boot.txt|dump}}
* Customize RedBoot [[http://www.intel.com/content/dam/www/public/us/en/documents/application-notes/ixp42x-ixc1100-customizing-redboot-app-note.pdf]]
* RedBoot User's Guide [[http://ecos.sourceware.org/ecos/docs-latest/redboot/redboot-guide.html]]
===== OS =====
to boot OS from Redboot:
nand -t 15 -p 0xe80 -b 0x1000000 -n 0x600000
nand -t 15 -p 0xe00 -b 0x2000000 -n 0x200000
exec -b 0x2000000 -l 0x200000 -r 0x1000000 -s 0x600000 -c "console=ttyS1,115200 root=/dev/ram0 init=/bin/sh "
* 0x1000000: rootfs
* 0x2000000: kernel
Idee:
https://spacegit.unibe.ch/bela/mb-linux-msli/blame/c4b78ebe0171ae81179058624229606565830bce/uClinux-dist/Documentation/INTEL-IXDP425-HOWTO
===== Kernel bauen =====
Grundsätzlich wird die Intel IXDP425 Development Platform vom Linux-Kernel unterstützt. Der erste Ansatz ist es also, einen Standard-Kernel zu bauen:
In Debian-8 muss man zunächst ein weiteres repository in die /etc/apt/sources.list eintragen:
deb http://emdebian.org/tools/debian/ jessie main
Als root:
curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key | sudo apt-key add -
sudo dpkg --add-architecture armel
sudo apt-get update
apt-get install crossbuild-essential-armel gcc-arm-linux-gnueabi
Jetzt sollten wir alles haben, um
git clone --depth 10 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
export CROSS_COMPILE=arm-linux-gnueabi-
export ARCH=arm
make ixp4xx_defconfig
make -j5
Ob der Kernel dann wirklich funktioniert wird ein Test zeigen...
==== Kernel booten ====
Interessant: https://www.kernel.org/doc/Documentation/arm/SA1100/Assabet