Age | Commit message (Collapse) | Author |
|
Fix PR 2068:
Reproducable crashes occur when using pthreads and the capture engine
at the same time. 'pthread_create()' is the culprit. It creates a SCORE thread
and then calls Thread_Start( ) without disabling thread-dispatching.
|
|
According with comment in
rtems_cache_invalidate_multiple_instruction_lines(), final_address
indicates the last address which needs to be invalidated. But if in
while loop we got final_address == i_addr condition then loop breaks and
final_address will not be invalidated.
|
|
|
|
STOP_TRANSMISSION command is used to finish READ_MULTIPLE_BLOCK
command and its format is regular command format.
It requires valid CRC-7 to have effect at least on
same cards types else it is ignored and attempt
to issue next READ or WRITE commands results in
illegal command condition (0x04) preceded by strange
(0x3f) for tested card.
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
|
|
Arnout Vandecappelle:
PR 1569/misc
* libchip/i2c/spi-sd-card.c: Added CRC checks.
PR 1576/misc
* libchip/i2c/spi-sd-card.c: Enable CRC checks.
PR 1567/misc
* libchip/i2c/spi-sd-card.h, libchip/i2c/spi-sd-card.c: Fixed
timeouts.
PR 1579/misc
* libchip/i2c/spi-sd-card.c: Gradually increasing sleep times when
waiting for write to finish.
PR 1580/misc
* libchip/i2c/spi-sd-card.c: Use bigger chunks and yield processor
while waiting for read data.
PR 1586/misc
* libchip/i2c/spi-sd-card.h, libchip/i2c/spi-sd-card.c: Add retries to
SD card accesses.
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
|
|
The _Thread_queue_Process_timeout() operation had several race
conditions in the event of nested interrupts. Protect the critical
sections via disabled interrupts.
|
|
Return if the executing context performed the extract operation since
interrupts may interfere.
|
|
This partly reverts commit 08b9d534604fbf437743a9925ef28eb1b848510d.
Avoid a NULL pointer access and perform the source segment erase if
necessary.
|
|
CSB336 i.MX1/i.MXS memory map organization
- SDRAM starts at address 0x08000000 but 2 MB are reserved
for boot-block/loader (or other use) before RTEMS image
origin/load address (that is kept from previous setup)
- Caching of 30 MB of SDRAM used for RTEMS (start at 0x08200000)
is changed to writeback mode which provides higher throughput.
- The first 1 MB of RTEMS dedicated SDRAM is remapped to address 0
to provide area for ARM CPU exceptions table.
- Internal registers and rest of the Flash (above 1 MB) are mapped
one to one. Registers region is extended to 2 MB to cover
eSRAM found on i.MX1 chip variant.
- The first two megabytes of SDRAM unused by RTEMS are mapped
with attributes to allow specific purposes.
- the first MB (at address 0x08000000) is nocached to allow
directly set some values read by booot-block after warm reset
- the second MB (at address 0x08100000) is set for write-through
caching. That allows to use memory for LCD frame-buffer without
need to flush cache after each redraw.
Signed-off-by: Pavel Pisa <pi@baree.pikron.com>
|
|
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
|
|
The original version is missing void and result is that (*x >> 16) is
optimized to ldh rX,[rY]. But it is not allowed/supported to access
bus/address range used by AITC by other than 32 bit wide accesses
and 16-bit access results in the data abort exception.
The corrected version works on real hardware and is even
more readable.
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
|
|
|
|
The chain iteration was wrong. The chain tail is not an object.
|
|
Commit 4b45c1393ce4ee3e1c2762ef3145d2bd6b5b38da marked a test in
_Event_Timeout() as debug only. This test is required also in non-debug
configurations since otherwise state corruption can happen. A revised
test sptests/spintrcritical10 checks the relevant sequences.
|
|
Under certain conditions it is possible that a call to
_Watchdog_Adjust_to_chain() happens with a unit parameter value of zero
(for example sptests/spintrcritical17). Remove superfluous checks that
prevent an adjust to a chain of a watchdog chain which first element has
a delta zero value.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Check the availablity of a recycle destination segment only when it is
necessary to avoid missing resycle source segment erasures.
|
|
Do not use the unavailable block count as the erased blocks starvation
threshold. Use instead the block count of the largest segment. This
improves the starvation resolution gain of available blocks.
|
|
|
|
|
|
|
|
|
|
The compaction process needs erased blocks. It is only possible to
erase an entire segment. Thus in order to make a progress we always
need enough erased blocks to empty a used or available segment which can
be erased in turn. A (possibly the worst case) lower bound of erased
blocks is the block count of the largest segment. The number of
unavailable blocks specified by the configuration will be used to
determine the erase blocks starvation situation. The number of
unavailable blocks must be greater than or equal to the number of blocks
in the largest segment.
|
|
|
|
|
|
In case rtems_bdbuf_read() returns an error status, the block device
buffer pointer will be set to NULL. In RFS the chain node of the block
device buffer will be used for RFS purposes. We must not do this after
an erroneous read.
|
|
Semaphores of type RTEMS_SIMPLE_BINARY_SEMAPHORE are not suitable for a
mutex. Use RTEMS_BINARY_SEMAPHORE with RTEMS_INHERIT_PRIORITY instead.
|
|
PR 2015/bsps
Since the configuration struct is always present one can let
DATA initialize it to reduce footprint, at the same time it
is made weak to let the user able to configure the SHM driver
without editing the driver code.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
|
|
|
|
"medit" overran the argument list, choking on the NULL pointer
following the last argument.
Note that "medit" still only does byte-sized accesses, which limits
its usefulness on most systems.
Author: Werner Almesberger <werner@almesberger.net>
Signed-off-by: Sebastien Bourdeauducq <sebastien@milkymist.org>
|
|
* libmisc/shell/main_mdump.c: Reworked to fix bugs in handling of the
length argument and to provide an "ldump" command. This file now also
supports the "wdump" command. In addition, an RTEMS API function called
rtems_mdump() is provided to allow easy dumping from application code.
* libmisc/shell/main_mwdump.c: Obsolete file.
* libmisc/Makefile.am: Removed main_mwdump.c
* libmisc/shell/shellconfig.h: Added "ldump" command.
* shell/memory.t: Added documentation for the "ldump" command
Signed-off-by: Ric Claus <claus@SLAC.Stanford.edu>
|
|
* libmisc/shell/main_mdump.c: Reworked to fix bugs in handling of the
length argument and to provide an "ldump" command. This file now also
supports the "wdump" command. In addition, an RTEMS API function called
rtems_mdump() is provided to allow easy dumping from application code.
* libmisc/shell/main_mwdump.c: Obsolete file.
* libmisc/Makefile.am: Removed main_mwdump.c
* libmisc/shell/shellconfig.h: Added "ldump" command.
* shell/memory.t: Added documentation for the "ldump" command
Signed-off-by: Ric Claus <claus@SLAC.Stanford.edu>
|
|
* console/console.c: char_ready() was never returning true so console
never processed input data
* console/console.c: added printk() support to default device
* include/bsp.h: Added #define for MOT_162BUG_VEC_ADDRESS
* startup/bspclean.c: Modified to use MOT_162BUG_VEC_ADDRESS
* startup/bspstart.c: Modified to use MOT_162BUG_VEC_ADDRESS
* make/custom/mvme162.cfg: Modified to use "RTEMS_CPU_MODEL=68lc040"
and "CPU_CFLAGS = -mcpu=68040 -msoft-float" so BSP will always
work with all board variations.
* README: Added notes on user required configuration changes and
information about board models and variants
* README.models: New file that contains a detailed list of MVME162
models and variants.
Signed-off-by: Vic Hoover <victor.hoover.ctr@navy.mil>
|
|
From: Xiangfu <xiangfu@sharism.cc>
Signed-off-by: Xiangfu <xiangfu@sharism.cc>
|
|
GRETH driver updated, 10-15% performance improvements for GBIT MAC,
unnecessary RX interrupts not taken which under heavy load saves approx.
1500 interrupts/s, one task removed saving about 5kb memory and 1 bug
solved.
BUG: RX interrupt was enabled before the RX-daemon was created which could
result in a faulty call to rtems_event_send.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
|
|
Deadlock may arise when the EDCL bug link is used to tunnel
console output over Ethernet, when Ethernet is down one should
avoid using console (only during debugging of LEON targets)
Author: Marko Isomaki <marko@gaisler.com>
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
|
|
PR 2010/bsps
The previous code only checked if d-cache snooping was implemented,
however snooping may be available but not enabled which may lead
to driver bugs.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
|
|
2009/bsps
All LEON3/4 systems have a CPU-id, if on a single-CPU system the
ID is always zero. On a multicore system it ranges from 0 to 15.
The CPU index should always by updated even in a non-MP RTEMS OS
since the CPU running RTEMS may not always be CPU0. For example
when RTEMS runs on CPU1 and Linux on CPU0 in a mixed ASMP system.
The old code executed within the IRQ controller initialization code
makes no sense since the ASR register is a CPU register, it has
nothing to do with AMBA initialization either.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
|
|
PR 2008/bsps
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
|
|
|
|
|
|
The SHM code always wakes one CPU more that configured, however
this has never been a problem since RTEMS will be running on all CPUs
or only two cores were available.
PR 2006/bsps
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
|
|
|
|
* math/init.c, mathf/init.c: Use DEVFS since we do have devices.
|