Introduction
---------------------
This README file provides guideliness to compile successfully the 
Etherboot for Hyperstone.
This directory (src/arch/e1) contains the files that depend on 
Hyperstone's architecture. The header files that include the 
configuration of the system are based on Hyperstone's E132-XS 
development board. The can be very easily modified to support 
anyother configuration environment. 

Software Perquisites:
---------------------
The build environment requires a C compiler for the E1-32XS
processor. Normally you can simply install a cross-compiling tool
chain based on the GNU tools (that is binutils and gcc). If you
are running a Linux system on a x86 CPU then you can just download
the toolchain as a binary from Hyperstone's official web-site. The
binary distribution will untar the tools in the /usr/local/e1-coff
directory. On any other system you will need to build the tool
chain from the sources.

To compile successfully the following tools should be available:
 - GNU toolchain:
    - GCC ver 2.95.2 20030110 (release)         e1-coff-gcc -v
    - LD ver 2.12.90 20020726                   e1-coff-ld -V

Hardware Perquisites:
---------------------
The etherboot has been successfully tested in the E1-32XS
development board. A second serial device is initialized
to act as a console. The standard messages
are redirected to the console. Nevertheless, if one wants not
to use the serial console he may omit the corresponding switches
from the Config file located under "src/arch/e1/" directory.

On the E1-32XS board that was  used, a daughter-board was employed
to connect a second HyIce to the development board. Since the HyIce
embeds a standard 16550 device, the Etherboot's standard device 
driver is used.

The position of the jumpers of the development board in order to
initialize both the second HyIce and the Ethernet device is
depicted in the following table:

Jumper: Position
------:--------------
J3      1-2 (default)
J4      1-2 (default)
J13     5-6
J5      1-2 (default)
J6      1-2 & 3-4
J7      3-4
J9      1-2 (default)
J10     1-2
J11     3-4

Compilation
---------------------
In order to compile Etherboot for Hyperstone, the following steps should be followed:
1) Edit the main Makefile (located under "src" directory") and comment-out
the ARCH variable (by putting a "#" in front of it). Append the following line:
ARCH:=e1
2) Edit the Config file (the one located under "src" directory) and make sure that
the CFLAGS variable will contain *only* the following swithces:
CFLAGS+=	-DCONFIG_ISA
CFLAGS+=	-DBOOT_FIRST=BOOT_NIC
CFLAGS+=	-DALLOW_ONLY_ENCAPSULATED
CFLAGS+=	-DBACKOFF_LIMIT=7 -DCONGESTED
CFLAGS+=	-DCOFF_IMAGE 
CFLAGS+=	-DDOWNLOAD_PROTO_TFTP
Please note that extra or any other switches may cause failure of compilation!
3) type "make hyperstone" or "make coff"
4) the generated file will be located under the "src/bin" directory and will be called :
 "etherboot.coff". Now you may download it with usual way using e1-coff-gdb ..

Have Fun

Yannis Mitsos, George Thanos
{gmitsos,gthanos}@telecom.ntua.gr

