Spartan-3E Starter Kit
MicroBlaze
English here,by Google

作成: 2006-03-17 21:26:51 (金)
更新: 2006-06-06 06:57:56 (火)
参照: 1295

#contents



MicroBlaze uClinux on Spartan-3E Starter Kit

添付 nfsrootカーネル: filelinux.bin-nfsroot.zip

添付 gpio確認追加イメージ(カーネル+romfs): fileimages_gpio.zip

  • 下記rev03に上書下さい。
  • 2006-06-05添付: files3esk.config.tar.gz
    • 上記configは uClinux-dist/で展開下さい。

添付 files3eboard_uclinux_ready_rev03.zip [xps (add FSL), uClinux image (nfsmount)]

  1. Bitstream
    1. s3eboard_uclinux_ready_rev0x.zipを解凍する。
    2. s3eboard_uclinux_ready_v810x_rev0x\system.xmp を開く。
    3. Hardware | Generate Netlist を実行する。
    4. Hardware | Generate Bitstream を実行する。
    5. キットをJTAG(M1のみ)にして、Device Configuration | Download Bitstream を実行する。
  2. XMD
    1. XMDを起動する。
    2. dow -data images/image.bin 0x22000000
    3. rwr 5 0x100
    4. rwr pc 0x22000000
    5. con (またはcon -quit)
      • rev02以降は カーネル+ROMFSが大きくなっている。<(_ _)>
      • USB1.1, USB2.0の何れでも Setting cable speed to 750 KHz. に初期設定されていた。
    • USB2.0で接続し、XMD Debug Options...| JTAG PropertiesでUSB, 24000000(24MHz)にするとかなり速くなる。

EDK8.1.02i プロジェクト rev03 デザインリポート(EDK PROJECT REPORT, HTML)


MLに FLASH動作の記事を発見

  • 2006-06-06: drivers/mtd/maps/mb_auto.c で#define BUS_WIDTH 1 にすれば良いらしい。
    • 後程試してみたい。

現状のConfig設定

  • 2006-06-05: 最近更新出来ていなかったので、ご参考までにRev03プロジェクト用のuClinux設定を 添付 した。
    • MTD(パレラルFLASH)は、ML上でも動作させるヒントが得られていない様だ。
    • opb_ps2とopb_vgaの実験用ファイル(uClinuxパッチ適用分)は時間を見て公開したい。

opb_ps2とopb_vga

Andrew's FPGA pageuClinux/MicroBlaze Console Project

  • 2006-05-29: opb_vga (/dev/tty1)からVGA出力された。
    • machine.cのパッチの当て方に問題があり修正したところ 下記のようになった。
    • romfs構成で確認
    • bootlogの途中からVGA表示され、ログインプロンプトはttyS0(DCE)に表示された。
    • PS/2は動作していない。
    • dmesgの結果
      Linux version 2.4.32-uc0 (muranaka@colinux) (gcc version 3.4.1 ( Xilinx EDK 8.1
      Build EDK_I.17 121005 )) #1 Mon May 29 00:07:59 JST 2006
      On node 0 totalpages: 8192
      zone(0): 8192 pages.
      zone(1): 0 pages.
      zone(2): 0 pages.
      CPU: MICROBLAZE
      Kernel command line:
      
      opb_vga console driver installed
      Console: colour VGA 80x25
      
      Calibrating delay loop... 32.35 BogoMIPS
      Memory: 32MB = 32MB total
      Memory: 29432KB available (1304K code, 1665K data, 56K init)
      Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
      Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
      Mount cache hash table entries: 512 (order: 0, 4096 bytes)
      Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
      Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
      POSIX conformance testing by UNIFIX
      Linux NET4.0 for Linux 2.4
      Based upon Swansea University Computer Society NET3.039
      Initializing RT netlink socket
      Microblaze UARTlite serial driver version 1.00
      ttyS0 at 0x40600000 (irq = 1) is a Microblaze UARTlite
      Starting kswapd
      VFS: Disk quotas vdquot_6.5.1
      
      opb_ps2: keyboard reset failed
      opb_ps2 keyboard driver installed
      
      xgpio #0 at 0x40000000 mapped to 0x40000000
      Xilinx GPIO registered
      Blkmem copyright 1998,1999 D. Jeff Dionne
      Blkmem copyright 1998 Kenneth Albanowski
      Blkmem 1 disk images:
      0: 2218488C-222E688B [VIRTUAL 2218488C-222E688B] (RO) <ROMFS>
      RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
      eth0: using fifo mode.
      eth0: Xilinx EMAC #0 at 0x40C00000 mapped to 0x40C00000, irq=2
      eth0: id 2.0h; block id 7, type 1
      uclinux[mtd]: RAM probe address=0x2218488c size=0x162000
      uclinux[mtd]: failed to find a mapping?
      
       |
       |
      
      Can't allocate major number 31 for Memory Technology Devices.
      NET4: Linux TCP/IP 1.0 for NET4.0
      IP Protocols: ICMP, UDP, TCP
      IP: routing cache hash table of 512 buckets, 4Kbytes
      TCP: Hash tables configured (established 2048 bind 4096)
      NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
      VFS: Mounted root (romfs filesystem) readonly.
      Freeing init memory: 56K
      
  • 以下プロンプトはttyS0 (uartlite, DCEターミナル)に表示された。
    s3esk-ps2vga login: root
    Password:
    
    # cat /proc/interrupts
               CPU0
      0:    1018316           XINTC  opb_ps2
      1:        179           XINTC  Microblaze UARTlite
      2:          8           XINTC  eth0
      3:     158579           XINTC  timer
    ERR:          0
    # cat /proc/devices
    Character devices:
      1 mem
      2 pty
      3 ttyp
      4 vc/0
      5 console
      7 vcs
     10 misc
     90 mtd
    162 raw
    
    Block devices:
      1 ramdisk
     31 Blkmem
    #

  • 2006-05-26: Andrewさんにご教示をお願いしたところ、PS2 CoreとVGA Coreのテストプログラムを提供頂いた。(感謝致します。<(_ _)>)
    During the development of the PS2 and VGA cores, I written a simple test
    program. You can access it at:
  • 上記テストプロ(code/test.c)で "ps2init2"のコールをコメントアウトすると(ご教示による)、VGA出力が得られた。(rev03変更版xpsを使用)
    • 上記EDK Project自体を使用する場合は 下記が必要とのことだった。
      • このEDK Project は codeサブディレクトリにテストプロが含まれている。
      • テストプロを動作させるには data/system.ucf の変更 が必要である。
      • このEDK Project は PS2, VGAコアを含んでいないため、ダウンロードしてpcoreサブディレクトリに解凍が必要である。
opb_ps2_vga_s.jpg
  • system.ucfの設定は以下としている。
    # ==== PS/2 Mouse/Keyboard Port (PS2) ====
    NET ps2_0_clk  LOC = G14 | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = SLOW ;
    NET ps2_0_data LOC = G13 | IOSTANDARD = LVCMOS33 | DRIVE = 8 | SLEW = SLOW ;
    
    # ==== VGA Port (VGA) ====
    NET vga_0_r<0> LOC = H14 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
    NET vga_0_g<0> LOC = H15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
    NET vga_0_b<0> LOC = G15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
    
    NET vga_0_hs LOC = F15 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
    NET vga_0_vs LOC = F14 | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;
  • PS2設定に問題が有りそうである。(割り込みハンドラかも)
    • 小型のPS2キーボードが欲しくなった。(現状USBキーボードを変換器経由で接続)

  • 2006-05-25: uClinux/MicroBlaze Console Projectの opb_ps2と opb_vgaを試行させてもらっている。
    • パッチは手動でソースに反映した。
  • opb_vgaは、BRAMで RAMB16_S9_S9を4個×2(chargen,video属性)使用するので、Spartan-3Eの制限(<=20ブロック)から、I-Cache,D-Cacheを減らさないと収まらない。
  • 何度か試行してみた上で I-Cacheを2KB, D-Cacheを無しに設定することにした。
    • 原因は不明だが、I-Cacheを無効とすると、カーネル起動時にパイプライン停止エラーが出る。(MicroBlaze設定、uClinux設定の不整合かも知れない)
  • PS2のドライバ起動はされるが、現状動作していない。
Linux version 2.4.32-uc0 (muranaka@colinux) (gcc version 3.4.1 ( Xilinx EDK 8.1
Build EDK_I.17 121005 )) #4 Wed May 24 23:47:19 JST 2006
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
CPU: MICROBLAZE
Kernel command line: root=/dev/nfs nfsroot=192.168.2.5:/diskless/mb-s3esk/rootfs
Console: xmbserial on UARTLite
Calibrating delay loop... 32.35 BogoMIPS
Memory: 32MB = 32MB total
Memory: 30840KB available (1305K code, 261K data, 68K init)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Microblaze UARTlite serial driver version 1.00
ttyS0 at 0x40600000 (irq = 1) is a Microblaze UARTlite
Starting kswapd
VFS: Disk quotas vdquot_6.5.1
opb_ps2: keyboard reset failed
opb_ps2 keyboard driver installed
  • PS2割り込みの設定を追加したせいか、DHCP,NFSが不調になった。
    • 通信の受信割り込みが上がらなくなった可能性有り
    • 割り込み設定の確認要
  • 本開発者Andrewさん(Mr. Andras Szalai)のMicroBlaze ROM patchは、既に本家CVSに取り込まれているらしい。

U-Bootについて

  • 2006-05-17: 同好の方から、以下の様なメールを頂いた。
    • U-Bootを使用して、TFTPによりuClinuxカーネルをリモートブートさせる。(最終ゴール)
      • それによりカーネルを毎回ダウンロードしなくても、自動でブート可能とのことだった。
      • U-BootのMicroBlaze関連のソースコードを見ると、アットマークテクノ殿のサインが有った。
    • どうやって移植するか分からないが、面白そうである。
    • MLの関連記事
  • 2006-05-10: MLに flash toolの記事があった。

nfsrootの動作を確認

  • 2006-05-08
  • rev03プロジェクトを使用し、EDKShellから dl.sh (チュートリアル:ML401より)を変更して使用した。
    • 変更点:Cable Speed 24MHzの指定
      xload xmp system.xmp
      connect mb mdm -cable type xilinx_platformusb frequency 24000000
  • nfsrootで起動する場合のカーネル コマンドラインパラメータは下記とした。
    • EDK Shellで dl.shの第2パラメータを 'root=/dev/nfs nfsroot=192.168.2.5:/diskless/mb-s3esk/rootfs' として起動した。
    • 第1パラメータは、images/linux.binを指定した。
    • NFS V2プロトコルで接続されている。
    • アットマークテクノ殿のSUZAKU ルートファイルシステムにNFSを使うでは、DHCP設定によりNFS V3で接続された。
      • 今回も参照させて頂いた。<(_ _)>
$ pwd
/cygdrive/f/EDKProjects/s3eboard_uclinux_ready_rev03/s3eboard_uclinux_ready_v8102_rev03
$ ./dl.sh images/linux.bin 'root=/dev/nfs nfsroot=192.168.2.5:/diskless/mb-s3esk/rootfs'
  • 起動結果
    Sending DHCP requests ., OK
    IP-Config: Got DHCP answer from 192.168.2.5, my address is 192.168.2.20
    IP-Config: Complete:
          device=eth0, addr=192.168.2.20, mask=255.255.255.0, gw=192.168.2.1,
         host=192.168.2.20, domain=, nis-domain=(none),
         bootserver=192.168.2.5, rootserver=192.168.2.5, rootpath=
    NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
    Looking up port of RPC 100003/2 on 192.168.2.5
    Looking up port of RPC 100005/1 on 192.168.2.5
    VFS: Mounted root (nfs filesystem).
    Freeing init memory: 64K
    Mounting proc:
    Mounting var:
    Populating /var:
    Remouting /dev/root for rw:
     |
     |
    # mount
    /dev/root on / type nfs (rw,v2,rsize=4096,wsize=4096,hard,udp,nolock,addr=192.168.2.5)
    /proc on /proc type proc (rw)
    none on /var type ramfs (rw)
    none on /etc/config type ramfs (rw)
    #
    # cat /etc/rc
    #!/bin/sh
    
    PATH=/bin:/sbin:/usr/bin:/usr/sbin
    TZ=JST-9
    
    echo "Mounting proc: "
    mount -t proc proc /proc
    
    echo "Mounting var: "
    mount -t ramfs none /var
    
    echo "Populating /var: "
    mkdir /var/run/ &&
    mkdir /var/tmp/ &&
    chmod 777 /var/tmp
    
    echo "Remouting /dev/root for rw: "
    mount -o remount,rw /dev/root /
    
    echo "Running local start scripts."
    for i in /etc/rc.d/S*
    do
      if [ -x $i ]; then
        /bin/sh $i
      fi
    done

eth0が評価版のため8時間で止まる。

  • 2006-05-06
  • # eth0: Link carrier lost. が出て、ビットストリームをダウンロードし直さないと復旧しない。
    • この状態でuClinuxイメージを再度ロードしても、下記の様になる。
      NET4: Linux TCP/IP 1.0 for NET4.0
      IP Protocols: ICMP, UDP, TCP
      IP: routing cache hash table of 512 buckets, 4Kbytes
      TCP: Hash tables configured (established 2048 bind 4096)
      Sending DHCP requests .<6>eth0: Link carrier lost.
      ..... timed out!
      IP-Config: Reopening network devices...
      Sending DHCP requests ......
  • opb_ethernet Version 1.02.aは評価版なので、8時間で機能停止するとのこと。
    • データシートより
      Evaluation Version
       The EMAC LogiCORE is delivered with a hardware evaluation license. 
       When programmed into a Xilinx device, the core will function in hardware 
       for about 8 hours at the typical frequency of operation. 
       To use the EMAC LogiCORE without this timeout limitation, a full license must be purchased.

gpioの確認

  • 2006-05-05
  • [microblaze-uclinux] GPIO in /dev/gpio の記事を参考に、GPIOの動作(LED On/Off)を確認した。
    • Source Code: filegpio_test.tar.gz
    • 一応動作している。
      # gpio
      Usage: gpio [-d DEVICE] [-n DEV_INSTANCE] [-m MASK] COMMAND
        where COMMAND is one of:
          -i           Input value from GPIO and print it
          -o VALUE     Output value to GPIO
          -t VALUE     Set tristate to value
          -c           Cylon test pattern
          -k           KIT test pattern
        DEVICE indicates which GPIO driver to talk to (default is /dev/gpio)
        DEV_INSTANCE indicates which GPIO interface to talk to (default is zero)
        MASK is ANDed with the value (default is all ones)
      #
      # ls -l /dev/gpio
      crw-------    1 root     0         10, 185 Jan  1 00:00 /dev/gpio
      #
      # gpio -o 0xaa
      # gpio -o 0xff
      # gpio -o 0x00
      # gpio -c
      # gpio -k &
      45
      # ps
        PID PORT STAT SIZE SHARED %CPU COMMAND
          1      S    139K     0K  0.0 /sbin/init
          2      S      0K     0K  0.0 keventd
          3      R      0K     0K  0.0 ksoftirqd_CPU0
          4      S      0K     0K  0.0 kswapd
          5      S      0K     0K  0.0 bdflush
          6      S      0K     0K  0.0 kupdated
          7      S      0K     0K  0.0 mtdblockd
         37      S    157K     0K  0.0 /bin/portmap
         41      S    456K     0K  0.0 thttpd -c cgi-bin/*
         43   S0 S    647K     0K  0.0 -sh
         44      S    133K     0K  0.0 /bin/flatfsd
         45   S0 S     69K     0K  0.0 gpio -k
        100   S0 R     71K     0K  0.0 ps
      #

nfsmount確認 (rev03)

  • 2006-05-02
  • EDK8.1.02iに更新 (SP2適用)  ※FPGA Laboratoryさんの記事でSP2リリースを知った。<(_ _)>
  • カーネルレベルのDHCP,BOOTP設定 (nfsrootの準備)
  • nfsmountの動作を確認
    • portmapの起動
      • portmapを起動しない場合は、-o nolock オプションが必要
  • デフォルトゲートウェイ設定追加
    • #route add default gw xxx.xxx.xxx.xxx で変更可能
  • ネームサーバ設定
    • resolv.conf : nameserver 192.168.2.1
      • #vi /etc/config/resolv.conf で変更可能 (ただしramfs、flatfsdが無効のため)
  • DynDNSでCGI実験: http://mb-s3esk.gotdns.org/
    • ※動作していない場合も有ります。<(_ _)>
      $ rpcinfo -p mb-s3esk.gotdns.org
         program vers proto   port
          100000    2   tcp    111  portmapper
          100000    2   udp    111  portmapper
  • bootlog
    Linux version 2.4.32-uc0 (muranaka@colinux) (gcc version 3.4.1 ( Xilinx EDK 8.1
    Build EDK_I.17 121005 )) #6 Tue May 2 21:43:31 JST 2006
    On node 0 totalpages: 8192
    zone(0): 8192 pages.
    zone(1): 0 pages.
    zone(2): 0 pages.
    CPU: MICROBLAZE
    Kernel command line:
    Console: xmbserial on UARTLite
    Calibrating delay loop... 32.56 BogoMIPS
    Memory: 32MB = 32MB total
    Memory: 29452KB available (1252K code, 1700K data, 60K init)
    Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
    Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
    Mount cache hash table entries: 512 (order: 0, 4096 bytes)
    Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
    Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
    POSIX conformance testing by UNIFIX
    Linux NET4.0 for Linux 2.4
    Based upon Swansea University Computer Society NET3.039
    Initializing RT netlink socket
    Microblaze UARTlite serial driver version 1.00
    ttyS0 at 0x40600000 (irq = 0) is a Microblaze UARTlite
    Starting kswapd
    xgpio #0 at 0x40000000 mapped to 0x40000000
    Xilinx GPIO registered
    RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
    eth0: using fifo mode.
    eth0: Xilinx EMAC #0 at 0x40C00000 mapped to 0x40C00000, irq=1
    eth0: id 2.0h; block id 7, type 1
    physmap flash device: 1000000 at 21000000
    cfi_cmdset_0001: Erase suspend on write enabled
    0: offset=0x0,size=0x40000,blocks=128
    Using buffer write method
    physmap: no partition info available, registering whole flash at once
    uclinux[mtd]: RAM probe address=0x221741f4 size=0x16f000
    uclinux[mtd]: root filesystem index=2
    MicroBlaze auto-config flash probe(0x21000000,8388608,2): 800000 at 21000000
    cfi_cmdset_0001: Erase suspend on write enabled
    0: offset=0x0,size=0x40000,blocks=128
    Using buffer write method
    Creating 8 MTD partitions on "Flash":
    0x00000000-0x00004000 : "Bootloader"
    mtd: partition "Bootloader" doesn't end on an erase block -- force read-only
    0x00004000-0x00008000 : "Bootargs"
    mtd: partition "Bootargs" doesn't start on an erase block boundary -- force read
    -only
    0x00008000-0x0000c000 : "MAC"
    mtd: partition "MAC" doesn't start on an erase block boundary -- force read-only
    0x00010000-0x00020000 : "Config"
    mtd: partition "Config" doesn't start on an erase block boundary -- force read-o
    nly
    0x0000c000-0x00010000 : "Spare"
    mtd: partition "Spare" doesn't start on an erase block boundary -- force read-on
    ly
    0x00100000-0x00400000 : "Image"
    0x00400000-0x00800000 : "JFFS2"
    0x00000000-0x02000000 : "Flash"
    MicroBlaze auto-config ram probe(0x221741f4,1503232,4): 16f000 at 221741f4
    Creating 1 MTD partitions on "RAM":
    0x00000000-0x0016f000 : "Romfs"
    NET4: Linux TCP/IP 1.0 for NET4.0
    IP Protocols: ICMP, UDP, TCP
    IP: routing cache hash table of 512 buckets, 4Kbytes
    TCP: Hash tables configured (established 2048 bind 4096)
    Sending DHCP requests ., OK
    IP-Config: Got DHCP answer from 192.168.2.5, my address is 192.168.2.20
    IP-Config: Complete:
          device=eth0, addr=192.168.2.20, mask=255.255.255.0, gw=255.255.255.255,
         host=192.168.2.20, domain=, nis-domain=(none),
         bootserver=192.168.2.5, rootserver=192.168.2.5, rootpath=
    NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
    VFS: Mounted root (romfs filesystem) readonly.
    Freeing init memory: 60K
    Mounting proc:
    Mounting var:
    Populating /var:
    Running local start scripts.
    Mounting /etc/config:
    Populating /etc/config:
    flatfsd: Nonexistent or bad flatfs (-48), creating new one...
    flatfsd: Failed to write flatfs (-48): Permission denied
    flatfsd: Created 5 configuration files (243 bytes)
    Setting hostname:
    Setting up interface lo:
    Setting up interface eth0:
    Setting up deafault gw
    Starting portmap:
    Starting thttpd:
    
    s3esk login: root
    Password:
    
    
    BusyBox v1.00 (2006.05.02-00:00+0000) Built-in shell (msh)
    Enter 'help' for a list of built-in commands.
    
    # route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
    default         192.168.2.1     0.0.0.0         UG    0      0        0 eth0
    # ps
      PID PORT STAT SIZE SHARED %CPU COMMAND
        1      S    139K     0K  0.6 /sbin/init
        2      S      0K     0K  0.0 keventd
        3      R      0K     0K  0.0 ksoftirqd_CPU0
        4      S      0K     0K  0.0 kswapd
        5      S      0K     0K  0.0 bdflush
        6      S      0K     0K  0.0 kupdated
        7      S      0K     0K  0.1 mtdblockd
       37      S    157K     0K  0.0 /bin/portmap
       41      S    279K     0K  0.1 thttpd -c cgi-bin/*
       43   S0 S    647K     0K  0.4 -sh
       44      S    133K     0K  0.0 /bin/flatfsd
       46   S0 R     71K     0K  0.0 ps
    # ifconfig -a
    eth0      Link encap:Ethernet  HWaddr 00:00:C0:A3:E5:44
              inet addr:192.168.2.20  Bcast:192.168.2.255  Mask:255.255.255.0
              UP BROADCAST RUNNING  MTU:1500  Metric:1
              RX packets:12 errors:0 dropped:0 overruns:0 frame:0
              TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
                        Interrupt:1
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
    
    # ping brinkster.com
    PING brinkster.com (65.182.102.190): 56 data bytes
    64 bytes from 65.182.102.190: icmp_seq=0 ttl=112 time=137.0 ms
    64 bytes from 65.182.102.190: icmp_seq=1 ttl=112 time=146.4 ms
    64 bytes from 65.182.102.190: icmp_seq=2 ttl=112 time=138.2 ms
    64 bytes from 65.182.102.190: icmp_seq=3 ttl=110 time=140.9 ms
    
    --- brinkster.com ping statistics ---
    4 packets transmitted, 4 packets received, 0% packet loss
    round-trip min/avg/max = 137.0/140.6/146.4 ms
    #
    # mount
    /dev/root on / type romfs (ro)
    /proc on /proc type proc (rw)
    none on /var type ramfs (rw)
    none on /etc/config type ramfs (rw)
    #
    # mount -t nfs 192.168.2.5:/diskless/mb-s3esk/rootfs /mnt
    #
    # mount
    /dev/root on / type romfs (ro)
    /proc on /proc type proc (rw)
    none on /var type ramfs (rw)
    none on /etc/config type ramfs (rw)
    192.168.2.5:/diskless/mb-s3esk/rootfs on /mnt type nfs (rw,v3,rsize=32768,wsize=
    32768,hard,udp,lock,addr=192.168.2.5)
    #
    # mkdir /mnt/home
    #
    # ls -alg /mnt
    drwxrwxr-x    3 500      500          4096 May  2  2006 .
    drwxr-xr-x    1 root     0              32 Jan  1 00:00 ..
    drw-r--r--    2 root     0            4096 May  2  2006 home
    #
    # ps
      PID PORT STAT SIZE SHARED %CPU COMMAND
        1      S    139K     0K  0.0 /sbin/init
        2      S      0K     0K  0.0 keventd
        3      R      0K     0K  0.0 ksoftirqd_CPU0
        4      S      0K     0K  0.0 kswapd
        5      S      0K     0K  0.0 bdflush
        6      S      0K     0K  0.0 kupdated
        7      S      0K     0K  0.0 mtdblockd
       37      S    158K     0K  0.0 /bin/portmap
       41      S    313K     0K  0.0 thttpd -c cgi-bin/*
       43   S0 S    652K     0K  0.0 -sh
       44      S    133K     0K  0.0 /bin/flatfsd
       52      S      0K     0K  0.0 rpciod
       53      S      0K     0K  0.0 lockd
       64   S0 R     71K     0K  0.0 ps
    #
    # umount /mnt
    # mount
    /dev/root on / type romfs (ro)
    /proc on /proc type proc (rw)
    none on /var type ramfs (rw)
    none on /etc/config type ramfs (rw)
    # kill 37
    # ps
      PID PORT STAT SIZE SHARED %CPU COMMAND
        1      S    139K     0K  0.0 /sbin/init
        2      S      0K     0K  0.0 keventd
        3      R      0K     0K  0.0 ksoftirqd_CPU0
        4      S      0K     0K  0.0 kswapd
        5      S      0K     0K  0.0 bdflush
        6      S      0K     0K  0.0 kupdated
        7      S      0K     0K  0.0 mtdblockd
       41      S    313K     0K  0.0 thttpd -c cgi-bin/*
       43   S0 S    653K     0K  0.0 -sh
       44      S    133K     0K  0.0 /bin/flatfsd
       68   S0 R     71K     0K  0.0 ps
    # mount -t nfs -o nolock 192.168.2.5:/diskless/mb-s3esk/rootfs /mnt
    # mount
    /dev/root on / type romfs (ro)
    /proc on /proc type proc (rw)
    none on /var type ramfs (rw)
    none on /etc/config type ramfs (rw)
    192.168.2.5:/diskless/mb-s3esk/rootfs on /mnt type nfs (rw,v3,rsize=32768,wsize=
    32768,hard,udp,nolock,addr=192.168.2.5)
    #

Ctrl-Cの件

  • 2006-04-26
  • Ctrl-Cが効かない件は、/bin/shをbusyboxのmshにすると効く様になった。
  • nfsmountの件
    • mount -t nfsが出来ない報告がMLに有るが、portmapの有無に関わらず可能だった。(5/2 訂正)
    • portmapデーモンを起動してマウント出来た。(5/2 訂正)
  • Armadillo-Jと同様に、-o nolockオプションで portmap無しでもnfsmount出来る。(5/2訂正)
  • 推定だが、nfsrootはSpartan-3E Starter Kitでも出来そうである。

FSL追加 (rev02)

  • 2006-04-23
  • uClinux image変更(カーネル+romfs)
    • ifconfig eth0 192.168.2.20 等可能、pingでCtrl-Cが効かない
      # ifconfig eth0 192.168.2.20
      #
      # ifconfig -a
      eth0      Link encap:Ethernet  HWaddr 00:00:C0:A3:E5:44
                inet addr:192.168.2.20  Bcast:192.168.2.255  Mask:255.255.255.0
                UP BROADCAST RUNNING  MTU:1500  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1000
                          Interrupt:1
      
      lo        Link encap:Local Loopback
                inet addr:127.0.0.1  Mask:255.0.0.0
                UP LOOPBACK RUNNING  MTU:16436  Metric:1
                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:0
  • thttpd -c 'cgi-bin/*' &に変更
    # ps
      PID PORT STAT SIZE SHARED %CPU COMMAND
        1      S    139K     0K  0.6 /sbin/init
        2      S      0K     0K  0.0 keventd
        3      R      0K     0K  0.0 ksoftirqd_CPU0
        4      S      0K     0K  0.0 kswapd
        5      S      0K     0K  0.0 bdflush
        6      S      0K     0K  0.0 kupdated
        7      S      0K     0K  0.0 mtdblockd
       37      S    279K     0K  0.0 thttpd -c cgi-bin/*
       39   S0 S    134K     0K  0.0 -sh
       40      S    133K     0K  0.0 /bin/flatfsd
       44   S0 R     71K     0K  0.0 ps
    #

    mb-thttpd.png

  • FSL (dlink)追加
s3esk_FSL_as_dlink.png

microblaze-uclinux MLに記事追加

  • 2006-04-20
  • debug_moduleのC_USE_UART0にすべきか。(1でも動作する)
  • dow -data images/image.bin 0x22000000が遅い。
    • チュートリアルにはFSLを高速ダウンロードリンクとする方法があるが...
  • パラレルFLASHからブートするには
    • MTDパーティションを有効にすればよさそうだが。
    • MTDがむずかしい状況となっている。
      # cat /proc/mtd
      dev:    size   erasesize  name
      mtd0: 000f1000 00001000 "RAM"
      mtd1: 00004000 00040000 "Bootloader"
      mtd2: 00004000 00040000 "Bootargs"
      mtd3: 00004000 00040000 "MAC"
      mtd4: 00010000 00040000 "Config"
      mtd5: 00004000 00040000 "Spare"
      mtd6: 00300000 00040000 "Image"
      mtd7: 00400000 00040000 "JFFS2"
      mtd8: 02000000 00040000 "Flash"
      mtd9: 000f1000 00001000 "Romfs"
      #
      # eraseall /dev/mtd6
      Erasing 256 Kibyte @ 0 --  0 % complete.Chip reports improper command sequence:
      status 0xb0b0
       
      eraseall: /dev/mtd6: MTD Erase failure: Input/output error
      Erasing 256 Kibyte @ 40000 --  8 % complete.Chip reports improper command sequ
      ence: status 0xb0b0
       
      	|
      	|
       
      eraseall: /dev/mtd6: MTD Erase failure: Input/output error
      Erased 3072 Kibyte @ 0 -- 100% complete.
      #

#define BUS_WIDTH 2に変更 (rev01)

  • 2006-04-17
    • drivers/mtd/maps/mb_auto.c で #define BUS_WIDTH 2 に変更
      • s3eboard_uclinux_ready_rev0.zip => s3eboard_uclinux_ready_rev01.zip
    • bootlog
      Linux version 2.4.32-uc0 (muranaka@colinux) (gcc version 3.4.1 ( Xilinx EDK 8.1
      Build EDK_I.17 121005 )) #7 Mon Apr 17 20:57:36 JST 2006
      On node 0 totalpages: 8192
      zone(0): 8192 pages.
      zone(1): 0 pages.
      zone(2): 0 pages.
      CPU: MICROBLAZE
      Kernel command line:
      Console: xmbserial on UARTLite
      Calibrating delay loop... 32.56 BogoMIPS
      Memory: 32MB = 32MB total
      Memory: 30536KB available (815K code, 1054K data, 48K init)
      Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
      Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
      Mount cache hash table entries: 512 (order: 0, 4096 bytes)
      Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
      Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
      POSIX conformance testing by UNIFIX
      Linux NET4.0 for Linux 2.4
      Based upon Swansea University Computer Society NET3.039
      Initializing RT netlink socket
      Microblaze UARTlite serial driver version 1.00
      ttyS0 at 0x40600000 (irq = 0) is a Microblaze UARTlite
      Starting kswapd
      xgpio #0 at 0x40000000 mapped to 0x40000000
      Xilinx GPIO registered
      RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
      eth0: using fifo mode.
      eth0: Xilinx EMAC #0 at 0x40C00000 mapped to 0x40C00000, irq=1
      eth0: id 2.0h; block id 7, type 1
      uclinux[mtd]: RAM probe address=0x220fec44 size=0xd5000
      uclinux[mtd]: root filesystem index=0
      MicroBlaze auto-config flash probe(0x21000000,8388608,2): 800000 at 21000000
      cfi_cmdset_0001: Erase suspend on write enabled
      0: offset=0x0,size=0x40000,blocks=128
      Using buffer write method
      Creating 8 MTD partitions on "Flash":
      0x00000000-0x00004000 : "Bootloader"
      mtd: partition "Bootloader" doesn't end on an erase block -- force read-only
      0x00004000-0x00008000 : "Bootargs"
      mtd: partition "Bootargs" doesn't start on an erase block boundary -- force read
      -only
      0x00008000-0x0000c000 : "MAC"
      mtd: partition "MAC" doesn't start on an erase block boundary -- force read-only
      0x00010000-0x00020000 : "Config"
      mtd: partition "Config" doesn't start on an erase block boundary -- force read-o
      nly
      0x0000c000-0x00010000 : "Spare"
      mtd: partition "Spare" doesn't start on an erase block boundary -- force read-on
      ly
      0x00100000-0x00400000 : "Image"
      0x00400000-0x00800000 : "JFFS2"
      0x00000000-0x02000000 : "Flash"
      MicroBlaze auto-config ram probe(0x220fec44,872448,4): d5000 at 220fec44
      Creating 1 MTD partitions on "RAM":
      0x00000000-0x000d5000 : "Romfs"
      VFS: Mounted root (romfs filesystem) readonly.
      Freeing init memory: 48K
      Mounting proc:
      Mounting var:
      Populating /var:
      Running local start scripts.
      Mounting /etc/config:
      Populating /etc/config:
      flatfsd: Nonexistent or bad flatfs (-48), creating new one...
      flatfsd: Failed to write flatfs (-48): Permission denied
      flatfsd: Created 3 configuration files (176 bytes)
      Setting hostname:
      Setting up interface lo:
      No usable address families found.
      socket: No such file or directory
      Starting DHCP client:
      Starting thttpd:
      Jan  1 00:00:08 dhcpcd[33]: dhcpStart: socket: Address family not supported by p
      rotocol
      
      
      uclinux-auto login: root
      Password:
      # cat /proc/cpuinfo
      CPU-Family:     Microblaze
      FPGA-Arch:      spartan3e
      CPU-Ver:        4.00.a
      CPU-MHz:   66.666667
      BogoMips:       32.56
      HW-Div:         no
      HW-Shift:       no
      Icache:        2kB
      Dcache:       8kB
      HW-Debug:       yes
      # mount
      /dev/root on / type romfs (ro)
      /proc on /proc type proc (rw)
      none on /var type ramfs (rw)
      none on /etc/config type ramfs (rw)
      # free
              total:    used:    free:  shared: buffers:  cached:
      Mem:  31318016  3244032 28073984        0   548864   569344
      Swap:        0        0        0
      #


Jason Wu - Getting-started tutorial を参考に

Spartan-3E Starter KitでXPS(Xilinx Platform Studio, EDK)により、プラットフォームを生成

  • Cygwinを事前に入れてあったため、指定した/home/muranakaディレクトリにauto-config.inが生成された。
  • ビットストリームを、キットのジャンパー設定をJTAGモード(M1ショート)にしてダウンロードすると、以下がDCE接続したTTSSHに出力された。
-- Entering main() --
Starting MemoryTest for DDR_SDRAM_16Mx16:
  Running 32-bit test...PASSED!
  Running 16-bit test...PASSED!
  Running 8-bit test...PASSED!
-- Exiting main() --

XMDからカーネルイメージを起動

  • SDRAMにダウンロードし、PC(プログラムカウンタ)を0x22000000にして起動した。
Xilinx Microprocessor Debug (XMD) Engine
Xilinx EDK 8.1.01 Build EDK_I.19.5
Copyright (c) 1995-2005 Xilinx, Inc.  All rights reserved.

XMD%
Loading XMP File..
Processor(s) in System ::

Microblaze(1) : microblaze_0
Address Map for Processor microblaze_0
  (0x00000000-0x00001fff) dlmb_cntlr    dlmb
  (0x00000000-0x00001fff) ilmb_cntlr    ilmb
  (0x21000000-0x21ffffff) FLASH_16Mx8   mb_opb
  (0x22000000-0x23ffffff) DDR_SDRAM_32Mx16      mb_opb
  (0x40000000-0x4000ffff) LEDs_8Bit     mb_opb
  (0x40600000-0x4060ffff) RS232_DCE     mb_opb
  (0x40c00000-0x40c0ffff) Ethernet_MAC  mb_opb
  (0x41200000-0x4120ffff) opb_intc_0    mb_opb
  (0x41400000-0x4140ffff) debug_module  mb_opb
  (0x41c00000-0x41c0ffff) opb_timer_1   mb_opb

Connecting to cable (Usb Port - USB22).
Checking cable driver.
 Driver xusbdfwu.sys version: 1018 (1018).
 Driver windrvr6.sys version = 7.0.0.0.Calling setinterface num=0, alternate=
DeviceAttach: received and accepted attach for:
  vendor id 0x3fd, product id 0x8, device handle 0x16c3c2c
 Max current requested during enumeration is 150 mA.
 Cable Type = 3, Revision = 0.
 Setting cable speed to 750 KHz.
Cable connection established.
Firmware version = 1018.
CPLD file version = 0006h.
CPLD version = 0006h.

JTAG chain configuration
--------------------------------------------------
Device   ID Code        IR Length    Part Name
 1       01c22093           6        XC3S500E
 2       05046093           8        XCF04S
 3       06e5e093           8        XC2C64A_VQ44_1532
Assuming, Device No: 1 contains the MicroBlaze system
Connected to the JTAG MicroProcessor Debug Module (MDM)
No of processors = 1

MicroBlaze Processor 1 Configuration :
-------------------------------------
Version............................4.00.a
No of PC Breakpoints...............2
No of Read Addr/Data Watchpoints...0
No of Write Addr/Data Watchpoints..0
Instruction Cache Support..........on
Instruction Cache Base Address.....0x22000000
Instruction Cache High Address.....0x23ffffff
Data Cache Support.................on
Data Cache Base Address............0x22000000
Data Cache High Address............0x23ffffff
Exceptions  Support................off
FPU  Support.......................off
FSL DCache Support.................off
FSL ICache Support.................off
Hard Divider Support...............off
Hard Multiplier Support............on
Barrel Shifter Support.............off
MSR clr/set Instruction Support....off
Compare Instruction Support........off
JTAG MDM Connected to MicroBlaze 1

Connected to "mb" target. id = 0
Starting GDB server for "mb" target (id = 0) at TCP port no 1234
XMD% dow -data images/image.bin 0x22000000
XMD% rwr 5 0x100
XMD% rwr pc 0x22000000
XMD% rrd
    r0: 00000000      r8: 00000000     r16: 00000000     r24: 00000000
    r1: 00000000      r9: 00000000     r17: 00000000     r25: 00000000
    r2: 00000000     r10: 00000000     r18: 00000000     r26: 00000000
    r3: 00000000     r11: 00000000     r19: 00000000     r27: 00000000
    r4: 00000000     r12: 00000000     r20: 00000000     r28: 00000000
    r5: 00000100     r13: 00000000     r21: 00000000     r29: 00000000
    r6: 00000000     r14: 00000000     r22: 00000000     r30: 00000000
    r7: 00000000     r15: 00000000     r23: 00000000     r31: 00000000
    pc: 22000000     msr: 00000000
XMD% con
Processor started. Type "stop" to stop processor
RUNNING>

uClinuxの起動ログ

Linux version 2.4.32-uc0 (muranaka@colinux) (gcc version 3.4.1 ( Xilinx EDK 8.1
Build EDK_I.17 121005 )) #6 Sat Apr 15 22:51:51 JST 2006
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
CPU: MICROBLAZE
Kernel command line:
Console: xmbserial on UARTLite
Calibrating delay loop... 32.56 BogoMIPS
Memory: 32MB = 32MB total
Memory: 30536KB available (815K code, 1054K data, 48K init)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Microblaze UARTlite serial driver version 1.00
ttyS0 at 0x40600000 (irq = 0) is a Microblaze UARTlite
Starting kswapd
xgpio #0 at 0x40000000 mapped to 0x40000000
Xilinx GPIO registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
eth0: using fifo mode.
eth0: Xilinx EMAC #0 at 0x40C00000 mapped to 0x40C00000, irq=1
eth0: id 2.0h; block id 7, type 1
uclinux[mtd]: RAM probe address=0x220fec44 size=0xd5000
uclinux[mtd]: root filesystem index=0
MicroBlaze auto-config flash probe(0x21000000,8388608,4): 800000 at 21000000
CFI: Found no Flash device at location zero
Search for id:(1818 00) interleave(2) type(2)
Search for id:(1818 00) interleave(2) type(2)
Search for id:(1818 00) interleave(2) type(2)
Search for id:(18 18) interleave(2) type(1)
Search for id:(18 18) interleave(2) type(1)
Search for id:(18 18) interleave(2) type(1)
Search for id:(1818 00) interleave(4) type(2)
Search for id:(1818 00) interleave(4) type(2)
Search for id:(1818 00) interleave(4) type(2)
Search for id:(18 00) interleave(4) type(1)
Search for id:(18 00) interleave(4) type(1)
Search for id:(18 00) interleave(4) type(1)
JEDEC: Found no Flash device at location zero
MicroBlaze auto-config ram probe(0x220fec44,872448,4): d5000 at 220fec44
Creating 1 MTD partitions on "RAM":
0x00000000-0x000d5000 : "Romfs"
VFS: Mounted root (romfs filesystem) readonly.
Freeing init memory: 48K
Mounting proc:
Mounting var:
Populating /var:
Running local start scripts.
Mounting /etc/config:
Populating /etc/config:
flatfsd: Nonexistent or bad flatfs (-48), creating new one...
flatfsd: Failed to write flatfs (-48): No such device
flatfsd: Created 3 configuration files (142 bytes)
Setting hostname:
Setting up interface lo:
No usable address families found.
socket: No such file or directory
Starting DHCP client:
Starting thttpd:
Jan  1 00:00:08 dhcpcd[33]: dhcpStart: socket: Address family not supported by p
rotocol


uclinux-auto login: root
Password:
#
#
# ls
bin   dev   etc   home  lib   mnt   proc  sbin  tmp   usr   var
# busybox
BusyBox v1.00 (2006.04.11-23:46+0000) multi-call binary

Usage: busybox [function] [arguments]...
   or: [function] [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use, and BusyBox
        will act like whatever it was invoked as.

Currently defined functions:
        [, busybox, dd, false, ifconfig, insmod, kill, killall, login,
        ls, lsmod, modprobe, mount, rmmod, test, true, uptime, vi, wget

# free
        total:    used:    free:  shared: buffers:  cached:
Mem:  31318016  3211264 28106752        0   548864   569344
Swap:        0        0        0
# mount
/dev/mtdblock1 on / type romfs (ro)
/proc on /proc type proc (rw)
none on /var type ramfs (rw)
none on /etc/config type ramfs (rw)
# mount -o remount,rw /dev/mtdblock1 /
# mount
/dev/mtdblock1 on / type romfs (rw)
/proc on /proc type proc (rw)
none on /var type ramfs (rw)
none on /etc/config type ramfs (rw)
# cd home
# ls
httpd
# mkdir km
mkdir: cannot create directory km
# ps
  PID PORT STAT SIZE SHARED %CPU COMMAND
    1      S    139K     0K  0.0 /sbin/init
    2      S      0K     0K  0.0 keventd
    3      R      0K     0K  0.0 ksoftirqd_CPU0
    4      S      0K     0K  0.0 kswapd
    5      S      0K     0K  0.0 bdflush
    6      S      0K     0K  0.0 kupdated
    7      S      0K     0K  0.0 mtdblockd
   40      S    133K     0K  0.0 /bin/flatfsd
   41   S0 S    134K     0K  0.1 -sh
   51   S0 R     71K     0K  0.0 ps
# ifconfig -a
No usable address families found.
socket: No such file or directory
#


前回使用プロジェクト EDK8.1i (SP適用前)

http://muranaka.info/images/s3e_sttkit_Address.png
  • ビットストリーム作成でエラーが出る。(BRAMリソースオーバーらしい)
  • Googleで検索してみると
    • BRAM utilisation for CACHE.
      • 命令キャッシュ(I-Cache)とデータキャッシュ(D-Cache)を、16Kから2Kにしてみることにする。
    • エラーメッセージ (抜粋)
      ERROR:Pack:18 - The design is too large for the given device and package. 
         Please check the Design Summary section to see which resource requirement for
         your design exceeds the resources available in the device.
         
      
      If the slice count exceeds device resources you might try to disable
         register ordering (-r).  Also if your design contains AREA_GROUPs, you may be
         able to improve density by adding COMPRESSION to your AREA_GROUPs if you
         haven't done so already.
      
      Design Summary:
      Number of errors:      1
      Number of warnings:   10
      Logic Utilization:
        Total Number Slice Registers:     3,672 out of   9,312   39%
          Number used as Flip Flops:                 3,671
          Number used as Latches:                        1
        Number of 4 input LUTs:           4,503 out of   9,312   48%
      Logic Distribution:
        Number of occupied Slices:                        3,940 out of   4,656   84%
          Number of Slices containing only related logic:   3,940 out of   3,940  100%
          Number of Slices containing unrelated logic:          0 out of   3,940    0%
            *See NOTES below for an explanation of the effects of unrelated logic
      Total Number 4 input LUTs:          5,432 out of   9,312   58%
        Number used as logic:              4,503
        Number used as a route-thru:         201
        Number used for Dual Port RAMs:      466
          (Two LUTs used per Dual Port RAM)
        Number used as Shift registers:      262
        Number of bonded IOBs:              108 out of     232   46%
          IOB Flip Flops:                   143
      
        Number of ODDR2s used:               22
          Number of DDR_ALIGNMENT = NONE     22
        Number of Block RAMs:               26 out of      20  130% (OVERMAPPED)
        Number of GCLKs:                     8 out of      24   33%
        Number of DCMs:                      3 out of       4   75%
        Number of BSCANs:                    1 out of       1  100%
        Number of MULT18X18SIOs:              3 out of      20   15%
      
         Number of RPM macros:            3
      Total equivalent gate count for design:  1,835,191
      Additional JTAG gate count for IOBs:  5,184
      Peak Memory Usage:  222 MB
      
      Mapping completed.
      See MAP report file "system_map.mrp" for details.
      Problem encountered during the packing phase.
      ERROR:Xflow - Program map returned error code 2. Aborting flow execution... 
      

参考- Product Demo: MicroBlaze—How to Build a Simple System

http://www.demosondemand.com/clients/xilinx/001/page/index_eps.asp#04http://www.demosondemand.com/clients/xilinx/001/page/index_eps.asp#04http://www.demosondemand.com/clients/xilinx/001/page/index_eps.asp#04http://www.demosondemand.com/clients/xilinx/001/page/index_eps.asp#04

割込みコントローラ OPB Interrupt Controller

タイマー OPB Timer

参考:メモリマップについて

Base System Builderの比較

出典 - Creating a Simple uClinux ready Microblaze Design Version 1.04 (by Jason Wu) ターゲットボード:ML401

  • uClinux動作条件の割込みコントローラとタイマーの定義がある。
BaseSystemBuilder.png

出典 - Using SPI Serial Flash on the Xilinx Spartan-3E Starter Kit Board © 2006 Avnet. All rights reserved.

  • uClinuxを動かすには (以下推定)
    • 割込みコントローラとタイマーの定義が無いので 追加が必要と思われる。
    • DDR-SDRAMの先頭アドレスが上記ML401と異なる。
Spartan-3E_Starter_KitMem.png


添付ファイル: files3esk-nfs.config.tar.gz [詳細] files3esk.config.tar.gz [詳細] filemb-s3esk-rootfs.tar.gz [詳細] filedl.sh.zip [詳細] filelinux.bin-nfsroot.zip [詳細] filegpio_test.tar.gz [詳細] fileauto-config.in.rev03.tar.gz [詳細] fileimages_gpio.zip [詳細] files3e_sk_XMD_rev03.log [詳細] files3eboard_uclinux_ready_rev03.zip [詳細] files3eboard_uclinux_ready_rev02.zip [詳細] files3e_sk_bootlog_b2.log [詳細] files3eboard_uclinux_ready_rev01.zip [詳細] fileauto-config.in [詳細] files3e_sk_XMD.log [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Tue, 06 Jun 2006 06:57:57 JST (3976d)