Only enter the if block to clear the channel when IOFFHR != 0. Then
subtract 1 inside there to get the correct channel (e.g. IOFFHR == 1
maps to channel 0).
Commit 3a0dcd5ee9 cleaned up the
TMS570_MMR_SELECT_GMII_SEL somewhat, creating the
TMS570_MMR_SELECT_MII_MODE and TMS570_MMR_SELECT_RMII_MODE
macros.
There remains one reference to the TMS570_MMR_SELECT_GMII_SEL macro
in the 3137 code. This commit replaces it with TMS570_MMR_SELECT_MII_MODE
which preserves the same encoding as the pinmux was at the time (and is
correct): TMS570_PIN_AND_FNC(TMS570_BALL_WITH_MMR(29, 3), 0)
LS31x variants have this ETO field in POMGLBCTRL but the LC43x
variants do not.
Guard the write so LC43x variants aren't trying to program a
non-existent field.
Error pin and interrupt channels are write-one-to-set so setting all
to zero does not have the desired effect to enable them. We need to
write FFs (all ones).
Status (error) returns 1 and 3 from tms570_efc_check are Class 1 and 2
i.e. very serious errors and should be dealt with explicitly in
tms570_system_hw_init.
These returns indicate that serious eFuse failures are either present
or cannot be ruled out and start-up should halt.
Tests using the bld.cc() and bld.cxx() rules do not profit from the
automatic compiler dependency generation provided by the gccdeps.py waf
plugin.
Add "cpukit/include/rtems/score/cpuopts.h" as a hard-coded dependency to
these tests to account for configuration changes. This fixes linker
errors, for example if the configuration changed the RTEMS_SMP option.
Close#5482.
Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
The rtems_fdt_subnode_offset and rtems_fdt_get_name try to binary
search the entries index by the DTB offset, but the index is sorted
by alphabetically by the name, so the search is broken. Replace these
searches by directly calling the libfdt functions. Since the DTB offset
is known, the performance hit for invoking the libfdt should not be too
much.
Closes#5606.
sp13 already constructs Q3 using rtems_message_queue_construct()
in init.c but task1.c never sends to, receives from, or deletes
the constructed queue.
Extend task1.c to send a message to Q3, receive it back, and
delete the queue after the variable-size loop completes. This
exercises the full lifecycle of a queue created with static
storage and storage_free set to NULL.
Verified on arm/realview_pbx_a9_qemu with QEMU 9.0.2,
RTEMS 7.0.0.a413333f2f04130e82e15addba402887222c345f, GCC 15.2.0.
RAM parity self-tests run on several RAM modules, which work fine for
the 3137 variants, but on 4357 variants some of those modules use
an ECC memory protection scheme.
This commit turns the relevent ones off for 4357 until proper ECC
self-tests are created.
Move the upstream FatFs sources from cpukit/libfs/src/fatfs to
contrib/fatfs.Keep the RTEMS integration layer (rtems-fatfs-*.c and
rtems-diskio.c) in libfs. Introduce a wrapper header under rtems/fatfs
and update internal sources to use it.
Update the build specification to reference the new location without
introducing global include paths.
Fixes#5433
The recent FDT changes included some refactoring that missed the second
parameter in a rtems_fdt_valid_handle_unprotected() call. This adds the
missing parameter and fixes the build.
The change to avoid deadlock could introduce a race condition on the
blobs chain and the handle. Refactor the rtems_fdt_valid_handle() to
create an internal unprotected version, and call it with the global
rtems_fdt_lock() held.
Reading non-compressed dtb files was broken because of the initial
reading of the first two bytes to check for compression. Reset the
file pointer after making that first read regardless of whether a
gzip header is found or not.
Splits functionality so that reading from the dtb file is distinct from
loading it into memory. This allows directly loading a dtb from memory
instead of from a file.
The number of external interrupts can be configured through the FDT.
Read it during PLIC initialization and use that to determine the max
valid vector number.
The previous addition of s-mode support avoided touching the PLIC
registers and only allowed limited use of software interrupts for SMP
IPIs. This enables the PLIC in s-mode mapping the registers with the MMU
and unifying some aspects of the m-mode and s-mode implementations.
Updates #3337
Update to tms570-sci.c (commit af77d28) puts a gate to check
requests for non 8-bit bytes and CREAD not set, we therefore
must expclitily set them now.
- Changed the interrupt attributes so extended vectors
report can_raise as false.
- Changed the bsp_interrupt_raise to return
RTEMS_UNSATISFIED for extended vectors 16-31.
- BSP-specific validation for gr712rc and gr740
were added to exercised the extended vectors, and
check that the right interrupt handler is called.
Updates #4846.