Sebastian Huber
f9648baf65
bsps/arm: Add support for small pages MMU
...
The small page MMU support reduces the granularity for memory settings
through the MMU from 1MiB sections to 4KiB small pages.
Enable it by default on the realview_pbx_a9_qemu BSP.
2019-10-31 09:48:05 +01:00
Hesham Almatary
044687d335
bsps/riscv: UART - Read reg-shift from DTB to properly set/get registers
2019-10-30 09:30:09 +00:00
Hesham Almatary
94481cedc4
riscv: Add new BSP cfg variants to be built with llvm/clang
2019-10-27 10:45:31 +00:00
Hesham Almatary
ce5988e10a
riscv: Add new offending input sections to the linker script
2019-10-27 10:45:20 +00:00
Hesham Almatary
7f0c41c759
riscv: Add NOLOAD directive to the .work section
...
ld.lld defaults .work to PROGBITS otherwise
2019-10-27 10:45:14 +00:00
Hesham Almatary
f462bcbb0a
riscv: Address differences in the linkerscript between GNU LD and LLVM/LLD
...
LLVM/LLD does not support STARTUP and ALIGN_WITH_INPUT directives that
GNU LD support. INPUT and ALIGN(8) are supported by LLVM/LLD and can
replace the unsupported STARTUP/ALIGN_WITH_INPUT directives.
The commit conditionally adds the supported directive that linkers
can understand depending on the toolchain used to compile RTEMS
i.e., clang or gcc. Clang is assumed to use LLD by default.
2019-10-27 10:45:00 +00:00
Hesham Almatary
ca82ded785
riscv: Generate linkcmds.base from the shared linkcmds.base.in
...
This commit moves the existing linkcmds.base to linkcmds.base.in
in order to make it configurable by autotools.
2019-10-27 10:44:52 +00:00
Sebastian Huber
d2efc968e2
bsp/xilinx-zynq: Simplify linkcmds config
...
Use NULL-pointer protection also for Qemu variant.
Do all calculations in the linker command file. This is a preparation
for the new build system.
2019-10-23 14:19:47 +02:00
Sebastian Huber
1e1afa3779
bsp/xilinx-zynqmp: Simplify linkcmds config
...
Do all calculations in the linker command file. This is a preparation
for the new build system.
2019-10-23 14:19:47 +02:00
Christian Mauderer
9620dfa49e
bsp/atsam: Use PIO for SC16IS752.
...
This allows to mix SC16IS752 chips with other interrupts.
2019-10-23 10:41:34 +02:00
Christian Mauderer
d60b6d7c33
bsp/atsam: Add additional PIO helper.
2019-10-23 10:41:34 +02:00
Christian Mauderer
d4b92da208
bsps/atsam: Improve case for level triggered IRQs.
...
For level triggered interrupts currently the handler would have been
called two times (assuming no one cleared the mask in a handler which
would have been bad because the handler couldn't process all other that
got cleared by accident). This patch allows the handler only to return
if nothing is left to do.
2019-10-23 10:41:34 +02:00
Pragnesh Patel
a7f5e42cc5
riscv: add freedom E310 Arty A7 bsp
...
Added support for Sifive Freedom FE310 soc on Arty A7 FPGA board.
Update #3785 .
Signed-off-by: Pragnesh Patel <pragnesh.patel@sifive.com >
2019-10-23 08:11:50 +02:00
Chris Johns
2fdbdbc8b1
arm/beanglebone: Fix i2c build error.
2019-10-19 15:53:50 +11:00
Sebastian Huber
be3d697450
bsp/erc32: Improve pseudo-SMP support
...
Add support for _SMP_Send_message() to the own processor. This is
required by the smpmulticast01 test program.
2019-10-01 09:55:07 +02:00
Sebastian Huber
33ed4123c0
rtems: Add rtems_interrupt_server_entry_move()
...
The use case for this function is the libbsd. In FreeBSD, the interrupt
setup and binding to a processor is done in two steps. Message
based interrupts like PCIe MSI and MSI-X interrupts can be implemented
through interrupt server entries. They are setup at the default
interrupt server and may optionally move to an interrupt server bound to
a specific processor.
2019-09-20 09:22:46 +02:00
Vijay Kumar Banerjee
a4e96cfb0a
bsps/beagle: register i2c device at initialization
2019-09-19 21:27:16 +02:00
Sebastian Huber
c331bdc777
record: Allow tracing of ISR disable/enable
...
Directly use the CPU port API in boot_card() to allow tracing of the
higher level interrupt disable/enable routines, e.g.
_ISR_Local_disable() and _ISR_Local_enable(). Currently, there is no
configuration option to enable this. Below is a patch. It may be used
to investigate some nasty low level bugs in the system.
Update #3665 .
diff --git a/cpukit/include/rtems/score/isrlevel.h b/cpukit/include/rtems/score/isrlevel.h
index c42451d010..46d361ddc2 100644
--- a/cpukit/include/rtems/score/isrlevel.h
+++ b/cpukit/include/rtems/score/isrlevel.h
@@ -40,6 +40,10 @@ extern "C" {
*/
typedef uint32_t ISR_Level;
+uint32_t rtems_record_interrupt_disable( void );
+
+void rtems_record_interrupt_enable( uint32_t level );
+
/**
* @brief Disables interrupts on this processor.
*
@@ -56,8 +60,7 @@ typedef uint32_t ISR_Level;
*/
#define _ISR_Local_disable( _level ) \
do { \
- _CPU_ISR_Disable( _level ); \
- RTEMS_COMPILER_MEMORY_BARRIER(); \
+ _level = rtems_record_interrupt_disable(); \
} while (0)
/**
@@ -72,10 +75,7 @@ typedef uint32_t ISR_Level;
* _ISR_Local_disable().
*/
#define _ISR_Local_enable( _level ) \
- do { \
- RTEMS_COMPILER_MEMORY_BARRIER(); \
- _CPU_ISR_Enable( _level ); \
- } while (0)
+ rtems_record_interrupt_enable( _level )
/**
* @brief Temporarily enables interrupts on this processor.
@@ -98,9 +98,8 @@ typedef uint32_t ISR_Level;
*/
#define _ISR_Local_flash( _level ) \
do { \
- RTEMS_COMPILER_MEMORY_BARRIER(); \
- _CPU_ISR_Flash( _level ); \
- RTEMS_COMPILER_MEMORY_BARRIER(); \
+ rtems_record_interrupt_enable( _level ); \
+ _level = rtems_record_interrupt_disable(); \
} while (0)
/
2019-09-06 08:09:34 +02:00
Chris Johns
15b6f44deb
arm/tlb: Fix the MP affinity check to invalidate ASIDs.
...
- The TI's CortexA7 MP MPIDR register returns 0
Updates #3760
2019-08-12 13:58:31 +10:00
Chris Johns
a4d7e4cee7
arm/raspberry: Set the workspace based on the mailbox version.
...
- Update the linkcmd file to support configure settings
- Set the workspace size based on the revision value
2019-08-12 08:49:33 +10:00
Chris Johns
9cb19ded5c
libdl/debugger: Fix the broken list delete when unloading an object module.
...
Closes #3777
2019-08-12 08:49:33 +10:00
Vijay Kumar Banerjee
886956afd2
bsp/beagle: Add nocache section
...
Closes #3780
2019-08-07 20:38:43 +02:00
Christian Mauderer
163927e502
bsps/beagle: Remove dead code from GPIO.
...
Remove static stuff that is never used.
2019-08-03 11:53:41 +02:00
Chris Johns
7d4f74e968
arm/beagle: Add libdebugger support.
...
- Port the jbang code from C++ to C to enable DBGEN.
- Hook the libdebugger ARM backend support to return the base address
of the debug register set.
2019-07-31 08:33:05 +10:00
Chris Johns
98d6792376
arm: Select the TLB invalidate based on the core's Id variant.
...
Closes #3760
2019-07-31 08:33:05 +10:00
Sebastian Huber
c5fd79cd47
arm/raspberrypi: Fix linker map
...
Add NULL-pointer protection. Make MMU table read-only. Move vector
table to start section.
Close #3774 .
2019-07-30 07:25:13 +02:00
Sebastian Huber
5ee70c5487
Add and use THREAD_DEFAULT_MAXIMUM_NAME_SIZE
2019-07-30 07:21:06 +02:00
Sebastian Huber
1e6380baf2
bsps/arm: Move HYP to SVC change to start.S
...
This fixes the corruption of r3 by the call to
bsp_start_arm_drop_hyp_mode().
Moving the code makes it easier to review changes in start.S.
Close #3773 .
2019-07-26 08:12:20 +02:00
Sebastian Huber
0ee2125a92
bsps/arm: Move register init to start.S
...
This makes it easier to review changes in start.S.
Update #3773 .
2019-07-26 08:00:48 +02:00
Sebastian Huber
0f5c1d5344
bsps/arm: Remove register init for ARMv7-M
...
There are no known ARMv7-M chips with a dual lockstep mode.
Update #3773 .
2019-07-26 08:00:39 +02:00
Sebastian Huber
e9c83b46a0
bsps: Regenerate headers.am
...
Update #3269 .
2019-07-05 09:04:34 +02:00
Christian Mauderer
b89d6cc5e4
bsp/beagle: Partial re-write of I2C driver.
...
The old driver worked well for EEPROMS with the RTEMS EEPROM driver. But
it had problems with a lot of other situations. Although it's not a
direct port, the new driver is heavily modeled after the FreeBSD ti_i2c
driver.
Closes #3764 .
2019-06-29 09:37:24 +02:00
Chris Johns
c43071f523
arm: Return the current handler from arm_cp15_set_exception_handler
...
Closes #3762
2019-06-28 09:01:27 +10:00
Sebastian Huber
9b858ee6ef
bsp/motorola_powerpc: Fix linker command file
...
Fix the __size symbol value to reflect the total size of the bootloader.
This prevents a bootloader crash with application images above a certain
threshold (e.g. fileio sample program).
Update #3727 .
2019-06-27 14:36:56 +02:00
Sebastian Huber
dc581f29ab
bsp/atsam: Enable configuration of SDRAMC_LPR
2019-06-21 06:58:48 +02:00
Sebastian Huber
a67b9b06a1
atsam: Add ATSAM_POWER_WAIT_MODE
2019-06-18 12:52:53 +02:00
Sebastian Huber
522cde4281
atsam: Enable fast startup via RTC alarm
2019-06-18 11:31:48 +02:00
Sebastian Huber
bb24892ad4
bsp/atsam: Use proper API
2019-06-18 11:10:55 +02:00
Sebastian Huber
d7d0bba8cc
bsp/atsam: Do not disable the WDT
...
The watchdog timer (WDT) can be configure only once. Do not touch it in
the BSP since the application may want to use it.
2019-06-13 08:48:53 +02:00
Sebastian Huber
ee36616804
bsp/atsam: Improve RTC power driver
...
Accept a time interval up to 24h.
2019-06-13 08:48:50 +02:00
Sebastian Huber
5d4a81f501
bsp/atsam: Fix RTC_SetTimeAlarm()
...
Set the alarm time according to the note in the datasheet.
2019-06-12 13:50:19 +02:00
Sebastian Huber
98fc60145c
bsp/lpc24xx: Fix LPC24XX_IO_PORT_COUNT
2019-06-04 12:04:55 +02:00
Sebastian Huber
f419349a13
bsps/powerpc: Adjust ppcboot.lds
...
The GNU ld had a couple of changes which resulted in a broken bootloader
image generation. Recent linker versions tie assignments to their
nearest output section statement. Place all absolute symbols which are
used with @sectoff relocations into a special section.
See also:
"Binutils 2.28 on PowerPC: dangerous relocation: generic linker can't
handle R_PPC_SECTOFF_HA"
https://www.sourceware.org/ml/binutils/2019-05/msg00183.html
Update #3727
2019-05-27 10:14:48 +02:00
Sebastian Huber
20bd667d8a
bsps: Fix warnings in greth
2019-05-27 07:35:07 +02:00
Sebastian Huber
1a971d836c
score: Remove SMP_MESSAGE_CLOCK_TICK
...
Use _SMP_Multicast_action() instead.
2019-05-20 08:49:39 +02:00
Sebastian Huber
3b2481f9a7
score: Simplify _SMP_Multicast_action()
...
Move resposibility to disable thread dispatching to the caller of
_SMP_Multicast_action(). Using an interrupt disable for this purpose is
questionable.
2019-05-20 08:49:39 +02:00
Sebastian Huber
7fdf48aaf2
score: Add _SMP_Othercast_action()
2019-05-20 08:49:39 +02:00
Sebastian Huber
658700449d
score: Add _SMP_Broadcast_action()
2019-05-20 08:49:39 +02:00
Sebastian Huber
45d06591f1
bsps: Always build generic interrupt support
...
This makes it possible to write tests for the generic interrupt
controller support.
Update #3269 .
2019-05-16 07:29:24 +02:00
Sebastian Huber
b446457f1c
bsps/arm: Adjust machine flags for ARMv7-M
...
Update machine flags for Cortex-M3 and Cortex-M4 based BSPs to account
for Cortex-M3 Errata 602117 which required GCC multilib changes.
Update #3747 .
2019-05-14 09:09:02 +02:00