/* link.mips.scr, Copyright (c) by George Fankhauser, Swiss Federal Institute of Technology, Computer Engineering and Networks Laboratory. TOPSY -- A Teachable Operating System. Implementation of a tiny and simple micro kernel for teaching purposes. For further information, please visit http://www.tik.ee.ethz.ch/~topsy This software is provided under the terms of the GNU General Public Licence. A full copy of the GNU GPL is provided in the file COPYING found in the development root of Topsy. */ /* File: $Source: /usr/drwho/vault/cvs/topsy/Topsy/User/link.mips.scr,v $ Author(s): George Fankhauser Affiliation: ETH Zuerich, TIK Version: $Revision: 1.2 $ Creation Date: Last Date of Change: $Date: 1999/12/13 21:48:43 $ by: $Author: ruf $ $Log: link.mips.scr,v $ Revision 1.2 1999/12/13 21:48:43 ruf GNU General Public Licence Update Revision 1.1 1999/06/06 20:55:34 jeker putting everything together for Topsy 2.0 Revision 1.9 1998/04/16 10:12:50 gfa fixed a bug in AT mem layout # Revision 1.8 98/03/26 19:15:21 gfa # user starts now at 2GB + 256k when loaded and is relocated later to 4k # Revision 1.7 1997/03/27 08:18:18 conrad output format changed from ecoff to srec # Revision 1.6 1997/03/19 22:34:36 gfa # changed ENTRY to main (no more startup code needed) # # Revision 1.5 1997/03/16 12:36:00 gfa # separated user code/data relocation from load addresses # also made ld to start at 0x1000 (4k, page one instead of zero) # */ /*OUTPUT_FORMAT("ecoff-bigmips")*/ OUTPUT_FORMAT("srec") /* since topsy sets up a decent context with sp and fp we can start at main */ ENTRY(main) /* the following is loaded into kernel address space but relocated for user */ SECTIONS { .text 0x00001000 : AT( 0x80040000 + ADDR(.text) ) { *(.init) *(.text) *(.fini) } /* force user data to follow user code */ . = ADDR(.text) + SIZEOF(.text); . = ALIGN(0x1000); .rdata . : AT ( 0x80040000 + ADDR(.rdata) ) { *(.rdata) } .data . : AT ( 0x80040000 + ADDR(.data) ) { *(.data) } .sbss . : AT ( 0x80040000 + ADDR(.sbss) ) { *(.sbss) *(.scommon) } .bss . : AT ( 0x80040000 + ADDR(.bss) ) { *(.bss) *(COMMON) } }