From 80e24f1f0e1522fd1121199ae7421ea16f209aa2 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 15 Jun 2000 22:22:00 +0000 Subject: rxgen960 compiles and links. --- c/src/lib/libbsp/i960/rxgen960/Makefile.am | 2 +- c/src/lib/libbsp/i960/rxgen960/bsp_specs | 2 +- c/src/lib/libbsp/i960/rxgen960/configure.in | 1 + c/src/lib/libbsp/i960/rxgen960/start/Makefile.am | 32 ++++ c/src/lib/libbsp/i960/rxgen960/start/rxgen_romld.S | 169 +++++++++++++++++++++ c/src/lib/libbsp/i960/rxgen960/startup/Makefile.am | 9 +- c/src/lib/libbsp/i960/rxgen960/startup/exit.c | 2 + c/src/lib/libbsp/i960/rxgen960/startup/kkprintf.c | 10 -- .../lib/libbsp/i960/rxgen960/startup/rxgen_romld.S | 123 --------------- 9 files changed, 211 insertions(+), 139 deletions(-) create mode 100644 c/src/lib/libbsp/i960/rxgen960/start/Makefile.am create mode 100644 c/src/lib/libbsp/i960/rxgen960/start/rxgen_romld.S delete mode 100644 c/src/lib/libbsp/i960/rxgen960/startup/rxgen_romld.S (limited to 'c') diff --git a/c/src/lib/libbsp/i960/rxgen960/Makefile.am b/c/src/lib/libbsp/i960/rxgen960/Makefile.am index 271e56ff1d..f2ded336ec 100644 --- a/c/src/lib/libbsp/i960/rxgen960/Makefile.am +++ b/c/src/lib/libbsp/i960/rxgen960/Makefile.am @@ -7,7 +7,7 @@ ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal # wrapup is the one that actually builds and installs the library # from the individual .rel files built in other directories -SUBDIRS = include startup clock console shmsupp timer wrapup +SUBDIRS = include start startup clock console shmsupp timer wrapup include $(top_srcdir)/../../bsp.am diff --git a/c/src/lib/libbsp/i960/rxgen960/bsp_specs b/c/src/lib/libbsp/i960/rxgen960/bsp_specs index d081bbbd9e..aa7cda336c 100644 --- a/c/src/lib/libbsp/i960/rxgen960/bsp_specs +++ b/c/src/lib/libbsp/i960/rxgen960/bsp_specs @@ -15,7 +15,7 @@ *startfile: %{!qrtems: %(old_startfile)} \ -%{qrtems: %{qrtems_debug: start_g.o%s} %{!qrtems_debug: start.o%s} +%{qrtems: %{qrtems_debug: rxgen_romld_g.o%s} %{!qrtems_debug: rxgen_romld.o%s}} *link: %{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e _start} diff --git a/c/src/lib/libbsp/i960/rxgen960/configure.in b/c/src/lib/libbsp/i960/rxgen960/configure.in index 7863bfb9cf..133ca099fe 100644 --- a/c/src/lib/libbsp/i960/rxgen960/configure.in +++ b/c/src/lib/libbsp/i960/rxgen960/configure.in @@ -32,6 +32,7 @@ clock/Makefile console/Makefile include/Makefile shmsupp/Makefile +start/Makefile startup/Makefile timer/Makefile wrapup/Makefile) diff --git a/c/src/lib/libbsp/i960/rxgen960/start/Makefile.am b/c/src/lib/libbsp/i960/rxgen960/start/Makefile.am new file mode 100644 index 0000000000..cfa756f655 --- /dev/null +++ b/c/src/lib/libbsp/i960/rxgen960/start/Makefile.am @@ -0,0 +1,32 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 + +PGM = $(ARCH)/rxgen_romld.o + +S_FILES = rxgen_romld.S +S_O_FILES = $(S_FILES:%.S=$(ARCH)/%.o) + +OBJS = $(S_O_FILES) + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../../automake/lib.am + +# +# (OPTIONAL) Add local stuff here using += +# + +$(PROJECT_RELEASE)/lib/rxgen_romld$(LIB_VARIANT).o: $(PGM) + $(INSTALL_DATA) $< $@ + +TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/rxgen_romld$(LIB_VARIANT).o + +all-local: $(ARCH) $(OBJS) $(PGM) $(TMPINSTALL_FILES) + +.PRECIOUS: $(PGM) + +EXTRA_DIST = rxgen_romld.S + +include $(top_srcdir)/../../../../../../automake/local.am diff --git a/c/src/lib/libbsp/i960/rxgen960/start/rxgen_romld.S b/c/src/lib/libbsp/i960/rxgen960/start/rxgen_romld.S new file mode 100644 index 0000000000..d6436f4b7b --- /dev/null +++ b/c/src/lib/libbsp/i960/rxgen960/start/rxgen_romld.S @@ -0,0 +1,169 @@ +/* + * $Id$ + */ + +#include "asm.h" + + BEGIN_CODE + + .globl _romStart + .globl start + .globl _start + .globl _romFaultStart + .globl _led_array + .text +start: /* JRS */ +_start: /* JRS */ +SYM(romStart ): +SYM(_romStart ): + # This line is to make compiler happy. + mov 0, g14 + ldconst 0x120f,r10 # BIST register +/* + Setup code for in memory loaded image +*/ +/* + # Interrupt stack is used by default. + # Copy all code (except Fault Table and Fault Handler) + # from EPROM into DRAM. +*/ + ldconst 0x120f,r10 //# BIST register + ldconst 0x2,r3 + stob r3,0(r10) //# 2->LED +/* + # Zero all uninitialized data +*/ + callx _zeroBss + ldconst 0x120f,r10 //# BIST register + ldconst 0x3,r3 + stob r3,0(r10) //# 3->LED +/* + # And reinitialize processor. + # _start is a few lines below. + # _prcb is RAM-based struct PRCB. +*/ + ldconst 0x300, r4 + ldconst _pmc_start, r5 + ldconst _ram_prcb, r6 + sysctl r4, r5, r6 +/* + # This point will never be reached. +*/ + +SYM(_pmc_start) : +SYM(pmc_start) : + ldconst 0x120f,r10 # BIST register + ldconst 0x4,r3 + stob r3,0(r10) //# 4->LED + mov 0, g14 +/* + # To get ready to invoke procedures. + # I'll use supervisor stack. +*/ + + ldconst _svrStackPtr, fp + lda 16*4(fp), sp + ldconst 0x5,r3 + stob r3,0(r10) //# 5->LED + + ldconst 0x1F0000, r4 + ldconst 0x1F2000, r3 + ldconst 0, r5 + modpc r4, r3, r5 + + ldconst 7,r3 + stob r3,0(r10) //# 7->LED + + callx _rx_boot_card +/* # if _romMain ever returns ... */ + b _romExit + +SYM(romFaultStart) : +SYM(_romFaultStart) : + + mov 0, g14 + + /* ldconst 0, sf0 XXX JRS */ +/* + # To get ready to invoke procedures. + # I'll use supervisor stack. + # _svrStackPtr is defined directly in rom.ld. +*/ + ldconst _svrStackPtr, fp + lda 16*4(fp), sp +/* + # Set processor priority to zero. +*/ + ldconst 0x1F0000, r4 + ldconst 0, r5 + modpc r4, r4, r5 +// # Now to real code +// Fix this up callx _romFaultMain + callx _rx_boot_card +// # if _romMain ever returns ... + b _romExit + +_romExit : +// # if _romMain ever returns ... +// fmark + b _romExit + + + +SYM(led_array): + .byte 99 + .byte 1 + .byte 2 + .byte 3 + .byte 4 + .byte 5 + .byte 6 + .byte 7 + .byte 8 + .byte 9 + .byte 0xa + .byte 0xb + .byte 0xc + + +/* just to compile and link application XXX JOEL */ + .globl _faultStart + .globl _faultEnd + .globl _faultCheckSum + .globl _faultBuffer + .globl _svrStackPtr + .globl _console_pmr_getc + .globl _console_pmr_kbhit + .globl _console_pmr_init + .globl _console_pmr_putc + .globl _DBGConsole_make_sync + .globl _codeRamStart + .globl _codeRomStart + .globl _codeRamEnd + .globl _codeRomEnd + .globl _bssStart + .globl _bssEnd + .globl _bssStart_1 + .globl _bssEnd_1 + .globl _intStackPtr + +_faultStart: +_faultEnd: +_faultCheckSum: +_faultBuffer: +_svrStackPtr: +_console_pmr_getc: +_console_pmr_kbhit: +_console_pmr_init: +_console_pmr_putc: +_DBGConsole_make_sync: +_codeRamStart: +_codeRomStart: +_codeRamEnd: +_codeRomEnd: +_bssStart: +_bssEnd: +_bssStart_1: +_bssEnd_1: +_intStackPtr: + diff --git a/c/src/lib/libbsp/i960/rxgen960/startup/Makefile.am b/c/src/lib/libbsp/i960/rxgen960/startup/Makefile.am index 95071ef9ee..bdd6297231 100644 --- a/c/src/lib/libbsp/i960/rxgen960/startup/Makefile.am +++ b/c/src/lib/libbsp/i960/rxgen960/startup/Makefile.am @@ -10,15 +10,16 @@ PGM = $(ARCH)/startup.rel #C_PIECES = bspclean bsplibc bsppost bspstart bootcard main sbrk setvec \ # gnatinstallhandler -C_FILES = bspstart.c cntrltbl.c exit.c fault.c flttbl.c frmstr.c intrtbl.c \ - kkprintf.c nmi.c nulsystbl.c prcb.c rom_cntrltbl.c rom_ibr.c rom_prcb.c \ - sctns.c setvec.c systbl.c +C_FILES = bspclean.c bsplibc.c bsppost.c bspstart.c bootcard.c cntrltbl.c \ + exit.c fault.c flttbl.c frmstr.c intrtbl.c kkprintf.c main.c nmi.c \ + nulsystbl.c prcb.c rom_cntrltbl.c rom_ibr.c rom_prcb.c sbrk.c sctns.c \ + setvec.c systbl.c H_FILES = asmfault.h asmstub.h cntrltbl.h fault.h faultret.h flttbl.h \ frmstr.h i960.h ihandler.h intrtbl.h main.h memchnl.h pmc901_memmap.h \ prcb.h rom_ibr.h rommon.h sctns.h systbl.h time.h types.h -S_FILES = asmfault.S asmstub.S ihandler.S rxgen_romld.S +S_FILES = asmfault.S asmstub.S ihandler.S OBJS = $(C_FILES:%.c=$(ARCH)/%.o) $(S_FILES:%.S=$(ARCH)/%.o) diff --git a/c/src/lib/libbsp/i960/rxgen960/startup/exit.c b/c/src/lib/libbsp/i960/rxgen960/startup/exit.c index 12aa1ab480..3e3b46fbcc 100644 --- a/c/src/lib/libbsp/i960/rxgen960/startup/exit.c +++ b/c/src/lib/libbsp/i960/rxgen960/startup/exit.c @@ -24,6 +24,7 @@ #include #include "bsp.h" +#if 0 void _exit( ) { asm volatile( "mov 0,g0; \ @@ -36,3 +37,4 @@ void _exit( ) * application if the user types "go". */ } +#endif diff --git a/c/src/lib/libbsp/i960/rxgen960/startup/kkprintf.c b/c/src/lib/libbsp/i960/rxgen960/startup/kkprintf.c index e3c05b24e5..5ff6807610 100644 --- a/c/src/lib/libbsp/i960/rxgen960/startup/kkprintf.c +++ b/c/src/lib/libbsp/i960/rxgen960/startup/kkprintf.c @@ -56,13 +56,3 @@ kkputs( const char * buf) *consoleOP = (unsigned int)c; } } - - -/* we have got an error during build for 'isatty()' wo/ good reason - we temporarily use this fix.... -*/ -isatty(int fd) -{ - return 1; -} - diff --git a/c/src/lib/libbsp/i960/rxgen960/startup/rxgen_romld.S b/c/src/lib/libbsp/i960/rxgen960/startup/rxgen_romld.S deleted file mode 100644 index 4b2076c764..0000000000 --- a/c/src/lib/libbsp/i960/rxgen960/startup/rxgen_romld.S +++ /dev/null @@ -1,123 +0,0 @@ -/* - * $Id$ - */ - -#include "asm.h" - - BEGIN_CODE - - .globl _romStart - .globl _start - .globl _romFaultStart - .globl _led_array - .text -SYM(romStart ): -SYM(_romStart ): - # This line is to make compiler happy. - mov 0, g14 - ldconst 0x120f,r10 # BIST register -/* - Setup code for in memory loaded image -*/ -/* - # Interrupt stack is used by default. - # Copy all code (except Fault Table and Fault Handler) - # from EPROM into DRAM. -*/ - ldconst 0x120f,r10 //# BIST register - ldconst 0x2,r3 - stob r3,0(r10) //# 2->LED -/* - # Zero all uninitialized data -*/ - callx _zeroBss - ldconst 0x120f,r10 //# BIST register - ldconst 0x3,r3 - stob r3,0(r10) //# 3->LED -/* - # And reinitialize processor. - # _start is a few lines below. - # _prcb is RAM-based struct PRCB. -*/ - ldconst 0x300, r4 - ldconst _pmc_start, r5 - ldconst _ram_prcb, r6 - sysctl r4, r5, r6 -/* - # This point will never be reached. -*/ - -SYM(_pmc_start) : -SYM(pmc_start) : - ldconst 0x120f,r10 # BIST register - ldconst 0x4,r3 - stob r3,0(r10) //# 4->LED - mov 0, g14 -/* - # To get ready to invoke procedures. - # I'll use supervisor stack. -*/ - - ldconst _svrStackPtr, fp - lda 16*4(fp), sp - ldconst 0x5,r3 - stob r3,0(r10) //# 5->LED - - ldconst 0x1F0000, r4 - ldconst 0x1F2000, r3 - ldconst 0, r5 - modpc r4, r3, r5 - - ldconst 7,r3 - stob r3,0(r10) //# 7->LED - - callx _rx_boot_card -/* # if _romMain ever returns ... */ - b _romExit - -SYM(romFaultStart) : -SYM(_romFaultStart) : - - mov 0, g14 - - /* ldconst 0, sf0 XXX JRS */ -/* - # To get ready to invoke procedures. - # I'll use supervisor stack. - # _svrStackPtr is defined directly in rom.ld. -*/ - ldconst _svrStackPtr, fp - lda 16*4(fp), sp -/* - # Set processor priority to zero. -*/ - ldconst 0x1F0000, r4 - ldconst 0, r5 - modpc r4, r4, r5 -// # Now to real code -// Fix this up callx _romFaultMain - callx _rx_boot_card -// # if _romMain ever returns ... - b _romExit - -_romExit : -// # if _romMain ever returns ... -// fmark - b _romExit - - - -SYM(led_array): - .byte 99 - .byte 1 - .byte 2 - .byte 3 - .byte 4 - .byte 5 - .byte 6 - .byte 7 - .byte 8 - .byte 9 - .byte 0xa - .byte 0xb - .byte 0xc -- cgit v1.2.3