| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
The console works fine when only transmitting data from the ERC32, but stops
working after a while when receiving data.
"Stops working" means, bytes are neither sent nor received from the UART, but
the rest of the system keeps functioning (task are executing, the operative
system is responsive, etc).
Context:
- When an RX error occurs, the ERC32 UARTS stop generating RX/TX interrupts
until the corresponding error flag in the UART_STATUS are cleared.
- The console.c code currently cleans the error flags from the console_isr_x
subroutines, but those are NOT called when an RX error occurs. Thus the error
flag is never cleaned and then the UARTs stop generating interrupts
indefinitely.
- The ERC32 UARTs generate a different interrupt when an RX error occurs.
Fixed by:
- Adding a third interrupt service routine console_isr_error to handle the
UART_ERROR trap. This isr cleans the error flags of the channels.
- Cleaning the error flags manually just after having initialized the interrupt
vectors. This is because if the error flag was already set by the time the
interrupt vectors are configured, the interrupts might never be called.
|
|
|
|
|
|
|
|
|
|
| |
The function-like macro ERC32_Is_interrupt_masked defined as:
(ERC32_MEC.Interrupt_Masked & (1 << (_source)))
The ERC32_MEC is of type ERC32_Register_Map structure and Interrupt_Masked does
not exist in structure, instead Interrupt_Mask exists.
Update the macro accordingly.
|
| |
|
|
|
|
| |
Add doxygen to the header files in sparc/shared/include directory.
|
|
|
|
| |
Add doxygen to the bsp.h, tm27.h, erc32.h and irq.h files.
|
| |
|
|
|
|
|
|
| |
sparc/shared/startup/bspgetworkarea.c
* refactored sparc/shared/bspgetworkarea.c to sparc/shared/startup/bspgetworkarea.c
|
|
|
|
| |
This reduces the size of the RTEMS tests on average about 45%.
|
| |
|
|
|
|
|
| |
Termios notifies now the driver about an inactive transmit with the
length argument set to zero.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Delete bsp_smp_wait_for(). Other parts of the system work without
timeout, e.g. the spinlocks. Using a timeout here does not make the
system more robust.
Delete bsp_smp_cpu_state and replace it with Per_CPU_State. The
Per_CPU_State follows the Score naming conventions. Add
_Per_CPU_Change_state() and _Per_CPU_Wait_for_state() functions to
change and observe states.
Use Per_CPU_State in Per_CPU_Control instead of the anonymous integer.
Add _CPU_Processor_event_broadcast() and _CPU_Processor_event_receive()
functions provided by the CPU port. Use these functions in
_Per_CPU_Change_state() and _Per_CPU_Wait_for_state().
Add prototype for _SMP_Send_message().
Delete RTEMS_BSP_SMP_FIRST_TASK message. The first context switch is
now performed in rtems_smp_secondary_cpu_initialize(). Issuing the
first context switch in the context of the inter-processor interrupt is
not possible on systems with a modern interrupt controller. Such an
interrupt controler usually requires a handshake protocol with interrupt
acknowledge and end of interrupt signals. A direct context switch in an
interrupt handler circumvents the interrupt processing epilogue and may
leave the system in an inconsistent state.
Release lock in rtems_smp_process_interrupt() even if no message was
delivered. This prevents deadlock of the system.
Simplify and format _SMP_Send_message(),
_SMP_Request_other_cores_to_perform_first_context_switch(),
_SMP_Request_other_cores_to_dispatch() and
_SMP_Request_other_cores_to_shutdown().
|
|
|
|
|
|
|
|
|
| |
This commit deletes all RTEMS ChangeLog files. These files have been abandoned
since converting to git version control. The historical data may be recovered
by checking out any commit before this one. Most of the contents of these
ChangeLog files can also be found in the git log.
Two external ChangeLog files, ChangeLog.slac and ChangeLog.zlib, remain.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add CPU port type CPU_Exception_frame and function
_CPU_Exception_frame_print().
The CPU ports of avr, bfin, h8300, lm32, m32c, m32r, m68k, nios2, sh,
sparc64, and v850 use an empty default implementation of
_CPU_Exception_frame_print().
Add rtems_exception_frame and rtems_exception_frame_print().
Add RTEMS_FATAL_SOURCE_EXCEPTION for CPU exceptions. Use rtems_fatal()
with source RTEMS_FATAL_SOURCE_EXCEPTION in CPU ports of i386, powerpc,
and sparc for unexpected exceptions.
Add third parameter to RTEMS_BSP_CLEANUP_OPTIONS() which controls the
BSP_PRINT_EXCEPTION_CONTEXT define used in the default
bsp_fatal_extension().
Add test sptests/spfatal26.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Include <bsp/default-initial-extension.h> in all BSPs. Call
rtems_fatal() with RTEMS_FATAL_SOURCE_EXIT as source and the exit()
status code as fatal code in every bsp_cleanup(). Move previous
bsp_cleanup() code into bsp_fatal_extension().
|
|
|
|
| |
The bsp_fatal_extension() will call BSP_fatal_return().
|
|
|
|
|
|
|
|
|
|
|
|
| |
The work areas (RTEMS work space and C program heap) will be initialized
now in a separate step and are no longer part of
rtems_initialize_data_structures(). Initialization is performed with
tables of Heap_Area entries. This allows usage of scattered memory
areas present on various small scale micro-controllers.
The sbrk() support API changes also. The bsp_sbrk_init() must now deal
with a minimum size for the first memory chunk to take the configured
work space size into account.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit daffa606cc4a45d93c1f0f4fe365fde0fda6acbb.
Conflicts:
c/src/lib/libbsp/arm/lpc24xx/include/bspopts.h.in
c/src/lib/libbsp/powerpc/mpc55xxevb/include/bspopts.h.in
c/src/lib/libbsp/powerpc/qoriq/include/bspopts.h.in
Manually deleted conflicting files.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
|
|
|
| |
See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html
for details.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The implementation use IRQ number instead of vector number since
some IRQs does not have a unique vector, for example the extended
interrupts all enter the same trap vector entry.
Added support for the LEON3 extended interrupt controller when using
the shared IRQ layer.
ERC32 patches untested.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Regenerate
|
|
|
|
|
|
|
|
|
|
|
|
| |
If bsp_early_malloc() is called early during boot room will be
allocated after BSS END. If the function is called after boot
is will call malloc() instead. The returned memory is not freeable
and always 8-byte aligned.
If the bsp_early_malloc() isn't called the function is not
dragged in and the workspace will be unmodified in size.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The low level routines can be used in different occasions, it will be
required when accessing PCI.
Note the difference between byteorder.h (inlined functions) and access.S
where the functions will be declared in the library archive librtemscpu.a.
Function names starting with _ are in library and can be referenced by
function pointers.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
|
| |
|
|
|
|
| |
This reverts commit 8ae88d7f9644ad39d88aaa86c7558ec45450e8c9.
|
| |
|
|
|
|
|
|
| |
PR 1917/bsps
* Makefile.am, console/erc32_console.c: Modifications to add dynamic
tables for libchip serial drivers.
|
|
|
|
| |
* Makefile.am: Fix broken path to clockdrv_shell.h.
|
|
|
|
| |
* startup/bspdelay.c: Fix broken CVS-Id.
|
|
|
|
|
|
|
| |
* Makefile.am, configure.ac: runtest for this BSP obsoleted by
rtems-testing/sim-scripts support. Please use those scripts.
* tools/.cvsignore, tools/ChangeLog, tools/Makefile.am,
tools/configure.ac, tools/runtest.in: Removed.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
PR 1792/bsps
* src/lib/libbsp/i386/pc386/Makefile.am,
src/lib/libbsp/sparc/erc32/Makefile.am,
src/lib/libbsp/sparc/leon2/Makefile.am,
src/lib/libbsp/sparc/leon3/Makefile.am: Added a generic smp wait
method to sparc and i386 bsps.
* src/lib/libbsp/shared/smp/bspsmp_wait_for.c: New file.
|
|
|
|
|
|
|
|
| |
PR 1795/bsps
* erc32/Makefile.am, leon2/Makefile.am, leon3/Makefile.am: Add
rtems_bsp_delay to sparc bsps.
* erc32/startup/bspdelay.c, leon2/startup/bspdelay.c,
leon3/startup/bspdelay.c: New files.
|
|
|
|
|
|
| |
PR 1783/bsps
* include/bsp.h: Remove dead prototypes of Clock_delay() and delay().
Neither had bodies.
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1729/cpukit
* Makefile.am, configure.ac: Add next step in SMP support. This adds an
allocated array of the Per_CPU structures to support multiple cpus vs
a single instance of the structure which is still used if SMP support
is disabled. Configuration support is also added to explicitly enable
or disable SMP. But SMP can only be enabled for the CPUs which will
support it initially -- SPARC and i386. With the stub BSP support, a
BSP can be run as a single core SMP system from an RTEMS data
structure standpoint.
|
|
|
|
|
|
|
| |
PR 1748/bsps
* clock/ckinit.c: When the clock tick generates an interrupt WHILE we
have interrupts disabled doing a get TOD or uptime, the get
nanoseconds handler was returning a bogusly large number.
|
|
|
|
|
|
|
| |
PR 1750/bsps
* console/erc32_console.c, make/custom/erc32.cfg: The new console
driver did not support polled mode. It also had a bug in which it
could lose a transmitter interrupt.
|
|
|
|
|
| |
* console/erc32_console.c: Add polled support. Tinker with interrupt
handler to not dequeue characters unless TX is empty.
|
|
|
|
| |
* configure.ac: Remove RTEMS_CANONICAL_TARGET_CPU.
|
|
|
|
|
| |
* include/tm27.h, startup/spurious.c:
Use "__asm__" instead of "asm" for improved c99-compliance.
|
|
|
|
|
| |
* timer/timer.c: Include <rtems/btimer.h>.
Fix benchmark_timer_read() definition.
|
|
|
|
| |
* make/custom/erc32.cfg: Remove -ftest-coverage.
|
|
|
|
| |
* configure.ac: Require autoconf-2.68, automake-1.11.1.
|