Commit Graph

1632 Commits

Author SHA1 Message Date
Stanislav Pankevich
ef9a74fc1a arm/xilinx-zynqmp-rpu: Fix clock driver
We observed a strange behavior of the 1Hz timer when running cFS on Zynq
RPU. After some investigation, we reduced the error to the truncation
issue. This patch fixes the issue.
2024-03-19 13:25:16 +01:00
Kinsey Moore
fd790b3431 bsps/shared/xqspipsu: Read correct status bits
When resetting the QSPI FIFOs, the driver was reading write-only bits of
a register for status information when it was actually in a different
register. This corrects the driver so that it reads the correct status
bits.
2024-03-11 12:09:59 -05:00
Kinsey Moore
33379dcfc4 bsps/shared/xnandpsu: Add opportunistic page cache
Add an opportunistic page cache to the xnandpsu driver since it does not
implement partial page reads and common filesystem access patterns
perform multiple reads from the same page. This has been seen to provide
a 10x speedup to read speeds and a 2x speedup on first initialization
when used with JFFS2.
2024-03-11 12:09:59 -05:00
Sebastian Huber
85b55a7624 bsps/clock: Fix fast idle for SMP 2024-03-11 14:40:06 +01:00
Sebastian Huber
283f783d5d aarch64/zynqmp: Fix UART base addresses and IRQ
The base addresses and IRQ numbers for UART 0 and 1 were interchanged.
Fix this and set BSP_CONSOLE_MINOR to 0 for this BSP family.
2024-03-11 14:22:53 +01:00
Sebastian Huber
5cb666ba41 bsps/powerpc: Fix include order
The <rtems/irq.h> header file depends on the BSP-provided define
BSP_SHARED_HANDLER_SUPPORT.
2024-03-11 07:09:15 +01:00
Kinsey Moore
75d7af409f bsps/xnandpsu: Allow creation of BBT
This fixes a logic inversion that was preventing creation of a Bad Block
Table (BBT) from scratch on devices that lack one. This was discovered
during upstream integration testing. The BBT management layer in this
driver is not designed to be easily testable other than on real hardware.
2024-02-28 11:20:36 -06:00
Sebastian Huber
a779b17764 bsps/powerpc: Include missing <rtems/irq.h>
The <rtems/irq.h> defines a legacy API.
2024-02-27 14:54:32 +01:00
Sebastian Huber
d6242196b5 bsp/qoriq: Use more specific include 2024-02-27 14:13:14 +01:00
Sebastian Huber
b544d070cf bsp/qoriq: Remove superfluous include 2024-02-27 14:13:14 +01:00
Sebastian Huber
65bfcc3944 bsp/qoriq: Remove <rtems/irq.h> in <bsp/irq.h>
The <rtems/irq.h> defines a legacy API.
2024-02-27 14:13:14 +01:00
Sebastian Huber
4fd930b7f0 bsp/qoriq: Use bsp_fatal() 2024-02-27 14:13:13 +01:00
Sebastian Huber
7e990236a7 bsp/qoriq: Use interrupt entry
Avoid heap usage in the basic BSP.
2024-02-27 14:13:13 +01:00
Joel Sherrill
00e71f0b4b arm/altera-cyclone-v/README: Fix use of CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
The proper name is now CONFIGURE_MAXIMUM_FILE_DESCRIPTORS.
2024-02-23 08:35:59 -06:00
Kinsey Moore
8f8f043234 bsps/qspipsu: Calculate correct parallel mode size
Stacked mode doubles the number of sectors and device size while
parallel mode doubles the sector size and the device size. Make sure
that this is accounted for in the device size accessor.
2024-02-19 09:26:04 -06:00
Adrien Chardon
b1fdf75338 bsp/tms570: Fix console receive interrupts
`tms570_sci_interrupt_handler()` is called when an RX interrupt fires. It checks
in the register `FLR`, the `RXRDY` bit (Receiver ready flag - indicate that the
SCIRD contains new data). If it is set, it calls
`tms570_sci_read_received_chars()`.

`tms570_sci_read_received_chars()` checks the register `RD` against 0. If it is
non zero, it returns 1 to indicate that one byte was read.

In the old behavior, if it is zero, the function returns 0 to indicate that no
data was read.

The new behavior is to not silently drop 0x00 bytes. Ignoring 0x00 bytes is fine
when working with printable text (which, I assume, is how this driver was
tested), but as soon as the UART is used in non canonical (raw) mode, with
potentially 0x00 bytes, these bytes will be silently dropped, causing issues in
the data/protocol layer above.

Update #4982.
2024-02-01 07:54:57 +01:00
Christian Mauderer
55a1b9accd bsps/qoriq: Add VME support for MVME2500
This enables the VME support for the MVME2500. Note that the PCIe
support from libbsd is used. So you need the related libbsd patches for
this to work.

If the drivers in libbsd are not enabled, the linker should not pick up
anything from this patch.
2024-01-31 09:54:57 +01:00
Christian Mauderer
529b70c828 bsps/qoriq: Allow setting EIRQ polarity and sense
Add a function that allows to set the polarity (active-low / negative
edge triggered or active-high / positive edge triggered) and sense
(level or edge sensitive) of the external interrupts.
2024-01-31 09:54:57 +01:00
Christian Mauderer
c9dda8cda8 bsps/qoriq: Add MMU regions for PCIe based on fdt
Get the memory ranges for the PCIe from the FDT and add them to the MMU.
This is necessary so that the PCIe driver in libbsd can work.
2024-01-31 09:54:57 +01:00
Stanislav Pankevich
7eee05a37d bsps/xilinx-zynqmp-rpu: Invalidate caches on start
This corrects an issue where caches can be dirty on warm boot.
2024-01-16 10:57:43 -06:00
Sebastian Huber
df378641e6 bsp/tms570: Use TMS570_OSCILLATOR_MAIN
This option replaces BSP_OSCILATOR_CLOCK.  It may be used in PLL setup
calculatios.

Update #4982.
2024-01-15 10:34:08 +01:00
Tyler Miller
b47c8188bf bsp/tms570: Update README
Update #4982.
2024-01-15 10:34:04 +01:00
Tyler Miller
449d836800 bsp/tms570: Board-specific tms570_emif_sdram_init()
Update #4982.
2024-01-15 10:34:02 +01:00
Tyler Miller
87be7eaba2 bsp/tms570: Board-specific tms570_pinmux_init()
Update #4982.
2024-01-15 10:34:00 +01:00
Tyler Miller
42e013a5dd bsp/tms570: Board-specific tms570_map_clock_init()
Update #4982.
2024-01-15 10:33:59 +01:00
Tyler Miller
b300b967ee bsp/tms570: Board-specific tms570_pll_init()
Update #4982.
2024-01-15 10:33:57 +01:00
Tyler Miller
53cbe74878 bsp/tms570: Initialize MPU
Update #4982.
2024-01-15 10:33:56 +01:00
Sebastian Huber
65831d71ed bsp/tms570: Optimize tms570_debug_console_out()
Reduce number of interrupt disable/enable actions.

Update #4982.
2024-01-15 10:33:54 +01:00
Sebastian Huber
5a2f64cf34 bsp/tms570: Initialize and enable caches on demand
Update #4982.
2024-01-15 10:33:52 +01:00
Sebastian Huber
663bedd59e bsp/tms570: Use bsp_start_copy_sections_compact()
There is no need to relocate the text and read-only data.

Update #4982.
2024-01-15 10:33:50 +01:00
Sebastian Huber
d4c6def68b bsp/tms570: Use shared bsp_start_hook_1()
Update #4982.
2024-01-15 10:33:49 +01:00
Sebastian Huber
e9634471d9 bsp/tms570: Add header guards
Update #4982.
2024-01-15 10:33:47 +01:00
Sebastian Huber
3f75b58d46 bsp/tms570: The TMS570LC4357 has no TCRAM modules
Update #4982.
2024-01-15 10:33:45 +01:00
Sebastian Huber
2db0844b87 bsp/tms570: Initialize SRAM on demand
Update #4982.
2024-01-15 10:33:43 +01:00
Sebastian Huber
23ba8d2c2c bsp/tms570: Use asm code for tms570_memory_init()
Make sure that we do not use the stack for this function.

Update #4982.
2024-01-15 10:33:41 +01:00
Tyler Miller
f7530be75c bsp/tms570: Honor DBGRST for TMS570LC4357
Update #4982.
2024-01-15 10:33:39 +01:00
Sebastian Huber
b99013e580 bsp/tms570: Remove reset source handling
Do not clear SYSESR and let the application handle the reset source.

Update #4982.
2024-01-15 10:33:37 +01:00
Tyler Miller
ec79400503 bsp/tms570: Add HCLKCNTL register
Update #4982.
2024-01-15 10:33:36 +01:00
Tyler Miller
2bbacdb557 bsp/tms570: TMS570LC4x Errata DEVICE#60
Update #4982.
2024-01-15 10:33:34 +01:00
Sebastian Huber
75dd824079 bsp/tms570: Add errata SSWF021#45 handling
Update #4982.
2024-01-15 10:33:33 +01:00
Sebastian Huber
4d9c9c52ae bsp/tms570: Conditionalize TMS570LS3137 errata
Update #4982.
2024-01-15 10:33:31 +01:00
Sebastian Huber
eeaa318dc6 bsp/tms570: Simplify expression
Update #4982.
2024-01-15 10:33:29 +01:00
Tyler Miller
c14efe493b bsp/tms570: Add TMS570LC4357 power support
Update #4982.
2024-01-15 10:33:28 +01:00
Tyler Miller
4f6fa9746d bsp/tms570: Add TMS570LC4357 pin config support
Update #4982.
2024-01-15 10:33:26 +01:00
Tyler Miller
39fd4b142e bsp/tms570: Remove double pin configuration
Do not set pins to the default function before the actual setting is
applied.  If a pin setting needs to be done in a certain order, then
this should be done explicitly through multiple calls to
tms570_bsp_pinmmr_config().

Update #4982.
2024-01-15 10:33:24 +01:00
Tyler Miller
b995211907 bsp/tms570: Add tms570_pbist_run_and_check()
Update #4982.
2024-01-15 10:33:22 +01:00
Tyler Miller
048d81a076 bsp/tms570: Add TMS570LC4357 PBIST support
Update #4982.
2024-01-15 10:33:19 +01:00
Sebastian Huber
36192165e2 bsp/tms570: Fix PBIST clock enable
Bit 1 of the PACT is reserved (writes have no effect).

Update #4982.
2024-01-15 10:33:17 +01:00
Sebastian Huber
eb97cd148c bsp/tms570: Add TMS570LC4357 BSP variants
Update #4982.
2024-01-15 10:33:15 +01:00
Sebastian Huber
437da01f80 bsp/tms570: Add linkcmds.memory
Remove obsolete tms570ls3137_hdk_with_loader BSP variant.  With the new
memory origin/size build options this variant is no longer required.

Update #4982.
2024-01-15 10:33:13 +01:00