Microsoft Giano and NetBSD 4.0.1

Well using the link at Microsoft, I managed to get NetBSD installed. Don’t forget you’ll need a new version of putty that supports serial ports, and connect it to \\.\pipe\USART0 when requested by the simulator. I always get a C++ exception, that I just ignore and let it keep on chugging.

So for the curious, here is a bootlog….

NetBSD/emips 4.0.1 Netboot Bootstrap, Revision 1.0
([email protected], Mon Aug 9 00:23:36 PDT 2010)

Default: 0/ace(0,0)/netbsd
boot:
Loading: 0/ace(0,0)/netbsd
2694960+177944 [152192+143455]=0x305cf4
Starting at 0x80020000

memory segment 0 start 00000000 size 10000000
memory segment 1 start 10000000 size 00100000
Too much memory in cluster 1, trimming memory to range 10000000..10000000
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.

NetBSD 4.0.1 (GENERIC) #137: Fri Dec 17 00:21:13 PST 2010
[email protected]:/usr/obj/sys/arch/emips/compile/GENERIC
Xilinx ML50x (eMIPS)
total memory = 256 MB
avail memory = 247 MB
timecounter: Timecounters tick every 62.500 msec
mainbus0 (root)
cpu0 at mainbus0: Microsoft eMIPS CPU (0x70401) Rev. 1 with software emulated floating point
cpu0: 64 TLB entries
ebus0 at mainbus0
eclock0 at ebus0 addr 0xfff80000: eMIPS clock
timecounter: Timecounter “eclock” frequency 10000000 Hz quality 2000
dz0 at ebus0 addr 0xfff90000: neilsart 1 line
ace0 at ebus0 addr 0xfff50000 : System ACE
ace1 at ebus0 addr 0xfff50100 : System ACE
enic0 at ebus0 addr 0xfff10000: eNIC [16 16], address 00:03:ff:e1:5e:ea
icap0 at ebus0 addr 0xffed0000: Internal Configuration Access Port
epio0 at ebus0 addr 0xfff60000: GPIO controller
gpio0 at epio0: 32 pins
flash0 at ebus0 addr 0xfffb0000 base f0000000: 8MB flash memory (2 x StrataFlash 28F320)
lcd at ebus0 addr 0xfff40000 not configured
evga at ebus0 addr 0xfff20000 not configured
ps2 at ebus0 addr 0xfff30000 not configured
ac97 at ebus0 addr 0xffef0000 not configured
timecounter: Timecounter “clockinterrupt” frequency 16 Hz quality 0
flash0: 8192 KB, 1 cyl, 1 head, 16384 sec, 512 bytes/sect x 16384 sectors
ace0: drive supports 255-sector PIO transfers
ace0: card is
ace0: 2048 MB, 128 cyl, 1 head, 32768 sec, 512 bytes/sect x 4194304 sectors
ace1: drive supports 255-sector PIO transfers
ace1: card is
ace1: 4460 KB, 0 cyl, 1 head, 32768 sec, 512 bytes/sect x 8920 sectors
boot device: ace0 part0
root on ace0a dumps on ace0b
root file system type: ffs
dzparam: c_ispeed 9600 ignored, keeping 38400
Sat Mar 19 21:10:50 GMT 2011
swapctl: adding /dev/ace0b as swap device at priority 0
Checking for botched superblock upgrades: done.
Starting file system checks:
/dev/race0a: file system is clean; not checking
/dev/race0d: file system is clean; not checking
/dev/race0e: file system is clean; not checking
/dev/race0f: file system is clean; not checking
Setting tty flags.
Setting sysctl variables:
Starting network.
/etc/rc: WARNING: $hostname not set.
IPv6 mode: host
Configuring network interfaces:.
Adding interface aliases:
Building databases…
Starting syslogd.
Checking for core dump…
savecore: no core dump
Mounting all filesystems…
Clearing /tmp.
Checking quotas: done.
Setting securelevel: kern.securelevel: 0 -> 1
Starting virecover.
Starting local daemons:.
Updating motd.
postfix: rebuilding /etc/mail/aliases (missing /etc/mail/aliases.db)
newaliases: warning: valid_hostname: empty hostname
newaliases: fatal: unable to use my own hostname
Mar 19 17:11:08 postfix/sendmail[402]: fatal: unable to use my own hostname
Starting inetd.
Starting cron.
Sat Mar 19 17:11:09 EDT 2011

NetBSD/emips (Amnesiac) (console)

login: root
Mar 19 17:11:14 login: ROOT LOGIN (root) ON console
Last login: Sat Mar 19 17:04:07 2011 on console
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.

NetBSD 4.0.1 (GENERIC) #137: Fri Dec 17 00:21:13 PST 2010

Welcome to NetBSD!

Terminal type is vt100.
We recommend creating a non-root account and using su(1) for root access.
#

It’s not very often you see any UNIX originating from Microsoft* (Yes I know .. Xenix) anyways it does boot, and to save anyone interested, I’ll spare you the 1.5 HOUR long install and give you my disk image.

Speaking of which, it’s SLOW. I mean S-L-O-W.

Also as a side note, here is how to mount a CD-ROM ISO image…

mount -t cd9660 /dev/ace1c /mnt

At any rate, the speed just isn’t there for any real usage.

Microsoft Giano

I stumbled across this the other day, Giano, a simulation framework.

Included is a bunch of stuff, like a basic x86 / cepc (with Windows CE 6.0 image), an Xbox 360 emulator, a SPOT emulator, some eval boards (AT91EB63?) with both MIPS and ARM cpus that even include a doom kernel like experience! A Macintosh G5 (I wonder if it’d boot with Apple ROMS..?) Oh and..

A VAX.

The VAX code is taken from SIMH but I guess to show how extensible the framework is, they mashed in enough microvax to get it going.

SIMH in a way you’ve never seen it…

At any rate, here is some other screen shots of Giano in action….

CEPC

xbox 360 alpha test

xbox360 console

And of course….

Giano MIPS doom

DOOM

Also buried in there is a new MIPS variant, the emips along with a donated NetBSD port!

Sadly I had no luck running NetBSD….

Default: 0/ace(0,0)/netbsd
boot: 0/ace(1,0)/netbsd
Loading: 0/ace(1,0)/netbsd
5085072+70448=0x4eae14
Starting at 0x80020000

memory segment 0 start 00000000 size 10000000
memory segment 1 start 10000000 size 00100000
Too much memory in cluster 0, trimming memory to range 00000000..08000000
Too much memory, ignoring memory range 10000000..10100000
pmap_steal_memory: seg 0: 0x50b 0x50b 0x7fff 0x7fff
pmap_steal_memory: seg 0: 0x54b 0x54b 0x7fff 0x7fff
pmap_steal_memory: seg 0: 0x54d 0x54d 0x7fff 0x7fff
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008, 2009, 2010, 2011
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.

NetBSD 5.99.48 (RAMDISK) #0: Tue Mar 15 01:01:14 UTC 2011
[email protected]:/home/builds/ab/HEAD/emips/201103142200Z-obj/home/builds/ab/HEAD/src/sys/arch/emips/compile/RAMDISK
Xilinx ML50x (eMIPS)
total memory = 128 MB
avail memory = 120 MB
sysctl_createv: sysctl_create(no_sa_support) returned 22
mainbus0 (root)
cpu0 at mainbus0: Toshiba or Microsoft eMIPS CPU (0x70401) Rev. 1 with software emulated floating point
cpu0: 64 TLB entries
ebus0 at mainbus0
pid 0(system): trap: cpu0, TLB miss (load or instr. fetch) in kernel mode
status=0x2000000, cause=0x8, epc=0x8002d5c8, vaddr=0xd0000000
tf=0x8054cc78 ksp=0x8054cd18 ra=0x8002d5b8 ppl=0xd0000000
kernel: TLB miss (load or instr. fetch) trap
Stopped in pid 0.1 (system) at 0x8002d5c8: lw v0,0(s0)
db>

Maybe someone else will have better luck.

— edit, it seems Microsoft has a NetBSD 4.01 download, here. And it boots!