| Commit message (Collapse) | Author | Files | Lines |
|
Updates #3053.
|
|
Remove parameters from ppc_exc_initialize() since all BSPs passed the
same values.
Update #3459.
|
|
Statically initialize the interrupt stack area
(_Configuration_Interrupt_stack_area_begin,
_Configuration_Interrupt_stack_area_end, and
_Configuration_Interrupt_stack_size) via <rtems/confdefs.h>. Place the
interrupt stack area in a special section ".rtemsstack.interrupt". Let
BSPs define the optimal placement of this section in their linker
command files (e.g. in a fast on-chip memory).
This change makes makes the CPU_HAS_SOFTWARE_INTERRUPT_STACK and
CPU_HAS_HARDWARE_INTERRUPT_STACK CPU port defines superfluous, since the
low level initialization code has all information available via global
symbols.
This change makes the CPU_ALLOCATE_INTERRUPT_STACK CPU port define
superfluous, since the interrupt stacks are allocated by confdefs.h for
all architectures. There is no need for BSP-specific linker command
file magic (except the section placement), see previous ARM linker
command file as a bad example.
Remove _CPU_Install_interrupt_stack(). Initialize the hardware
interrupt stack in _CPU_Initialize() if necessary (e.g.
m68k_install_interrupt_stack()).
The optional _CPU_Interrupt_stack_setup() is still useful to customize
the registration of the interrupt stack area in the per-CPU information.
The initialization stack can reuse the interrupt stack, since
* interrupts are disabled during the sequential system initialization,
and
* the boot_card() function does not return.
This stack resuse saves memory.
Changes per architecture:
arm:
* Mostly replace the linker symbol based configuration of stacks with
the standard <rtems/confdefs.h> configuration via
CONFIGURE_INTERRUPT_STACK_SIZE. The size of the FIQ, ABT and UND
mode stack is still defined via linker symbols. These modes are
rarely used in applications and the default values provided by the
BSP should be sufficient in most cases.
* Remove the bsp_processor_count linker symbol hack used for the SMP
support. This is possible since the interrupt stack area is now
allocated by the linker and not allocated from the heap. This makes
some configure.ac stuff obsolete. Remove the now superfluous BSP
variants altcycv_devkit_smp and realview_pbx_a9_qemu_smp.
bfin:
* Remove unused magic linker command file allocation of initialization
stack. Maybe a previous linker command file copy and paste problem?
In the start.S the initialization stack is set to a hard coded value.
lm32, m32c, mips, nios2, riscv, sh, v850:
* Remove magic linker command file allocation of initialization stack.
Reuse interrupt stack for initialization stack.
m68k:
* Remove magic linker command file allocation of initialization stack.
Reuse interrupt stack for initialization stack.
powerpc:
* Remove magic linker command file allocation of initialization stack.
Reuse interrupt stack for initialization stack.
* Used dedicated memory region (REGION_RTEMSSTACK) for the interrupt
stack on BSPs using the shared linkcmds.base (replacement for
REGION_RWEXTRA).
sparc:
* Remove the hard coded initialization stack. Use the interrupt stack
for the initialization stack on the boot processor. This saves
16KiB of RAM.
Update #3459.
|
|
Add rtems_counter_frequency() API function. Use it to initialize the
counter value converter via the new system initialization step
(RTEMS_SYSINIT_CPU_COUNTER). This decouples the counter implementation
and the counter converter. It avoids an unnecessary pull in of the
64-bit integer division from libgcc.
Update #3456.
|
|
Adjust build support files to new directory layout.
This patch is a part of the BSP source reorganization.
Update #3285.
|
|
Close #3339.
|
|
Due to a new rtems_panic() implementation, it is possible to replace the
PowerPC-specific BSP_panic() with rtems_panic(). Remove BSP_panic()
implementations.
Close #3245.
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
The clock driver used previously the bsp_clicks_per_usec value. For a
33333333Hz time base frequency this leads to a relative error of one per
cent for example due to integer truncation.
|
|
* startup/bspstart.c:
Use "__asm__" instead of "asm" for improved c99-compliance.
|
|
|
|
|
|
|
|
|
|
* Makefile.am, preinstall.am, irq/no_pic.c (REMOVED),
irq/irq.h, irq/irq_init.c:
use openpic from 'shared' area instead of no_pic.
* inlude/psim.h:
use openpic from 'shared' area instead of no_pic.
Added 'extern' declaration for (linker-script defined) RamBase
and RamSize symbols. Let CPP macros expand to these symbols
instead of static constants.
Added register definitions for OpenPIC in the register area.
Added register definitions for ethernet controller in the register
area.
* startup/linkcmds: Increased RamSize to 16M. Increased 'RAM'
memory region to 32M (there is really no disadvantage in making
this large). Added comment explaining the inter-relation between
RamSize, the size of the memory region, the device-tree property
"oea-memory-size" and the DBAT setting.
* tools/psim-shared: Try to determine RamSize from executable
and set 'oea-memory-size' accordingly. May be overridden if 'RAM_SIZE'
envvar is set.
Added openpic to device-tree.
Added ethernet controller to device-tree (commented because a PSIM
patch is currently required to use this device).
* startup/bspstart: Increase DBAT0 mapping to size of 32M.
|
|
* startup/bspstart.c: Spacing.
|
|
* startup/bspstart.c: Add bsp_clicks_per_usec variable which is used by
shared code.
|
|
* Makefile.am, include/bsp.h, startup/bspstart.c, startup/linkcmds: Use
PowerPC level shared bsp_get_work_area() implementation.
* startup/bspgetworkarea.c: Removed.
|
|
* Makefile.am, startup/bspstart.c: Add use of bsp_get_work_area() in
its own file and rely on BSP Framework to perform more
initialization. Remove unnecessary includes of rtems/libio.h and
rtems/libcsupport.h.
* startup/bspgetworkarea.c: New file.
|
|
added support for an optional separate heap area.
|
|
* startup/bspstart.c: This BSP is OK with SPRG0.
|
|
|
|
* Makefile.am, configure.ac, startup/bspstart.c: Add capability for
bootcard.c BSP Initialization Framework to ask the BSP where it has
memory for the RTEMS Workspace and C Program Heap. These collectively
are referred to as work area. If the BSP supports this, then it does
not have to include code to split the available memory between the
two areas. This reduces the amount of code in the BSP specific
bspstart.c file. Additionally, the shared framework can initialize
the C Library, call rtems_debug_enable(), and dirty the work area
memory. Until most/all BSPs support this new capability, if the BSP
supports this, it should call
RTEMS_BSP_BOOTCARD_HANDLES_RAM_ALLOCATION from its configure.ac. When
the transition is complete, this autoconf macro can be removed.
|
|
* startup/bspstart.c: Refactored and renamed initialization routines to
rtems_initialize_data_structures, rtems_initialize_before_drivers,
rtems_initialize_device_drivers, and
rtems_initialize_start_multitasking. This opened the sequence up so
that bootcard() could provide a more robust and flexible framework
which is easier to explain and understand. This also lays the
groundwork for sharing the division of available memory between the
RTEMS workspace and heap and the C library initialization across all
BSPs.
|
|
* bsp_specs, include/bsp.h, startup/bspstart.c: Eliminate copies of the
Configuration Table. Use the RTEMS provided accessor macros to obtain
configuration fields.
|
|
* include/bsp.h, startup/bspstart.c: Move interrupt_stack_size field
from CPU Table to Configuration Table. Eliminate CPU Table from all
ports. Delete references to CPU Table in all forms.
|
|
* Makefile.am, startup/bspstart.c: Moved most of the remaining CPU
Table fields to the Configuration Table. This included
pretasking_hook, predriver_hook, postdriver_hook, idle_task,
do_zero_of_workspace, extra_mpci_receive_server_stack,
stack_allocate_hook, and stack_free_hook. As a side-effect of this
effort some multiprocessing code was made conditional and some style
clean up occurred.
|
|
* startup/bspstart.c: removed bsp_exceptions_in_RAM
|
|
* startup/bspstart.c: BSP_DIRTY_MEMORY should be tested for zero not
just defined.
|
|
* startup/bspstart.c, Makefile.am: Initialize BATs and enable MMU
to come closer to what other BSPs do. This allows us to use the
shared irq_asm.S. No more individual assembly code :-)
|
|
* startup/bspstart.c: Eliminate PowerPC specific elements from the CPU
Table. They have been replaced with variables named bsp_XXX as
needed.
|
|
* configure.ac, startup/bspstart.c: Add BSP_DIRTY_MEMORY option.
|
|
|
|
* startup/bspstart.c: include <rtems/powerpc/powerpc.h>.
Use PPC_MINIMUM_STACK_FRAME_SIZE instead of
CPU_MINIMUM_STACK_FRAME_SIZE.
|
|
PR 581/bsps
* Makefile.am, bsp_specs, configure.ac, include/bsp.h, include/tm27.h,
start/start.S, startup/bspstart.c, startup/linkcmds,
tools/Makefile.am, tools/psim, vectors/vectors.S, wrapup/Makefile.am:
Convert PSIM to new exception model.
* irq/irq.c, irq/irq.h, irq/irq_asm.S, irq/irq_init.c: New files.
* startup/setvec.c, timer/timer.c: Removed.
|
|
|
|
* include/bsp.h, shmsupp/getcfg.c, startup/bspstart.c,
timer/timer.c: Convert to using c99 fixed size types.
|
|
* console/console-io.c, include/bsp.h, include/coverhd.h,
shmsupp/addrconv.c, shmsupp/getcfg.c, shmsupp/lock.c,
shmsupp/mpisr.c, startup/bspclean.c, startup/bspstart.c,
startup/linkcmds, startup/setvec.c, tools/psim, tools/runtest,
vectors/vectors.S: URL for license changed.
|
|
* startup/bspstart.c: Removed incorrect statement about copyright
assignment.
|
|
* startup/bspstart.c: Include <rtems/bspIo.h>.
* vectors/align_h.S: Use <> instead of "" for include files.
|
|
* clock/clock.c: Use shared clock driver shell.
* console/console.c: Removed. Now use shared polling shell.
* console/console-io.c: New file.
* console/Makefile.am: Correct to use shared polling shell.
* startup/bspstart.c: Remove all fast idle references.
|
|
* startup/bspstart.c: assoc.h, error.h, libio_.h, libio.h,
and libcsupport.h moved from libc to lib/include/rtems and
now must be referenced as <rtems/XXX.h>. Header file order
was cleaned up while doing this.
|
|
|
|
|
|
is now correct enough where this is not necessary. This was in to
cover up the deficiencies in figuring out how much memory a GNAT/RTEMS
application required. There is a good stab at this now.
|