summaryrefslogtreecommitdiffstats
path: root/bsps/powerpc/qemuppc/start/bspstart.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-07-12bsps/powerpc/qemuppc: Change license to BSD-2Joel Sherrill1-3/+22
Updates #3053.
2018-09-06bsps/powerpc: Simplify ppc_exc_initialize()Sebastian Huber1-12/+1
Remove parameters from ppc_exc_initialize() since all BSPs passed the same values. Update #3459.
2018-06-27Rework initialization and interrupt stack supportSebastian Huber1-4/+2
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.
2018-06-15Add _CPU_Counter_frequency()Sebastian Huber1-1/+5
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.
2018-04-20bsps: Move startup files to bspsSebastian Huber1-0/+0
Adjust build support files to new directory layout. This patch is a part of the BSP source reorganization. Update #3285.
2018-03-16bsps/powerpc: Use shared linker command fileSebastian Huber1-2/+1
Close #3339.
2017-11-22powerpc: Replace BSP_panic() with rtems_panic()Sebastian Huber1-1/+1
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.
2014-03-21Change all references of rtems.com to rtems.org.Chris Johns1-1/+1
2014-02-19powerpc: Change interrupt disable implemetationSebastian Huber1-5/+1
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-14score: Add CPU counter supportSebastian Huber1-0/+3
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.
2012-11-15bsps/powerpc: Exception initialization error is fatalSebastian Huber1-4/+1
2012-11-15bsps: Interrupt initialization error is fatalSebastian Huber1-4/+1
2012-05-11Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill1-2/+0
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.
2012-04-02bsps: More accurate PowerPC clock driverSebastian Huber1-4/+6
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.
2011-02-112011-02-11 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius1-1/+1
* startup/bspstart.c: Use "__asm__" instead of "asm" for improved c99-compliance.
2009-11-30Whitespace removal.Ralf Corsepius1-1/+1
2009-10-23Update for exception support changes.Thomas Doerfler1-20/+20
2009-10-06various changesThomas Doerfler1-9/+4
2009-10-03add missing fileThomas Doerfler1-37/+34
2009-09-112009-09-11 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-4/+4
* 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.
2009-08-282009-08-28 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-1/+0
* startup/bspstart.c: Spacing.
2008-11-122008-11-12 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-0/+6
* startup/bspstart.c: Add bsp_clicks_per_usec variable which is used by shared code.
2008-09-192008-09-19 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-5/+8
* Makefile.am, include/bsp.h, startup/bspstart.c, startup/linkcmds: Use PowerPC level shared bsp_get_work_area() implementation. * startup/bspgetworkarea.c: Removed.
2008-09-162008-09-16 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-20/+0
* 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.
2008-07-24Changed bsp_get_workarea() to bsp_get_work_area() andThomas Doerfler1-7/+10
added support for an optional separate heap area.
2008-07-182008-07-18 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-2/+0
* startup/bspstart.c: This BSP is OK with SPRG0.
2008-07-11adapted powerpc BSPs to new exception codeThomas Doerfler1-27/+13
2008-05-152008-05-15 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-51/+13
* 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.
2008-05-122008-05-12 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-1/+0
* 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.
2007-12-112007-12-11 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-20/+4
* bsp_specs, include/bsp.h, startup/bspstart.c: Eliminate copies of the Configuration Table. Use the RTEMS provided accessor macros to obtain configuration fields.
2007-12-042007-12-04 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-11/+5
* 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.
2007-12-032007-12-03 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-15/+0
* 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.
2007-12-012007-11-30 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-5/+0
* startup/bspstart.c: removed bsp_exceptions_in_RAM
2007-11-302007-11-30 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-1/+1
* startup/bspstart.c: BSP_DIRTY_MEMORY should be tested for zero not just defined.
2007-11-302007-11-29 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-0/+14
* 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 :-)
2007-11-282007-11-28 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-17/+19
* startup/bspstart.c: Eliminate PowerPC specific elements from the CPU Table. They have been replaced with variables named bsp_XXX as needed.
2007-09-132007-09-13 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-0/+5
* configure.ac, startup/bspstart.c: Add BSP_DIRTY_MEMORY option.
2006-01-05 - fixed typoTill Straumann1-1/+1
2005-02-172005-02-17 Ralf Corsepius <ralf.corsepius@rtems.org>Ralf Corsepius1-1/+3
* startup/bspstart.c: include <rtems/powerpc/powerpc.h>. Use PPC_MINIMUM_STACK_FRAME_SIZE instead of CPU_MINIMUM_STACK_FRAME_SIZE.
2004-11-222004-11-22 Jennifer Averett <jennifer@OARcorp.com>Jennifer Averett1-12/+93
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.
2004-04-21Remove stray white spaces.Ralf Corsepius1-4/+4
2004-03-312004-03-31 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius1-6/+6
* include/bsp.h, shmsupp/getcfg.c, startup/bspstart.c, timer/timer.c: Convert to using c99 fixed size types.
2003-09-042003-09-04 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-1/+1
* 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.
2003-09-042003-09-04 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-1/+0
* startup/bspstart.c: Removed incorrect statement about copyright assignment.
2002-04-182002-04-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>Joel Sherrill1-0/+1
* startup/bspstart.c: Include <rtems/bspIo.h>. * vectors/align_h.S: Use <> instead of "" for include files.
2001-01-032001-01-03 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-123/+1
* 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.
2000-11-012000-11-01 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-5/+4
* 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.
2000-06-12Merged from 4.5.0-beta3aJoel Sherrill1-7/+1
1999-11-17Updated copyright notice.Joel Sherrill1-1/+1
1998-04-30Removed tripling of workspace API when POSIX API is enabled. confdefs.hJoel Sherrill1-1/+3
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.