Commit Graph

393 Commits

Author SHA1 Message Date
Joel Sherrill
78a38fa2ae Eliminate use of /*PAGE and clean up formatting 2014-10-09 10:11:58 -05:00
Joel Sherrill
9073f554f8 libbsp/shared/console-polled.c: Fix warning 2014-10-09 10:11:54 -05:00
Joel Sherrill
56c6888bba libbsp/shared/clockdrv_shell.h: Fix warning 2014-10-09 10:11:54 -05:00
Daniel Hellstrom
a387e944f8 LEON3: use interrupt layer in clock driver
Manupilating the interrupt control registers directly instead
of going through the interrupt layer can be deceiving.
2014-10-09 13:19:40 +02:00
Sebastian Huber
d5cc923fea bsps: Add Termios console driver initialization
Add a simple Termios console driver using a table for statically
registered devices used in console_initialize() and dynamic installation
via console_device_install().
2014-10-07 16:35:20 +02:00
Joel Sherrill
f535fe5311 tod.h -> libcsupport like other driver and helper prototype files
This rippled into the handful of files that should have been using
<rtems/tod.h>.
2014-09-16 16:09:13 -05:00
Joel Sherrill
8fbe2e69b5 Use correct prototype of benchmark_timer_read()
This change starts with removing the effectively empty file
timerdrv.h. The prototypes for benchmark_timer_XXX() were in
btimer.h which was not universally used. Thus every use of
timerdrv.h had to be changed to btimer.h. Then the prototypes
for benchmark_timer_read() had to be adjusted to return
benchmark_timer_t rather than int or uint32_t.

I took this opportunity to also correct the file headers to
separate the copyright from the file description comments which
is needed to ensure the copyright isn't propagated into Doxygen
output.
2014-09-16 16:09:12 -05:00
Sebastian Huber
d11e6efec5 clockdrv_shell.h: Fix warning 2014-09-08 09:50:35 +02:00
Ben Gras
7e60b7d125 uart-output-char.h: extra offset definition.
All,

This patch is submitted as its values are used in my to-be-submitted
beagle bsp.
2014-07-15 10:03:32 -05:00
Sebastian Huber
a0eb21ebab bsps: Basic console driver for Termios devices 2014-07-09 12:07:49 +02:00
Sebastian Huber
fa0a9a1893 bsps: Declare bsp_start_on_secondary_processors() 2014-05-12 09:32:20 +02:00
Sebastian Huber
64a04ac3c7 bsps: Use standard file name for BSP support 2014-05-12 09:01:40 +02:00
Sebastian Huber
43ef706873 bsps: Fix BSP_INITIAL_EXTENSION 2014-05-07 09:24:07 +02:00
Joel Sherrill
614fefecf8 dummy_printk_support.c: Comment clean up 2014-04-22 08:37:01 -05:00
Sebastian Huber
53e008b6fd score: SMP initialization changes
Add and use _CPU_SMP_Start_processor().  Add and use
_CPU_SMP_Finalize_initialization().  This makes most
_CPU_SMP_Initialize() functions a bit simpler since we can calculate the
minimum value of the count of processors requested by the application
configuration and the count of physically or virtually available
processors in the high-level code.

The CPU port has now the ability to signal a processor start failure.
With the support for clustered/partitioned scheduling the presence of
particular processors can be configured to be optional or mandatory.
There will be a fatal error only in case mandatory processors are not
present.

The CPU port may use a timeout to monitor the start of a processor.
2014-04-14 08:37:04 +02:00
Chris Johns
c49985691f Change all references of rtems.com to rtems.org. 2014-03-21 08:10:47 +11:00
Ralf Kirchner
5dc268f96d libchip: Relax buffer counts and add fatal error 2014-03-14 16:01:33 +01:00
Sebastian Huber
718124e4e5 rtems: Add RTEMS_INTERRUPT_REPLACE
A new option RTEMS_INTERRUPT_REPLACE is introduced that permits updating
the first interrupt handler for the registered interrupt vector and
matching argument.  If no match is found, the install function fails
with RTEMS_UNSATISFIED.

The Interrupt Manager Extension offers interrupt handlers with an
argument pointer.  It is impossible to update two words (handler and
argument) atomically on most architectures.  In order to avoid an SMP
lock in bsp_interrupt_handler_dispatch() which would degrade the
interrupt response time an alternative must be provided that makes it
possible to tear-down interrupt sources without an SMP lock.

Add RTEMS_INTERRUPT_REPLACE option to Interrupt Manager Extension.  This
enables a clean tear-down of interrupt sources on SMP configurations.
Instead of an interrupt handler removal a replacement handler can be
installed to silence an interrupt source.  This can be used in contexts
that allow no sophisticated synchronization (e.g. in atexit() or fatal
handlers).
2014-03-06 09:43:59 +01:00
Sebastian Huber
e0609ac745 bsps: SMP support for generic interrupt support 2014-03-06 09:43:58 +01:00
Sebastian Huber
dce7bba732 bsps: Delete LEON3_FATAL_CPU_COUNTER_INIT 2014-02-28 08:59:01 +01:00
Sebastian Huber
6faf789314 bsps: Fix empty interrupt handler entry
The vector number of spurious interrupts was wrong after the interrupt
handler removal on SMP configurations.
2014-02-28 08:59:01 +01:00
Sebastian Huber
0b9fd991a7 bsps: Add empty cache manager
This is necessary to add tests that use the cache manager.  For example
to get better estimates of worst-case timings.
2014-02-24 12:49:45 +01:00
Sebastian Huber
f8ff2a011c score: Delete bsp_smp_broadcast_interrupt()
Since the per-CPU SMP lock must be acquired and released to send the
message a single interrupt broadcast operations offers no benefits.  If
synchronization is required, then a SMP barrier must be used anyway.
2014-02-19 09:59:41 +01:00
Sebastian Huber
4627fcdab1 score: Rename bsp_smp_initialize()
Rename bsp_smp_initialize() into _CPU_SMP_Initialize() since every CPU
port must supply this function.
2014-02-19 09:59:40 +01:00
Sebastian Huber
46d7fa5cd3 bsp/leon3: Add and use fatal codes 2014-02-19 09:59:40 +01:00
Sebastian Huber
33cb8bf64d score: Add RTEMS_FATAL_SOURCE_BSP
Merge RTEMS_FATAL_SOURCE_BSP_GENERIC and RTEMS_FATAL_SOURCE_BSP_SPECIFIC
into new fatal source RTEMS_FATAL_SOURCE_BSP.  This makes it easier to
figure out the code position given a fatal source and code.
2014-02-19 09:59:39 +01:00
Sebastian Huber
801b5d8032 powerpc: Change interrupt disable implemetation
Instead of SPRG0 (= special purpose register 272) use the new global
symbol _PPC_INTERRUPT_DISABLE_MASK to store the interrupt disable mask.
The benefit is that it is now possible to disable interrupts without
further run-time initialization in boot_card().

At least on Freescale e500 cores this leads also to a faster execution
since the mfmsr and mfspr instruction require four cycles to complete.
The instructions to load the mask value can execute while the mfmsr is
in progress.
2014-02-19 09:59:38 +01:00
Sebastian Huber
24bf11eca1 score: Add CPU counter support
Add a CPU counter interface to allow access to a free-running counter.
It is useful to measure short time intervals.  This can be used for
example to enable profiling of critical low-level functions.

Add two busy wait functions rtems_counter_delay_ticks() and
rtems_counter_delay_nanoseconds() implemented via the CPU counter.
2014-02-14 10:28:29 +01:00
Sebastian Huber
1c1c2a04c3 bsps: Delete unused bsp_smp_delay() 2014-02-05 15:46:30 +01:00
Joel Sherrill
6dce1621b6 bootcard.c: Comment clean up 2014-01-31 08:13:05 -06:00
Szkocsovszki Zsolt
e87b300635 shared vmeUniverse: Improve Doxygen 2014-01-08 15:23:53 -06:00
Sebastian Huber
56bea4339f Filesystem: Use default kqfilter and poll handler 2013-12-20 10:31:53 +01:00
Sebastian Huber
2f68778f08 Filesystem: Add readv/writev handlers
The readv() and writev() support was implemented in terms of multiple
calls to the read and write handlers.  This imposes a problem on device
files which use an IO vector as single request entity.  For example a
low-level network device (e.g. BPF(4)) may use an IO vector to create
one frame from multiple protocol layers each with its own IO vector
entry.
2013-12-20 10:31:53 +01:00
Daniel Ramirez
296c74e643 doxygen: refactored doxygen in libbsp to illustrate new rule set 2013-12-09 15:27:02 -05:00
Daniel Ramirez
2d6543d4c8 doxygen: refactored doxygen in libbsp/arm/lpc32xx
This patch refactors a lot of the existing doxygen within libbsp/arm/lpc32xx.
Much of this refactoring was just renaming of existing groups to conform to a
more consistent naming structure. With the addition of a doxygen header for
tm27.h, all files within lpc32xx belong to doxygen group now. lpc32xx should
be used a reference for adding doxygen to other bsps.
2013-11-29 22:48:59 -05:00
Daniel Ramirez
98eb7e78b6 raspberrypi doxygen refactoring 2013-11-27 09:53:52 -05:00
Sebastian Huber
f619250391 bsps: Add simple console output char 2013-10-27 19:13:47 +01:00
Hesham AL-Matary
5ceefe18f0 Shared MMU initialization for ARM BSPs and RaspberryPi MMU support
Add support for MMU initialization for RaspberryPi. Introduce new shared
MMU configuration table that can be used by other BSPs that call the
arm_cp15_start_setup_translation_table_and_enable_mmu_and_cache function.
Demonstrate the use of the generic table with RaspberryPi.
2013-10-03 08:55:33 -04:00
Joel Sherrill
68670555c9 libbsp/shared/bspinit.c: Fix missing prototype warnings 2013-09-22 10:51:19 -05:00
Sebastian Huber
d56f76ac93 bsps: Fix header includes 2013-08-27 10:48:16 +02:00
Joel Sherrill
3109857c88 bsps: Add and use CLOCK_DRIVER_ISRS_PER_TICK_VALUE
pc386 set CLOCK_DRIVER_ISRS_PER_TICK to a
string rather than a numeric value. Add
CLOCK_DRIVER_ISRS_PER_TICK_VALUE and
other clean up on the clock driver.
2013-08-26 16:16:38 -04:00
Sebastian Huber
d473dc0b22 bsps: Fix clock driver defines 2013-08-14 13:27:34 +02:00
Chris Johns
b7f2060973 bsp: Fix CLOCK_DRIVER_USE_FAST_IDLE and CLOCK_DRIVER_ISRS_PER_TICK.
Use the value rather than being defined. This allows inverted
logic to be used.
2013-08-14 11:53:28 +10:00
Sebastian Huber
4e00fe62d3 bsps: Include missing <rtems/score/heapimpl.h> 2013-07-26 11:55:48 +02:00
Sebastian Huber
a2e3f33f39 score: Create object implementation header
Move implementation specific parts of object.h and object.inl into new
header file objectimpl.h.  The object.h contains now only the
application visible API.
2013-07-26 11:55:47 +02:00
Sebastian Huber
0c3edbf0cf Include missing <rtems/score/threaddispatch.h> 2013-07-26 11:55:47 +02:00
Sebastian Huber
39046f766f score: Merge sysstate API into one file 2013-07-24 11:11:21 +02:00
Sebastian Huber
ca63ae2ec0 smp: Add and use _CPU_SMP_Send_interrupt()
Delete bsp_smp_interrupt_cpu().
2013-07-17 13:09:50 +02:00
Sebastian Huber
39e51758c8 smp: Add and use _CPU_SMP_Get_current_processor()
Add and use _SMP_Get_current_processor() and
rtems_smp_get_current_processor().

Delete bsp_smp_interrupt_cpu().

Change type of current processor index from int to uint32_t to match
_SMP_Processor_count type.
2013-07-17 13:09:49 +02:00
Sebastian Huber
7306578c42 bsps/serial: Move bsp_console_select() declaration 2013-07-17 08:19:59 +02:00