From a5bf9b66b0748d34d25df7c2b20f4b5bc7670d70 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 25 Apr 2018 14:53:33 +0200 Subject: bsps/mips: Move liblnk to bsps This patch is a part of the BSP source reorganization. Update #3285. --- c/src/lib/libbsp/mips/hurricane/Makefile.am | 4 +- c/src/lib/libbsp/mips/rbtx4925/Makefile.am | 4 +- c/src/lib/libbsp/mips/rbtx4938/Makefile.am | 4 +- c/src/lib/libbsp/mips/shared/liblnk/lnklib.S | 62 --------- c/src/lib/libbsp/mips/shared/liblnk/pmon.S | 180 --------------------------- 5 files changed, 6 insertions(+), 248 deletions(-) delete mode 100644 c/src/lib/libbsp/mips/shared/liblnk/lnklib.S delete mode 100644 c/src/lib/libbsp/mips/shared/liblnk/pmon.S (limited to 'c/src/lib/libbsp/mips') diff --git a/c/src/lib/libbsp/mips/hurricane/Makefile.am b/c/src/lib/libbsp/mips/hurricane/Makefile.am index ae8e599f4f..c5def9d4b4 100644 --- a/c/src/lib/libbsp/mips/hurricane/Makefile.am +++ b/c/src/lib/libbsp/mips/hurricane/Makefile.am @@ -36,8 +36,8 @@ librtemsbsp_a_SOURCES +=../../../../../../bsps/mips/hurricane/clock/ckinit.c # console librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/hurricane/console/console.c # liblnk -librtemsbsp_a_SOURCES += ../shared/liblnk/lnklib.S -librtemsbsp_a_SOURCES += ../shared/liblnk/pmon.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/liblnk/lnklib.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/liblnk/pmon.S #isr librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/irq/vectorexceptions.c librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/irq/irq.c diff --git a/c/src/lib/libbsp/mips/rbtx4925/Makefile.am b/c/src/lib/libbsp/mips/rbtx4925/Makefile.am index 42be304001..875f1be03f 100644 --- a/c/src/lib/libbsp/mips/rbtx4925/Makefile.am +++ b/c/src/lib/libbsp/mips/rbtx4925/Makefile.am @@ -35,8 +35,8 @@ librtemsbsp_a_SOURCES +=../../../../../../bsps/mips/rbtx4925/clock/clockdrv.c # console librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/rbtx4925/console/console-io.c # liblnk -librtemsbsp_a_SOURCES += ../shared/liblnk/lnklib.S -librtemsbsp_a_SOURCES += ../shared/liblnk/pmon.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/liblnk/lnklib.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/liblnk/pmon.S #isr librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/irq/vectorexceptions.c librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/irq/irq.c diff --git a/c/src/lib/libbsp/mips/rbtx4938/Makefile.am b/c/src/lib/libbsp/mips/rbtx4938/Makefile.am index 2eeb2d39b5..2208638930 100644 --- a/c/src/lib/libbsp/mips/rbtx4938/Makefile.am +++ b/c/src/lib/libbsp/mips/rbtx4938/Makefile.am @@ -36,8 +36,8 @@ librtemsbsp_a_SOURCES +=../../../../../../bsps/mips/rbtx4938/clock/clockdrv.c # console librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/rbtx4938/console/console-io.c # liblnk -librtemsbsp_a_SOURCES += ../shared/liblnk/lnklib.S -librtemsbsp_a_SOURCES += ../shared/liblnk/pmon.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/liblnk/lnklib.S +librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/liblnk/pmon.S #isr librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/irq/vectorexceptions.c librtemsbsp_a_SOURCES += ../../../../../../bsps/mips/shared/irq/irq.c diff --git a/c/src/lib/libbsp/mips/shared/liblnk/lnklib.S b/c/src/lib/libbsp/mips/shared/liblnk/lnklib.S deleted file mode 100644 index 315ec3c014..0000000000 --- a/c/src/lib/libbsp/mips/shared/liblnk/lnklib.S +++ /dev/null @@ -1,62 +0,0 @@ -/* - * lnklib.S - */ - -#include -#include - -#define FRAME(name,frm_reg,offset,ret_reg) \ - .globl name; \ - .ent name; \ -name:; \ - .frame frm_reg,offset,ret_reg - -#define ENDFRAME(name) \ - .end name - -#define PROM_LINK(name,entry) \ - .globl name; \ - .ent name; \ -name: la $2,+entry; \ - j $2; \ - .end name - -#define PROM_ENTRY(x) (0xbfc00000+((x)*8)) - -#define PROM_RESET PROM_ENTRY(0) -#define PROM_NOT_IMP PROM_ENTRY(1) -#define PROM_RESTART PROM_ENTRY(2) -#define PROM_REINIT PROM_ENTRY(3) -#define PROM_GETCHAR PROM_ENTRY(11) -#define PROM_PUTCHAR PROM_ENTRY(12) -#define PROM_SHOWCHAR PROM_ENTRY(13) -#define PROM_PRINTF PROM_ENTRY(16) -#define PROM_RETURN PROM_ENTRY(17) - -#define PROM_RGETS PROM_ENTRY(25) -#define PROM_FLUSHCACHE PROM_ENTRY(28) -#define PROM_CLEARCACHE PROM_ENTRY(29) -#define PROM_SETJMP PROM_ENTRY(30) -#define PROM_LONGJMP PROM_ENTRY(31) - - .text - -PROM_LINK(idtsim_putchar, PROM_PUTCHAR) -PROM_LINK(idtsim_getchar, PROM_GETCHAR) -PROM_LINK(idtsim_showchar, PROM_SHOWCHAR) -PROM_LINK(idtsim__exit, PROM_RETURN) -PROM_LINK(idtsim_reinit, PROM_REINIT) -PROM_LINK(idtsim_restart, PROM_RESTART) -PROM_LINK(idtsim_reset, PROM_RESET) -PROM_LINK(idtsim_promexit, PROM_RETURN) -PROM_LINK(idtsim_setjmp, PROM_SETJMP) -PROM_LINK(idtsim_longjmp, PROM_LONGJMP) - -FRAME(idtsim_init_sbrk,sp,0,ra) - j ra -ENDFRAME(idtsim_init_sbrk) - -FRAME(idtsim_init_file,sp,0,ra) - j ra -ENDFRAME(idtsim_init_file) - diff --git a/c/src/lib/libbsp/mips/shared/liblnk/pmon.S b/c/src/lib/libbsp/mips/shared/liblnk/pmon.S deleted file mode 100644 index 206cfe9a57..0000000000 --- a/c/src/lib/libbsp/mips/shared/liblnk/pmon.S +++ /dev/null @@ -1,180 +0,0 @@ -/* - * pmon.S -- low-level entry points into PMON monitor. - * - * Copyright (c) 1996, 1997 Cygnus Support - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - */ - -#ifdef __mips16 -/* This file contains 32 bit assembly code. */ - .set nomips16 -#endif - -#if __mips < 3 - /* This machine does not support 64-bit operations. */ - #define ADDU addu - #define SUBU subu -#else - /* This machine supports 64-bit operations. */ - #define ADDU daddu - #define SUBU dsubu -#endif - -#include - - .text - .align 2 - -#ifdef LSI - #define PMON_VECTOR 0xbfc00200 -#else - #define PMON_VECTOR 0xbfc00500 -#endif - -#ifndef __mips_eabi -/* Provide named functions for entry into the monitor: */ -#define INDIRECT(name,index) \ - .globl name; \ - .ent name; \ - .set noreorder; \ -name: la $2,+(PMON_VECTOR+((index)*4)); \ - lw $2,0($2); \ - j $2; \ - nop; \ - .set reorder; \ - .end name - -#else -#define INDIRECT(name,index) \ - .globl name; \ - .ent name; \ - .set noreorder; \ -name: la $2,+(PMON_VECTOR+((index)*4)); \ - lw $2,0($2); \ - SUBU sp,sp,0x40; \ - sd ra,0x38(sp); \ - sd fp,0x30(sp); \ - jal $2; \ - move fp,sp; \ - ld ra,0x38(sp); \ - ld fp,0x30(sp); \ - j ra; \ - ADDU sp,sp,0x40; \ - .set reorder; \ - .end name -#endif - - -/* The following magic numbers are for the slots into the PMON monitor */ -/* The first are used as the lo-level library run-time: */ -INDIRECT(mon_read,0) -INDIRECT(mon_write,1) -INDIRECT(mon_open,2) -INDIRECT(mon_close,3) -/* The following are useful monitor routines: */ -INDIRECT(mon_ioctl,4) -INDIRECT(mon_printf,5) -INDIRECT(mon_vsprintf,6) -INDIRECT(mon_ttctl,7) -INDIRECT(mon_cliexit,8) -INDIRECT(mon_getenv,9) -INDIRECT(mon_onintr,10) -INDIRECT(mon_flush_cache,11) -INDIRECT(mon_exception,12) -INDIRECT(mon_fpgaconfig,21) - -#if 0 - -/* The following routine is required by the "print()" function: */ - .globl pmon_outbyte - .ent pmon_outbyte - .set noreorder -pmon_outbyte: - subu sp,sp,0x20 /* allocate stack space for string */ - sd ra,0x18(sp) /* stack return address */ - sd fp,0x10(sp) /* stack frame-pointer */ - move fp,sp /* take a copy of the stack pointer */ - /* We leave so much space on the stack for the string (16 - characters), since the call to mon_printf seems to corrupt - the 8bytes at offset 8 into the string/stack. */ - sb a0,0x00(sp) /* character to print */ - sb z0,0x01(sp) /* NUL terminator */ - jal mon_printf /* and output the string */ - move a0,sp /* take a copy of the string pointer {DELAY SLOT} */ - - move sp,fp /* recover stack pointer */ - ld ra,0x18(sp) /* recover return address */ - ld fp,0x10(sp) /* recover frame-pointer */ - j ra /* return to the caller */ - addu sp,sp,0x20 /* dump the stack space {DELAY SLOT} */ - .set reorder - .end pmon_outbyte - -/* The following routine is required by the "sbrk()" function: */ - .globl get_mem_info - .ent get_mem_info - .set noreorder -get_mem_info: - # in: a0 = pointer to 3 word structure - # out: void - subu sp,sp,0x18 /* create some stack space */ - sd ra,0x00(sp) /* stack return address */ - sd fp,0x08(sp) /* stack frame-pointer */ - sd a0,0x10(sp) /* stack structure pointer */ - move fp,sp /* take a copy of the stack pointer */ - - # The monitor has already sized memory, but unfortunately we - # do not have access to the data location containing the - # memory size. - - jal __sizemem - nop - - ld a0,0x10(sp) # recover structure pointer - sw v0,0(a0) # amount of memory available - - # Deal with getting the cache size information: - mfc0 a1, C0_CONFIG - nop - nop - andi a2,a1,0x7 << 9 # bits 11..9 for instruction cache size - sll a2,a2,12 - 8 - sw a2,4(a0) - andi a2,a1,0x7 << 6 # bits 8..6 for data cache size - sll a2,a2,12 - 5 - sw a2,8(a0) # data cache size - # - move sp,fp /* recover stack pointer */ - ld ra,0x00(sp) /* recover return address */ - ld fp,0x08(sp) /* recover frame-pointer */ - j ra /* return to the caller */ - addu sp,sp,0x18 /* restore stack pointer {DELAY SLOT} */ - .set reorder - .end get_mem_info - -#ifdef LSI - -# For the LSI MiniRISC board, we can safely assume that we have -# at least one megabyte of RAM. - - .globl __sizemem - .ent __sizemem -__sizemem: - li v0,0x100000 - j ra - .end __sizemem -#else - -#endif - -#endif -/* EOF pmon.S */ -- cgit v1.2.3