% cd $ECOS_DIR % patch -p1 < /tmp/ecos-2.0-cat709-20050511.diff
% cd /tmp/ROM % $ECOS_DIR/tools/bin/ecosconfig --srcdir=$ECOS_REPOSITORY new cat709 redboot % $ECOS_DIR/tools/bin/ecosconfig --srcdir=$ECOS_REPOSITORY import $ECOS_REPOSITORY/hal/sh/cat709/v2_0/misc/redboot_ROM.ecm % $ECOS_DIR/tools/bin/ecosconfig --srcdir=$ECOS_REPOSITORY tree % make
注意
RedBoot?の書き込みにはEK709とROMライターが必要となります。これらが揃わない場合には書き込みができません(たぶん)。iplを元に戻すことができるような環境でご使用ください。
RedBoot?ではEEPROMのアクセスを行います。このため、EEPROMの情報を破壊する可能性がありますので、MACアドレスなどEEPROMに保存している情報をあらかじめ記録しておいてください。
PLD-PGM CAT709 J3-1 CN2-26A VCC J3-2 CN9-7B GND J3-4 CN9-1A TCK J3-6 CN9-3A TDO J3-7 CN9-6A TDI J3-9 CN9-5A TMS
# jtag jtag> cable parallel 0x378 DLC5 jtag> detect jtag> initbus sh7727 jtag> flashmem 0x00000000 redboot.bin
#CONFIG_SH_STANDARD_BIOS is not set
load -r -b 0x8c210000 -m disk hda1:/boot/zImage exec -c "ro root=0301 console=ttySC0,38400 ide0=0xba0001f0,0xba0003f6,34"
RedBoot> load -r -b 0x8c210000 -m tftp -h 192.168.0.240 CAT709/zImage RedBoot> fis create -b 0x8c210000 -l 0x00100000 zImage
0x6c0000: フラッシュROMの空領域サイズ 0x560000: rootfs.imgのサイズ RedBoot> fis free 0x80120000 .. 0x807E0000 RedBoot> fis erase -f 0x80120000 -l 0x6c0000 RedBoot> load -r -b 0x8c210000 -m tftp -h 192.168.0.240 CAT709/jffs2.img Raw file loaded 0x8c210000-0x8c76ffff, assumed entry at 0x8c210000 RedBoot> fis write -b 0x8c210000 -l 0x00560000 -f 0x80120000 RedBoot> fis create jffs2 -n -f 0x80120000 -l 0x006c0000 -e 0x00000000
Creating 5 MTD partitions on "CAT709 Flash1": 0x00000000-0x00020000 : "RedBoot" 0x00020000-0x00120000 : "zImage" 0x00120000-0x007e0000 : "jffs2" 0x007e0000-0x007e1000 : "RedBoot config" mtd: partition "RedBoot config" doesn't end on an erase block -- force read-only 0x007f0000-0x00800000 : "FIS directory"この場合は、jffs2は2番目にあるので、kernel cmdlineにroot=/dev/mtblock2と設定してLinuxを起動する。(/etc/fstabを修正する必要があるかもしれない)
RedBoot> fis load zImage RedBoot> exec -c "console=ttySC0,38400 root=/dev/mtdblock2"
#CONFIG_SH_STANDARD_BIOS is not set CONFIG_ROOT_NFS=y CONFIG_NE2000=y
load -r -b 0x8c210000 -m tftp -h 192.168.0.240 CAT709/zImage exec -c "console=ttySC0,38400 root=/dev/nfs ip=192.168.0.182 nfsroot=192.168.0.240:/tftpboot/CAT709/rootfs-NFS"
% setenv ECOS_REPOSITORY ${ECOS_DIR}/packages % {ECOS_DIR}/tools/bin/ecosconfig --srcdir=${ECOS_REPOSITORY} new cat709 % {ECOS_DIR}/tools/bin/ecosconfig --srcdir=${ECOS_REPOSITORY} tree % make
% cp ${ECOS_DIR}/examples/hello.c . % sh-elf-gcc -m3 -ml -g -Iinstall/include/ -Linstall/lib/ -Ttarget.ld -nostdlib hello.c
RedBoot> load -m tftp -h 192.168.0.240 CAT709/a.out Entry point: 0x8c020000, address range: 0x8c020000-0x8c03140c RedBoot> go Hello, eCos world!
RedBoot> load -m tftp -h 192.168.0.240 CAT709/a.out *** Abort! Attempt to load ELF data to address: 0x80000000 which is not in RAM
% sh-elf-gdb -nw a.out (gdb) target remote 192.168.0.182:9000 (gdb) load (gdb) continue Continuing. Hello, eCos world!
(gdb) continue Continuing.一つ前のパッチだと表示される。なぞだ