* Update of BSP to address problems restarting, provide more
information during boot, and better handle ROM vs RAM images.
* README, include/bsp.h, start/regs.S, start/start.S,
startup/bspstart.c, startup/linkcmds, timer/timer.c: Updated
* Lots of tinkering and tuning as part of improving interrupt latency
and improving the per-task interrupt level control and FP mask handling.
With these modifications interrupt latency was measured at a worst-case
of 100us, average below 60 us on a 12 Mhz R3000 class CPU with 50
RTEMS tasks in the application.
* mongoosev/README: Updated.
* mongoosev/include/mongoose-v.h: Masks modified.
* mongoosev/vectorisrs/vectorisrs.c: Significant overhaul to address
software prioritization of interrupts. If a higher priority interrupt
occurs while we are looking for new interrupts, we will reinitiate the
scan of all interrupts.
* shared/interrupts/vectorexceptions.c: Removed warning and deleted
blank lines.
* cpu.c: Enhancements and fixes for modifying the SR when changing
the interrupt level.
* cpu_asm.S: Fixed handling of FP enable bit so it is properly
managed on a per-task basis, improved handling of interrupt levels,
and made deferred FP contexts work on the MIPS.
* rtems/score/cpu.h: Modified to support above changes.
* Nice Update of PPPD support which eliminates the
requiremetn that drivers be in the termios TASK_DRIVEN mode.
Mike did significant testing and reports that it seems to be
more stable and handle larger packets better. This patch
replaces the termios tasks with more general pppd network
driver tasks. The functions pppinput() and pppstart() get
called from the interrupt service routine.
* libc/termios.c: Added PPCDISC.
* Nice Update of PPPD support which eliminates the
requiremetn that drivers be in the termios TASK_DRIVEN mode.
Mike did significant testing and reports that it seems to be
more stable and handle larger packets better. This patch
replaces the termios tasks with more general pppd network
driver tasks. The functions pppinput() and pppstart() get
called from the interrupt service routine.
* Makefile.am, configure.ac, net/Makefile.am, net/bpf.h,
net/ethernet.h, net/if.c, net/if.h, net/if_arp.h, net/if_dl.h,
net/if_ethersubr.c, net/if_llc.h, net/if_loop.c, net/if_ppp.h,
net/if_pppvar.h, net/if_types.h, net/netisr.h, net/ppp-comp.h,
net/ppp_defs.h, net/pppcompress.h, net/radix.c, net/radix.h,
net/raw_cb.c, net/raw_cb.h, net/raw_usrreq.c, net/route.c,
net/route.h, net/rtsock.c, pppd/Makefile.am, pppd/README,
pppd/STATUS, pppd/auth.c, pppd/cbcp.c, pppd/ccp.c, pppd/ccp.h,
pppd/chap.c, pppd/chap.h, pppd/chap_ms.c, pppd/chap_ms.h,
pppd/chat.c, pppd/demand.c, pppd/fsm.c, pppd/fsm.h, pppd/ipcp.c,
pppd/ipcp.h, pppd/ipxcp.c, pppd/ipxcp.h, pppd/lcp.c, pppd/lcp.h,
pppd/magic.c, pppd/magic.h, pppd/options.c, pppd/patchlevel.h,
pppd/pathnames.h, pppd/pppd.8, pppd/pppd.h, pppd/rtemsmain.c,
pppd/rtemspppd.c, pppd/rtemspppd.h, pppd/sys-rtems.c, pppd/upap.c,
pppd/upap.h, pppd/utils.c, pppd/example/README,
pppd/example/netconfig.h, wrapup/Makefile.am: Modified.
* net/bsd-comp.c, net/if_ppp.c, net/ppp-deflate.c, net/ppp.h,
net/ppp_tty.c, net/pppcompress.c, net/zlib.c, net/zlib.h: New file.
* modem/, modem/.cvsignore, modem/Makefile.am, modem/ppp.c,
modem/ppp.h, modem/ppp_tty.c, modem/pppcompress.c: Subdirectory removed.
* Fixed bug where resetting a timer that was not at the head
of one of the task timer chains resulted in the Timer Server
task waking up too far in the future.
* Added rtems_timer_get_information() directive to support testing.
* sp31/init.c, sp31/system.h, sp31/task1.c: Modified to test for
above condition.
* Fixed bug where resetting a timer that was not at the head
of one of the task timer chains resulted in the Timer Server
task waking up too far in the future.
* Added rtems_timer_get_information() directive to support testing.
* src/timerserver.c, include/rtems/rtems/timer.h,
* src/timergetinfo.c: New file.
* src/Makefile.am: Modified to reflect above.
* include/rtems/system.h: Only include cpuopts.h when building a
multilib configuration. Some ports still need targopts.h but this
small modification lets those ports work non-multilib while
fixing being fixed for multilib.
* include/rtems/system.h: Only include cpuopts.h when building a
multilib configuration. Some ports still need targopts.h but this
small modification lets those ports work non-multilib while
fixing being fixed for multilib.
* src/powerpc/excep_f.c: This patch addresses the following issues:
- exception handler needs to enable MSR_FP if the interrupted
thread is FP enabled.
- printk message for MSR fixed and added stacktrace
NOTE: this requires the stacktrace patch to
lib/libbsp/powerpc/shared/vectors/vector_init.c
(#ifdef DDEBUG only, however)
* src/powerpc/new_exception_processing/remdeb.h,
src/powerpc/new_exception_processing/remdeb_xdr.c: Regenerated since
I updated the main RTEMS development machine to RedHat 7.2 and
apparently got a new version of rpcgen.
* Added task-based timers to the Timer Manager. This added three
new directives:
- rtems_timer_initiate_server
- rtems_timer_server_fire_after
- rtems_timer_server_fire_when
In the process of doing this, a number of cleanups were made.
* src/timerserver.c, src/timerserverfireafter.c,
src/timerserverfirewhen.c: New files.
* include/timer/timer.h: Added new prototypes and supporting types.
* inline/rtems/rtems/timer.h, macros/rtems/rtems/timer.h: Enhanced
_Timer_Is_interval_class() to cover the class TIMER_INTERVAL_ON_TASK.
* src/Makefile.am: Accounted for new files.
* src/rtemstimer.c: Added initialization of _Timer_Server variable.
* src/timercancel.c, src/timerreset.c: Account for addition
of timer classes. Also corrected the headers.
* src/timercreate.c, src/timerdelete.c, src/timerfireafter.c,
src/timerfireafter.c, src/timerident.c: Corrected header.
* vector/vector.S, irq/irq_asm.S: Make sure vectors work properly
in RAM and Flash based code. The code executed for the Flash
version runs in both cases (code in Flash/code in RAM) but as it
is less efficient than the one optimized for RAM, it put it inside
ifdef. A compilation error is generated if code is linked in Flash
with the correct ifdef set...
* irq/irq.c: Correct minor bug in mbx8xx interrupt handling.
Quoting Eric, "In theory it should be applied in each mpc8xx
related BSP but as I cannot test it plase maintainer/users
submit patch accordingly."
* Added tests for task-based timers. This included the new tests
sp30 and sp31.
* Makefile.am, configure.ac: Modified to reflect new tests and files.
* sp09/screen14.c, sp09/sp09.scn: Modified to add error checks
for task-based timer services.
* sp30/.cvsignore, sp30/Makefile.am, sp30/init.c, sp30/resume.c,
sp30/sp30.doc, sp30/sp30.scn, sp30/system.h, sp30/task1.c,
sp31/.cvsignore, sp31/Makefile.am, sp31/delay.c, sp31/init.c,
sp31/prtime.c, sp31/sp31.doc, sp31/sp31.scn, sp31/system.h,
sp31/task1.c: New files.
* Added task-based timers to the Timer Manager. This added three
new directives:
- rtems_timer_initiate_server
- rtems_timer_server_fire_after
- rtems_timer_server_fire_when
In the process of doing this, a number of cleanups were made.
* src/timerserver.c, src/timerserverfireafter.c,
src/timerserverfirewhen.c: New files.
* include/timer/timer.h: Added new prototypes and supporting types.
* inline/rtems/rtems/timer.h, macros/rtems/rtems/timer.h: Enhanced
_Timer_Is_interval_class() to cover the class TIMER_INTERVAL_ON_TASK.
* src/Makefile.am: Accounted for new files.
* src/rtemstimer.c: Added initialization of _Timer_Server variable.
* src/timercancel.c, src/timerreset.c: Account for addition
of timer classes. Also corrected the headers.
* src/timercreate.c, src/timerdelete.c, src/timerfireafter.c,
src/timerfireafter.c, src/timerident.c: Corrected header.