Commit Graph

14426 Commits

Author SHA1 Message Date
Sebastian Huber
c539a865f4 sparc: Move CPU_Interrupt_frame related defines
Move CPU_Interrupt_frame related defines to <rtems/score/cpuimpl.h>.

Update #2809.
2016-11-18 07:30:33 +01:00
Sebastian Huber
427dcee837 sparc: Rename CPU_Minimum_stack_frame
Rename SPARC-specific CPU_Minimum_stack_frame to
SPARC_Minimum_stack_frame.  Rename SPARC-specific
CPU_MINIMUM_STACK_FRAME_SIZE to SPARC_MINIMUM_STACK_FRAME_SIZE.

Update #2809.
2016-11-18 07:30:32 +01:00
Sebastian Huber
d18560ae05 sparc64: Rename CPU_Minimum_stack_frame
Rename SPARC64-specific CPU_Minimum_stack_frame to
SPARC64_Minimum_stack_frame.  Rename SPARC64-specific
CPU_MINIMUM_STACK_FRAME_SIZE to SPARC64_MINIMUM_STACK_FRAME_SIZE.

Update #2809.
2016-11-18 07:30:32 +01:00
Sebastian Huber
8ef8a32d00 bsps/mips: Use <libcpu/isr_entries.h>
Avoid duplicate mips_vector_isr_handlers() declarations.
2016-11-18 07:30:32 +01:00
Sebastian Huber
04bd261726 arm: Use TPIDRPRW for current per-CPU control
Use the previously unused TPIDRPRW register to get the per-CPU control
of the current processor.  This avoids instructions in
GET_SELF_CPU_CONTROL which are not available in Thumb mode.
2016-11-18 07:30:31 +01:00
Christian Mauderer
bb5d97f3eb bsp/atsamv: Make size of nocache-memory configurable. 2016-11-17 15:18:03 +01:00
Sebastian Huber
38a1449fd4 powerpc: Add _CPU_Get_current_per_CPU_control()
Add _CPU_Get_current_per_CPU_control() on SMP configurations.  Use SPRG0
for the current per-CPU control.  This reduces the code size by three
instructions and is slightly faster.

Update #2805.
2016-11-10 09:58:37 +01:00
Sebastian Huber
1f5bee3d85 score: Add and use Thread_Control::is_idle
Update #2797.
2016-11-09 15:27:30 +01:00
Sebastian Huber
6cb234f079 bsp/qoriq: Remove duplicate qoriq_gpio definition
Close #2800.
2016-11-07 09:31:35 +01:00
Tim Cussins
11ae6f94f8 virtex4, virtex5 bsp.h: Use BSP_INTERRUPT_STACK_SIZE not user space CONFIGURE_INTERRUPT_STACK_SIZE
closes #2801.
2016-11-03 12:49:12 -05:00
Joel Sherrill
0df50a6c99 m68k/mrm332/make/custom/mrm332-testsuite.tcfg: Add dl05 2016-11-03 10:56:09 -05:00
Joel Sherrill
c27986335c m68k/mcf5225x/make/custom/mcf5225x-testsuite.tcfg: Add dl05 2016-11-03 10:56:09 -05:00
Joel Sherrill
fbf45431ae m68k/mcf52235/make/custom/mcf52235-testsuite.tcfg: Add dl05 2016-11-03 10:56:09 -05:00
Joel Sherrill
710302ae48 mcf5206elite/make/custom/mcf5206elite-testsuite.tcfg: Add dl05 2016-11-03 10:56:08 -05:00
Joel Sherrill
c7589640f9 moxiesim/bsp_specs: Add crtbegin/end to fix link issues 2016-11-03 10:56:08 -05:00
Sebastian Huber
fac8a3a463 bsps/sparc: Fix copy of initialized data
The text and data sections may have different alignment requirements.
Support a data section alignment greater than 16.
2016-11-02 10:05:40 +01:00
James
fc718cb83a Updated xilinx_zynq_a9_qemu bsp README instructions. 2016-10-25 11:01:41 -04:00
Sebastian Huber
f94155b8ec bsps/sparc: Add interrupt controller registers 2016-10-19 00:22:57 +02:00
Sebastian Huber
93614125c5 bsp/leon3: Avoid implicit integer conversions 2016-10-19 00:21:21 +02:00
Alexander Krutwig
24fe2130d7 atsam: multiple messages on one cs low level 2016-10-17 14:48:43 +02:00
Pavel Pisa
dfcec5595f libchip/network/if_fxp.c: do not use rtems_interrupt_disable.
The single write to memory or ioport output are mostly
atomic operations already. The proper memory synchronization barrier
should be used around them to guarantee ordering (sync or eieio
on PowerPC for example) but because I have not found settable
portable primitive only compiler barrier is used.
It should be enough on x86 because the externally visible order
should be/is guaranteed to be preserved on x86 architecture.
2016-10-17 09:41:58 +02:00
Pavel Pisa
20625a581d bsps/i386: use Pentimum instructions for pc586 and pc686 builds.
When GCC option -march is not specifies i386-rtems toolchain
defaults to i386 architecture instruction set. It does not
provide atomic instructions which results in really inefficient
atomic_fetch_or even on UP build.

SMP build is broken with i386 set because libatomic and GCC
generate infinite loop for __atomic_fetch_add_4 used
in rtems_interrupt_lock_acquire

__atomic_fetch_add_4:
    push   %ebp
    mov    %esp,%ebp
    movl   $0x5,0x10(%ebp)
    pop    %ebp
    jmp    __atomic_fetch_add_4
2016-10-17 09:41:58 +02:00
Pavel Pisa
6b54dcbbef bsps/i386: replace global interrupt disable by SMP build supporting locking. 2016-10-17 09:41:58 +02:00
Sebastian Huber
f45ddeea12 bsp/atsamv: Fix typo 2016-10-13 07:51:55 +02:00
Pavel Pisa
facebbb28e bsps/i386: Separate variable for i8259 IRQs disable due to in progress state.
The global state of enabled and disabled interrupts has to hold
interrupts really disabled by drivers and system. If the state is
combined with interrupts temporarily disabled because they are
processed at given time then it is impossible to maintain state
by interrupt handlers in drivers.
2016-10-11 22:17:04 +02:00
Sebastian Huber
282de10828 bsp/qoriq: Add GPIO register map 2016-10-11 10:42:36 +02:00
Sebastian Huber
00bac953f7 bsps/sparc: Support GR740 GPIO 2016-10-11 08:33:28 +02:00
Sebastian Huber
a899549ed2 bsp/atsam: Provide default buffer counts 2016-10-05 14:04:23 +02:00
Sebastian Huber
10eedb9fa6 bsp/atsam: Fix PHY detection 2016-10-05 14:04:07 +02:00
Sebastian Huber
8ace7ee42f bsp/mvme147*: Fix linker issue
The GNU linker does not allow a nonconstant expression for a region
length.
2016-09-23 08:41:58 +02:00
Sebastian Huber
bbe8833336 bsps/m68k: Add libatomic support to some bsp_specs
Update #2695.
2016-09-23 08:03:41 +02:00
Sebastian Huber
d6e58a0f14 bsps/m68k: Fix linker command file
Prevent garbage collection of interrupt vector table.
2016-09-23 06:57:12 +02:00
Pavel Pisa
425f6cfa11 arm/tms570: document BSP setup with included hardware initialization. 2016-09-22 09:56:06 +02:00
Pavel Pisa
aae17bf32d arm/tms570: update bootstrap generated preinstall.am 2016-09-22 09:51:31 +02:00
Pavel Pisa
98b6874031 arm/tms570: include TMS570_USE_HWINIT_STARTUP option to select bare metal startup and selftest. 2016-09-22 09:51:21 +02:00
Pavel Pisa
29430a3a10 arm/tms570: include hardware initialization and selftest based on Ti HalCoGen generated files.
The configuration is specific for TMS570LS3137 based HDK.
Pins configuration can be easily changed in

  rtems/c/src/lib/libbsp/arm/tms570/hwinit/init_pinmux.c

file.

The list tms570_selftest_par_list in the file

  rtems/c/src/lib/libbsp/arm/tms570/hwinit/bspstarthooks-hwinit.c

specifies peripherals which health status is examined
by parity self-test at BSP start-up. It can be easily
modified for other TMS570 family members variants same
as the selection of other tests in bspstarthooks-hwinit.c.
2016-09-22 09:50:59 +02:00
Pavel Pisa
5746f108bd arm/tms570: define base addresses of all TMS570LS3137 SPI interfaces.
Generated header file ti_herc/reg_spi.h contains complete registers
and fields set for Ti MibSPI peripheral.
Care has to be taken that only TMS570_SPI1, TMS570_SPI3 and TMS570_SPI5
are of this complete multibuffer type. TMS570_SPI2 and TMS570_SPI4
have substantial part of registers removed but else they are compatible.
2016-09-22 08:26:29 +02:00
Pavel Pisa
a396ed4778 bsps/arm: Export bsp_start_hook_0_done symbol from ARM start.S.
The symbol can be used by bsp_start_hook_0 when complete
RAM memory is initialization and overwritten during BSP
self-test. The test overwrites even memory used to store
return address / link register and regular resturn from
bsp_start_hook_0 is not possible then.
2016-09-22 08:26:13 +02:00
Pavel Pisa
4d3c866aec classic networking: adapt FXP driver to work with actual PCI and IRQ code.
Tested to work with QEMU provided Intel i82557b network controller emulation.

qemu-system-x86_64 -enable-kvm -kernel $APP_BINARY \
      -vga cirrus \
      -append "--console=/dev/com1" \
      -serial stdio \
      -net nic,vlan=1,macaddr=be:be:be:10:00:01,model=i82557b \
      -net tap,ifname=tap1,vlan=1,script=no,downscript=no
2016-09-21 10:24:59 +02:00
Pavel Pisa
8c83cbcc96 classic networking: do not reference BSP_irq_enabled_at_i8259s which is no more available on i386.
This change is required to build RTEMS with classic "--enable-networking"
and link applications/tests which reference RTEMS_BSP_NETWORK_DRIVER_ATTACH.
2016-09-20 22:45:16 +02:00
Sebastian Huber
55e0be3606 termios: Use IMFS nodes for new Termios devices
This makes the new Termios devices independent of device major/minor
numbers.  It enables BSP independent Termios device drivers which may
reside in the cpukit domain.  These drivers require an IMFS and do not
work with the device file system.  However, the device file system
should go away in the future.
2016-09-19 07:52:33 +02:00
Alexander Krutwig
0ab86d091a bsp/atsam: Add SPI bus driver 2016-09-16 10:07:03 +02:00
Alexander Krutwig
c186de5cd1 bsp/atsam: Use normal memory for QSPI flash area
This is a performance improvement for execute-in-place (XIP).
2016-09-16 08:18:50 +02:00
Pavel Pisa
5eb769ca8b arm/raspberrypi: define bsp_reset to restart board by watchdog.
Whether the board is restarted after application finish/exit
is controlled by BSP_RESET_BOARD_AT_EXIT configure option.
2016-09-08 23:40:21 +02:00
Sebastian Huber
275032b85a powerpc: Fix SMP context switch
We need the unmodified r4 for get_potential_new_heir.

This partially reverts commit 8d785f72d9.
2016-09-08 09:55:26 +02:00
Chris Johns
d416061846 testsuite: Add libdl/dl05 reloc test. 2016-09-08 16:52:39 +10:00
Sebastian Huber
531924df8b bsp/raspberrypi: Rename file 2016-09-08 07:43:02 +02:00
Pavel Pisa
5d369c8572 arm/raspberrypi: use GPU/system timer as clock source.
It has advantage that it is designed as free-running counter
with compare registers and can easily serve for for both
timecounter and tick interrupt.
2016-09-07 20:29:39 +02:00
Pavel Pisa
40f49d11cf arm/raspberrypi: correct and extend definitions for GPU timer. 2016-09-07 20:29:39 +02:00
Pavel Pisa
df2ee9d377 arm/raspberrypi: basic BCM2836 SMP implementation.
The BSP support is divided to startup/bspsmp_api.c file where
functions required by SuperCore are defined and BCM2836 hardware
initialization part in startup/bspsmp_init.c.

Separation is done to prevent smpfatal08 test build failure.
2016-09-07 20:29:39 +02:00