summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/leon3/include/bsp.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove make preinstallChris Johns2018-01-251-250/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
* sparc: Remove BSP specifics from <pci/irq.h>Sebastian Huber2018-01-021-7/+0
| | | | | | Update #3254. Update #3260. Update #3269.
* sparc/leon3: Remove include of <rtems/console.h> from <bsp.h> and fix warningsJoel Sherrill2016-03-291-1/+0
|
* sparc/leon3/include/bsp.h: Do not include <rtems/clockdrv.h>Joel Sherrill2016-03-271-1/+0
|
* bsps: Call bsp_work_area_initialize() earlySebastian Huber2015-12-101-7/+0
| | | | | | | | Call bsp_work_area_initialize() before bsp_start(). This allows bsp_start() to use malloc() etc. which is beneficial for systems with a plug-and-play hardware enumeration. Update #2408.
* Most bsp.h: Switch to LIBBSP_@CPU@_@BSP_FAMILY@_H for guardJoel Sherrill2015-07-161-2/+2
| | | | | | | | | | | | | | | | | This was done by the following script run from libbsp: find * -name bsp.h | xargs -e grep -l "#ifndef.*_BSP_H" | while read b do echo $b cpu=`echo $b | cut -d'/' -f1 | tr '[:lower:]' '[:upper:]' ` bsp=`echo $b | cut -d'/' -f2 | tr '[:lower:]' '[:upper:]' ` g="LIBBSP_${cpu}_${bsp}_BSP_H" # echo $g sed -e "s/ifndef _BSP_H/ifndef ${g}/" \ -e "s/define _BSP_H/define ${g}/" \ -i $b done
* GRETH: fix build warnings with GCC-4.9Daniel Hellstrom2015-04-171-1/+1
|
* LEON: added new drivers to the LEON2/LEON3 BSPsDaniel Hellstrom2015-04-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most drivers use the Driver Manager for device probing, they work on AMBA-over-PCI systems if PCI is big-endian. New APIs: * GPIO Library, interfaced to GRGPIO * GENIRQ, Generic interrupt service implementation helper New GRLIB Drivers: * ACTEL 1553 RT, user interface is similar to 1553 BRM driver * GR1553 (1553 BC, RT and BM core) * AHBSTAT (AHB error status core) * GRADCDAC (Core interfacing to ADC/DAC hardware) * GRGPIO (GPIO port accessed from GPIO Library) * MCTRL (Memory controller settings configuration) * GRETH (10/100/1000 Ethernet driver using Driver manager) * GRPWM (Pulse Width Modulation core) * SPICTRL (SPI master interface) * GRSPW_ROUTER (SpaceWire Router AMBA configuration interface) * GRCTM (SpaceCraft on-board Time Management core) * SPWCUC (Time distribution over SpaceWire) * GRTC (SpaceCraft up-link Tele core) * GRTM (SpaceCraft down-link Tele Metry core) GR712RC ASIC specific interfaces: * GRASCS * CANMUX (select between OCCAN and SATCAN) * SATCAN * SLINK
* LEON3: new Console driver, APBUART driver using Driver ManagerDaniel Hellstrom2015-04-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This patch reimplements the console driver of the LEON3 BSP, it has split up the console driver in two parts: Console driver and UART driver. Before the only UART supported was APBUART and only on-chip APBUARTs found during startup. However splitting the driver in two allows any UART interface to reuse the termios attach code of the console driver, pratically this has always been a problem when discovering APBUARTs after startup for example the PCI board GR-RASTA-IO has APBUARTs and must wait until after PCI has been setup. Since the only current driver that supports the new console driver uses the Driver Manager, the new console driver is only enabled when Driver Manager is initialized during startup. The new APBUART driver supports: * polling mode * interrupt mode * task-driven mode * set UART attributes * read UART attributes (system console inherit settings from boot loader) * Driver manager for finding/initialization of the hardware
* LEON: GPTIMER driver, Timer Library and System Clock for LEON3Daniel Hellstrom2015-04-171-0/+1
| | | | | | | | | | | | | | | | | | | | With this patch the LEON family can access the GRLIB GPTIMER using the Timer library (TLIB). A System Clock driver instead of BSP/clock/ck_init.c is provided using the TLIB. The classic clock driver is split in two parts, clock driver and timer driver. The BSPs need only to fullfill the timer interface instead of the clock interface. Currently only LEON3 uses it. The LEON2 Timer is not ported to TLIB. The GPTIMER driver is implemented using the Driver Manager, so the System Clock Driver is at this point only suitable for LEON3 when the driver manager is initialized during BSP startup. When the DrvMgr is not initialized during startup the standard BSP/clock dirver is used. LEON2 sometimes also needs to access GPTIMER when a off-chip GRLIB AMBA systems is connected, for example AMBA-over-PCI.
* LEON3: implemented AMBA PnP Bus Driver for Driver ManagerDaniel Hellstrom2015-04-171-0/+7
|
* sparc BSPs: implemented libpci IRQ BSP supportDaniel Hellstrom2015-04-171-2/+7
|
* bsp/sparc: Move BSP_ISR_handler to a separate file and rename itDaniel Cederman2015-02-111-0/+3
| | | | | | | This allows it to be wrapped by another function at link-time and can be used to trace interrupts. If not placed in a separate file, the function pointer address used in BSP_shared_interrupt_init will be resolved at compile-time, and the function will not be wrappable.
* bsp/leon3: Fix LEON3_mp_irq definitionSebastian Huber2014-10-231-1/+2
| | | | Provide it also if RTEMS_MULTIPROCESSING is defined.
* bsps: Move extern "C" to not cover includesSebastian Huber2014-10-231-4/+4
| | | | Some includes may use C++ and this conflicts if surrounded extern "C".
* sparc/leon3/include/bsp.h: Fix warningsJoel Sherrill2014-10-191-0/+5
|
* LEON3 SMP: support static interrupt affinityDaniel Hellstrom2014-10-091-1/+12
| | | | Changed LEON3_irq-mp to const also.
* SPARC: add BSP specific error handlerDaniel Hellstrom2014-10-061-0/+2
| | | | | | | | Instead of calling the system call TA instruction directly it is better paractise to isolate the trap implementation to the system call functions. BSP_fatal_exit() is added.
* SPARC BSPs: remove BSP_fatal_return unreached codeDaniel Hellstrom2014-10-061-2/+0
|
* bsp/leon3: Replace the define LEON3_MP_IRQ with a weakly linked variableDaniel Cederman2014-10-021-0/+7
| | | | | | | | The LEON3_MP_IRQ define is used to pick the IRQ to be used by the shared memory driver and for inter-processor interrupts. On some LEON3 systems, for example the GR712RC, the default value of 14 is not suitable. To make this value configurable from the application, it is replaced with a weakly linked variable that can be overridden from the application.
* LEON3: devfs free nodes must be sizedDaniel Hellstrom2014-06-301-0/+3
| | | | | | | | | .. according to the maximum number of termios ports which is 8. Since LEON3 uses PnP to find how many UARTs there are present we must make sure worst case work. The current maximum of 4 free nodes caused for example the GR712RC with its 6 UARTs to fail during devfs02 test.
* bsps/sparc: Change tabs to spaces.Daniel Cederman2014-05-271-4/+4
|
* bsps/sparc: Make lines in SPARC BSPs adhere to 80 character limit.Daniel Cederman2014-05-271-5/+8
|
* Change all references of rtems.com to rtems.org.Chris Johns2014-03-211-1/+1
|
* score: Add RTEMS_FATAL_SOURCE_BSPSebastian Huber2014-02-191-4/+0
| | | | | | 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.
* score: Add CPU counter supportSebastian Huber2014-02-141-0/+4
| | | | | | | | | 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.
* doxygen: refactored doxygen in libbsp to illustrate new rule setDaniel Ramirez2013-12-091-3/+12
|
* sparc shared: improve doxygenToma Radu2013-12-071-2/+3
| | | | Add doxygen to the header files in sparc/shared/include directory.
* leon3: fix doxygen description for bsp.hGedare Bloom2013-12-041-1/+1
|
* leon3: improve doxygenToma Radu2013-12-041-1/+4
| | | | Add doxygen to the bsp.h, tm27.h, amba.h and leon.h files
* sparc/leon3: Add doxygen.Radu Toma2013-12-011-0/+4
|
* leon3/include/bsp.h: Fix spacingJoel Sherrill2013-09-161-1/+0
|
* bsps: Use RTEMS_BSP_CLEANUP_OPTIONSSebastian Huber2012-11-251-2/+0
|
* bsps: Interrupt initialization error is fatalSebastian Huber2012-11-151-1/+1
|
* score: Add RTEMS_FATAL_SOURCE_EXITSebastian Huber2012-11-151-2/+3
| | | | | | | Include <bsp/default-initial-extension.h> in all BSPs. Call rtems_fatal() with RTEMS_FATAL_SOURCE_EXIT as source and the exit() status code as fatal code in every bsp_cleanup(). Move previous bsp_cleanup() code into bsp_fatal_extension().
* bsps/sparc: Add BSP_INITIAL_EXTENSION to <bsp.h>Sebastian Huber2012-11-131-0/+2
| | | | The bsp_fatal_extension() will call BSP_fatal_return().
* score: Work area initialization API changeSebastian Huber2012-10-251-2/+2
| | | | | | | | | | | | The work areas (RTEMS work space and C program heap) will be initialized now in a separate step and are no longer part of rtems_initialize_data_structures(). Initialization is performed with tables of Heap_Area entries. This allows usage of scattered memory areas present on various small scale micro-controllers. The sbrk() support API changes also. The bsp_sbrk_init() must now deal with a minimum size for the first memory chunk to take the configured work space size into account.
* LEON3: updated console driver for new AMBAPP layerDaniel Hellstrom2012-04-171-0/+3
| | | | Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
* SPARC BSPs: implemented shared-irq using libbsp/shared layerDaniel Hellstrom2012-04-061-0/+74
| | | | | | | | | | | | | | | The implementation use IRQ number instead of vector number since some IRQs does not have a unique vector, for example the extended interrupts all enter the same trap vector entry. Added support for the LEON3 extended interrupt controller when using the shared IRQ layer. ERC32 patches untested. Signed-off-by: Daniel Hellstrom <daniel@gaisler.com> Regenerate
* SPARC: bsp_early_malloc() routine for startup memory allocationDaniel Hellstrom2012-03-291-2/+7
| | | | | | | | | | | | If bsp_early_malloc() is called early during boot room will be allocated after BSS END. If the function is called after boot is will call malloc() instead. The returned memory is not freeable and always 8-byte aligned. If the bsp_early_malloc() isn't called the function is not dragged in and the workspace will be unmodified in size. Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
* GRETH: added support for non-snooping GRETH 10/100 systemsDaniel Hellstrom2012-03-271-0/+4
| | | | | | | | | | | | | | | | | | When data cache snooping is not present the cache needs flushing, the SPARC LEON CPUs does not have to ability to flush individual cache rows and flushing all cache is expensive. Instead the LDA instruction is used to force cache miss on individual loads during the IP-align copy operation required anyway. GRETH GBIT non-snooping systems are still unsupported, since it use zero-copy (can deal with unaligned DMA). Let the bsp.h select if the GRETH driver is supported. Currently only the LEON2/LEON3 platforms BSPs builds the driver. Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
* SMC91111: ERC32 was never supported by driverDaniel Hellstrom2012-03-211-0/+2
| | | | | | | | | Moved the intelligence whether the driver is supported or not completely to the BSP, now that bsp.h is included (even though it is a driver... hmm). The ERC32 was never supported, so HAS_SMC91111 is not added to erc32/include/bsp.h. Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
* 2011-04-25 Jennifer Averett <jennifer.averett@OARcorp.com>Joel Sherrill2011-04-251-8/+0
| | | | | | PR 1783/bsps * include/bsp.h: Remove dead prototypes of Clock_delay() and delay(). Neither had bodies.
* Whitespace removal.Ralf Corsepius2009-11-291-4/+4
|
* 2009-08-19 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2009-08-191-6/+3
| | | | | | | | * Makefile.am, console/console.c, console/debugputs.c, include/bsp.h, startup/setvec.c: Split idle method into its own file. Properly note to confdefs.h that this BSP has its own idle thread. Also address use of maximum termios constant in debug IO. * startup/bspidle.S: New file.
* 2008-09-10 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2008-09-101-4/+0
| | | | | | * include/bsp.h: Review of all bsp_cleanup() implementations. In this phase, all prototypes were removed from bsp.h and empty implementations were removed and made to use the shared stub.
* 2007-12-11 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2007-12-111-2/+0
| | | | | | * clock/ckinit.c, include/bsp.h, startup/bspstart.c: Eliminate copies of the Configuration Table. Use the RTEMS provided accessor macros to obtain configuration fields.
* 2007-12-04 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2007-12-041-3/+0
| | | | | | | * amba/amba.c, clock/ckinit.c, console/console.c, include/bsp.h, startup/bspstart.c, timer/timer.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-09-05 Daniel Hellstrom <daniel@gaisler.com>Joel Sherrill2007-09-061-0/+2
| | | | | | | | * include/bsp.h, startup/bspstart.c: LEON2 and LEON3 Data cache snooping detection on startup, for drivers. (LEON2,3 are configurable processors, they can be with or without DCache snooping. Caches without snooping needs the drivers to flush cache or use the sparc instruction lda to force cache miss...)
* 2007-09-05 Daniel Hellstrom <daniel@gaisler.com>Joel Sherrill2007-09-051-0/+3
| | | | | * include/bsp.h: This patch prepares bsp.h so that shared code (new drivers) can easily have small small sections of BSP specific code.