1. Files in this directory
1MB-100MHZ.h Config defines for generating 1 MB SC, 100 MHz version
1MB-50MHZ.h Alternate version
4MB-100MHZ.h Alternate version
4MB-50MHZ.h Alternate version
IO6PROM.O Contains the IO6 test PROM objects (make io6)
IP27.O Contains the real PROM objects (make)
IP27GATE.O Contains the gate-level simulation PROM objects (make gate)
IP27SABLE.O Contains the Sable simulator PROM objects (make sable)
IP27RTL.O Contains the RTL simulator PROM objects (make rtl)
Todo List of things not to forget
bist.[ch] Built-in self test module
bist_hub.c Calls bist module with parameters for hub
bist_router.c Calls bist module with parameters for router
bist_router.txt Latest router BIST values from Bulent
cache.[sh] Primary and secondary cache initialization and test routines
cfg.h SN0net topology graph
config SN0net configuration information for Sable
discover.[ch] Recursive network topology discovery algorithm
entry.s PROM entry point
Does some testing and initialization and tries to jump
to C as soon as possible. When it jumps to C, memory is
still uninitialized, so the stack is running out of the
cache. When running on the RTL simulator, cache testing,
invalidation, and stack init are skipped.
fprom.[ch] Flash PROM programming support (also generic read/write)
hub.[ch] Generic hub routines, including lock and barrier
hubint.[ch] Hub interrupt module (set/clear/test, plus test procedures)
hubuart.[ch] Hub UART routines. This is not actually a UART per se.
It's a debugging port for which Sable and RTL simulators
have support. Also, there may be support for connectivity
on the MD junk bus.
io6entry.s Entry() for test "hello world" io6 prom to test segment loader
io6prom.c Main() for test "hello world" io6 prom to test segment loader
io6prom Binary for test io6 prom (make io6)
ioc3uart.[ch] IOC3 ASIC UART routines -- the real console UART.
ip27config.h Config structure used by HW and SW, at PROM offset 0x60
ip27prom.h Main PROM header file
sn0net.[ch] Routines to perform vector reads and writes (to the NI
space of remote hubs and the local block of routers)
libasm.[sh] Miscellaneous assembly blips. get_char uses lwl to read
one character out of the PROM because all PROM reads
must be double-word.
main.c Main boot procedure, called from entry().
mdir.[ch] Code for testing, initializing, and managing the MD
(memory/directory) portion of the hub.
mdir_asm.s Fast assembly support routines for mdir module
mpsable.key Key file for running Sable multi-processor.
Sable is picky and will dump if key file isn't perfect.
nic.[ch] Code for reading the Dallas number-in-a-can
Hopefully generalized sufficiently to work for hubs,
routers, crossbows, etc. By Bob Marinelli.
pod_main.c Main command prompt
prom_leds.h State values and error values indicating progress on
system LEDs. There are 8 discreet LEDs for CPU A and
8 for CPU B (the system controller has 4 seven-segment
LEDs and must be dealt with through IIC).
refall Shell script to generate out_[0-3] from strace_[0-3].
router.[ch] Code for dealing with remote routers
Utilizes sn0net.c to talk to them.
rtc.[sh] Assembly code for operations having to do with the
real-time counter in the Hub. The counter speed is
configurable, max 10 MHz. We'll probably fix it at
10 MHz.
sable.key KEy file for running Sable uni-processor.
segldr.[ch] Segment loader module
start.s Section linked at the start of PROM containing boot
vectors and CPU mode bits
tlb.[sh] TLB management routines
unzip.[ch] Gzip decompressor module
go Shell script for running UP Sable, redirects stderr since
a lot of extraneous cache messages are cluttering it.
gomp Shell script for running MP Sable
sable.mp Last known good Sable for MP
sable.ok Last known good Sable for UP
syscuart.[ch] System controller UART routines
testing.c Contains code to test various subsystems (fprom, mdir,
sn0net). Right now it assumes Mike Woodacre's 4-node,
2-router model. Each CPU checks what node it is and then
does a different kind of test. The node IDs are
hardwired to 0 through 3 in the model.
zero_csum Perl script that stamps an ELF binary with a value so
the byte checksum of the loadable portion will be zero.
2. Makefile targets
make
Creates IP27.O/ip27-1MB-100MHZ,
IP27.O/ip27prom-1MB-100MHZ.hex,
IP27.O/ip27prom-1MB-100MHZ.nm
Also may create other versions
make sable
Creates ./sableprom
make rtl
Creates ./rtlprom
make gate
Creates ./gateprom
make io6
Creates ./io6prom
make ioprom.hub0
Creates io6prom and makes ioprom.hub0 for Sable