Added definitions of STDOUT_FILENO and STDERR_FILENO in bsp.h.
Removed the tools subdirectory in c/src/lib/libbsp/patmos/pasim. The tools subdirectory provide additional tools that aid in using the target board, namely a script to automate running the RTEMS Test Suites on the BSP.
For functions boot_card and abort_trap, included the __attribute__ ((used)) attribute in the file headers, and removed the attribute in the actual function declaration.
Fixed some hard_reset code, mostly related to the assembly nomenclature.
In CPU_Context_Switch and CPU_Context_Restore routines, added instruction to reset r0, and spilled cache in CPU_Context_Restore.
Reviewed the CPU_Context_Initialize routine.
Removed the CPU_Minimum_Stack structure from the Patmos CPU, and reviewed all the Patmos context areas (general, floating point, interrupt). Removed structure CPU_Trap_table_entry, macro _CPU_Context_Initialization_at_thread_begin. Adapted the _CPU_Fatal_halt macro to Patmos.
Substituted the whole timer.c with the content retrieved from the no_cpu/no_bsp folder.
Removed the timing test suite (times file) from the Pasim BSP.
Added bsp_specs to the Pasim BSP.
Fixed the storage of the hard_reset function in register r30 in the hard_reset function.
Removed function bspidle.S that defines the idle thread from the Pasim BSP.
Removed snooping function from bspstart.c in Pasim.
Commit 4b45c1393c 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.
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.
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>