Changeset 8536b67 in rtems


Ignore:
Timestamp:
10/08/14 20:06:52 (9 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.11, 5, master
Children:
6279149
Parents:
037b57a
git-author:
Joel Sherrill <joel.sherrill@…> (10/08/14 20:06:52)
git-committer:
Joel Sherrill <joel.sherrill@…> (10/10/14 15:16:57)
Message:

Move Mongoose-V specific devices into BSP.

Putting the duart in libcpu was very optimistic and presumptuous.
It has never been used again on another SoC and is BSP specific.

Location:
c/src/lib
Files:
10 edited
5 moved

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/mips/genmongoosev/Makefile.am

    r037b57a r8536b67  
    1717nodist_include_HEADERS = include/bspopts.h
    1818nodist_include_bsp_HEADERS = ../../shared/include/bootcard.h
     19nodist_include_bsp_HEADERS += include/lr33000.h
     20nodist_include_bsp_HEADERS += include/lr333x0.h
     21nodist_include_bsp_HEADERS += include/mongoose-v.h
     22nodist_include_bsp_HEADERS += include/r3000.h
     23nodist_include_bsp_HEADERS += console/mg5uart.h
    1924DISTCLEANFILES = include/bspopts.h
    2025noinst_PROGRAMS =
     
    4853# console
    4954libbsp_a_SOURCES += console/conscfg.c
     55libbsp_a_SOURCES += console/mg5uart.c
    5056libbsp_a_SOURCES += ../../shared/console.c
    5157libbsp_a_SOURCES += ../../shared/console_select.c
     
    7682libbsp_a_LIBADD  = ../../../libcpu/@RTEMS_CPU@/shared/cache.rel
    7783libbsp_a_LIBADD += ../../../libcpu/@RTEMS_CPU@/shared/interrupts.rel
    78 libbsp_a_LIBADD += ../../../libcpu/@RTEMS_CPU@/mongoosev/duart.rel
    7984
    8085include $(srcdir)/preinstall.am
  • c/src/lib/libbsp/mips/genmongoosev/README

    r037b57a r8536b67  
    11BSP supporting the on-CPU capabilities of the Synova Mongoose-V.
    2 This BSP assumes that basic HW initialization is performed by
    3 PMON.
     2The Synova Mongoose-V is a radiation hardened derivative of the
     3LSI 33K with on-CPU peripherals.
     4
     5This BSP assumes that basic HW initialization is performed by PMON.
     6
     7Status
     8======
     9Per-task floating point enable/disable is supported for both immediate
     10and deferred FPU context swaps.
     11
     12Interrupt Levels are adapted reasonably well to the MIPS interrupt
     13model. Bit 0 of the int level is a global enable/disable, corresponding
     14to bit 0 of the processor's SR register.  Bits 1 thru 6 are configured
     15as masks for the Int0 thru Int5 interrupts.  The 2 software interrupt
     16bits are always enabled by default.  Each task maintains its own
     17Interrupt Level setting, reconfiguring the SR register's interrupt bits
     18whenever scheduled in.  The software ints, though not addressable via
     19the various Interrupt Level functions, are maintained on a per-task
     20basis, so if software manipulates them directly, things should behave as
     21expected.  At the time of these udpates, the Interrupt Level was only 8
     22bits, and completely supporting the global enable, software ints and the
     23hardware ints would require 9 bits.  When more than 8 bits are
     24available, there is no reason the software interrupts could not be added
     25to the Interrupt Level.
     26
     27While supporting the Int0 thru Int5 bits in this way doesn't seem
     28wonderfully useful, it does increase the level of compliance with the
     29RTEMS spec.
     30
     31Interrupt Level 0 corresponds to interrupts globally enabled, software
     32ints enabled and Int0 thru Int5 enabled.  If values other than 0 are
     33supplied, they should be formulated to impose the desired bitmask.
     34Interrupt priority is not a strong concept on this bsp, it is provided
     35only by the order in which interrupts are checked. 
     36
     37If during the vectoring of an interrupt, others arrive, they will all be
     38processed in accordance with their ordering in SR & the peripheral
     39register.  For example, if while we're vectoring Int4, Int3 and Int5 are
     40asserted, Int3 will be serviced before Int5.  The peripheral interrupts
     41are individually vectored as a consequence of Int5 being asserted,
     42however Int5 is not itself vectored.  Within the set of peripheral
     43interrupts, bit 0 is vectored first, 31 is last.
     44
     45Interrupts are not nested for MIPS1 or MIPS3 processors, but are
     46processed serially as possible.  On an unloaded 50 task RTEMS program,
     47runnning on a 12mhz MIPS1 processor, worst-case latencies of 100us were
     48observed, the average being down at 60us or below.
     49
     50
     51These features are principally a consequence of fixes and tweaks to the
     52MIPS1 and MIPS3 processor support, and should be equally effective on
     53both levels of MIPS processors for any of their bsp's.
    454
    555Address Map
  • c/src/lib/libbsp/mips/genmongoosev/console/conscfg.c

    r037b57a r8536b67  
    2222
    2323#include <libchip/serial.h>
    24 #include <libchip/mg5uart.h>
     24#include <bsp/mg5uart.h>
    2525
    2626/* #define CONSOLE_USE_INTERRUPTS */
  • c/src/lib/libbsp/mips/genmongoosev/console/mg5uart.c

    r037b57a r8536b67  
    2121
    2222#include <libchip/serial.h>
    23 #include <libchip/mg5uart.h>
    2423#include <libchip/sersupp.h>
    25 #include <libcpu/mongoose-v.h>
     24#include <bsp/mg5uart.h>
     25#include <bsp/mongoose-v.h>
    2626
    2727#include <bsp/irq.h>
  • c/src/lib/libbsp/mips/genmongoosev/include/bsp.h

    r037b57a r8536b67  
    2929#include <rtems/console.h>
    3030#include <rtems/clockdrv.h>
    31 #include <libcpu/mongoose-v.h>
     31#include <bsp/mongoose-v.h>
    3232
    3333#define BSP_FEATURE_IRQ_EXTENSION
  • c/src/lib/libbsp/mips/genmongoosev/irq/vectorisrs.c

    r037b57a r8536b67  
    1616#include <rtems.h>
    1717#include <stdlib.h>
    18 #include <libcpu/mongoose-v.h>
     18#include <bsp/mongoose-v.h>
    1919
    2020#include <rtems/mips/iregdef.h>
  • c/src/lib/libbsp/mips/genmongoosev/preinstall.am

    r037b57a r8536b67  
    7070PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/bootcard.h
    7171
     72$(PROJECT_INCLUDE)/bsp/lr33000.h: include/lr33000.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     73        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lr33000.h
     74PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lr33000.h
     75
     76$(PROJECT_INCLUDE)/bsp/lr333x0.h: include/lr333x0.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     77        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lr333x0.h
     78PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lr333x0.h
     79
     80$(PROJECT_INCLUDE)/bsp/mongoose-v.h: include/mongoose-v.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     81        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/mongoose-v.h
     82PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/mongoose-v.h
     83
     84$(PROJECT_INCLUDE)/bsp/r3000.h: include/r3000.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     85        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/r3000.h
     86PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/r3000.h
     87
     88$(PROJECT_INCLUDE)/bsp/mg5uart.h: console/mg5uart.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
     89        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/mg5uart.h
     90PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/mg5uart.h
     91
    7292$(PROJECT_INCLUDE)/coverhd.h: ../../shared/include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp)
    7393        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h
  • c/src/lib/libbsp/mips/genmongoosev/startup/bspstart.c

    r037b57a r8536b67  
    2424
    2525#include <bsp.h>
    26 #include <libcpu/mongoose-v.h>
     26#include <bsp/mongoose-v.h>
    2727#include <libcpu/isr_entries.h>
    2828#include <bsp/irq-generic.h>
  • c/src/lib/libbsp/mips/genmongoosev/startup/gdb-support.c

    r037b57a r8536b67  
    1212#include <rtems.h>
    1313#include <rtems/bspIo.h>
    14 #include <libcpu/mongoose-v.h>
     14#include <bsp/mongoose-v.h>
    1515#include "gdb_if.h"
    1616
  • c/src/lib/libcpu/mips/Makefile.am

    r037b57a r8536b67  
    3232endif
    3333
    34 if mongoosev
    35 interrupts_CPPFLAGS = -DMONGOOSEV
    36 endif
    37 
    3834noinst_PROGRAMS += shared/interrupts.rel
    3935shared_interrupts_rel_SOURCES = shared/interrupts/installisrentries.c \
     
    4238shared_interrupts_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
    4339include_libcpu_HEADERS += shared/interrupts/isr_entries.h
    44 
    45 EXTRA_DIST += mongoosev/README
    46 EXTRA_DIST += mongoosev/duart/README.mguart
    47 if mongoosev
    48 include_libcpu_HEADERS += mongoosev/include/mongoose-v.h
    49 
    50 ## mongoosev/duart
    51 include_libchipdir = $(includedir)/libchip
    52 include_libchip_HEADERS = mongoosev/duart/mg5uart.h
    53 
    54 noinst_PROGRAMS += mongoosev/duart.rel
    55 mongoosev_duart_rel_SOURCES = mongoosev/duart/mg5uart.c \
    56     mongoosev/duart/mg5uart.h mongoosev/duart/mg5uart_reg.c
    57 mongoosev_duart_rel_CPPFLAGS = $(AM_CPPFLAGS)
    58 mongoosev_duart_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
    59 
    60 endif
    6140
    6241if tx39
  • c/src/lib/libcpu/mips/preinstall.am

    r037b57a r8536b67  
    2727PREINSTALL_FILES += $(PROJECT_INCLUDE)/libcpu/isr_entries.h
    2828
    29 if mongoosev
    30 $(PROJECT_INCLUDE)/libcpu/mongoose-v.h: mongoosev/include/mongoose-v.h $(PROJECT_INCLUDE)/libcpu/$(dirstamp)
    31         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/libcpu/mongoose-v.h
    32 PREINSTALL_FILES += $(PROJECT_INCLUDE)/libcpu/mongoose-v.h
    33 
    34 $(PROJECT_INCLUDE)/libchip/$(dirstamp):
    35         @$(MKDIR_P) $(PROJECT_INCLUDE)/libchip
    36         @: > $(PROJECT_INCLUDE)/libchip/$(dirstamp)
    37 PREINSTALL_DIRS += $(PROJECT_INCLUDE)/libchip/$(dirstamp)
    38 
    39 $(PROJECT_INCLUDE)/libchip/mg5uart.h: mongoosev/duart/mg5uart.h $(PROJECT_INCLUDE)/libchip/$(dirstamp)
    40         $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/libchip/mg5uart.h
    41 PREINSTALL_FILES += $(PROJECT_INCLUDE)/libchip/mg5uart.h
    42 endif
    4329if tx39
    4430$(PROJECT_INCLUDE)/libcpu/tx3904.h: tx39/include/tx3904.h $(PROJECT_INCLUDE)/libcpu/$(dirstamp)
Note: See TracChangeset for help on using the changeset viewer.