summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/leon3 (follow)
Commit message (Collapse)AuthorAgeFilesLines
* LEON: added get_resarray_count() helper routineDaniel Hellstrom2015-04-172-0/+6
|
* GPTIMER: fix build warningsDaniel Hellstrom2015-04-172-0/+5
|
* APBUART_CONS: fix build warningDaniel Hellstrom2015-04-172-0/+5
|
* GR-RASTA-SPW-ROUTER: fix build warningsDaniel Hellstrom2015-04-172-0/+5
|
* PCIF: fixed build warningsDaniel Hellstrom2015-04-172-0/+5
|
* GRPCI: fixed build warningsDaniel Hellstrom2015-04-172-0/+5
|
* LEON3: watchdog use common timer definesDaniel Hellstrom2015-04-171-1/+1
|
* LEON3: export debug uart to console uart driverDaniel Hellstrom2015-04-171-1/+1
|
* GRETH: fix build warnings with GCC-4.9Daniel Hellstrom2015-04-171-1/+1
|
* GR-CPCI-LEON4-N2X: added PCI peripheral driver for PCI deviceDaniel Hellstrom2015-04-172-0/+6
| | | | Interrupts have not been test yet
* GRSPW: New packet based driver for SPW/SPW2/SPW2_DMADaniel Hellstrom2015-04-172-0/+6
| | | | | | | | | | | | | | | | This patch adds a new driver for the GRSPW SpaceWire AMBA interface family. The new driver does not implement a standard RTEMS driver, instead it provides only a library interface to the GRSPW devices. This driver can be used to implement a RTEMS I/O driver or used directly. New features compared with old GRSPW driver: * zero-copy packet interface * possibility to send/receive mulitple packets per call * optional interrupt awaken work-task to process TX/RX queues * DMA channels support. Before only first DMA channel supported * Separate DMA and link control * Packet based error flags
* LEON: added new drivers to the LEON2/LEON3 BSPsDaniel Hellstrom2015-04-173-1/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* LEON: added network device configuration helper functionDaniel Hellstrom2015-04-172-0/+12
|
* LEON: updated and added PCI peripherals for LEON BSPsDaniel Hellstrom2015-04-172-28/+39
| | | | | | | | | | | | | | | | | | | | The CCHIP driver is replaced with the GR_701 driver. The RASTA driver is replaced by the GR-RASTA-IO driver. All drivers are now compatible with both LEON2 and LEON3, drivers were initialized directly by the PCI-board drivers are now initialized by the driver manager and therefore does not require the double code created by including for example grcan.c into grcan_rasta.c. The other drivers needs to be updated to the driver manager framework however. Added support for: * GR-701 (only LEON2 before) * GR-RASTA-IO (only LEON2 before) * GR-RASTA-ADCDAC * GR-RASTA-TMTC * GR-RASTA-SPW-ROUTER * GR-TMTC-1553
* LEON: replaced old BSP PCI layer with new generic libpci PCI layerDaniel Hellstrom2015-04-173-618/+10
| | | | | | | | | | | | | | | | | The old code used a limited PCI configuration library, which was duplicated into LEON2 and LEON3 BSP pci.c together with respective Host controller PCI interface. The LEON2 BSP had support for AT697 PCI, and LEON3 for GRPCI PCI Host controller. With this update new PCI Host drivers are added, and all support the new generic PCI Library: * AT697 PCI (LEON2 only) * GRPCI (LEON2-GRLIB and LEON3) * GRPCI2 (LEON2-GRLIB and LEON3) * Actel PCIF GRLIB Wrapper (LEON3 only) The LEON2 BSP is defined as big-endian PCI in bsp.h, since the AT697 supports only big-endian PCI.
* LEON3: new Console driver, APBUART driver using Driver ManagerDaniel Hellstrom2015-04-174-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | 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-173-3/+16
| | | | | | | | | | | | | | | | | | | | 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-173-0/+26
|
* sparc BSPs: implemented libpci IRQ BSP supportDaniel Hellstrom2015-04-171-2/+7
|
* LEON3: implemented BSP DRVMGR startup initializationDaniel Hellstrom2015-04-174-1/+101
|
* leon3,ngmp: simplify cpucounter initializationDaniel Hellstrom2015-04-171-49/+6
| | | | | | | | | | | | | Remove support for using the second timer for time stamping. Instead the user can configure the system clock timer to a higher base clock frequency (lower the prescaler). This change does not affect the GR712RC or LEON4-N2X. The GR712RC does not have two GPTIMERs and the N2X uses the Interrupt Controller for time stamping. Bow that the AMBA initialization code exports the AMBA device, the frequency can be obtained without an additional AMBA PnP scanning.
* leon3: make timer initialization configurableDaniel Hellstrom2015-04-172-2/+40
| | | | | | | | | | | Its now possible to select which timer core will be used for system clock timer and to control the timer prescaler that affects all timer instances on that timer core. The timer and interrupt controller AMBA devices are exported to make it possible for other code to get detailed information. For example the frequency of the timer and interrupt controller is required by the cpucounter support.
* leon3: always clear interrupt controllerDaniel Hellstrom2015-04-171-3/+3
|
* leon3: clock driver rely on previous found timerDaniel Hellstrom2015-04-171-9/+2
| | | | | No point in scanning for the same GPTIMER twice. Rely on amba.c AMBA PnP scanning.
* LEON3: GPTIMER timer watchdog driverDaniel Hellstrom2015-04-174-0/+145
| | | | | Last timer instance of GPTIMER is sometimes a watchdog timer that can reset the system on timer underflow.
* score: Add _CPU_SMP_Prepare_start_multitasking()Sebastian Huber2015-02-171-8/+5
| | | | Update #2268.
* bsp/sparc: Move BSP_ISR_handler to a separate file and rename itDaniel Cederman2015-02-112-0/+4
| | | | | | | 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.
* smp: Add and use _SMP_Should_start_processor()Sebastian Huber2015-01-091-5/+1
|
* bsps/sparc: Fix trap table initializationSebastian Huber2014-12-051-1/+1
| | | | Fixes bug introduced with dff1803cfbec3775fff1b9c34cc707c05494dc3b.
* Update bug report URLSebastian Huber2014-12-051-1/+1
|
* libmisc: More useful default configurationSebastian Huber2014-12-051-1/+1
| | | | | | | | | | | The dummy.c was a de-facto default configuration. Rename it to default-configuration.c. Use unlimited objects and the stack checker. This makes it easier for new RTEMS users which will likely use this file if they just work with the usual main() function as the application entry point. Provide proper arguments for main() using the BSP command line. Add spare user extensions and drivers. Do not initialize the network by default. Delete bspinit.c.
* bsp/leon3: Fix trap table initializationSebastian Huber2014-12-041-1/+2
| | | | Fixes bug introduced with dff1803cfbec3775fff1b9c34cc707c05494dc3b.
* SPARC: optimize IRQ enable & disableDaniel Hellstrom2014-12-041-5/+7
| | | | | | | | | | | | | | | | * Coding style cleanups. * Use OS reserved trap 0x89 for IRQ Disable * Use OS reserved trap 0x8A for IRQ Enable * Add to SPARC CPU supplement documentation This will result in faster Disable/Enable code since the system trap handler does not need to decode which function the user wants. Besides the IRQ disable/enabled can now be inline which avoids the caller to take into account that o0-o7+g1-g4 registers are destroyed by trap handler. It was also possible to reduce the interrupt trap handler by five instructions due to this.
* sparc/leon3: LEON_Is_interrupt_masked for Leon3 in leon.h wrongly definedJiri Gaisler2014-12-021-3/+1
| | | | | Condition needs to be inverted, as a 1 in the mask register means that the interrupt is enabled. Solves ticket #1958 in trac.
* bsp/ngmp: Use -muser-mode GCC optionSebastian Huber2014-11-241-1/+1
| | | | | This option is necessary to use the latest GCC 4.8, 4.9 and 5.0 versions.
* bsps/sparc: Include right header fileSebastian Huber2014-10-231-1/+1
|
* bsp/leon3: Fix LEON3_mp_irq definitionSebastian Huber2014-10-233-6/+9
| | | | 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".
* bsp/sparc: Ensure that data cache snooping is enabledDaniel Cederman2014-10-232-2/+18
| | | | Check that data cache snooping exists and is enabled on all cores.
* sparc/leon3/include/bsp.h: Fix warningsJoel Sherrill2014-10-191-0/+5
|
* LEON3: use interrupt layer in clock driverDaniel Hellstrom2014-10-091-3/+20
| | | | | Manupilating the interrupt control registers directly instead of going through the interrupt layer can be deceiving.
* LEON3 SMP: support static interrupt affinityDaniel Hellstrom2014-10-092-2/+13
| | | | Changed LEON3_irq-mp to const also.
* SPARC BSPs: added CPU aware interrupt ctrl operationsDaniel Hellstrom2014-10-091-12/+40
| | | | | | The LEON2 and ERC32 maps the new macros to CPU0 since they do not support SMP. With the LEON3 a specific CPU's interrupt controller registers can be modified using macros.
* termios: Partially hide rtems_termios_ttySebastian Huber2014-10-071-4/+6
| | | | | | | Move interrupt lock to device context and expose only this structure to the read, write and set attributes device handler. This makes these device handler independent of the general Termios infrastructure suitable for direct use in printk() support.
* termios: Separate flow control from normal handlerSebastian Huber2014-10-071-0/+2
|
* LEON3: use CPU_Fatal_halt for haltDaniel Hellstrom2014-10-064-65/+90
| | | | | | | | | | | | | | By removing the bsp_reset() mechanism and instead relying on the CPU_Fatal_halt() routine SMP and single-core can halt by updating the _Internal_errors_What_happened structure and set the state to SYSTEM_STATE_TERMINATED (the generic way). This will be better for test scripts and debugger that can generically look into why the OS stopped. For SMP systems, only the fatal-reporting CPU waits until all other CPUs are powered down (with a time out of one clock tick). The reason why a fatal stop happend may be because CPU0 was soft-locked up so we can never trust that CPU0 should do the halt for us.
* SPARC: Fatal_halt use source and exit codesDaniel Hellstrom2014-10-063-0/+42
| | | | | | | | | | | | | | | The Fatal_halt handler now have two options, either halt as before or enter system error state to return to debugger or simulator. The exit-code is now also propagated to the debugger which is very useful for testing. The CPU_Fatal_halt handler was split up into two, since the only the LEON3 support the CPU power down. The LEON3 halt now uses the power-down instruction to save CPU power. This doesn't stop a potential watch-dog timer from expiring.
* SPARC: add BSP specific error handlerDaniel Hellstrom2014-10-062-0/+3
| | | | | | | | 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-025-10/+20
| | | | | | | | 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.