1 2xmboot boot loader for VMIPS 3============================ 4 5This is a serial-based boot loader which supports loading ECOFF 6executables, which can either be sent over a serial link using the 7XMODEM protocol, or linked with the boot loader. 8 9What's here: 10 11Makefile, Makefile.in - used to build boot.rom 12README - this file 13boot.c - command processor, entry point 14coff.c - procedures to interpret mips coff headers 15coff.h - data structures representing mips coff file & section headers 16lib.c - the "little C library" 17lib.h - public interface to lib.c 18serial.c, serial.h - interface between lib.c and serial device 19xmrcv.c - XMODEM receive code 20xmrcv.h - public interface to xmrcv.c 21panic.c - routine to catch exceptions and print a message 22bootenv.c, bootenv.h - environment processing 23boot.script.in - ld script used for setting up the booter. 24boot_setup.S - low level assembly code for booter; implements DECstation PROM 25 jump table and panic call. 26set_status.S, set_status.h - C routines for getting/setting the CP0 Status word 27 28scripts: 29vmips16M - script for running vmips with extra memory 30vmipsdec - script for running vmips with extra memory and DEC devices 31catrom - shell script that glues an ecoff executable to the booter. 32 (see vmips mailing list archives for details.) 33 34toys: 35loadtest* - hello world program; you can try loading this with the booter, 36 if you have an ecoff toolchain to compile it with. 37 38runtests - test driver (see below) 39tests that runtests runs: 40libtest.c - test suite for the little C library 41libtest.input - inputs to libtest.c 42libtest.output - expected outputs from libtest.c 43pftest.c - vmips-hosted tests for printf in little C library 44pftest.output - expected output from pftest.c 45testbootenv.c - test code for bootenv.c 46testbootenv.output - expected outputs from testbootenv.c 47 48 49Testing infrastructure for xmboot 50================================= 51 52How to test the booter: 53 * runtests is a shellscript that runs all the test programs. 54 * Run it with "sh runtests". 55 * It produces dejagnu-style output but does not use dejagnu. We'll 56 rewrite this later to work using dejagnu. 57 58What it currently runs: 59 * testbootenv, libtest and pftest (on host only!) 60 61Tests need to be written for the following modules: 62 * boot.c 63 * coff.c 64 * panic.c 65 * serial.c 66 * xmrcv.c 67 68Infrastructure work: 69 * These tests should be rewritten as dejagnu tests. The infrastructure 70 is probably pretty simple to write. One complication is that the tests 71 should be run on both the host and on vmips. 72 * In order to run tests unchanged under both vmips and the host, we would 73 like to handle main() correctly. This is already OK for C programs, all 74 we need to do is teach vmipstool to link in libgcc.a and implement an 75 atexit() that doesn't do anything. This will not be OK for C++ programs. 76 Then, maybe, the entry()/main() hack can go away, and maybe the mess of 77 ld.scripts in xmboot can go away, too. 78 79