---- {{: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