現在のステータス
動いているもの (デバイスドライバがあるもの)
- On-chip serial UARTS (epcom)
- On-chip 10/100 Ethernet (epe)
- On-chip timers (epclk)
- On-chip RTC (eprtk)
- GPIO (epgpio)
- Watchdog Timer (epwdt)
- I2C Controller Unit (a9iic)
- EEPROM (AT24C1) (seeprom)
- On-board LED (epled)
まだ動かないもの
- 特になし
ブートに関して
デフォルトのブートローダではkernelリージョンに1.4Mbytes程度しか書き込めません。ramdiskリージョンをつぶしてkernelリージョンにしたブートローダに差し替えることで大きなサイズのkernelを使うことができます。
ブートローダのソース
ブートローダのバイナリ
- ftp://ftp.nagoya.bug.gr.jp/pub/hamajima/armadillo210/loader-armadillo210.bin
- ftp://ftp.nagoya.bug.gr.jp/pub/hamajima/armadillo210/loader-armadillo210-ttyAM1.bin
- ftp://ftp.nagoya.bug.gr.jp/pub/hamajima/armadillo210/loader-armadillo210-notty.bin
こんな感じで書き込みます。
% hermit download -i loader-armadillo210.bin -r bootloader --force-locked
サンプルのkernel
- ftp://ftp.nagoya.bug.gr.jp/pub/hamajima/armadillo210/netbsd.bin.gz
- ユーザ名はnbug、パスワードはNetBSDを使います。rootになるにはsudoを使います。
- http://www.tokuda.net/NetBSD/Armadillo210/20071031/netbsd-ARMADILLO210_TINY.bin.gz
- 約1.4Mbytesの小さなkernelです
- 以下のパッチおよびソースの追加を行いbuild.shを使って作成しました
本家への取り込みの様子
- source-changesの2006-2-6の修正(1)
- source-changesの2006-2-6の修正(2)
- source-changesの2006-2-13の修正(1)
- source-changesの2006-2-13の修正(2)
ブート
以下はちょっと古いですがブート時のログです。
NetBSD/armadillo9 booting ... initarm: Configuring system ... physmemory: 2048 pages at 0xc0000000 -> 0xc07fffff Allocating page tables freestart = 0xc0018000, free_pages = 488 (0x000001e8) IRQ stack: p0xc01ea000 v0xc01ea000 ABT stack: p0xc01e2000 v0xc01e2000 UND stack: p0xc01da000 v0xc01da000 SVC stack: p0xc01d8000 v0xc01d8000 Creating L1 page table at 0xc01fc000 Mapping kernel pmap_map_chunk: pa=0xc0200000 va=0xc0200000 size=0x14b000 resid=0x14b000 prot=0x3 cache=1 SLLLLPPPPPPPPPPP pmap_map_chunk: pa=0xc034b000 va=0xc034b000 size=0x1c9000 resid=0x1c9000 prot=0x3 cache=1 PPPPPLLLLLLLLLLLSLPPPP Constructing L2 page tables pmap_map_chunk: pa=0xc01ea000 va=0xc01ea000 size=0x8000 resid=0x8000 prot=0x3 cache=1 PPPPPPPP pmap_map_chunk: pa=0xc01e2000 va=0xc01e2000 size=0x8000 resid=0x8000 prot=0x3 cache=1 PPPPPPPP pmap_map_chunk: pa=0xc01da000 va=0xc01da000 size=0x8000 resid=0x8000 prot=0x3 cache=1 PPPPPPPP pmap_map_chunk: pa=0xc01d8000 va=0xc01d8000 size=0x2000 resid=0x2000 prot=0x3 cache=1 PP pmap_map_chunk: pa=0xc01fc000 va=0xc01fc000 size=0x4000 resid=0x4000 prot=0x3 cache=2 PPPP pmap_map_chunk: pa=0xc01fb000 va=0xc01fb000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0xc01fa000 va=0xc01fa000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0xc01f9000 va=0xc01f9000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0xc01f8000 va=0xc01f8000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0xc01f7000 va=0xc01f7000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0xc01f6000 va=0xc01f6000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0xc01f5000 va=0xc01f5000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0xc01f4000 va=0xc01f4000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P pmap_map_chunk: pa=0xc01f3000 va=0xc01f3000 size=0x1000 resid=0x1000 prot=0x3 cache=2 P devmap: 80000000 -> 800fffff @ f0000000 pmap_map_chunk: pa=0x80000000 va=0xf0000000 size=0x100000 resid=0x100000 prot=0x3 cache=0 S devmap: 80800000 -> 809fffff @ f0100000 pmap_map_chunk: pa=0x80800000 va=0xf0100000 size=0x200000 resid=0x200000 prot=0x3 cache=0 SS devmap: 40000000 -> 4fffffff @ e0000000 pmap_map_chunk: pa=0x40000000 va=0xe0000000 size=0x10000000 resid=0x10000000 prot=0x3 cache=0 SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS SSSSSSSSSSSSSSSSSSSSSSSSSS devmap: 10000000 -> 13ffffff @ f0300000 pmap_map_chunk: pa=0x10000000 va=0xf0300000 size=0x4000000 resid=0x4000000 prot=0x3 cache=0 SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS devmap: 20000000 -> 23ffffff @ f4300000 pmap_map_chunk: pa=0x20000000 va=0xf4300000 size=0x4000000 resid=0x4000000 prot=0x3 cache=0 SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS freestart = 0xc0514000, free_pages = 748 (0x2ec) switching to new L1 page table @0xc01fc000...done! bootstrap done. init subsystems: stacks vectors undefined page pmap irq done. [ Kernel symbol table missing! ] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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 3.99.15 (ARMADILLO210) #0: Thu Feb 2 15:43:24 UTC 2006 root@mini:/usr/export/o/20060128/evbarm/sys/arch/evbarm/compile/ARMADILLO210 total memory = 32768 KB avail memory = 28572 KB mainbus0 (root) cpu0 at mainbus0: ARM920T rev 0 (ARM9TDMI core) cpu0: DC enabled IC enabled WB enabled EABT cpu0: 16KB/32B 64-way Instruction cache cpu0: 16KB/32B 64-way write-back-locking-A Data cache epsoc0 at mainbus0: Cirrus Logic EP93xx SoC rev E0 epsoc0: fclk 200.02 Mhz hclk 100.01 Mhz pclk 50.00 Mhz epclk0 at epsoc0 addr 0x80810000-0x8081008f intr 4 epgpio0 at epsoc0 addr 0x80840000-0x808400cb intr 59 gpio0 at epgpio0: port A: 8 pins gpio1 at epgpio0: port B: 8 pins gpio2 at epgpio0: port C: 8 pins gpio3 at epgpio0: port D: 8 pins gpio4 at epgpio0: port E: 8 pins gpio5 at epgpio0: port F: 8 pins gpio6 at epgpio0: port G: 8 pins gpio7 at epgpio0: port H: 8 pins epled0 at epgpio0: port E bit1 0 bit2 1 armadillo9iic0 at epgpio0: port B bit1 4 bit2 5 iic0 at armadillo9iic0: I2C bus seeprom0 at iic0 addr 0x50: AT24Cxx EEPROM epe0 at epsoc0 addr 0x80010000-0x8001ffff intr 39 epe0: MAC address 00:11:0c:03:00:21 lxtphy0 at epe0 phy 0: LXT971/2 10/100 media interface, rev. 2 lxtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto epcom0 at epsoc0 addr 0x808c0000-0x808c0fff intr 52 epcom0: console epcom1 at epsoc0 addr 0x808d0000-0x808d0fff intr 54 epwdog0 at epsoc0 addr 0x80940000-0x80940007 intr 36 eprtc0 at epsoc0 addr 0x80920000-0x8092010b intr 37 md0: internal 1700 KB image area boot device: <unknown> root on md0a dumps on md0b no file system for md0 (dev 0x1200) cannot mount root, error = 79 root device (default md0a): epe0 dump device: file system (default generic): nfs root on epe0 nfs_boot: trying BOOTP nfs_boot: BOOTP next-server: 192.168.100.32 nfs_boot: my_name=a210 nfs_boot: my_addr=192.168.100.81 nfs_boot: my_mask=255.255.255.0 root on mini:/usr/evbarm WARNING: clock lost 13192 days WARNING: CHECK AND RESET THE DATE! warning: no /dev/console init path (default /sbin/init): init: trying /sbin/init init: Creating mfs /dev (410 blocks, 1024 inodes) Enter pathname of shell or RETURN for /bin/sh: Terminal type? [unknown] Terminal type is unknown. We recommend creating a non-root account and using su(1) for root access. a210# ls .cshrc bin lib mnt sbin usr .profile dev libdata rescue stand var altroot etc libexec root tmp a210# uname -a NetBSD a210 3.99.15 NetBSD 3.99.15 (ARMADILLO210) #0: Thu Feb 2 15:43:24 UTC 2006 root@mini:/usr/export/o/20060128/evbarm/sys/arch/evbarm/compile/ARMADILLO210 evbarm a210#