Operating System
From Albatross
[edit]
Bootloader
FIXME
[edit]
Linux
I have got Linux (kernel 2.6.11-7) up and running on Snapper (but currently without NAND flash support). It uses the U-Boot bootloader, which, on power up, fetches a kernel over the network (using the TFTP protocol) and boots it.
The kernel mounts its root file system over the network (NFS-root).
U-Boot 1.1.2 (Mar 21 2005 - 16:35:44)
U-Boot code: A0400000 -> A0425FB8 BSS: -> A042A790
RAM Configuration:
Bank #0: a0000000 32 MB
Bank #1: a4000000 32 MB
Flash: 1 MB
Hit any key to stop autoboot: 0
Reflashing Altera FPGA using code at 0x00080000
Initializing FPGA....done
Uploading FPGA code......................................................done
54357 bytes uploaded successfully
FPGA programming complete
Using MAC Address 00:50:C2:41:A4:0A
Using MAC Address 00:50:C2:41:A4:0A
TFTP from server 192.168.2.3; our IP address is 192.168.2.6
Filename 'etc/Image'.
Load address: 0xa4000000
Loading: #################################################################
#################################################################
#################################################################
###########
done
Bytes transferred = 1050864 (1008f0 hex)
## Booting image at a4000000 ...
Image Name: Linux-2.6.11.7
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1050800 Bytes = 1 MB
Load Address: a0008000
Entry Point: a0008000
Verifying Checksum ... OK
OK
Starting kernel ...
Uncompressing Linux........................................................... \
.......... done, booting the kernel.
Linux version 2.6.11.7 (hugo@ubuntu-laptop) (gcc version 3.4.3) #138 Fri May 20
22:22:48 NZST 2005
CPU: XScale-PXA255 [69052d06] revision 6 (ARMv5TE)
CPU0: D VIVT undefined 5 cache
CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
Machine: Bluewater Systems Snapper
Ignoring unrecognised tag 0x54410008
Memory policy: ECC disabled, Data cache writeback
Memory clock: 99.53MHz (*27)
Run Mode clock: 199.07MHz (*2)
Turbo Mode clock: 199.07MHz (*1.0, inactive)
Msc0: 933877f8 (f6000008)
Msc1: 7f8c7ff0 (f600000c)
Msc2: 7ff0023c (f6000010)
mdcnfg: 1ab, mdrefr: 81e02f
cccr: 141
Built 1 zonelists
Kernel command line: console=ttyS0,115200 root=/dev/nfs ip=192.168.2.6:192.168.2.3 \
:192.168.2.251:255.255.255.0:albatross::off nfsroot=192.168.2.3:/home/hugo/Projects/ \
albatross-files/nfsroot,rsize=1024,wsize=1024
PID hash table entries: 512 (order: 9, 8192 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 32MB 32MB = 64MB total
Memory: 62576KB available (1763K code, 364K data, 76K init)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
softlockup thread 0 started up.
NET: Registered protocol family 16
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
NetWinder Floating Point Emulator V0.97 (double precision)
inotify device minor=63
ttyS0 at MMIO 0x40100000 (irq = 15) is a FFUART
ttyS1 at MMIO 0x40200000 (irq = 14) is a BTUART
ttyS2 at MMIO 0x40700000 (irq = 13) is a STUART
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
smc91x.c: v1.1, sep 22 2004 by Nicolas Pitre <nico@cam.org>
eth0: SMC91C11xFD (rev 1) at c680e300 IRQ 61 [nowait]
eth0: Ethernet addr: 00:50:c2:41:a4:0a
physmap flash device: 100000 at 0
RedBoot partition parsing not available
driver isp1362-hcd, 2005-04-04
isp1362-hcd isp1362-hcd.0: ISP1362 Host Controller
isp1362_hc_reset:
isp1362-hcd isp1362-hcd.0: new USB bus registered, assigned bus number 1
isp1362-hcd isp1362-hcd.0: irq 28, io mem 0x0c000000
isp1362_hc_start:
isp1362-hcd isp1362-hcd.0: ISP1362 Memory usage:
isp1362-hcd isp1362-hcd.0: ISTL: 2 * 256: 512 @ $0000:$0100
isp1362-hcd isp1362-hcd.0: INTL: 16 * ( 64+8): 1152 @ $0200
isp1362-hcd isp1362-hcd.0: ATL : 32 * ( 64+8): 2304 @ $0680
isp1362-hcd isp1362-hcd.0: USED/FREE: 3968 128
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ISP1362 Host Controller, irq 28
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.01:USB HID core driver
pegasus: v0.6.12 (2005/01/13), Pegasus/Pegasus II USB Ethernet driver
usbcore: registered new driver pegasus
mice: PS/2 mouse device common for all mice
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
NET: Registered protocol family 1
NET: Registered protocol family 17
eth0: link down
IP-Config: Complete:
device=eth0, addr=192.168.2.6, mask=255.255.255.0, gw=192.168.2.251,
host=albatross, domain=, nis-domain=(none),
bootserver=192.168.2.3, rootserver=192.168.2.3, rootpath=
Looking up port of RPC 100003/2 on 192.168.2.3
eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1
Looking up port of RPC 100005/1 on 192.168.2.3
VFS: Mounted root (nfs filesystem).
Freeing init memory: 76K
init started: BusyBox v1.00 (2005.05.19-07:34+0000) multi-call binary
System Initializing...
Mounting system filesystems...
Starting logging daemons...
Not programming FPGA - /etc/albatross.rbf doesn't exist
Setting up network...
Setting up I2C...
i2c /dev entries driver
i2c_adapter i2c-0: found device 0x02
i2c_adapter i2c-0: found device 0x03
i2c_adapter i2c-0: found device 0x04
i2c_adapter i2c-0: found device 0x05
i2c_adapter i2c-0: found device 0x06
i2c_adapter i2c-0: found device 0x07
i2c_adapter i2c-0: found device 0x08
i2c_adapter i2c-0: found device 0x09
i2c_adapter i2c-0: found device 0x0a
i2c_adapter i2c-0: found device 0x0b
i2c_adapter i2c-0: found device 0x0c
i2c_adapter i2c-0: found device 0x0d
i2c_adapter i2c-0: found device 0x0e
i2c_adapter i2c-0: found device 0x0f
i2c_adapter i2c-0: found device 0x10
i2c_adapter i2c-0: found device 0x11
i2c_adapter i2c-0: found device 0x12
i2c_adapter i2c-0: found device 0x13
i2c_adapter i2c-0: found device 0x14
i2c_adapter i2c-0: found device 0x15
i2c_adapter i2c-0: found device 0x16
i2c_adapter i2c-0: found device 0x17
i2c_adapter i2c-0: found device 0x18
i2c_adapter i2c-0: found device 0x19
i2c_adapter i2c-0: found device 0x1a
i2c_adapter i2c-0: found device 0x1b
i2c_adapter i2c-0: found device 0x1c
i2c_adapter i2c-0: found device 0x1d
i2c_adapter i2c-0: found device 0x1e
i2c_adapter i2c-0: found device 0x1f
i2c_adapter i2c-0: found device 0x20
i2c_adapter i2c-0: found device 0x21
i2c_adapter i2c-0: found device 0x22
i2c_adapter i2c-0: found device 0x23
i2c_adapter i2c-0: found device 0x24
i2c_adapter i2c-0: found device 0x25
i2c_adapter i2c-0: found device 0x26
i2c_adapter i2c-0: found device 0x27
i2c_adapter i2c-0: found device 0x28
i2c_adapter i2c-0: found device 0x29
i2c_adapter i2c-0: found device 0x2a
i2c_adapter i2c-0: found device 0x2b
i2c_adapter i2c-0: found device 0x2c
i2c_adapter i2c-0: found device 0x2d
i2c_adapter i2c-0: found device 0x2e
i2c_adapter i2c-0: found device 0x2f
i2c_adapter i2c-0: found device 0x30
i2c_adapter i2c-0: found device 0x31
i2c_adapter i2c-0: found device 0x32
i2c_adapter i2c-0: found device 0x33
i2c_adapter i2c-0: found device 0x34
i2c_adapter i2c-0: found device 0x35
i2c_adapter i2c-0: found device 0x36
i2c_adapter i2c-0: found device 0x37
i2c_adapter i2c-0: found device 0x38
i2c_adapter i2c-0: found device 0x39
i2c_adapter i2c-0: found device 0x3a
i2c_adapter i2c-0: found device 0x3b
i2c_adapter i2c-0: found device 0x3c
i2c_adapter i2c-0: found device 0x3d
i2c_adapter i2c-0: found device 0x3e
i2c_adapter i2c-0: found device 0x3f
i2c_adapter i2c-0: found device 0x40
i2c_adapter i2c-0: found device 0x41
i2c_adapter i2c-0: found device 0x42
i2c_adapter i2c-0: found device 0x43
i2c_adapter i2c-0: found device 0x44
i2c_adapter i2c-0: found device 0x45
i2c_adapter i2c-0: found device 0x46
i2c_adapter i2c-0: found device 0x47
i2c_adapter i2c-0: found device 0x48
i2c_adapter i2c-0: found device 0x49
i2c_adapter i2c-0: found device 0x4a
i2c_adapter i2c-0: found device 0x4b
i2c_adapter i2c-0: found device 0x4c
i2c_adapter i2c-0: found device 0x4d
i2c_adapter i2c-0: found device 0x4e
i2c_adapter i2c-0: found device 0x4f
i2c_adapter i2c-0: found device 0x50
i2c_adapter i2c-0: found device 0x51
i2c_adapter i2c-0: found device 0x52
i2c_adapter i2c-0: found device 0x53
i2c_adapter i2c-0: found device 0x54
i2c_adapter i2c-0: found device 0x55
i2c_adapter i2c-0: found device 0x56
i2c_adapter i2c-0: found device 0x57
i2c_adapter i2c-0: found device 0x58
i2c_adapter i2c-0: found device 0x59
i2c_adapter i2c-0: found device 0x5a
i2c_adapter i2c-0: found device 0x5b
i2c_adapter i2c-0: found device 0x5c
i2c_adapter i2c-0: found device 0x5d
i2c_adapter i2c-0: found device 0x5e
i2c_adapter i2c-0: found device 0x5f
i2c_adapter i2c-0: found device 0x60
i2c_adapter i2c-0: found device 0x61
i2c_adapter i2c-0: found device 0x62
i2c_adapter i2c-0: found device 0x63
i2c_adapter i2c-0: found device 0x64
i2c_adapter i2c-0: found device 0x65
i2c_adapter i2c-0: found device 0x66
i2c_adapter i2c-0: found device 0x67
i2c_adapter i2c-0: found device 0x68
i2c_adapter i2c-0: found device 0x69
i2c_adapter i2c-0: found device 0x6a
i2c_adapter i2c-0: found device 0x6b
i2c_adapter i2c-0: found device 0x6c
i2c_adapter i2c-0: found device 0x6d
i2c_adapter i2c-0: found device 0x6e
i2c_adapter i2c-0: found device 0x6f
i2c_adapter i2c-0: found device 0x70
i2c_adapter i2c-0: found device 0x71
i2c_adapter i2c-0: found device 0x72
i2c_adapter i2c-0: found device 0x73
i2c_adapter i2c-0: found device 0x74
i2c_adapter i2c-0: found device 0x75
i2c_adapter i2c-0: found device 0x76
i2c_adapter i2c-0: found device 0x77
i2c_adapter i2c-0: found device 0x78
i2c_adapter i2c-0: found device 0x79
i2c_adapter i2c-0: found device 0x7a
i2c_adapter i2c-0: found device 0x7b
i2c_adapter i2c-0: found device 0x7c
i2c_adapter i2c-0: found device 0x7d
i2c_adapter i2c-0: found device 0x7e
i2c_adapter i2c-0: found device 0x7f
Starting system supervision daemon...
Startup script (/etc/init.d/rc.sysinit) complete.
Starting ALBATROSS applications...
albatross login: root
Password:
Welcome to:
___ _ _____ ___ _____ _____ _____ _____ _____
/ | | | | _ \ / | |_ _| | _ \ / _ \ / ___/ / ___/
/ /| | | | | |_| | / /| | | | | |_| | | | | | | |___ | |___
/ / | | | | | _ { / / | | | | | _ / | | | | \___ \ \___ \
/ / | | | |___ | |_| | / / | | | | | | \ \ | |_| | ___| | ___| |
/_/ |_| |_____| |_____/ /_/ |_| |_| |_| \_\ \_____/ /_____/ /_____/
PCB revision 1.0, Linux 2.6.11-7 on Bluewater Systems SNAPPER.
/ # ls
Image dev home linuxrc proc sys usr
bin etc lib opt sbin tmp var
/ # busybox
BusyBox v1.00 (2005.05.19-07:34+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:
[, ash, basename, busybox, cat, chgrp, chmod, chown, chvt, clear,
cp, crond, date, dd, deallocvt, df, dirname, dmesg, echo, egrep,
env, expr, false, fgrep, find, getty, grep, gunzip, halt, hexdump,
hostname, id, ifconfig, inetd, init, insmod, kill, killall, klogd,
linuxrc, ln, logger, login, ls, lsmod, md5sum, mesg, mkdir, mknod,
mkswap, modprobe, more, mount, mv, openvt, passwd, ping, pivot_root,
poweroff, ps, pwd, reboot, renice, reset, rm, rmdir, rmmod, route,
sed, sh, sleep, sort, swapoff, swapon, sync, syslogd, tail, tar,
telnetd, test, tftp, time, touch, true, tty, umount, uname, uptime,
usleep, vi, xargs, yes, zcat
/ #
