summaryrefslogtreecommitdiffstats
path: root/bsps (unfollow)
Commit message (Collapse)AuthorFilesLines
13 daysbsps/aarch64/raspberrypi: Add system timer supportHEADmasterNing Yang2-5/+18
The clock from the ARM timer is derived from the system clock. This clock can change dynamically e.g. if the system goes into reduced power or in low power mode. Thus the clock speed adapts to the overall system performance capabilities. For accurate timing it is recommended to use the system timers. if BSP_CLOCK_USE_SYSTEMTIMER = 1, use the System Timer, otherwise use the ARM Timer.
2024-04-17bsp/qoriq: Include missing processormaskimpl.hVincenzo Calabretta1-0/+1
2024-04-16bsps/arm: Improve GICv3 supportSebastian Huber1-5/+11
In addtion to 1023, the GICC_IAR register may return 1022 as a special value. Simply check for a valid interrupt vector for the dispatching. Check the GICC_IAR again after the dispatch to quickly process a next interrupt without having to go through the interrupt prologue and epiloge.
2024-04-16arm/xen: Fix BSP_INTERRUPT_VECTOR_COUNTSebastian Huber1-1/+1
Do not use reserved interrupt IDs.
2024-04-16dev/irq: Improve Doxgyen group assignmentsSebastian Huber11-29/+94
Make the GIC interrupt controller support a subgroup of the generic interrupt controller support.
2024-04-16bsps/arm: Improve GICv2 supportSebastian Huber3-13/+34
In addtion to 1023, the GICC_IAR register may return 1022 as a special value. Simply check for a valid interrupt vector for the dispatching. Check the GICC_IAR again after the dispatch to quickly process a next interrupt without having to go through the interrupt prologue and epiloge.
2024-04-11dev/clock: Move bcm2835-system-timer driver to shared spaceNing Yang1-0/+0
This patch moves the bcm2835 system timer driver in the arm/raspberrypi directory to the shared directory and adjusts arm/raspberrypi BSP.
2024-04-11bsps/xil-ttc: Improve clock driverSebastian Huber3-137/+122
Make the clock driver parameters configurable. Use the maximum counter frequency to get the best time resolution. Decouple the CPU counter from the timecounter. Make the tick catch up handling more robust. Add a validation test for the tick catch up.
2024-04-11bsps/xil-ttc: Add XIL_FATAL_TTC_IRQ_INSTALLSebastian Huber2-4/+5
2024-04-11bsps/xil-ttc: Use interrupt entrySebastian Huber1-4/+10
2024-04-09bsps: Include <rtems/score/processormaskimpl.h>Sebastian Huber6-0/+6
This fixes commit b678a199e499b6c3f0b453393434aefaee180423 for SMP configurations.
2024-04-06Fix: type-cast to wrong typeBernd Moessner1-1/+1
2024-04-04dev/serial: Add Zynq UART kernel I/O supportSebastian Huber8-189/+64
Replace the BSP_CONSOLE_MINOR BSP option for the Xilinx Zynq BSPs with the new BSP option ZYNQ_UART_KERNEL_IO_BASE_ADDR. Move the kernel I/O support to a shared file.
2024-04-04dev/serial: Add ZYNQ_UART_[01]_BASE_ADDRSebastian Huber10-8/+148
This helps to provide a shared implementation of the kernel I/O support.
2024-03-27dev/serial: Simplify some Zynq UART functionsSebastian Huber8-111/+62
Make the initialization and polled functions independent of the Termios context. This helps to implement the kernel I/O support without a dependency on the Termios framework.
2024-03-27bsps: Move declarations to <bsp/irq-generic.h>Sebastian Huber27-187/+160
Move declarations of bsp_interrupt_get_affinity() and bsp_interrupt_set_affinity() to <bsp/irq-generic.h>. Canonicalize the <bsp/irq.h> includes. Implement bsp_interrupt_get_affinity() and bsp_interrupt_set_affinity() only if needed (usually RTEMS_SMP). Provide stub implementations for i386 to fix build errors.
2024-03-22Mark parameters as intentionally unusedSebastian Huber1-0/+1
The parameters are unused due to API constraints. The functions are used through function pointers. Alternative implementations may use the parameters. Update #4862.
2024-03-20bsps: Avoid unused argument in clock interruptSebastian Huber42-181/+137
Pass the parameter of the clock interrupt handler to Clock_driver_support_at_tick() and Clock_driver_timecounter_tick(). This makes it possible to use the interrupt handler argument in clock drivers. Use the interrupt handler provided by Clock_driver_support_install_isr() to avoid local delarations of Clock_isr(). Update #4862.
2024-03-20dev/irq: Optional arm_gic_irq_processor_count()Sebastian Huber3-0/+6
Provide arm_gic_irq_processor_count() only in SMP configurations.
2024-03-19arm/xilinx-zynqmp-rpu: Fix clock driverStanislav Pankevich1-1/+1
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-11bsps/shared/xqspipsu: Read correct status bitsKinsey Moore1-0/+15
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-11bsps/shared/xnandpsu: Add opportunistic page cacheKinsey Moore2-0/+50
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-11bsps/clock: Fix fast idle for SMPSebastian Huber1-0/+16
2024-03-11aarch64/zynqmp: Fix UART base addresses and IRQSebastian Huber2-4/+4
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-11bsps/powerpc: Fix include orderSebastian Huber1-1/+1
The <rtems/irq.h> header file depends on the BSP-provided define BSP_SHARED_HANDLER_SUPPORT.
2024-02-28bsps/xnandpsu: Allow creation of BBTKinsey Moore1-1/+1
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-27bsps/powerpc: Include missing <rtems/irq.h>Sebastian Huber1-0/+1
The <rtems/irq.h> defines a legacy API.
2024-02-27bsp/qoriq: Use more specific includeSebastian Huber2-1/+2
2024-02-27bsp/qoriq: Remove superfluous includeSebastian Huber1-1/+0
2024-02-27bsp/qoriq: Remove <rtems/irq.h> in <bsp/irq.h>Sebastian Huber3-5/+4
The <rtems/irq.h> defines a legacy API.
2024-02-27bsp/qoriq: Use bsp_fatal()Sebastian Huber2-2/+5
2024-02-27bsp/qoriq: Use interrupt entrySebastian Huber4-29/+50
Avoid heap usage in the basic BSP.
2024-02-23arm/altera-cyclone-v/README: Fix use of CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORSJoel Sherrill1-1/+1
The proper name is now CONFIGURE_MAXIMUM_FILE_DESCRIPTORS.
2024-02-19bsps/qspipsu: Calculate correct parallel mode sizeKinsey Moore1-1/+2
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-01bsp/tms570: Fix console receive interruptsAdrien Chardon1-36/+9
`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-01-31bsps/qoriq: Add VME support for MVME2500Christian Mauderer1-0/+50
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-31bsps/qoriq: Allow setting EIRQ polarity and senseChristian Mauderer2-0/+83
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-31bsps/qoriq: Add MMU regions for PCIe based on fdtChristian Mauderer1-0/+88
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-16bsps/xilinx-zynqmp-rpu: Invalidate caches on startStanislav Pankevich1-0/+8
This corrects an issue where caches can be dirty on warm boot.
2024-01-15bsp/tms570: Use TMS570_OSCILLATOR_MAINSebastian Huber1-2/+0
This option replaces BSP_OSCILATOR_CLOCK. It may be used in PLL setup calculatios. Update #4982.
2024-01-15bsp/tms570: Update READMETyler Miller1-71/+63
Update #4982.
2024-01-15bsp/tms570: Board-specific tms570_emif_sdram_init()Tyler Miller4-97/+115
Update #4982.
2024-01-15bsp/tms570: Board-specific tms570_pinmux_init()Tyler Miller5-310/+300
Update #4982.
2024-01-15bsp/tms570: Board-specific tms570_map_clock_init()Tyler Miller4-109/+187
Update #4982.
2024-01-15bsp/tms570: Board-specific tms570_pll_init()Tyler Miller4-58/+253
Update #4982.
2024-01-15bsp/tms570: Initialize MPUTyler Miller2-0/+205
Update #4982.
2024-01-15bsp/tms570: Optimize tms570_debug_console_out()Sebastian Huber1-20/+21
Reduce number of interrupt disable/enable actions. Update #4982.
2024-01-15bsp/tms570: Initialize and enable caches on demandSebastian Huber1-0/+25
Update #4982.
2024-01-15bsp/tms570: Use bsp_start_copy_sections_compact()Sebastian Huber1-1/+1
There is no need to relocate the text and read-only data. Update #4982.
2024-01-15bsp/tms570: Use shared bsp_start_hook_1()Sebastian Huber2-22/+4
Update #4982.