Commit Graph

736 Commits

Author SHA1 Message Date
Jan Sommer
1f77518fca bsps/pc386: Add missing license header
Closes #4093.
2020-09-23 08:25:30 -05:00
Sebastian Huber
e8450a6c36 bsps/riscv: Add bsp_fdt_map_intr()
This function is required by libbsd.
2020-09-23 07:35:05 +02:00
Sebastian Huber
e59cb6a2b2 bsps/powerpc: Remove __ppc_generic define
Do not force BSPs to define __ppc_generic.

This was probably the last command line define in the BSPs.
2020-09-20 17:45:11 +02:00
Hesham Almatary
4897a82dec riscv: Make sifive_test finisher 4 bytes
QEMU is now stricter with MMIO sizes and accesses. uintptr_t on RV64
is 8 bytes and generates an sd instruction that Store/AMO faults
because sifive_test MMIO expects 4 bytes accesses.
2020-09-17 09:01:51 +01:00
Sebastian Huber
4b767bd343 bsps/arm: Use RTEMS_SECTION() 2020-09-17 08:36:45 +02:00
Sebastian Huber
20d82377a6 arm: Fix arm_cp15_set_translation_table_entries()
In a multi-processor system we must broadcast the TLB maintenance operation to
the Inner Shareable domain to ensure that the other processors update their TLB
caches accordingly.

Close #4068.
2020-09-17 08:20:35 +02:00
Sebastian Huber
2a4ccc4f8d bsp/pc386: Remove support for obsolete Binutils
Update #3818.
2020-09-15 15:14:38 +02:00
Sebastian Huber
2786b0aa38 bsps/riscv: Use far jump to boot_card()
Use a far jump to avoid errors like this:

relocation truncated to fit: R_RISCV_JAL against symbol `boot_card'
2020-09-15 09:20:27 +02:00
Sebastian Huber
f3f0370f10 build: Alternative build system based on waf
Update #3818.
2020-09-14 07:11:32 +02:00
Joel Sherrill
5959b1e34c Remove tmoverhd which existed to produce the obsolete coverhd.h
Closes #4040.
2020-09-11 08:54:16 -05:00
Joel Sherrill
e563e61c7a Remove remaining references to coverhd.h
Closes #4040.
2020-09-10 11:42:00 -05:00
Hesham Almatary
764ea57879 htif_console_handler is defined in htif.c
closes #4069.
2020-09-06 16:11:45 -05:00
Sebastian Huber
d556af3605 bsps: Always install IPI in SMP configs
The inter-processor interrupt (IPI) may be used to process per-CPU jobs.
See for example the blocked handler in T_interrupt_test().

Update #3199.
2020-08-31 16:19:53 +02:00
Jan Sommer
b87efa7599 bsp/xilinx-zynq: Flush TX-Buffer before initializing uart
Closes #4055
Closes #4056
2020-08-22 17:29:25 +10:00
Sebastian Huber
fe6191f91a bsps/leon3: Remove superfluous includes 2020-08-20 14:54:18 +02:00
Sebastian Huber
95d37b6307 bsps/arm: Use _Assert() 2020-08-20 14:54:18 +02:00
Chris Johns
3ec5f20484 powerpc/io: The eieio() function clashes with FreeBSD. Change. 2020-08-12 12:59:09 +10:00
Sebastian Huber
1b42158588 arm/atsam: Make interrupt server configurable
The external UART over SPI device SC16IS752 uses the interrupt server
for interrupt processing. The interrupt server is also heavily used by
libbsd. The interrupt processing for the SC16IS752 is time critical and
doesn't work if network traffic is processed at the same priority.
With #4033 custom interrupt servers are available. Change
atsam_sc16is752_spi_create() to support user-defined interrupt servers.
Introduced atsam_sc16is752_spi_config to cut down the argument count of
this function.

Close #4039.
2020-08-05 07:00:36 +02:00
Christian Mauderer
6014fadb5a bsps/beagle: Remove some debug output from I2C. 2020-08-03 09:11:13 +02:00
Sebastian Huber
29e7a069f8 dev/spi-memdrv: Fix use of uninit mem_param_ptr 2020-08-03 08:53:31 +02:00
Sebastian Huber
c60942ea5b rtems: Add rtems_interrupt_server_create()
Add rtems_interrupt_server_destroy().

Before this patch, the only way to create interrupt servers was
rtems_interrupt_server_initialize(). This function creates the default
interrupt server and in SMP configurations additional interrupt servers
for the additional processors. The interrupt server is heavily used by
libbsd. This includes the epoch based reclamation which performs time
consuming resource and memory deallocation work. This does not work well
with time critical services, for example an UART over SPI or I2C. One
approach to address this problem is to allow the application to create
custom interrupt servers with the right priority and task properties.
The interrupt server API accounted for this, however, it was not
implemented before this patch.

Close #4034.
2020-08-03 08:52:41 +02:00
Christian Mauderer
02c9eb8567 bsps/fdt: Make sure data is cache aligned
The cache of the fdt blob is flushed after copy. Therefore it should be
aligned.
2020-07-31 08:26:14 +02:00
Christian Mauderer
29a73d876c bsp/imx: Use GPIOs for SPI CS
The chip select lines of the iMX SPI module doesn't work well for a
generic API like the one RTEMS uses. The existing solution only worked
in some special cases and had odd bugs when trying transfers of
different sizes (like deselecting between each byte for lengths that are
not dividable by 4).

With this patch the same approach like on FreeBSD or Linux is used:
Treat the CS lines as GPIOs.

Update 3869
2020-07-31 08:26:14 +02:00
Christian Mauderer
0f4b911c01 bsp/imx: Add a GPIO driver
Update 3869
2020-07-31 08:26:14 +02:00
Sebastian Huber
a3bcc79a1f bsps/lm32: Use shared <bsp/irq.h>
Having a duplicate header with the shared includes is a build system
inconsistency.  You may use one header file to build the libraries and
another one is installed (overwriting the other).

Update #3269.
2020-07-31 07:01:09 +02:00
Sebastian Huber
33314eb60a bsps/clock: Fix fast idle clock tick support
If we interrupt a thread dispatch critical section (thread dispatch
disable level != ISR nest level), then we should not do the fast idle
mode since this may delay an ongoing system call forever.
2020-07-23 08:56:06 +02:00
Jan Sommer
9cb107c970 bsps/pc386: Fix IPI for non-consecutive APICIDs
- properly use the cpu <-> apic maps for IPIs

Closes #4029.
2020-07-16 08:00:32 -05:00
Sebastian Huber
479b2bfe87 rtems: Remove _Copyright_Notice from API header
Close #3981.
2020-07-14 07:25:46 +02:00
James Fitzsimons
a3b86d6caf Fix for Beaglebone BSP PWM bug 2020-07-13 17:53:26 +02:00
Sebastian Huber
401b237f93 epiphany: Remove support for this target
Due to an unmaintained toolchain (internal errors in GCC, no FSF GDB
integration) the Epiphany architecture was obsoleted in RTEMS 5.1.

Update #3941.
2020-07-05 18:05:25 +02:00
Sebastian Huber
523551ccf6 bsps/powerpc: Remove obsolete BSPs
Update #3951.
2020-07-05 12:56:05 +02:00
Sebastian Huber
70b803b554 bsps/powerpc: Remove SPE enabled variants
The PowerPC SPE support was removed from GCC.

Update #3951.
2020-07-05 12:56:01 +02:00
Sebastian Huber
69690f60b4 bsps/powerpc: Remove __atexit form start.o
Remove superflous __atexit stuff in start.o.  It is no longer required
by GCC and may cause linker problems.

See GCC commit:

commit 362c63a5e8b5aacfff3e5af0911e42ba7c775042
Author: Geoff Keating <geoffk@cygnus.com>
Date:   Fri Apr 14 23:16:25 2000 +0000
2020-07-05 12:56:01 +02:00
Sebastian Huber
9b5af6a47f bsps/powerpc: Fix tlbie instruction usage
GCC 10 no longer passes -many to the assembler.  This enables more
checks in the assembler.

The 0 in the tlbie instruction is the L operand which selects a 4KiB
page size.
2020-07-05 12:56:01 +02:00
Sebastian Huber
9b3b33d91a bsps/powerpc: Fix inline assembly
GCC 10 no longer passes -many to the assembler.  This enables more
checks in the assembler.
2020-07-05 12:56:01 +02:00
Sebastian Huber
b4a786df18 bsp/qoriq: Fix tlbwe sequence 2020-07-05 12:56:01 +02:00
Sebastian Huber
6a02c11b4e bsps/mips: Fix issues with -fno-common 2020-07-05 12:56:01 +02:00
Chris Johns
bc73a08598 i386/pc: Initialise the printk serial port on first use 2020-06-18 12:03:28 +10:00
Joel Sherrill
4a8b135dd6 bsps/i386/pc386/start/*.S: Remove space before tab 2020-06-17 07:52:15 -05:00
Jan Sommer
96d9823ddd bsp/pc386: Disable interrupt nesting for job handler
- Fixes timeout for smpipi01 where:
    + Main thread sends perform jobs to worker cpu while it is already
    performing jobs
    + Interrupt on worker cpu performs jobs, but with empty job list
    + Worker cpu continues to execut previous job and adds new job list
    to itself, which is never performed, since the interrupt has already
    been handled
    + Main thread blocks forever on barrier D
2020-06-11 13:29:41 +10:00
Jan Sommer
208cd6b794 bsps/pc386: Separate smp API functions. Makes smpfatal08 link 2020-06-11 13:29:27 +10:00
Jan Sommer
c954003fa0 bsps/pc386: Fix Clock_isr for SMP
- Do not forward Clock_isr through Clock_driver_support_at_tick as this
will cause every processor to send IPIs with Clock_isr therby creating
an infinie loop
- Instead the processor handling the clock interrupt causes all other
processors to call rtems_timecounter_tick to update their tick count
2020-06-11 13:29:18 +10:00
Jan Sommer
5d4a1edca0 bsp/pc386: Define interrupt stack frame for smp
- Defines CPU_Interrupt_frame in cpu_impl.h
- Updates isq_asm.S to save/restore registers in matching order to
interrupt frame
2020-06-11 13:29:11 +10:00
Jan Sommer
85d6a760f5 bsp/pc386: Update GDT to work for SMP
Create a GS segment in the GDT for each processor for storing TLS.
This makes the GDT in startAP.S obsolete as all processors now share the
same GDT, which is passed to each AP at startup.

The correct segment for each processor is calculated in cpu_asm.S.

Update #3335
2020-06-11 13:28:55 +10:00
Jan Sommer
f99b1f02b0 bsp/pc386: Turn start16.S into a startAP.S
start16.S is now only used for SMP configurations to start the
application processors.

This commit removes all unnecessary parts for this job,
i.e. video conssole initalisation, A20 gate activation
and all non-AP related code.

Update #3335
2020-06-11 13:28:46 +10:00
Chris Johns
084ea83a9b testsuite: Add expected-fail to beagleboneblack
Updates #2962
2020-05-06 18:40:42 +10:00
Chris Johns
7e3af67349 testsuite: Add expected-fail to xilinx's zedboard, a9_qemu, zc702 and zc706
Updates #2962
2020-05-06 18:40:27 +10:00
Chris Johns
1b1755d9a6 testsuite: Add expected-fail to psim
Updates #2962
2020-05-06 18:39:55 +10:00
Chris Johns
7d00247497 testsuite: Add expected-fail to erc32, leon2, and leon3 BSPs
Updates #2962
2020-05-06 18:39:05 +10:00
Sebastian Huber
4b9b6ddb9f Use rtems_get_version_string()
Update #3970.
2020-05-06 07:39:09 +02:00