Changeset f610e83f in rtems


Ignore:
Timestamp:
Jul 10, 2007, 4:00:28 PM (12 years ago)
Author:
Thomas Doerfler <Thomas.Doerfler@…>
Branches:
4.10, 4.11, 4.8, 4.9, master
Children:
185da08
Parents:
2c0f748
Message:

compilable release of virtex/gen83xx/gen5200 powerpc adaptations. Merged many different versions of new exception handling code to shared sources.

Files:
29 added
1 deleted
27 edited

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r2c0f748 rf610e83f  
     12007-07-09      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
     2
     3        * aclocal/bsp-alias.m4, aclocal/check-bsps.m4, README.configure:
     4        Add gen83xx and mpc8349eamds BSP
     5
    162007-07-02      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
    27
    3         * :README.configure: Add virtex BSP
     8        * README.configure: Add virtex BSP
    49
    5102007-06-20      Joel Sherrill <joel.sherrill@oarcorp.com>
  • README.configure

    r2c0f748 rf610e83f  
    204204                  mbx821_001 mbx821_002 mbx821_002b mbx860_001b
    205205                  mbx860_002 mbx860_005b mtx603e brs5l gen5200 ep5200
    206                   virtex
     206                  virtex gen83xx mpc8349eamds
    207207
    208208                  NOTE: The "motorola_powerpc" BSP is a single BSP which
  • aclocal/bsp-alias.m4

    r2c0f748 rf610e83f  
    2727    pm520*)       $2=gen5200          ;; # MPC5200 based board
    2828    ep5200*)      $2=gen5200          ;; # MPC5200 based board
     29    mpc8349eamds) $2=gen83xx          ;; # MPC8349 based board
    2930    simcpu32)     $2=sim68000         ;; # BSVC CPU32 variant
    3031    simsh7032)    $2=shsim            ;; # SH7032 simulator
  • aclocal/check-bsps.m4

    r2c0f748 rf610e83f  
    2727                             ;;
    2828          gen5200)           bsps="pm520_cr825 pm520_ze30 brs5l";;
     29          gen83xx)           bsps="mpc8349eamds";;
    2930          motorola_powerpc)  bsps="mvme2307 mcp750 mtx603e mvme2100";;
    3031          pc386)             bsps="pc386 pc386dx pc486 pc586 pc686 pck6";;
  • c/src/ChangeLog

    r2c0f748 rf610e83f  
     12007-07-09      Thomas Doerfler (Thomas.Doerfler@embedded-brains.de>:
     2        * libchip/ide/ata.c: fixed warning
     3
    142007-06-20      Ray Xu <rayx@gmail.com>
    25
  • c/src/lib/libbsp/powerpc/ChangeLog

    r2c0f748 rf610e83f  
     12007-07-09      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
     2
     3        * acinclude.m4, gen83xx/:
     4        added support for MPC83xx controllers and MPC8349EAMDS board
     5       
    162007-07-02      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
    27
     
    9142007-07-02      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
    1015
    11         * vitex/:
     16        * virtex/:
    1217        integrated "virtex" BSP to support PPC core implemented in a
    1318        Xilinx virtex FPGA
  • c/src/lib/libbsp/powerpc/acinclude.m4

    r2c0f748 rf610e83f  
    99  gen5200 )
    1010    AC_CONFIG_SUBDIRS([gen5200]);;
     11  gen83xx )
     12    AC_CONFIG_SUBDIRS([gen83xx]);;
    1113  helas403 )
    1214    AC_CONFIG_SUBDIRS([helas403]);;
  • c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S

    r2c0f748 rf610e83f  
    4848#endif
    4949
     50#if defined(ASM_SYSMGMT_VECTOR)
     51        PUBLIC_VAR(sysmgmt_exception_vector_prolog_code)
     52
     53SYM (sysmgmt_exception_vector_prolog_code):
     54        /*
     55         * let room for exception frame
     56         */
     57        stwu    r1, - (EXCEPTION_FRAME_END)(r1)
     58        stw     r4, GPR4_OFFSET(r1)
     59        li      r4, ASM_SYSMGMT_VECTOR
     60        ba      shared_raw_irq_code_entry
     61
     62        PUBLIC_VAR (sysmgmt_exception_vector_prolog_code_size)
     63
     64        sysmgmt_exception_vector_prolog_code_size = . - sysmgmt_exception_vector_prolog_code
     65#endif
     66
     67
    5068#if defined(ASM_PIT_VECTOR)
    5169        PUBLIC_VAR(pit_exception_vector_prolog_code)
  • c/src/lib/libbsp/powerpc/shared/vectors/vectors.h

    r2c0f748 rf610e83f  
    8888extern  void external_exception_vector_prolog_code();
    8989extern  unsigned int  external_exception_vector_prolog_code_size[];
     90#if defined(ASM_DEC_VECTOR)
    9091extern  void decrementer_exception_vector_prolog_code();
    9192extern  unsigned int  decrementer_exception_vector_prolog_code_size[];
     93#endif
     94#if defined(ASM_SYSMGMT_VECTOR)
     95extern  void sysmgmt_exception_vector_prolog_code();
     96extern  unsigned int  sysmgmt_exception_vector_prolog_code_size[];
     97#endif
     98#if defined(ASM_PIT_VECTOR)
    9299extern  void pit_exception_vector_prolog_code();
    93100extern  unsigned int  pit_exception_vector_prolog_code_size[];
     101#endif
     102#if defined(ASM_FIT_VECTOR)
    94103extern  void fit_exception_vector_prolog_code();
    95104extern  unsigned int  fit_exception_vector_prolog_code_size[];
     105#endif
    96106
    97107/* codemove is like memmove, but it also gets the cache line size
  • c/src/lib/libbsp/powerpc/shared/vectors/vectors_init.c

    r2c0f748 rf610e83f  
    174174  switch ( get_ppc_cpu_type() ) {
    175175    case PPC_603e:
     176    case PPC_603ev:
     177    case PPC_603le:
     178    case PPC_e300c1:
     179    case PPC_e300c2:
     180    case PPC_e300c3:
    176181    case PPC_8240:
    177182      has_shadowed_gprs = 1; 
  • c/src/lib/libbsp/powerpc/virtex/.cvsignore

    r2c0f748 rf610e83f  
     1Makefile
     2Makefile.in
    13aclocal.m4
    2 autom4te*.cache
     4autom4te.cache
    35config.cache
    4 config.guess
    56config.log
    67config.status
    7 config.sub
    88configure
    9 depcomp
    10 install-sh
    11 Makefile
    12 Makefile.in
    13 missing
    14 mkinstalldirs
  • c/src/lib/libbsp/powerpc/virtex/ChangeLog

    r2c0f748 rf610e83f  
     12007-07-10      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
     2        * startup/linkcmds.dl:
     3        removed
     4
    152007-07-05      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
    26
  • c/src/lib/libbsp/powerpc/virtex/Makefile.am

    r2c0f748 rf610e83f  
    1010dist_project_lib_DATA = bsp_specs
    1111
    12 include_HEADERS = include/bsp.h
     12include_HEADERS = include/bsp.h 
    1313include_HEADERS += include/tm27.h
     14include_HEADERS += include/xparameters_dflt.h
     15include_HEADERS += network/xiltemac.h
    1416
    1517nodist_include_HEADERS = include/bspopts.h
     
    2224include_HEADERS += include/coverhd.h
    2325
    24 dist_project_lib_DATA += startup/linkcmds startup/linkcmds.dl
     26EXTRA_DIST = ../../powerpc/shared/start/rtems_crti.S
     27rtems_crti.$(OBJEXT): ../../powerpc/shared/start/rtems_crti.S
     28        $(CPPASCOMPILE) -o $@ -c $<
     29project_lib_DATA = rtems_crti.$(OBJEXT)
     30
     31dist_project_lib_DATA += startup/linkcmds
     32
    2533
    2634noinst_PROGRAMS += startup.rel
     
    6977network_rel_CPPFLAGS = $(AM_CPPFLAGS)
    7078network_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
    71 
    72 
    73 ##RSG Start
    74 ## include_HEADERS += include/xiltemac.h
    75 #noinst_PROGRAMS += xiltemac.rel
    76 #xiltemac_rel_SOURCES = network/xiltemac.c
    77 #xiltemac_rel_CPPFLAGS = -D__INSIDE_RTEMS_BSD_TCPIP_STACK__ $(AM_CPPFLAGS) -O0 -g
    78 #xiltemac_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
    79 ##RSG End
    80 
    8179endif
    8280
     
    9492    ../../../libcpu/@RTEMS_CPU@/ppc403/tty_drv.rel
    9593
    96 EXTRA_DIST = times
     94EXTRA_DIST += times
    9795
    9896include $(srcdir)/preinstall.am
  • c/src/lib/libbsp/powerpc/virtex/bsp_specs

    r2c0f748 rf610e83f  
    44
    55*startfile:
    6 %{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems: \
    7 %{!qrtems_debug: } \
    8 %{qrtems_debug: }ecrti%O%s}}
     6%{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems:  ecrti%O%s rtems_crti%O%s  crtbegin.o%s}}
    97
    108*endfile:
    11 %{!qrtems: %(old_endfile)} %{qrtems: ecrtn%O%s}
     9%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s ecrtn.o%s}
    1210
    1311*link:
  • c/src/lib/libbsp/powerpc/virtex/preinstall.am

    r2c0f748 rf610e83f  
    99DISTCLEANFILES += $(PREINSTALL_DIRS)
    1010
     11all-local: $(TMPINSTALL_FILES)
     12
     13TMPINSTALL_FILES =
     14CLEANFILES = $(TMPINSTALL_FILES)
     15
    1116all-am: $(PREINSTALL_FILES)
    1217
    1318PREINSTALL_FILES =
    14 CLEANFILES = $(PREINSTALL_FILES)
     19CLEANFILES += $(PREINSTALL_FILES)
    1520
    1621$(PROJECT_LIB)/$(dirstamp):
    17         @$(mkdir_p) $(PROJECT_LIB)
     22        @$(MKDIR_P) $(PROJECT_LIB)
    1823        @: > $(PROJECT_LIB)/$(dirstamp)
    1924PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
    2025
    2126$(PROJECT_INCLUDE)/$(dirstamp):
    22         @$(mkdir_p) $(PROJECT_INCLUDE)
     27        @$(MKDIR_P) $(PROJECT_INCLUDE)
    2328        @: > $(PROJECT_INCLUDE)/$(dirstamp)
    2429PREINSTALL_DIRS += $(PROJECT_INCLUDE)/$(dirstamp)
     
    3136        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp.h
    3237PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp.h
     38
     39$(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
     40        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
     41PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
     42
     43$(PROJECT_INCLUDE)/xparameters_dflt.h: include/xparameters_dflt.h $(PROJECT_INCLUDE)/$(dirstamp)
     44        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/xparameters_dflt.h
     45PREINSTALL_FILES += $(PROJECT_INCLUDE)/xparameters_dflt.h
     46
     47$(PROJECT_INCLUDE)/xiltemac.h: network/xiltemac.h $(PROJECT_INCLUDE)/$(dirstamp)
     48        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/xiltemac.h
     49PREINSTALL_FILES += $(PROJECT_INCLUDE)/xiltemac.h
     50
     51$(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
     52        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
     53PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
     54
     55$(PROJECT_INCLUDE)/bsp/$(dirstamp):
     56        @$(MKDIR_P) $(PROJECT_INCLUDE)/bsp
     57        @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     58PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     59
     60$(PROJECT_INCLUDE)/coverhd.h: include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
     61        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
     62PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
     63
     64$(PROJECT_LIB)/rtems_crti.$(OBJEXT): rtems_crti.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp)
     65        $(INSTALL_DATA) $< $(PROJECT_LIB)/rtems_crti.$(OBJEXT)
     66TMPINSTALL_FILES += $(PROJECT_LIB)/rtems_crti.$(OBJEXT)
     67
     68$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
     69        $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
     70PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
    3371
    3472$(PROJECT_INCLUDE)/bsp/opbintctrl.h: include/opbintctrl.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     
    4482PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/vectors.h
    4583
    46 
    47 $(PROJECT_INCLUDE)/xiltemac.h: network/xiltemac.h $(PROJECT_INCLUDE)/$(dirstamp)
    48         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/xiltemac.h
    49 PREINSTALL_FILES += $(PROJECT_INCLUDE)/xiltemac.h
    50 
    51 $(PROJECT_INCLUDE)/xparameters_dflt.h: include/xparameters_dflt.h $(PROJECT_INCLUDE)/$(dirstamp)
    52         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/xparameters_dflt.h
    53 PREINSTALL_FILES += $(PROJECT_INCLUDE)/xparameters_dflt.h
    54 
    55 $(PROJECT_INCLUDE)/tm27.h: include/tm27.h $(PROJECT_INCLUDE)/$(dirstamp)
    56         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tm27.h
    57 PREINSTALL_FILES += $(PROJECT_INCLUDE)/tm27.h
    58 
    59 $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp)
    60         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h
    61 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h
    62 
    63 $(PROJECT_INCLUDE)/coverhd.h: include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
    64         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
    65 PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h
    66 
    67 $(PROJECT_INCLUDE)/bsp/$(dirstamp):
    68         @$(MKDIR_P) $(PROJECT_INCLUDE)/bsp
    69         @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp)
    70 PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp)
    71 
    72 $(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
    73         $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
    74 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds
    75 
    76 $(PROJECT_LIB)/linkcmds.dl: startup/linkcmds.dl $(PROJECT_LIB)/$(dirstamp)
    77         $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.dl
    78 PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.dl
    79 
  • c/src/lib/libbsp/powerpc/virtex/startup/linkcmds

    r2c0f748 rf610e83f  
    1 /* Greg modifications
     1/*
    22 *  This file contains directives for the GNU linker which are specific
    33 *  to the virtex
     
    4747     *(set_pseudo_*);
    4848
     49    /* C++ constructors/destructors */
     50    *(.gnu.linkonce.t*)
     51
     52    /*  Initialization and finalization code.
     53     *
     54     *  Various files can provide initialization and finalization functions.
     55     *  The bodies of these functions are in .init and .fini sections. We
     56     *  accumulate the bodies here, and prepend function prologues from
     57     *  ecrti.o and function epilogues from ecrtn.o. ecrti.o must be linked
     58     *  first; ecrtn.o must be linked last. Because these are wildcards, it
     59     *  doesn't matter if the user does not actually link against ecrti.o and
     60     *  ecrtn.o; the linker won't look for a file to match a wildcard.  The
     61     *  wildcard also means that it doesn't matter which directory ecrti.o
     62     *  and ecrtn.o are in.
     63     */
     64    PROVIDE (_init = .);
     65    *ecrti.o(.init)
     66    *(.init)
     67    *ecrtn.o(.init)
     68   
     69    PROVIDE (_fini = .);
     70    *ecrti.o(.fini)
     71    *(.fini)
     72    *ecrtn.o(.init)
     73
     74    /*
     75     *  C++ constructors and destructors for static objects.
     76     *  PowerPC EABI does not use crtstuff yet, so we build "old-style"
     77     *  constructor and destructor lists that begin with the list lenght
     78     *  end terminate with a NULL entry.
     79     */
     80     
     81    PROVIDE (__CTOR_LIST__ = .);             
     82    *crtbegin.o(.ctors)
     83    *(.ctors)
     84    *crtend.o(.ctors)
     85    LONG(0)
     86    PROVIDE (__CTOR_END__ = .);
     87       
     88    PROVIDE (__DTOR_LIST__ = .);
     89    *crtbegin.o(.dtors)
     90    *(.dtors)
     91    *crtend.o(.dtors)
     92    LONG(0)
     93    PROVIDE (__DTOR_END__ = .);
     94       
     95    /* Exception frame info */
    4996     *(.eh_frame)
    50      *(.gnu.linkonce.r*)
    51      *(.descriptors)
    52      *(rom_ver)
     97    /* Miscellaneous read-only data */
     98    _rodata_start = . ;
     99    *(.gnu.linkonce.r*)
     100    *(.lit)
     101    *(.shdata)
     102    *(.rodata)
     103    *(.rodata1)
     104    *(.descriptors)
     105    *(rom_ver)
     106    _erodata = .;
     107
     108    PROVIDE (__EXCEPT_START__ = .);
     109    *(.gcc_except_table)
     110    PROVIDE (__EXCEPT_END__ = .);
     111    __GOT_START__ = .;
     112    s.got = .;
     113    *(.got.plt)
     114    *(.got)
     115    *(.got1)
     116    PROVIDE (__GOT2_START__ = .);
     117    PROVIDE (_GOT2_START_ = .);
     118    *(.got2)
     119    PROVIDE (__GOT2_END__ = .);
     120    PROVIDE (_GOT2_END_ = .);
     121   
     122    PROVIDE (__FIXUP_START__ = .);
     123    PROVIDE (_FIXUP_START_ = .);
     124    *(.fixup)
     125    PROVIDE (_FIXUP_END_ = .);
     126    PROVIDE (__FIXUP_END__ = .);
     127   
     128
     129    /* Various possible names for the end of the .text section */
    53130     etext = ALIGN(0x10);
    54131     _etext = .;
    55132
    56      *(.gnu.linkonce.t*)
    57 
    58      __CTOR_LIST__ = .;
    59      LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
    60      *(.ctors)
    61      LONG(0)
    62      __CTOR_END__ = .;
    63 
    64      __DTOR_LIST__ = .;
    65      LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
    66      *(.dtors)
    67      LONG(0)
    68      __DTOR_END__ = .;
    69 
    70133     *(.lit)
    71134     *(.shdata)
    72      _init = .; __init = .; *(.init)
    73      _fini = .; __fini = .; *(.fini)
    74135     _endtext = ALIGN(0x10);
    75136     text.end = .;
    76   } > RAM
     137     text.size = text.end - text.start;
     138  } >RAM
    77139
    78140  text.size = text.end - text.start;
    79141
    80   /* R/W Data */
    81   .data :
    82   {
    83     *(.data)
    84     *(.data1)
    85      *(.data.* .gnu.linkonce.d*)
    86     PROVIDE (__SDATA_START__ = .);
    87     *(.sdata*)
    88     *(.gnu.linkonce.s.*)
    89   } > RAM
    90 
    91   PROVIDE (__EXCEPT_START__ = .);
    92   .gcc_except_table   :
    93   {
    94         *(.gcc_except_table)
    95   } >RAM
    96   PROVIDE (__EXCEPT_END__ = .);
    97 
    98   __GOT_START__ = .;
    99   .got :
    100   {
    101      s.got = .;
    102      *(.got.plt) *(.got)
    103   } > RAM
    104   __GOT_END__ = .;
    105 
    106   .got1 :
    107   {
    108         *(.got1)
    109   } >RAM
    110 
    111   PROVIDE (__GOT2_START__ = .);
    112   PROVIDE (_GOT2_START_ = .);
    113   .got2           :
    114   {
    115         *(.got2)
    116   } >RAM
    117   PROVIDE (__GOT2_END__ = .);
    118   PROVIDE (_GOT2_END_ = .);
    119 
    120   PROVIDE (__FIXUP_START__ = .);
    121   PROVIDE (_FIXUP_START_ = .);
    122   .fixup          : { *(.fixup)         } >RAM
    123   PROVIDE (_FIXUP_END_ = .);
    124   PROVIDE (__FIXUP_END__ = .);
    125 
    126   PROVIDE (__SDATA2_START__ = .);
     142  .jcr : { KEEP (*(.jcr)) } >RAM
     143
     144    .rel.dyn : {
     145      *(.rel.init)
     146      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
     147      *(.rel.fini)
     148      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
     149      *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
     150      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
     151      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
     152      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
     153      *(.rel.ctors)
     154      *(.rel.dtors)
     155      *(.rel.got)
     156      *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
     157      *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
     158      *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
     159      *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
     160      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
     161    } >RAM
     162    .rela.dyn : {
     163      *(.rela.init)
     164      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
     165      *(.rela.fini)
     166      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
     167      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
     168      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
     169      *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
     170      *(.rela.ctors)
     171      *(.rela.dtors)
     172      *(.rela.got)
     173      *(.rela.got1)
     174      *(.rela.got2)
     175      *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
     176      *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
     177      *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
     178      *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
     179      *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
     180    } >RAM
     181
     182    PROVIDE (__SDATA2_START__ = .);
    127183  .sdata2         : { *(.sdata2) *(.gnu.linkonce.s2.*)  } >RAM
    128184  .sbss2          : { *(.sbss2) *(.gnu.linkonce.sb2.*)  } >RAM
    129   PROVIDE (__SBSS2_END__ = .);
    130 
    131   __SBSS_START__ = .;
    132   .bss :
    133   {
    134     bss.start = .;
    135     *(.bss .bss* .gnu.linkonce.b*)
    136     *(.sbss*) *(COMMON)
    137     bss.end = ALIGN(4);
    138     bss.size = bss.end - bss.start;
    139   } > RAM
    140   __SBSS_END__ = .;
     185    PROVIDE (__SBSS2_END__ = .);
     186       
     187    .sbss2        : { *(.sbss2)         } >RAM
     188    PROVIDE (__SBSS2_END__ = .);
     189       
     190    /* R/W Data */
     191    .data ( . ) :
     192    {
     193      . = ALIGN (4);
     194
     195      data.start = .;
     196
     197      *(.data)
     198      *(.data1)
     199      *(.data.* .gnu.linkonce.d.*)
     200      PROVIDE (__SDATA_START__ = .);
     201      *(.sdata*)
     202      *(.gnu.linkonce.s.*)
     203      data.end = .;
     204      data.size = data.end - data.start;
     205    } >RAM
     206
     207    __SBSS_START__ = .;
     208    .bss :
     209    {
     210      bss.start = .;
     211      *(.bss .bss* .gnu.linkonce.b*)
     212      *(.sbss*) *(COMMON)
     213      . = ALIGN(4);
     214      bss.end = .;
     215    } >RAM
     216    __SBSS_END__ = .;
     217
     218    __SBSS_START__ = .;
     219    .bss :
     220    {
     221      bss.start = .;
     222      *(.bss .bss* .gnu.linkonce.b*)
     223      *(.sbss*) *(COMMON)
     224      . = ALIGN(4);
     225      bss.end = .;
     226      bss.size = bss.end - bss.start;
     227    } >RAM
     228    __SBSS_END__ = .;
     229   
     230    PROVIDE(_bss_start   = ADDR(.bss));
     231    PROVIDE(_bss_size    = SIZEOF(.bss));
     232    PROVIDE(bss.size    = SIZEOF(.bss));
     233    PROVIDE(_data_start  = ADDR(.data));
     234    PROVIDE(_data_size   = SIZEOF(.data));
     235    PROVIDE(_text_start  = ADDR(.text));
     236    PROVIDE(_text_size   = SIZEOF(.text));
     237    PROVIDE(_end = data.end);
     238
     239    .gzipmalloc : {
     240        . = ALIGN (16);
     241        _startmalloc = .;
     242     } >RAM
     243               
     244
     245    /*
     246     * Interrupt stack setup
     247     */
     248    IntrStack_start = ALIGN(0x10);
     249    . += 0x4000;
     250    intrStack = .;
     251    PROVIDE(intrStackPtr = intrStack);
     252
     253    /* Sections for compressed .text and .data         */
     254    /* after the .datarom section is an int specifying */
     255    /* the length of the following compressed image    */
     256    /* Executes once then could get overwritten        */
     257    .textrom 0x100000 :
     258    {
     259        *(.textrom)
     260        _endloader = .;
     261    } >RAM
     262
     263    .datarom :
     264    {
     265        _dr_start = .;
     266        *(.datarom)
     267        _dr_end = .;
     268    } >RAM
     269    dr_len = _dr_end - _dr_start;
    141270
    142271  /* align bottom of 32k init stack at a 32k boundary */
     
    156285  PROVIDE(_end = intrStack);
    157286
    158   .line 0 : { *(.line) }
    159   .debug 0 : { *(.debug) }
    160   .debug_sfnames 0 : { *(.debug_sfnames) }
    161   .debug_srcinfo 0 : { *(.debug_srcinfo) }
    162   .debug_pubnames 0 : { *(.debug_pubnames) }
    163   .debug_aranges 0 : { *(.debug_aranges) }
    164   .debug_aregion 0 : { *(.debug_aregion) }
    165   .debug_macinfo 0 : { *(.debug_macinfo) }
    166   .stab 0 : { *(.stab) }
    167   .stabstr 0 : { *(.stabstr) }
    168 
     287    .line 0 : { *(.line) }
     288    .debug 0 : { *(.debug) }
     289    .debug_sfnames 0 : { *(.debug_sfnames) }
     290    .debug_srcinfo 0 : { *(.debug_srcinfo) }
     291    .debug_pubnames 0 : { *(.debug_pubnames) }
     292    .debug_aranges 0 : { *(.debug_aranges) }
     293    .debug_aregion 0 : { *(.debug_aregion) }
     294    .debug_macinfo 0 : { *(.debug_macinfo) }
     295    .stab 0 : { *(.stab) }
     296    .stabstr 0 : { *(.stabstr) }
    169297}
  • c/src/lib/libcpu/powerpc/ChangeLog

    r2c0f748 rf610e83f  
     12007-07-09      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
     2
     3        * configure.ac, Makefile.am, mpc83xx/include/mpc83xx.h,
     4        * mpc83xx/network/tsec.c, mpc83xx/network/tsec.h :
     5        added support for MPC83xx controllers
     6       
    172007-07-05      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
    28
  • c/src/lib/libcpu/powerpc/Makefile.am

    r2c0f748 rf610e83f  
    325325endif
    326326
     327if mpc83xx
     328include_mpc83xxdir = $(includedir)/mpc83xx
     329include_mpc83xx_HEADERS  = mpc83xx/include/mpc83xx.h
     330include_mpc83xx_HEADERS += mpc83xx/network/tsec.h
     331## mpc83xx/network
     332noinst_PROGRAMS += mpc83xx/tsec.rel
     333mpc83xx_tsec_rel_SOURCES   = mpc83xx/network/tsec.c
     334mpc83xx_tsec_rel_CPPFLAGS  = $(AM_CPPFLAGS)
     335mpc83xx_tsec_rel_CPPFLAGS += -D__INSIDE_RTEMS_BSD_TCPIP_STACK__  -D__BSD_VISIBLE
     336mpc83xx_tsec_rel_LDFLAGS   = $(RTEMS_RELLDFLAGS)
     337endif
     338
    327339include $(srcdir)/preinstall.am
    328340include $(top_srcdir)/../../../automake/local.am
  • c/src/lib/libcpu/powerpc/configure.ac

    r2c0f748 rf610e83f  
    4646|| test "$RTEMS_CPU_MODEL" = "mpc604" \
    4747|| test "$RTEMS_CPU_MODEL" = "mpc6xx" \
     48|| test "$RTEMS_CPU_MODEL" = "mpc8xx" \
    4849|| test "$RTEMS_CPU_MODEL" = "mpc821" \
    4950|| test "$RTEMS_CPU_MODEL" = "mpc860" \
     
    5152|| test "$RTEMS_CPU_MODEL" = "mpc8245" \
    5253|| test "$RTEMS_CPU_MODEL" = "mpc8260" \
    53 || test "$RTEMS_CPU_MODEL" = "mpc8xx" )
     54|| test "$RTEMS_CPU_MODEL" = "mpc83xx" )
    5455
    5556## test on CPU type
     
    6465|| test "$RTEMS_CPU_MODEL" = "mpc750" \
    6566|| test "$RTEMS_CPU_MODEL" = "mpc8240" \
    66 || test "$RTEMS_CPU_MODEL" = "mpc8245" )
     67|| test "$RTEMS_CPU_MODEL" = "mpc8245" \
     68|| test "$RTEMS_CPU_MODEL" = "mpc83xx" )
    6769AM_CONDITIONAL(mpc8xx, test "$RTEMS_CPU_MODEL" = "mpc8xx" \
    6870|| test "$RTEMS_CPU_MODEL" = "mpc821" \
    6971|| test "$RTEMS_CPU_MODEL" = "mpc860" )
    7072AM_CONDITIONAL(mpc8260, test "$RTEMS_CPU_MODEL" = "mpc8260")
     73AM_CONDITIONAL(mpc83xx, test "$RTEMS_CPU_MODEL" = "mpc83xx")
    7174
    7275# the ppc405 shares files with the ppc403
  • c/src/lib/libcpu/powerpc/preinstall.am

    r2c0f748 rf610e83f  
    193193PREINSTALL_FILES += $(PROJECT_INCLUDE)/mpc8260/mmu.h
    194194endif
     195if mpc83xx
     196$(PROJECT_INCLUDE)/mpc83xx/$(dirstamp):
     197        @$(MKDIR_P) $(PROJECT_INCLUDE)/mpc83xx
     198        @: > $(PROJECT_INCLUDE)/mpc83xx/$(dirstamp)
     199PREINSTALL_DIRS += $(PROJECT_INCLUDE)/mpc83xx/$(dirstamp)
     200
     201$(PROJECT_INCLUDE)/mpc83xx/mpc83xx.h: mpc83xx/include/mpc83xx.h $(PROJECT_INCLUDE)/mpc83xx/$(dirstamp)
     202        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/mpc83xx/mpc83xx.h
     203PREINSTALL_FILES += $(PROJECT_INCLUDE)/mpc83xx/mpc83xx.h
     204
     205$(PROJECT_INCLUDE)/mpc83xx/tsec.h: mpc83xx/network/tsec.h $(PROJECT_INCLUDE)/mpc83xx/$(dirstamp)
     206        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/mpc83xx/tsec.h
     207PREINSTALL_FILES += $(PROJECT_INCLUDE)/mpc83xx/tsec.h
     208endif
  • c/src/lib/libcpu/powerpc/shared/include/cpuIdent.h

    r2c0f748 rf610e83f  
    4141  PPC_8245 = 0x8081,
    4242  PPC_603le = 0x8082, /* 603le core, in MGT5100 and MPC5200 */
     43  PPC_e300c1  = 0x8083, /* e300c1  core, in MPC83xx*/
     44  PPC_e300c2  = 0x8084, /* e300c2  core */
     45  PPC_e300c3  = 0x8085, /* e300c3  core */
    4346  PPC_PSIM = 0xfffe,  /* GDB PowerPC simulator -- fake version */
    4447  PPC_UNKNOWN = 0xffff
  • c/src/lib/libcpu/powerpc/shared/src/cache.c

    r2c0f748 rf610e83f  
    99#include <rtems.h>
    1010#include "cache_.h"
    11 
     11#include <rtems/powerpc/registers.h>
    1212
    1313/*
     
    2020 */
    2121 
    22 #if defined(ppc603) || defined(mpc8260)    /* And possibly others */
     22#if defined(ppc603) || defined(ppc603e) || defined(mpc8260) /* And possibly others */
    2323
    2424/* Helpful macros */
     
    5050  uint32_t   value;
    5151  PPC_Get_HID0( value );
    52   value |= 0x00004000;        /* set DCE bit */
     52  value |= HID0_DCE;        /* set DCE bit */
    5353  PPC_Set_HID0( value );
    5454}
     
    5959  uint32_t   value;
    6060  PPC_Get_HID0( value );
    61   value &= 0xFFFFBFFF;        /* clear DCE bit */
    62   PPC_Set_HID0( value );
     61  value &= ~HID0_DCE;        /* clear DCE bit */
     62  PPC_Set_HID0( value );
     63}
     64
     65void _CPU_cache_invalidate_1_data_line(
     66        const void * _address )
     67{
     68  register const void *__address = _address;
     69  asm volatile ( "dcbi 0,%0" :: "r"(__address) : "memory" );
     70}
     71
     72void _CPU_cache_invalidate_entire_data (
     73        void )
     74{
     75  uint32_t  value;
     76  PPC_Get_HID0( value );
     77  value |= HID0_DCI;        /* set data flash invalidate bit */
     78  PPC_Set_HID0( value );
     79  value &= ~HID0_DCI;        /* clear data flash invalidate bit */
     80  PPC_Set_HID0( value );
     81}
     82
     83void _CPU_cache_freeze_data (
     84        void )
     85{
     86  uint32_t  value;
     87  PPC_Get_HID0( value );
     88  value |= HID0_DLOCK;        /* set data cache lock bit */
     89  PPC_Set_HID0( value );
     90}
     91
     92void _CPU_cache_unfreeze_data (
     93        void )
     94{
     95  uint32_t  value;
     96  PPC_Get_HID0( value );
     97  value &= ~HID0_DLOCK;        /* set data cache lock bit */
     98  PPC_Set_HID0( value );
     99}
     100
     101void _CPU_cache_flush_1_data_line(
     102        const void * _address )
     103{
     104  register const void *__address = _address;
     105  asm volatile ( "dcbf 0,%0" :: "r" (__address) : "memory" );
     106}
     107
     108void _CPU_cache_flush_entire_data (
     109        void )
     110{
     111  /*
     112   * FIXME: how can we do this?
     113   */
    63114}
    64115
     
    78129  PPC_Get_HID0( value );
    79130  value &= 0xFFFF7FFF;       /* Clear ICE bit */
     131  PPC_Set_HID0( value );
     132}
     133
     134void _CPU_cache_invalidate_1_instruction_line(
     135        const void * _address )
     136{
     137  register const void *__address = _address;
     138  asm volatile ( "icbi 0,%0" :: "r" (__address) : "memory");
     139}
     140
     141void _CPU_cache_invalidate_entire_instruction (
     142        void )
     143{
     144  uint32_t  value;
     145  PPC_Get_HID0( value );
     146  value |= HID0_ICFI;        /* set data flash invalidate bit */
     147  PPC_Set_HID0( value );
     148  value &= ~HID0_ICFI;        /* clear data flash invalidate bit */
     149  PPC_Set_HID0( value );
     150}
     151
     152void _CPU_cache_freeze_instruction (
     153        void )
     154{
     155  uint32_t  value;
     156  PPC_Get_HID0( value );
     157  value |= HID0_ILOCK;        /* set instruction cache lock bit */
     158  PPC_Set_HID0( value );
     159}
     160
     161void _CPU_cache_unfreeze_instruction (
     162        void )
     163{
     164  uint32_t  value;
     165  PPC_Get_HID0( value );
     166  value &= ~HID0_ILOCK;        /* set instruction cache lock bit */
    80167  PPC_Set_HID0( value );
    81168}
  • c/src/lib/libcpu/powerpc/shared/src/cache_.h

    r2c0f748 rf610e83f  
    55#ifndef __POWERPC_CACHE_h
    66#define __POWERPC_CACHE_h
     7/*
     8 * get definitions from the score/powerpc header
     9 * about individual cache alignments
     10 */
     11#include <rtems/score/powerpc.h>
    712
    813/*
     
    1520 */
    1621
    17 #if defined(ppc603)                     /* And possibly others */
    18 #define CPU_DATA_CACHE_ALIGNMENT PPC_CACHE_ALIGNMENT
    19 #define CPU_INSTRUCTION_CACHE_ALIGNMENT PPC_CACHE_ALIGNMENT
     22#if defined(ppc603) || defined(ppc603e) || defined(mpc8260)       
     23   /* And possibly others */
    2024
    21 #elif ( defined(mpc860) || defined(mpc821) )
     25#if defined(PPC_CACHE_ALIGNMENT)
    2226
    2327#define CPU_DATA_CACHE_ALIGNMENT PPC_CACHE_ALIGNMENT
     
    2529
    2630#endif
    27 
     31#endif
    2832#include <libcpu/cache.h>
    2933
  • c/src/libchip/ide/ata.c

    r2c0f748 rf610e83f  
    11691169                  IDE_Controller_Table[ctrl_minor].int_vec;
    11701170                ata_irq_data.hdl    = ata_interrupt_handler;
    1171                 ata_irq_data.handle = ctrl_minor;
     1171                ata_irq_data.handle = (rtems_irq_hdl_param) ctrl_minor;
    11721172
    11731173                status = ((0 == BSP_install_rtems_irq_handler(&ata_irq_data))
  • c/src/libchip/serial/ns16550.c

    r2c0f748 rf610e83f  
    206206   * wait for transmitter holding register to be empty
    207207   */
    208   iTimeout=1000;
     208  iTimeout=10000;
    209209  ucLineStatus = (*getReg)(pNS16550, NS16550_LINE_STATUS);
    210210  while ((ucLineStatus & SP_LSR_THOLD) == 0) {
  • cpukit/score/cpu/powerpc/rtems/score/powerpc.h

    r2c0f748 rf610e83f  
    145145
    146146#define PPC_ALIGNMENT           8
     147#define PPC_CACHE_ALIGNMENT     16
    147148
    148149#elif defined(ppc603e)
     
    156157
    157158#define PPC_ALIGNMENT           8
     159#define PPC_CACHE_ALIGNMENT     16
    158160
    159161#elif defined(mpc604)
  • make/ChangeLog

    r2c0f748 rf610e83f  
     12007-07-09      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
     2
     3        * custom/gen83xx.cfg, custom/mpc8349eamds: added file to support
     4        MPC83xx controller based boards
     5       
    162007-07-02      Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
    27
Note: See TracChangeset for help on using the changeset viewer.