SimBCM - A Full System Simulator of BCM1250

Broadcom BCM1250ってMIPS64デュアルコアなのかぁ、遊んでみたいなぁ・・・とか思って、ググッてみたらCisco 7301がヒットして思ったとおり1,159,800円もしてショボーン(´・ω・`)としてたら、なんかエミュレータ見つけたよ

マニュアルがあるので、これの通りにインストールすればすんなり動いた。
が、configureなどを使う一般的なUNIXアプリの書き方をしておらず、Linuxきめうちなのでちょっと環境が違うと多分うまくいかない。少なくともFreeBSDでは駄目そうだった。

マニュアルと同じだが、一応画面メモ。
残念ながら、結構遅い。
Harddisk emulationは無くて、Flashイーサネットだけが見えている状態らしい。
このイーサネットは本当に通信できるのだろうか?謎。

syuu@debian:~/SimBCM/run$ ./simos 
==================================sibyte simulator hardware configration============================

SIBYTE SIM MACHINE CONFIGRATION:
machine num:  1
max cpus per machine:  1
max ether controller per machine:  3
cell mode : off
prom path:  .

CPU CONFIGRATION:
	cpu type: mipsy
	cpu number per machine:  2

MEMORY SYSTEM CONFIGRATION:
	memory bank:  1
	memory size:  64

LOG CONFIGRATION:
	loop_on_error : on
	cpu_error_loop: on
	error_keep_logs: on
	log file:  ./cpu.log

DEBUG CONFIGRATION:
	debug flags:  
	listen port:  5000
	debug mode: off
	callback interval:  500

GENBUS CONFIGRATION:
kernel rom path:  /home/syuu/SimBCM/run/kernels/vmlinux

DUART CONFIGRATION:
callback_interval:  500

ETHER CONFIG:
callback interval:  500

SCD CONFIGRATION:
callback interval:  100
=======================================================================================================




!! Could not open NVRAM device eeprom0


CFE version 1.2.5 for SWARM (64bit,MP,BE,MIPS)
Build Date: 一  9月 25 15:22:39 CST 2006 (root@Dragon)
Copyright (C) 2000,2001,2002,2003,2004,2005 Broadcom Corporation.

Initializing Arena.
Initializing Devices.
SWARM board revision 1
sbeth: found phy 0, vendor 3FFFBF part 3F
Config switch: 0
CPU: BCM1250 rev 0x0
L2 Cache Status: OK
Wafer ID:  Not set
SysCfg: 0000000000480080 [PLL_DIV: 1, IOB0_DIV: CPUCLK/4, IOB1_DIV: CPUCLK/3]
CPU type 0x1040100: 5KHz
Total memory: 0x4000000 bytes (64MB)

Total memory used by CFE:  0x9FC385D8 - 0x9FD3AE30 (1058904)
Initialized Data:          0x9FC385D8 - 0x9FC38A40 (1128)
BSS Area:                  0x9FC38A40 - 0x9FC38E30 (1008)
Local Heap:                0x9FC38E30 - 0x9FD38E30 (1048576)
Stack Area:                0x9FD38E30 - 0x9FD3AE30 (8192)
Text (code) segment:       0x9FC00000 - 0x9FC385D3 (230867)
Boot area (physical):      0x1FD3B000 - 0x1FD7B000
Relocation Factor:         I:00000000 - D:00000000

CFE> boot -elf flash1:a
Loader:elf Filesys:raw Dev:flash1 File:a Options:(null)
Loading: 0xffffffff80100000/1950836 0xffffffff802dc474/84924 Entry at 0x802a1000
Starting program at 0x802a1000

Broadcom SiByte BCM1250 A0-A6 @ 50 MHz (SB1 rev 0)
Board type: SiByte BCM91250A (SWARM)
Linux version 2.6.14.3 (root@gkong) (gcc version 3.3.3 (DENX ELDK 3.1.1 3.3.3-9)) #62 SMP Mon Apr 17 07:26:26 CST 2006
CPU revision is: 01040100
This kernel optimized for simulation runs with CFE
Determined physical RAM map:
 memory: 03fffe00 @ 00000000 (usable)
Built 1 zonelists
Kernel command line: root=/dev/ram0 
Primary instruction cache 32kB, 4-way, linesize 32 bytes.
Primary data cache 48kB, 3-way, linesize 32 bytes.
Synthesized TLB refill handler (27 instructions).
Synthesized TLB load handler fastpath (41 instructions).
Synthesized TLB store handler fastpath (36 instructions).
Synthesized TLB modify handler fastpath (35 instructions).
PID hash table entries: 256 (order: 8, 4096 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 61724k/65532k available (1438k kernel code, 3656k reserved, 225k data, 240k init, 0k highmem)
Mount-cache hash table entries: 512
Checking for 'wait' instruction...  unavailable.
Detected 1 available secondary CPU(s)
softlockup thread 0 started up.
CPU revision is: 03040100
Primary instruction cache 32kB, 4-way, linesize 32 bytes.
Primary data cache 48kB, 3-way, linesize 32 bytes.
Synthesized TLB refill handler (27 instructions).
Brought up 2 CPUs
softlockup thread 1 started up.
NET: Registered protocol family 16
PCI: Skipping PCI probe.  Bus is not initialized.
io scheduler noop registered
eth0: enabling TCP rcv checksum
eth0: enabling TCP rcv checksum
eth0: SiByte Ethernet at 0x10064000, address: 02:10:18:10:06:40
eth1: enabling TCP rcv checksum
eth1: enabling TCP rcv checksum
eth1: SiByte Ethernet at 0x10065000, address: 02:10:18:10:06:50
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
TCP bic registered
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
Freeing unused kernel memory: 240k freed



gkong:main