Commit Graph

1287 Commits

Author SHA1 Message Date
Mohd Noor Aman
b57c6541a1 bsp/aarch64: Add new Raspberry Pi 4B BSP
This patch adds new Raspberry pi 4B AArch64 BSP to the RTEMS Family. Currently
only LP64 ABI is supported. ILP32 is not supported. RAM starts from 0x80000 in
64Bit kernel mode and MMU from 0x0. All Raspberrypi Pi 4B models and Raspberry
Pi 400 are supported. All the IRQs are similiar to the older Raspberry pi 2 ARM
BSP.

Raspberry Pi 4B has 2 types of UARTs. Only PL011 serial is supported currently.
Mini-UART is not supported. Mini-UART is default UART on the board so it needs
to be disabled by adding "dtoverlay=disable-bt" to the config.txt. No support
for additional 4 PL011-UARTs on the board.

The raspberrypi.h includes many of the address required for the future
development of the RPi 4B BSP. This includes peripherals, ARM Timer, VideoCore
Timer, Watchdog, Mailbox, AUX, FIQs and IRQs.
2022-10-04 17:04:44 -05:00
Sebastian Huber
962904cd94 bsps: Fix format specifier
Close #4722.
2022-09-23 08:37:59 +02:00
Sebastian Huber
f6e7c62705 bsps/arm: Mark functions in start.S
Add the function type to _start() and bsp_start_hook_0_done() so that
the linker can generate ARM/Thumb interworking code.

Update #4202.
2022-09-22 08:05:06 +02:00
Sebastian Huber
3edf9cba67 bsps/arm: Move bsp_start_hook_0_done()
Declare bsp_start_hook_0_done() in <bsp/start.h>.
2022-09-22 07:59:05 +02:00
Sebastian Huber
80be0de40e bsps/arm: Add comment about banked FIQ registers 2022-09-22 07:59:04 +02:00
Padmarao Begari
d0b92735b0 bsps/shared/: Use device tree blob
If the bsp is integrated and supported a device tree
blob(dtb) then use dtb instead of using it from
the U-Boot (BSP_START_COPY_FDT_FROM_U_BOOT=False).
2022-09-20 12:00:51 -05:00
Padmarao Begari
6b0d3c9873 bsps/riscv: Add Microchip PolarFire SoC BSP variant
The Microchip PolarFire SoC support is implemented as a
riscv BSP variant to boot with any individual hart(cpu core)
or SMP based on the boot HARTID configurable and support
components are 4 CPU Cores (U54), Interrupt controller (PLIC),
Timer (CLINT), UART.
2022-09-20 12:00:51 -05:00
Padmarao Begari
9cdc00881e bsps/riscv: Add device tree blob
Add the basic Microchip PolarFire SoC device tree source and blob

The mpfs-dtb.h is generated by the bin2hex

https://github.com/padmaraob/bin2hex

1.Compile and build the bin2hex.c
	$ gcc -o bin2hex bin2hex.c

2.Generate the mpfs.dtb from the mpfs.dts
	$ dtc -O dtb -o mpfs.dtb mpfs.dts

3.Generate the mpfs-dtb.h Header file from the mpfs.dtb.
	$ ./bin2hex mpfs.dtb
2022-09-20 12:00:51 -05:00
Sebastian Huber
f3f5b2781f bsp/tms570: Fix declarations
This avoids multiple definition errors.
2022-09-20 10:35:06 +02:00
Alan Cudmore
88f4d44f00 bsps/riscv/riscv: Fix fe310_uart_read
Note: Resending after learning how to use git send-email, please disregard previous message.

This fixes the riscv fe310 console driver fe310_uart_read function. The function
reads the RX status/data register to check if data is available, but discards
the data and reads it a seconds time.
Also cleared the interrupt enable bit in the first_open function.

Close #4719
2022-09-19 17:10:01 +02:00
Sebastian Huber
a660e9dc47 Do not use RTEMS_INLINE_ROUTINE
Directly use "static inline" which is available in C99 and later.  This brings
the RTEMS implementation closer to standard C.

Close #3935.
2022-09-19 09:09:22 +02:00
Sebastian Huber
d907c2294a powerpc: Add support for VRSAVE
The VRSAVE feature of the Altivec unit can be used to reduce the amount of
Altivec registers which need to be saved/restored during interrupt processing
and context switches.

In order to use the VRSAVE optimization a corresponding multilib (-mvrsave) is
required, see GCC configuration.  The -mvrsave option must be added to the
ABI_FLAGS of the BSP.

Currently only the -mcpu=e6500 based QorIQ BSP support this optimization.

Update #4712.
2022-09-08 15:54:23 +02:00
Martin Aberg
9ec9be834d bsp/riscv: Add NOEL-V BSP
Added support for Cobham Gaisler NOEL-V systems. The NOEL-V support
is implemented as a riscv BSP. Both 32-bit and 64-bit processor
systems are supported. Cobham Gaisler's NOEL-V RISC-V processor IP
is described here:
  https://www.gaisler.com/NOELV

Compatible with the following NOEL-V FPGA example design ranges
available from Cobham Gaisler. Follow the links for free
bit-streams, DTS/DTB, user's manuals and quick-start guides:
- NOEL-ARTYA7-EX    (https://www.gaisler.com/NOEL-ARTYA7)
- NOEL-PF-EX        (https://www.gaisler.com/NOEL-PF)
- NOEL-XCKU-EX      (https://www.gaisler.com/NOEL-XCKU)

Uses the shared GRLIB APBUART console driver "apbuart_termios.c".
APBUART devices are probed using device tree.

Closes #4225.
2022-09-06 16:15:58 +02:00
Daniel Cederman
ca07efd571 bsp/riscv: Work area size based on /memory node in fdt
Uses the first entry in the /memory node to determine the end of the
work area. Falls back on linker symbol if unable to parse the node.
2022-09-06 15:51:58 +02:00
Chris Johns
a3b0f7d5a8 bsps/xilinx/versal: Add Cadence I2C driver support 2022-08-25 09:25:03 +10:00
Stephen Clark
c738be92a0 bsps/amd64: remove -Werror from ABI flags
The ABI flags for the amd64 BSP contain the -Werror=return-type flag. There is no reason for this to be there so it has been removed. The same option has also been removed amd64.cfg file.
2022-08-23 11:37:21 -05:00
Sebastian Huber
21a36ed19b bsps: Fix .data.rel.ro placement
The .data.rel.ro* linker input section pattern accidentally matches with
writeable data those symbol name starts with "ro".

Close #4701.
2022-08-12 10:10:17 +02:00
Chris Johns
51ffa21011 aarch64/versal: Support DDRMC0 region 0 and 1
- Support DDRMC0 region 0 up to 2G in size

- Support DDRMC0 region 1 with DDR memory greater than 2G
  up to the DDRMC0 max amount

- Extend the heap with region 1's memory

Closes #4684
2022-07-28 09:04:46 +10:00
Chris Johns
b868d0a722 basp/aarch64: Make the unexpected sections origin address 64bit
Update #4684
2022-07-28 09:04:46 +10:00
Sebastian Huber
5810a08b57 Use __asm__ for standard C compatibility 2022-07-27 17:01:14 +02:00
Kinsey Moore
10ef7087f6 aarch64: Use page table level 0
This alters the AArch64 page table generation and mapping code and MMU
configuration to use page table level 0 in addition to levels 1, 2, and
3. This allows the mapping of up to 48 bits of memory space and is the
maximum that can be mapped without relying on additional processor
extensions. Mappings are restricted based on the number of physical
address bits that the CPU supports.
2022-07-21 12:26:35 -05:00
Kinsey Moore
1e360d3140 aarch64: Memory map the noinit section
This section was added recently and must be mapped to be accessed
without generating an exception.
2022-07-18 09:33:32 +10:00
Sebastian Huber
5ed0035377 bsps: Sort .noinit* sections
Sort the .noinit* input sections by name first, then by alignment if two
sections have the same name.  This allows the placement of begin/end symbols to
initialize some areas with a special value.

Update #4678.
2022-07-15 10:46:02 +02:00
Joel Sherrill
405639a67d bsps/v850/gdbv850sim: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
c1008e9da1 bsps/sparc64/usiii: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
ae71cf38eb bsps/sparc64/shared: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
a49acb6bef bsps/sparc64/niagara: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
749e9b63bd bsps/sparc64/include: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
f436fc7a18 bsps/sh/shsim: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
00913bb163 bsps/sh/shared: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:42 -05:00
Joel Sherrill
aacf9e23fb bsps/sh/gensh2: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
0fc7a4499c bsps/sh/gensh1: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
a73615a948 bsps/powerpc/virtex5: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
8a41efe424 bsps/powerpc/virtex4: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
77f1ae05dd bsps/powerpc/virtex: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
22d861ab9a bsps/powerpc/tqm8xx: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
a1fb8b7edb bsps/powerpc/t32mppc: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
9375d24dc8 bsps/powerpc/shared: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
8f4878ae1f bsps/powerpc/qoriq: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
a29b9bb4dd bsps/powerpc/qemuppc: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
5aea703542 bsps/powerpc/psim: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
88cf40e63c bsps/powerpc/mpc8260ads: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
bc374cd7a5 bsps/powerpc/mpc55xxevb: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
5ba0bb2afd bsps/powerpc/include: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
fe8b4b6c79 bsps/powerpc/83xx: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
a965590d64 bsps/powerpc/gen5200: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
d9d2cdff21 bsps/powerpc/beatnik: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
a3571e39fa bsps/no_cpu/no_bsp: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
5ee313155d bsps/nios2/nios2_iss: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00
Joel Sherrill
78a63729fa bsps/moxie/moxiesim: Change license to BSD-2
Updates #3053.
2022-07-12 08:15:41 -05:00