diff options
| author | Michael Brown | 2006-03-17 15:13:09 +0100 |
|---|---|---|
| committer | Michael Brown | 2006-03-17 15:13:09 +0100 |
| commit | b2909e547d78d5441b7e88e862c0e00541d3a5f0 (patch) | |
| tree | 713f2c6be0a71a68b415dfe57493cb6770fac908 /src/arch/e1 | |
| parent | GPXE code cleanup and purge. (diff) | |
| download | ipxe-b2909e547d78d5441b7e88e862c0e00541d3a5f0.tar.gz ipxe-b2909e547d78d5441b7e88e862c0e00541d3a5f0.tar.xz ipxe-b2909e547d78d5441b7e88e862c0e00541d3a5f0.zip | |
They can come back when they have someone to support them.
Diffstat (limited to 'src/arch/e1')
27 files changed, 0 insertions, 1551 deletions
diff --git a/src/arch/e1/Config b/src/arch/e1/Config deleted file mode 100644 index 69a7a9783..000000000 --- a/src/arch/e1/Config +++ /dev/null @@ -1,7 +0,0 @@ -# Config for e1 Etherboot -# - -CFLAGS+= -mgnu-param -DCONSOLE_SERIAL -DCOMCONSOLE=0x01C00000 -DCONSPEED=28800 -CFLAGS+= -DSIZEINDICATOR -DNO_DHCP_SUPPORT -DBAR_PROGRESS -#CFLAGS+= -DEMBEDDED -DMAC_HW_ADDR_DRV="'H','Y','L','N','X','1'" - diff --git a/src/arch/e1/Makefile b/src/arch/e1/Makefile deleted file mode 100644 index a7c6f3b81..000000000 --- a/src/arch/e1/Makefile +++ /dev/null @@ -1,70 +0,0 @@ -ARCH_FORMAT= coff-e1 - -BUILD_ROMS= $(ROMS) -BUILD_COFFS= $(patsubst %img, %coff, $(IMGS)) -SUFFIXES+= rom zrom coff - -CC= e1-coff-gcc -AS= e1-coff-as -LD= e1-coff-ld -SIZE= e1-coff-size -AR= e1-coff-ar -RANLIB= e1-coff-ranlib -OBJCOPY=e1-coff-objcopy - -# DMAC_HW_ADDR_DRV holds the ethernet's MAC address. It is passed as -# flag to the low level driver instead of reading it from an -# external EEPROM, which we do not have! -EXTRA_CFLAGS = -DEMBEDDED -DMAC_HW_ADDR_DRV="'H','Y','L','N','X','1'" - -START= $(BIN)/start.o -START16= $(BIN)/start.o - -SRCS+= arch/e1/core/e132_xs.c -SRCS+= arch/e1/core/e1_timer.c -SRCS+= arch/e1/core/longjmp.c -SRCS+= arch/e1/core/memcmp.S -SRCS+= arch/e1/core/memcpy.S -SRCS+= arch/e1/core/memset.S -SRCS+= arch/e1/core/setjmp.c -SRCS+= arch/e1/core/strcmp.S -SRCS+= arch/e1/core/start.S - -ROMLIMIT:=3276800 - -include $(BIN)/Roms - -ROMS= $(BIN)/cs89x0.rom -IMGS= $(BIN)/cs89x0.img - -#allfiles: $(BUILD_ROMS) -all: $(BUILD_COFFS) - -BOBJS+= $(BIN)/e1_timer.o -BOBJS+= $(BIN)/memcmp.o $(BIN)/memcpy.o $(BIN)/memset.o -BOBJS+= $(BIN)/setjmp.o $(BIN)/longjmp.o -BOBJS+= $(BIN)/e132_xs.o - -# Utilities - -$(BIN)/nrv2b: util/nrv2b.c - $(HOST_CC) -O2 -DENCODE -DDECODE -DMAIN -DVERBOSE -DNDEBUG -DBITSIZE=32 -DENDIAN=0 -o $@ $< - -# Pattern Rules -# General for compiling/assembly source files -$(BIN)/cs89x0.o: drivers/net/cs89x0.c $(MAKEDEPS) - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $< -# With the current tools we have problem with the compilation -# of the vsprintf file when the -O2 is selected. So we compile -# the aforemntioned file with -O1 !!! -$(BIN)/vsprintf.o: core/vsprintf.c $(MAKEDEPS) - $(CC) $(CFLAGS) -O1 -o $@ -c $< - -$(BIN)/%.o: arch/e1/core/%.c $(MAKEDEPS) - $(CC) $(CFLAGS) -o $@ -c $< - -$(BIN)/%.o: arch/e1/core/%.S $(MAKEDEPS) - $(CPP) $(CFLAGS) -D ASSEMBLY $< | $(AS) $(ASFLAGS) -o $@ - -$(BIN)/%.coff: $(BIN)/%.tmp $(MAKEDEPS) - mv $< $(BIN)/etherboot.coff diff --git a/src/arch/e1/Makefile.working b/src/arch/e1/Makefile.working deleted file mode 100644 index a0ebefe51..000000000 --- a/src/arch/e1/Makefile.working +++ /dev/null @@ -1,67 +0,0 @@ -ARCH_FORMAT= coff-e1 - -CC= e1-coff-gcc -AS= e1-coff-as -LD= e1-coff-ld -SIZE= e1-coff-size -AR= e1-coff-ar -RANLIB= e1-coff-ranlib -OBJCOPY=e1-coff-objcopy - -EXTRA_CFLAGS = -DEMBEDDED -DMAC_HW_ADDR_DRV="'H','Y','L','N','X','1'" - -BUILD_ROMS= $(ROMS) -BUILD_COFFS= $(BIN)/cs89x0.coff -#BUILD_COFFS= $(patsubst %img, %coff, $(IMGS)) - -START= $(BIN)/start.o -START16= $(BIN)/start.o - -#SRCS+= arch/e1/core/coff_loader.c -SRCS+= arch/e1/core/e132_xs.c -SRCS+= arch/e1/core/e1_timer.c -SRCS+= arch/e1/core/longjmp.c -SRCS+= arch/e1/core/memcmp.S -SRCS+= arch/e1/core/memcpy.S -SRCS+= arch/e1/core/memset.S -SRCS+= arch/e1/core/setjmp.c -SRCS+= arch/e1/core/strcmp.S -SRCS+= arch/e1/core/start.S - -ROMLIMIT:=3276800 - -include $(BIN)/Roms - -hyperstone: $(BUILD_COFFS) -coff: $(BUILD_COFFS) - -BOBJS+= $(BIN)/e1_timer.o -BOBJS+= $(BIN)/memcmp.o $(BIN)/memcpy.o $(BIN)/memset.o -BOBJS+= $(BIN)/setjmp.o $(BIN)/longjmp.o -BOBJS+= $(BIN)/e132_xs.o - -# Utilities - -$(BIN)/nrv2b: util/nrv2b.c - $(HOST_CC) -O2 -DENCODE -DDECODE -DMAIN -DVERBOSE -DNDEBUG -DBITSIZE=32 -DENDIAN=0 -o $@ $< - -# Pattern Rules -# General for compiling/assembly source files - -$(BIN)/cs89x0.o: drivers/net/cs89x0.c $(MAKEDEPS) - $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ -c $< -# With the current tools we have problem with the compilation -# of the vsprintf file when the -O2 is selected. So we compile -# the aforemntioned file with -O1 !!! -$(BIN)/vsprintf.o: core/vsprintf.c $(MAKEDEPS) - $(CC) $(CFLAGS) -O1 -o $@ -c $< - -$(BIN)/%.o: arch/e1/core/%.c $(MAKEDEPS) - $(CC) $(CFLAGS) -o $@ -c $< - -$(BIN)/%.o: arch/e1/core/%.S $(MAKEDEPS) - $(CPP) $(CFLAGS) -D ASSEMBLY $< | $(AS) $(ASFLAGS) -o $@ - -$(BIN)/%.coff: $(BIN)/%.tmp $(MAKEDEPS) - mv $< $(BIN)/etherboot.coff - diff --git a/src/arch/e1/README b/src/arch/e1/README deleted file mode 100644 index cdf676a8b..000000000 --- a/src/arch/e1/README +++ /dev/null @@ -1,80 +0,0 @@ -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 - diff --git a/src/arch/e1/core/coff_loader.c b/src/arch/e1/core/coff_loader.c deleted file mode 100644 index d628e5eda..000000000 --- a/src/arch/e1/core/coff_loader.c +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright 2003 Yannis Mitsos and George Thanos - * {gmitsos@gthanos}@telecom.ntua.gr - * Released under GPL2, see the file COPYING in the top directory - * COFF loader is based on the source code of the ELF loader. - * - */ -#include "coff.h" - -#define COFF_DEBUG 0 - -typedef struct { - COFF_filehdr coff32; - COFF_opthdr opthdr32; - union { - COFF_scnhdr scnhdr32[1]; - unsigned char dummy[1024]; - } p; - unsigned long curaddr; - signed int segment; /* current segment number, -1 for none */ - unsigned int loc; /* start offset of current block */ - unsigned int skip; /* padding to be skipped to current segment */ - unsigned long toread; /* remaining data to be read in the segment */ -}coff_state; - -coff_state cstate; - -static sector_t coff32_download(unsigned char *data, unsigned int len, int eof); -static inline os_download_t coff_probe(unsigned char *data, unsigned int len) -{ - unsigned long phdr_size; - - if (len < (sizeof(cstate.coff32)+ sizeof(cstate.opthdr32))) { - return 0; - } - memcpy(&cstate.coff32, data, (sizeof(cstate.coff32)+sizeof(cstate.opthdr32))); - - if ((cstate.coff32.f_magic != EM_E1) || - (cstate.opthdr32.magic != O_MAGIC)){ - return 0; - } - printf("(COFF"); - printf(")... \n"); - - if (cstate.coff32.f_opthdr == 0){ - printf("No optional header in COFF file, cannot find the entry point\n"); - return dead_download; - } - - phdr_size = cstate.coff32.f_nscns * sizeof(cstate.p.scnhdr32); - if (sizeof(cstate.coff32) + cstate.coff32.f_opthdr + phdr_size > len) { - printf("COFF header outside first block\n"); - return dead_download; - } - - memcpy(&cstate.p.scnhdr32, data + (sizeof(cstate.coff32) + cstate.coff32.f_opthdr), phdr_size); - - /* Check for Etherboot related limitations. Memory - * between _text and _end is not allowed. - * Reasons: the Etherboot code/data area. - */ - for (cstate.segment = 0; cstate.segment < cstate.coff32.f_nscns; cstate.segment++) { - unsigned long start, mid, end, istart, iend; - - if ((cstate.p.scnhdr32[cstate.segment].s_flags != S_TYPE_TEXT) && - (cstate.p.scnhdr32[cstate.segment].s_flags != S_TYPE_DATA) && - (cstate.p.scnhdr32[cstate.segment].s_flags != S_TYPE_BSS)){ /* Do we realy need to check the BSS section ? */ -#ifdef COFF_DEBUG - printf("Section <%s> in not a loadable section \n",cstate.p.scnhdr32[cstate.segment].s_name); -#endif - continue; - } - - start = cstate.p.scnhdr32[cstate.segment].s_paddr; - mid = start + cstate.p.scnhdr32[cstate.segment].s_size; - end = start + cstate.p.scnhdr32[cstate.segment].s_size; - - /* Do we need the following variables ? */ - istart = 0x8000; - iend = 0x8000; - - if (!prep_segment(start, mid, end, istart, iend)) { - return dead_download; - } -} - cstate.segment = -1; - cstate.loc = 0; - cstate.skip = 0; - cstate.toread = 0; - return coff32_download; -} - -extern int mach_boot(unsigned long entry_point); -static sector_t coff32_download(unsigned char *data, unsigned int len, int eof) -{ - unsigned long skip_sectors = 0; - unsigned int offset; /* working offset in the current data block */ - int i; - - offset = 0; - do { - if (cstate.segment != -1) { - if (cstate.skip) { - if (cstate.skip >= len - offset) { - cstate.skip -= len - offset; - break; - } - offset += cstate.skip; - cstate.skip = 0; - } - - if (cstate.toread) { - unsigned int cplen; - cplen = len - offset; - if (cplen >= cstate.toread) { - cplen = cstate.toread; - } - memcpy(phys_to_virt(cstate.curaddr), data+offset, cplen); - cstate.curaddr += cplen; - cstate.toread -= cplen; - offset += cplen; - if (cstate.toread) - break; - } - } - - /* Data left, but current segment finished - look for the next - * segment (in file offset order) that needs to be loaded. - * We can only seek forward, so select the program headers, - * in the correct order. - */ - cstate.segment = -1; - for (i = 0; i < cstate.coff32.f_nscns; i++) { - - if ((cstate.p.scnhdr32[i].s_flags != S_TYPE_TEXT) && - (cstate.p.scnhdr32[i].s_flags != S_TYPE_DATA)) - continue; - if (cstate.p.scnhdr32[i].s_size == 0) - continue; - if (cstate.p.scnhdr32[i].s_scnptr < cstate.loc + offset) - continue; /* can't go backwards */ - if ((cstate.segment != -1) && - (cstate.p.scnhdr32[i].s_scnptr >= cstate.p.scnhdr32[cstate.segment].s_scnptr)) - continue; /* search minimum file offset */ - cstate.segment = i; - } - - if (cstate.segment == -1) { - /* No more segments to be loaded, so just start the - * kernel. This saves a lot of network bandwidth if - * debug info is in the kernel but not loaded. */ - goto coff_startkernel; - break; - } - cstate.curaddr = cstate.p.scnhdr32[cstate.segment].s_paddr; - cstate.skip = cstate.p.scnhdr32[cstate.segment].s_scnptr - (cstate.loc + offset); - cstate.toread = cstate.p.scnhdr32[cstate.segment].s_size; -#if COFF_DEBUG - printf("PHDR %d, size %#lX, curaddr %#lX\n", - cstate.segment, cstate.toread, cstate.curaddr); -#endif - } while (offset < len); - - cstate.loc += len + (cstate.skip & ~0x1ff); - skip_sectors = cstate.skip >> 9; - cstate.skip &= 0x1ff; - - if (eof) { - unsigned long entry; -coff_startkernel: - entry = cstate.opthdr32.entry; - done(); - mach_boot(entry); - } - return skip_sectors; -} diff --git a/src/arch/e1/core/e132_xs.c b/src/arch/e1/core/e132_xs.c deleted file mode 100644 index cc4eaae2d..000000000 --- a/src/arch/e1/core/e132_xs.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2003 Yannis Mitsos and George Thanos - * {gmitsos@gthanos}@telecom.ntua.gr - * Released under GPL2, see the file COPYING in the top directory - * - */ -#include "hooks.h" -#include "io.h" -#include "etherboot.h" -#include "e132_xs_board.h" - -unsigned int io_periph[NR_CS] = {[0 ... NR_CS-1] = 0 }; - -/* -void arch_main(struct Elf_Bhdr *ptr __unused) -{ - -} -*/ - -void init_peripherals(void) -{ - int i; - - for(i=0; i< NR_CS; i++){ - io_periph[i]= (SLOW_IO_ACCESS | i << 22); - } - - io_periph[ETHERNET_CS] = (io_periph[ETHERNET_CS] | 1 << IOWait); - - asm volatile(" - ori SR, 0x20 - movi FCR, 0x66ffFFFF" - : - :); -} - -struct meminfo meminfo; -void get_memsizes(void) -{ -/* We initialize the meminfo structure - * according to our development board's specs - * We do not have a way to automatically probe the - * memspace instead we initialize it manually - */ - meminfo.basememsize = BASEMEM; - meminfo.memsize = SDRAM_SIZE; - meminfo.map_count = NR_MEMORY_REGNS; - - meminfo.map[0].addr = SDRAM_BASEMEM; - meminfo.map[0].size = SDRAM_SIZE; - meminfo.map[0].type = E820_RAM; - meminfo.map[1].addr = SRAM_BASEMEM; - meminfo.map[1].size = SRAM_SIZE; - meminfo.map[1].type = E820_RAM; - meminfo.map[2].addr = IRAM_BASEMEM; - meminfo.map[2].size = IRAM_SIZE; - meminfo.map[2].type = E820_RAM; -} - -int mach_boot(register unsigned long entry_point) -{ - asm volatile( - "mov PC, %0" - : /* no outputs */ - : "l" (entry_point) ); - return 0; /* We should never reach this point ! */ - -} - diff --git a/src/arch/e1/core/e1_timer.c b/src/arch/e1/core/e1_timer.c deleted file mode 100644 index 4ed9a0fbc..000000000 --- a/src/arch/e1/core/e1_timer.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2003 Yannis Mitsos and George Thanos - * {gmitsos@gthanos}@telecom.ntua.gr - * Released under GPL2, see the file COPYING in the top directory - * - */ -#include "etherboot.h" -#include "timer.h" -#include "e132_xs_board.h" -#include "init.h" - -/* get timer returns the contents of the timer */ -static inline unsigned long get_timer(void) -{ - unsigned long result; - __asm__ __volatile__(" - ORI SR, 0x20 - mov %0, TR" - : "=l"(result)); - return result; -} - -/* ------ Calibrate the TSC ------- - * Time how long it takes to excute a loop that runs in known time. - * And find the convertion needed to get to CLOCK_TICK_RATE - */ - -static unsigned long configure_timer(void) -{ - unsigned long TPR_value; /* Timer Prescalar Value */ - - TPR_value = 0x000C00000; - - asm volatile (" - FETCH 4 - ORI SR, 0x20 - MOV TPR, %0 - ORI SR, 0x20 - MOVI TR, 0x0" - : /* no outputs */ - : "l" (TPR_value) - ); - - printf("The time prescaler register is set to: <%#x>\n",TPR_value); - return (1); -} - -static unsigned long clocks_per_tick; - -static void setup_timers(void) -{ - if (!clocks_per_tick) { - clocks_per_tick = configure_timer(); - } -} - -unsigned long currticks(void) -{ - return get_timer()/clocks_per_tick; -} - -static unsigned long timer_timeout; -static int __timer_running(void) -{ - return get_timer() < timer_timeout; -} - -void udelay(unsigned int usecs) -{ - unsigned long now; - now = get_timer(); - timer_timeout = now + usecs * ((clocks_per_tick * TICKS_PER_SEC)/(1000*1000)); - while(__timer_running()); -} -void ndelay(unsigned int nsecs) -{ - unsigned long now; - now = get_timer(); - timer_timeout = now + nsecs * ((clocks_per_tick * TICKS_PER_SEC)/(1000*1000*1000)); - while(__timer_running()); -} - -void load_timer2(unsigned int timer2_ticks) -{ - unsigned long now; - unsigned long clocks; - now = get_timer(); - clocks = timer2_ticks * ((clocks_per_tick * TICKS_PER_SEC)/CLOCK_TICK_RATE); - timer_timeout = now + clocks; -} - -int timer2_running(void) -{ - return __timer_running(); -} - -INIT_FN ( INIT_TIMERS, setup_timers, NULL, NULL ); diff --git a/src/arch/e1/core/etherboot.lds b/src/arch/e1/core/etherboot.lds deleted file mode 100644 index 75d2dba11..000000000 --- a/src/arch/e1/core/etherboot.lds +++ /dev/null @@ -1,126 +0,0 @@ -/* Default linker script, for normal executables */ -OUTPUT_FORMAT("coff-e1-big") -MEMORY - { - romvec : ORIGIN = 0x2000000, LENGTH = 0x0000400 - flash : ORIGIN = 0xE0000000, LENGTH = 0x20000 - eflash : ORIGIN = 0x2200000, LENGTH = 0x20000 - ram : ORIGIN = 0x00000000, LENGTH = 0x1000000 - eram16MB : ORIGIN = 0x01000000, LENGTH = 0 - sram : ORIGIN = 0x40000000, LENGTH = 0x40000 - iram : ORIGIN = 0xC0000000, LENGTH = 0x4000 - } - -SEARCH_DIR("/usr/local/e1-coff/lib"); -ENTRY(Main) -MEM0start = 0x00000000; -MEM0size = 0x40000000; -MEM1start = 0x40000000; -MEM1size = 0x40000000; -MEM2start = 0x80000000; -MEM2size = 0x40000000; -IRAMstart = 0xC0000000; -IRAMsize = 0x20000000; -MEM3start = 0xE0000000; -MEM3size = 0x20000000; -Stack1Reserve = 560; -_Stack1Size = DEFINED(_Stack1Size)? _Stack1Size : 1*1024; -_Stack2Size = DEFINED(_Stack2Size)? _Stack2Size : 16*1024; -_Stack1Base = DEFINED(_Stack1Base)? _Stack1Base : __bss_end__; -_Stack2Base = DEFINED(_Stack2Base)? _Stack2Base : __bss_end__ + _Stack1Size + Stack1Reserve; -_Mem0HeapBase = DEFINED(_Mem0HeapBase)? _Mem0HeapBase : _Stack2Base + _Stack2Size; -_Mem1HeapBase = DEFINED(_Mem1HeapBase)? _Mem1HeapBase : 0; -Priority = DEFINED(Priority) ? Priority : 31; -TextBase = DEFINED(TextBase) ? TextBase : 0xa00000; -SECTIONS -{ - .G6 (DEFINED(G6Base) ? G6Base : 0x9000) : { - *(.G6) - } - .G7 (DEFINED(G7Base) ? G7Base : 0x40001000) : { - *(.G7) - } - .G8 (DEFINED(G8Base) ? G8Base : 0xC0000000) : { - *(.G8) - } - .G9 (DEFINED(G9Base) ? G9Base : 0) : { - *(.G9) - } - .G10 (DEFINED(G10Base) ? G10Base : 0) : { - *(.G10) - } - .G11 (DEFINED(G11Base) ? G11Base : 0) : { - *(.G11) - } - .G12 (DEFINED(G12Base) ? G12Base : 0) : { - *(.G12) - } - .G13 (DEFINED(G13Base) ? G13Base : 0) : { - *(.G13) - } - - .text TextBase : { - __virt_start = .; - __text = . ; - *(.text) - *(.fini) - . = ALIGN(16); - _isa_drivers = . ; - *(.drivisa); - _isa_drivers_end = . ; - . = ALIGN(16); - - *(.init) - _etext = . ; - /* _init = DEFINED(_init) ? _init : 0; */ - /* _fini = DEFINED(_fini) ? _fini : 0; */ - /* _argc = DEFINED(_argc) ? _argc : 0; */ - /* _argv = DEFINED(_argv) ? _argv : 0; */ - /* _envp = DEFINED(_envp) ? _envp : 0; */ - /* _hwinit = DEFINED(_hwinit) ? _hwinit : 0; */ - /* _atexit = DEFINED(_atexit) ? _atexit : 0; */ - G6Size = SIZEOF(.G6); - G7Size = SIZEOF(.G7); - G8Size = SIZEOF(.G8); - G9Size = SIZEOF(.G9); - G10Size = SIZEOF(.G10); - G11Size = SIZEOF(.G11); - G12Size = SIZEOF(.G12); - G13Size = SIZEOF(.G13); - -} - - .data SIZEOF(.text) + ADDR(.text) : { - *(.data) - _edata = . ; -} - - .bss SIZEOF(.data) + ADDR(.data) : - { - __bss_start__ = ALIGN( 0x10 ) ; - __bss = . ; - *(.bss) - *(COMMON) - __end = . ; - __bss_end__ = ALIGN( 0x10 ) ; - __ebss = . ; - } - -.eram16MB : - { - ___ramend = . - 0x7000; - } > eram16MB - - .stab 0 (NOLOAD) : - { - [ .stab ] - } - .stabstr 0 (NOLOAD) : - { - [ .stabstr ] - } - _GOT_ 0 (NOLOAD) : - { - [ _GOT_ ] - } -} diff --git a/src/arch/e1/core/longjmp.c b/src/arch/e1/core/longjmp.c deleted file mode 100644 index 1665f07d4..000000000 --- a/src/arch/e1/core/longjmp.c +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2003 Yannis Mitsos and George Thanos - * {gmitsos@gthanos}@telecom.ntua.gr - * Released under GPL2, see the file COPYING in the top directory - * - */ -#include "setjmp.h" - -unsigned long jmpbuf_ptr; - -void longjmp(jmp_buf state, int value ) -{ - if(!value) - state->__jmpbuf->ReturnValue = 1; - else - state->__jmpbuf->ReturnValue = value; - - jmpbuf_ptr = (unsigned long)state; - -#define _state_ ((struct __jmp_buf_tag*)jmpbuf_ptr) - asm volatile("mov L0, %0\n\t" - "mov L1, %1\n\t" - "mov L2, %2\n\t" - "mov G3, %3\n\t" - "mov G4, %4\n\t" - "ret PC, L1\n\t" - :/*no output*/ - :"l"(_state_->__jmpbuf->ReturnValue), - "l"(_state_->__jmpbuf->SavedPC), - "l"(_state_->__jmpbuf->SavedSR), - "l"(_state_->__jmpbuf->G3), - "l"(_state_->__jmpbuf->G4) - :"%G3", "%G4", "%L0", "%L1" ); -#undef _state_ -} diff --git a/src/arch/e1/core/memcmp.S b/src/arch/e1/core/memcmp.S deleted file mode 100644 index 2347317a0..000000000 --- a/src/arch/e1/core/memcmp.S +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Derived from the Hyperstone's library source code. - * Modefied src in order to apply the -mgnu-param compiler option. - * Copyright (C) 2002-2003 GDT, Yannis Mitsos <gmitsos@telecom.ntua.gr> - * George Thanos <gthanos@telecom.ntua.gr> - */ - .text - .align 2 - .global _memcmp - -;ENTRY (_memcmp) -_memcmp: - FRAME L9, L3 # get incoming parameters - CMPBI L2,3 # check word alignment - BNZ byte_compare - CMPBI L1,3 # check word alignment - BNZ byte_compare - -double_compare: - ADDI L0, -8 - BLT is_equal - LDD.P L1, L5 - LDD.P L2, L7 - SUB L5, L7 - DBNZ corr_8 - SUB L6, L8 - BZ double_compare - ADDI L0, 4 - ADDI L2, -4 - ADDI L1, -4 - BR byte_compare - -corr_8: ADDI L0, 8 - ADDI L2, -8 - ADDI L1, -8 -byte_compare: - ADDI L0, -1 - BLT equal - LDBU.N L2, L5, 1 # Load and compare bytes - LDBU.N L1, L6, 1 - SUB L5, L6 - BZ byte_compare - MOV L2, L5 - RET PC, L3 - -is_equal: CMPI L0, -8 - DBNE byte_compare - ADDI L0, 8 -equal: - MOVI L2, 0 - RET PC, L3 - - .END - diff --git a/src/arch/e1/core/memcpy.S b/src/arch/e1/core/memcpy.S deleted file mode 100644 index 0581c9d14..000000000 --- a/src/arch/e1/core/memcpy.S +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Derived from the Hyperstone's library source code. - * Modefied src in order to apply the -mgnu-param compiler option. - * Copyright (C) 2002-2003 GDT, Yannis Mitsos <gmitsos@telecom.ntua.gr> - * George Thanos <gthanos@telecom.ntua.gr> - */ - .text - .align 2 - .global _memcpy -;ENTRY(_memcpy) -_memcpy: - FRAME L8, L3 - MOV L7, L2 # Save for return - -#***************************** -# Perform byte copy if both -# not on a word alignment -#***************************** - CMPBI L2, 3 # check word alignment - BNZ mem_except - CMPBI L1, 3 # check word alignment - BNZ mem_except - -#***************************** -# Copy Double,Word,Halfword, -# then byte -#***************************** -DBL_LOOP: - CMPI L0, 8 # Copy Doubles - BLT DO_WORD - LDD.P L1, L5 - ADDI L0, -8 - DBR DBL_LOOP - STD.P L2, L5 - -DO_WORD: - CMPI L0, 4 # Copy leftover word - BLT DO_HALF - LDW.P L1, L5 - ADDI L0, -4 - DBZ DONE # Done if L0 is 0 - STW.P L2, L5 - -DO_HALF: - CMPI L0, 2 # Copy leftover byte - BLT DO_BYTE - LDHU.N L1, L5, 2 - ADDI L0, -2 - DBZ DONE # Done if L0 is 0 - STHU.N L2, L5, 2 - -DO_BYTE: - CMPI L0, 1 # Copy leftover byte - BLT DONE - LDBU.D L1, L5, 0 - STBU.D L2, L5, 0 - -DONE: # Copy done - MOV L2, L7 # Return pointer - RET PC, L3 - -#**************************** -# Byte memcpy -#**************************** -mem_except: - DBR L_5 - MOVI L6,0 -L_3: - LDBS.D L1, L5, 0 # Transfer the byte - ADDI L6, 1 - STBS.D L2, L5, 0 - ADDI L2, 1 - ADDI L1, 1 -L_5: # Loop test - CMP L6, L0 - BST L_3 - MOV L2, L7 # Return pointer - RET PC, L3 - .END diff --git a/src/arch/e1/core/memset.S b/src/arch/e1/core/memset.S deleted file mode 100644 index a8ceb5353..000000000 --- a/src/arch/e1/core/memset.S +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Derived from the Hyperstone's library source code. - * Modefied src in order to apply the -mgnu-param compiler option. - * Copyright (C) 2002-2003 GDT, Yannis Mitsos <gmitsos@telecom.ntua.gr> - * George Thanos <gthanos@telecom.ntua.gr> - */ - .text - .align 2 - .global _memset - -;ENTRY(_memset) -_memset: FRAME L9, L3 - MASK L5, L1, 0xFF - MOV L8, L2 - CMPI L0, 0 # if n = 0 then return - BE retour - -loop0: CMPBI L8, 0x3 - BZ word_bound - ADDI L0, -1 - DBNZ loop0 - STBU.N L8, L5, 1 -retour: RET PC, L3 - -word_bound: - CMPI L0, 8 - DBLT loop2 - MOV L7, L5 - SHLI L7, 8 - OR L5, L7 - MOV L7, L5 - SHLI L7, 16 - OR L5, L7 - MOV L6, L5 -loop1: ADDI L0, -8 - CMPI L0, 8 - DBGE loop1 - STD.P L8, L5 - CMPI L0, 0 - DBNZ loop2 - ANDNI L5, ~ 0xFF - RET PC, L3 - -loop2: ADDI L0, -1 - DBNZ loop2 - STBU.N L8, L5, 1 - RET PC, L3 diff --git a/src/arch/e1/core/setjmp.c b/src/arch/e1/core/setjmp.c deleted file mode 100644 index 63bcc484f..000000000 --- a/src/arch/e1/core/setjmp.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2003 Yannis Mitsos and George Thanos - * {gmitsos@gthanos}@telecom.ntua.gr - * Released under GPL2, see the file COPYING in the top directory - * - */ -#include "setjmp.h" - -int setjmp( jmp_buf state) -{ - asm volatile( "mov %0, G3\n\t" - "mov %1, G4\n\t" - :"=l"(state->__jmpbuf->G3), - "=l"(state->__jmpbuf->G4) - :/*no input*/ - :"%G3", "%G4" ); - - asm volatile( "setadr %0\n\t" - "mov %1, L1\n\t" - "mov %2, L2\n\t" - :"=l"(state->__jmpbuf->SavedSP), - "=l"(state->__jmpbuf->SavedPC), - "=l"(state->__jmpbuf->SavedSR) - :/*no input*/); - return 0; -} diff --git a/src/arch/e1/core/start.S b/src/arch/e1/core/start.S deleted file mode 100644 index 691f39bdb..000000000 --- a/src/arch/e1/core/start.S +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Derived from the Hyperstone's library source code. - * Copyright (C) 2002-2003 GDT, Yannis Mitsos <gmitsos@telecom.ntua.gr> - * George Thanos <gthanos@telecom.ntua.gr> - */ - .global Priority ; Task-Priority - .global _Stack1Size ; Size of hardware stack - .global _Stack2Size ; Size of aggregate stack - .global _Stack1Base ; Base of hardware stack - .global _Stack2Base ; Base of aggregate stack - .global _Mem0HeapBase ; Base of Heap in Mem0 - .global _Mem1HeapBase ; Base of Heap in Mem1 - - .global _init_peripherals - .global _main - .global Main - - .global __exit - .global __fmode - .global __MaxArgCount - - .text -BasePtrs: - .weak G6Base,G7Base,G8Base,G9Base,G10Base,G11Base,G12Base,G13Base - .long G6Base,G7Base,G8Base,G9Base,G10Base,G11Base,G12Base,G13Base -BasePtrsEnd: -HeapPtrs: - .long _Mem0HeapBase - .long _Mem1HeapBase -HeapPtrsEnd: - -__MaxArgCount: - .long 32 -__StandAloneMode: - .long 0 ; 0 indicate stand alone mode - -;============================================================================; -; Startup-Code ; -;============================================================================; - .data - -; do not change the order of: __argc,.. -__argc: - .long 0 -__argv: - .long 0 -__IsShell: - .long 1 -ErrorLevel: - .long 0 -__lab: - .long 0 -__fmode: - .long 0x4000 ; O_TEXT attribute - -_isa_drivers: - .long 0 - -_isa_drivers_end: - .long 0 - - - .text -Main: -StartUp: - FRAME L5, L0 - MOVI L2, __bss_start__ ; clear the .bss segment -0: CMPI L2, __bss_end__ - BHE 0f - DBR 0b - STW.P L2, 0 -0: SUM L2, PC, BasePtrs-$ ; Load BasePtrs G6-G13 - LDD.P L2, G6 - LDD.P L2, G8 -; LDD.P L2, G10 - LDD.P L2, G12 - MOVI L2, 1 - SUM L3, PC, __StandAloneMode-$ - STW.R L3, L2 - - ;----------------------------------------------------------------; - ; Call main C function ; - ;----------------------------------------------------------------; -2: LDW.D PC, L2, __argc - $ ; pass count of arguments to main - LDW.D PC, L3, __argv - $ ; pass pointer array to main - CALL L4, PC, _init_peripherals - $ - CALL L4, PC, _main - $ ; --> Call Main-Program - CHK PC, PC ; trap if execution arrives here - -__exit: - FRAME L5, L1 - STW.D PC, L0, ErrorLevel - $ ; Store ERRORLEVEL - - CHK PC, PC - RET PC, L1 - - .global ___main -___main: - FRAME L4, L1 - MOVI L3, 2 - STW.D PC, L3, __StandAloneMode-$ - RET PC, L1 ; does not return - - .section _GOT_ - .long Main+4 ; OnCreate - .long Main+8 ; OnError - .long BasePtrs ; G6 - .long BasePtrs+4 ; G7 - .long BasePtrs+8 ; G8 - - .END diff --git a/src/arch/e1/core/strcmp.S b/src/arch/e1/core/strcmp.S deleted file mode 100644 index 5f09daa70..000000000 --- a/src/arch/e1/core/strcmp.S +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Derived from the Hyperstone's library source code. - * Modefied src in order to apply the -mgnu-param compiler option. - * Copyright (C) 2002-2003 GDT, Yannis Mitsos <gmitsos@telecom.ntua.gr> - * George Thanos <gthanos@telecom.ntua.gr> - */ - .text - .align 2 - .global _strcmp -;ENTRY(_strcmp) -_strcmp: - FRAME L8,L2 - CMPBI L1, 3 # check for word alignment - BNZ str_except - CMPBI L0, 3 # check for word alignment - BNZ str_except - -start: - LDD.P L1, L4 # post inc mode - LDD.P L0, L6 # post inc mode - CMPBI L4, ANYBZ - BE correct1 - CMP L4, L6 - BNE correct1 - CMP L5, L7 - BNE correct - CMPBI L5, ANYBZ - BE correct - CMPBI L6, ANYBZ - BE correct1 - CMPBI L7, ANYBZ - BNE start - -correct: MASK L4, L5, 0xff000000 - MASK L6, L7, 0xff000000 - CMP L4, L6 - BNE Exit - SHLI L5, 8 - CMPI L4, 0 - DBNE correct - SHLI L7, 8 - MOV L1, L4 - RET PC, L2 - -Exit: SUB L4, L6 # Subtract chars - SARI L4, 24 - MOV L1, L4 - RET PC, L2 - -correct1: MASK L5, L4, 0xff000000 - MASK L7, L6, 0xff000000 - CMP L5, L7 - BNE Exit1 - SHLI L4, 8 - CMPI L5, 0 - DBNE correct1 - SHLI L6, 8 - MOV L1, L5 - RET PC, L2 -Exit1: SUB L5, L7 # Subtract chars - SARI L5, 24 - MOV L1, L5 - RET PC, L2 - -testzero: CMPI L4, 0 - BE L_5 -str_except: - LDBU.N L1, L4, 1 # Load *s1, compare bytes - LDBU.N L0, L5, 1 # Load *s2, compare bytes - CMP L4, L5 - BE testzero - SUB L4, L5 # Subtract chars -L_5: MOV L1, L4 - RET PC, L2 - .END - diff --git a/src/arch/e1/include/bits/byteswap.h b/src/arch/e1/include/bits/byteswap.h deleted file mode 100644 index 1d1a7d2f0..000000000 --- a/src/arch/e1/include/bits/byteswap.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef ETHERBOOT_BITS_BYTESWAP_H -#define ETHERBOOT_BITS_BYTESWAP_H - -/* We do not have byte swap functions ... We are - * RISC processor ... - */ - -static inline unsigned short __swap16(volatile unsigned short v) -{ - return ((v << 8) | (v >> 8)); -} - -static inline unsigned int __swap32(volatile unsigned long v) -{ - return ((v << 24) | ((v & 0xff00) << 8) | ((v & 0xff0000) >> 8) | (v >> 24)); -} - -#define __bswap_constant_16(x) \ - ((uint16_t)((((uint16_t)(x) & 0x00ff) << 8) | \ - (((uint16_t)(x) & 0xff00) >> 8))) - -#define __bswap_constant_32(x) \ - ((uint32_t)((((uint32_t)(x) & 0x000000ffU) << 24) | \ - (((uint32_t)(x) & 0x0000ff00U) << 8) | \ - (((uint32_t)(x) & 0x00ff0000U) >> 8) | \ - (((uint32_t)(x) & 0xff000000U) >> 24))) - -#define __bswap_16(x) \ - (__builtin_constant_p(x) ? \ - __bswap_constant_16(x) : \ - __swap16(x)) - - -#define __bswap_32(x) \ - (__builtin_constant_p(x) ? \ - __bswap_constant_32(x) : \ - __swap32(x)) - -#endif /* ETHERBOOT_BITS_BYTESWAP_H */ diff --git a/src/arch/e1/include/bits/cpu.h b/src/arch/e1/include/bits/cpu.h deleted file mode 100644 index f25c009a2..000000000 --- a/src/arch/e1/include/bits/cpu.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef E1_BITS_CPU_H -#define E1_BITS_CPU_H - -#define cpu_setup() do {} while(0) - -#endif /* E1_BITS_CPU_H */ diff --git a/src/arch/e1/include/bits/elf.h b/src/arch/e1/include/bits/elf.h deleted file mode 100644 index aa40e1107..000000000 --- a/src/arch/e1/include/bits/elf.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef E1_BITS_ELF_H -#define E1_BITS_ELF_H - -/* dummy file, needed for the compilation of core/nic.c */ - -#endif /* E1_BITS_ELF_H */ diff --git a/src/arch/e1/include/bits/endian.h b/src/arch/e1/include/bits/endian.h deleted file mode 100644 index 4145518bc..000000000 --- a/src/arch/e1/include/bits/endian.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef ETHERBOOT_BITS_ENDIAN_H -#define ETHERBOOT_BITS_ENDIAN_H - -#define __BYTE_ORDER __BIG_ENDIAN - -#endif /* ETHERBOOT_BITS_ENDIAN_H */ diff --git a/src/arch/e1/include/bits/string.h b/src/arch/e1/include/bits/string.h deleted file mode 100644 index b6df2fcbc..000000000 --- a/src/arch/e1/include/bits/string.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef ETHERBOOT_BITS_STRING_H -#define ETHERBOOT_BITS_STRING_H - -/* define inline optimized string functions here */ - -#define __HAVE_ARCH_MEMCPY -//extern void * memcpy(const void *d, const void *s, size_t count); - -#define __HAVE_ARCH_MEMCMP -//extern int memcmp(const void * s ,const void * d ,size_t ); - -#define __HAVE_ARCH_MEMSET -//extern void * memset(const void * s, int c, size_t count); - -#define __HAVE_ARCH_MEMMOVE -static inline void *memmove(void *s1, const void *s2, size_t n) { - - unsigned int i; - char *tmp = s1; - char *cs2 = (char *) s2; - - if (tmp < cs2) { - for(i=0; i<n; ++i, ++tmp, ++cs2) - *tmp = *cs2; - } - else { - tmp += n - 1; - cs2 += n - 1; - for(i=0; i<n; ++i, --tmp, --cs2) - *tmp = *cs2; - } - return(s1); -} - -#endif /* ETHERBOOT_BITS_STRING_H */ diff --git a/src/arch/e1/include/e132_xs_board.h b/src/arch/e1/include/e132_xs_board.h deleted file mode 100644 index 257cfc37d..000000000 --- a/src/arch/e1/include/e132_xs_board.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef __E132_XS_BOARD_H -#define __E132_XS_BOARD_H - -#define CONFIG_HYPERSTONE_OSC_FREQ_MHZ 15 - -#define NR_MEMORY_REGNS 3 -#define BASEMEM 0x0 - -/* SDRAM mapping */ -#define SDRAM_SIZE 0x01000000 -#define SDRAM_BASEMEM BASEMEM - -/* SRAM mapping */ -#define SRAM_BASEMEM 0x40000000 -#define SRAM_SIZE 0x0003FFFF - -/* IRAM mapping */ -#define IRAM_BASEMEM 0xC0000000 -#define IRAM_SIZE 0x00003FFF - - -#endif /* __E132_XS_BOARD_H */ diff --git a/src/arch/e1/include/hooks.h b/src/arch/e1/include/hooks.h deleted file mode 100644 index a67aa193f..000000000 --- a/src/arch/e1/include/hooks.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef ETHERBOOT_E1_HOOKS_H -#define ETHERBOOT_E1_HOOKS_H - -#define arch_main(data,params) do {} while(0) -#define arch_on_exit(status) do {} while(0) -#define arch_relocate_to(addr) do {} while(0) -#define arch_relocated_from(old_addr) do {} while(0) - -#endif /* ETHERBOOT_E1_HOOKS_H */ diff --git a/src/arch/e1/include/io.h b/src/arch/e1/include/io.h deleted file mode 100644 index acf940ce5..000000000 --- a/src/arch/e1/include/io.h +++ /dev/null @@ -1,210 +0,0 @@ -#ifndef ETHERBOOT_IO_H -#define ETHERBOOT_IO_H - -/* Don't require identity mapped physical memory, - * osloader.c is the only valid user at the moment. - */ -#if 0 -static inline unsigned long virt_to_phys(volatile const void *virt_addr) -{ - return ((unsigned long)virt_addr); -} -#else -#define virt_to_phys(vaddr) ((unsigned long) (vaddr)) -#endif - -#if 0 -static inline void *phys_to_virt(unsigned long phys_addr) -{ - return (void *)(phys_addr); -} -#else -#define phys_to_virt(vaddr) ((void *) (vaddr)) -#endif - -/* virt_to_bus converts an addresss inside of etherboot [_start, _end] - * into a memory address cards can use. - */ -#define virt_to_bus virt_to_phys - -/* bus_to_virt reverses virt_to_bus, the address must be output - * from virt_to_bus to be valid. This function does not work on - * all bus addresses. - */ -#define bus_to_virt phys_to_virt - -#define iounmap(addr) ((void)0) -#define ioremap(physaddr, size) (physaddr) - -#define IORegAddress 13 -#define IOWait 11 -#define IOSetupTime 8 -#define IOAccessTime 5 -#define IOHoldTime 3 - -#define SLOW_IO_ACCESS ( 0x3 << IOSetupTime | 0x0 << IOWait | 7 << IOAccessTime | 3 << IOHoldTime ) - -/* The development board can generate up to 15 Chip selects */ -#define NR_CS 16 - -extern unsigned int io_periph[NR_CS]; -#define ETHERNET_CS 4 - -static inline unsigned short _swapw(volatile unsigned short v) -{ - return ((v << 8) | (v >> 8)); -} - -static inline unsigned int _swapl(volatile unsigned long v) -{ - return ((v << 24) | ((v & 0xff00) << 8) | ((v & 0xff0000) >> 8) | (v >> 24)); -} - -#define hy_inpw(addr) \ - ({ register unsigned long dummy, dummy1; \ - dummy = addr; \ - asm volatile ("LDW.IOD %1, %0, 0" \ - : "=l" (dummy1) \ - : "l" (dummy)); dummy1; }) - - -#define hy_outpw(x, addr) \ - ({ register unsigned long dummy0,dummy1; \ - dummy0 = addr; \ - dummy1 = x; \ - asm volatile ("STW.IOD %1, %0, 0" \ - : "=l" (dummy1) \ - : "l"(dummy0), "l" (dummy1)); dummy1; }) - -#define readb(addr) ({ unsigned char __v = inregb(addr); __v; }) -#define readw(addr) ({ unsigned short __v = inregw(addr); __v; }) -#define readl(addr) ({ unsigned long __v = inregl(addr); __v; }) - -#define writeb(b,addr) (void)(outreg(b, addr)) -#define writew(b,addr) (void)(outreg(b, addr)) -#define writel(b,addr) (void)(outreg(b, addr)) - -static inline unsigned long common_io_access(unsigned long addr) -{ - return io_periph[(addr & 0x03C00000) >> 22]; -} - -static inline volatile unsigned char inregb(volatile unsigned long reg) -{ - unsigned char val; - - val = hy_inpw(common_io_access(reg) | ((0xf & reg) << IORegAddress)); - return val; -} - -static inline volatile unsigned short inregw(volatile unsigned long reg) -{ - unsigned short val; - - val = hy_inpw(common_io_access(reg) | ((0xf & reg) << IORegAddress)); - return val; -} - -static inline volatile unsigned long inregl(volatile unsigned long reg) -{ - unsigned long val; - - val = hy_inpw(common_io_access(reg) | ((0xf & reg) << IORegAddress)); - return val; -} - -static inline void outreg(volatile unsigned long val, volatile unsigned long reg) -{ - - hy_outpw(val, (common_io_access(reg) | ((0xf & reg) << IORegAddress))); -} - -static inline void io_outsb(unsigned int addr, void *buf, int len) -{ - unsigned long tmp; - unsigned char *bp = (unsigned char *) buf; - - tmp = (common_io_access(addr)) | ((0xf & addr) << IORegAddress); - - while (len--){ - hy_outpw(_swapw(*bp++), tmp); - } -} - -static inline void io_outsw(volatile unsigned int addr, void *buf, int len) -{ - unsigned long tmp; - unsigned short *bp = (unsigned short *) buf; - - tmp = (common_io_access(addr)) | ((0xf & addr) << IORegAddress); - - while (len--){ - hy_outpw(_swapw(*bp++), tmp); - } -} - -static inline void io_outsl(volatile unsigned int addr, void *buf, int len) -{ - unsigned long tmp; - unsigned int *bp = (unsigned int *) buf; - - tmp = (common_io_access(addr)) | ((0xf & addr) << IORegAddress); - - while (len--){ - hy_outpw(_swapl(*bp++), tmp); - } -} - -static inline void io_insb(volatile unsigned int addr, void *buf, int len) -{ - unsigned long tmp; - unsigned char *bp = (unsigned char *) buf; - - tmp = (common_io_access(addr)) | ((0xf & addr) << IORegAddress); - - while (len--) - *bp++ = hy_inpw((unsigned char) tmp); - -} - -static inline void io_insw(unsigned int addr, void *buf, int len) -{ - unsigned long tmp; - unsigned short *bp = (unsigned short *) buf; - - tmp = (common_io_access(addr)) | ((0xf & addr) << IORegAddress); - - while (len--) - *bp++ = _swapw((unsigned short)hy_inpw(tmp)); - -} - -static inline void io_insl(unsigned int addr, void *buf, int len) -{ - unsigned long tmp; - unsigned int *bp = (unsigned int *) buf; - - tmp = (common_io_access(addr)) | ((0xf & addr) << IORegAddress); - - while (len--) - *bp++ = _swapl((unsigned int)hy_inpw(tmp)); -} - -#define inb(addr) readb(addr) -#define inw(addr) readw(addr) -#define inl(addr) readl(addr) -#define outb(x,addr) ((void) writeb(x,addr)) -#define outw(x,addr) ((void) writew(x,addr)) -#define outl(x,addr) ((void) writel(x,addr)) - -#define insb(a,b,l) io_insb(a,b,l) -#define insw(a,b,l) io_insw(a,b,l) -#define insl(a,b,l) io_insl(a,b,l) -#define outsb(a,b,l) io_outsb(a,b,l) -#define outsw(a,b,l) io_outsw(a,b,l) -#define outsl(a,b,l) io_outsl(a,b,l) - -#define memcpy_fromio(a,b,c) memcpy((a),(void *)(b),(c)) -#define memcpy_toio(a,b,c) memcpy((void *)(a),(b),(c)) - -#endif /* ETHERBOOT_IO_H */ diff --git a/src/arch/e1/include/latch.h b/src/arch/e1/include/latch.h deleted file mode 100644 index 0ee6fb2a7..000000000 --- a/src/arch/e1/include/latch.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef LATCH_H -#define LATCH_H - -//#define TICKS_PER_SEC (1000000UL) -#define TICKS_PER_SEC (625000UL) - -/* Fixed timer interval used for calibrating a more precise timer */ -//#define LATCHES_PER_SEC 10 - -void sleep_latch(void); - -#endif /* LATCH_H */ diff --git a/src/arch/e1/include/limits.h b/src/arch/e1/include/limits.h deleted file mode 100644 index e7056ce5c..000000000 --- a/src/arch/e1/include/limits.h +++ /dev/null @@ -1,34 +0,0 @@ -/*--------------------------------------------------------------------------*/ -/* Project: ANSI C Standard Header Files */ -/* File: LIMITS.H */ -/* Edited by: hyperstone electronics GmbH */ -/* Am Seerhein 8 */ -/* D-78467 Konstanz, Germany */ -/* Date: January 30, 1996 */ -/*--------------------------------------------------------------------------*/ -/* Purpose: */ -/* The header file <limits.h> defines limits of ordinal types */ -/* (char, short, int, long) */ -/*--------------------------------------------------------------------------*/ - -#ifndef __LIMITS_H -#define __LIMITS_H 1 - -#define MB_LEN_MAX 1 -#define CHAR_BIT 8 -#define SCHAR_MIN -128L -#define SCHAR_MAX 127L -#define UCHAR_MAX 255 -#define CHAR_MIN 0 -#define CHAR_MAX UCHAR_MAX -#define SHRT_MIN -32768 -#define SHRT_MAX 32767 -#define USHRT_MAX 65535 -#define INT_MIN 0x80000000 -#define INT_MAX 0x7FFFFFFF -#define UINT_MAX 0xFFFFFFFFL -#define LONG_MIN INT_MIN -#define LONG_MAX INT_MAX -#define ULONG_MAX UINT_MAX - -#endif diff --git a/src/arch/e1/include/setjmp.h b/src/arch/e1/include/setjmp.h deleted file mode 100644 index ef401b625..000000000 --- a/src/arch/e1/include/setjmp.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _SETJMP_H -#define _SETJMP_H - - -typedef struct { - unsigned long G3; - unsigned long G4; - unsigned long SavedSP; - unsigned long SavedPC; - unsigned long SavedSR; - unsigned long ReturnValue; -} __jmp_buf[1]; - -typedef struct __jmp_buf_tag /* C++ doesn't like tagless structs. */ - { - __jmp_buf __jmpbuf; /* Calling environment. */ - int __mask_was_saved; /* Saved the signal mask? */ - } jmp_buf[1]; - -void longjmp(jmp_buf state, int value ); -int setjmp( jmp_buf state); - -#endif diff --git a/src/arch/e1/include/stdint.h b/src/arch/e1/include/stdint.h deleted file mode 100644 index 505cc3751..000000000 --- a/src/arch/e1/include/stdint.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef STDINT_H -#define STDINT_H - -typedef unsigned long size_t; - -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned long uint32_t; -typedef unsigned long long uint64_t; - -typedef signed char int8_t; -typedef signed short int16_t; -typedef signed int int32_t; -typedef signed long long int64_t; - -typedef signed char s8; -typedef unsigned char u8; - -typedef signed short s16; -typedef unsigned short u16; - -typedef signed long s32; -typedef unsigned int u32; - -typedef signed long long s64; -typedef unsigned long long u64; - -#endif /* STDINT_H */ |
