Commit Graph

11 Commits

Author SHA1 Message Date
Daniel Hellstrom
4a7d1026ec sparc bsps: updated license to rtems.org 2015-04-17 01:10:28 +02:00
Daniel Hellstrom
5823bae82b LEON: move driver headers to bsp/ directory 2015-04-17 01:10:26 +02:00
Daniel Hellstrom
e3c9937418 GPTIMER: move ISR install from init1
To avoid install ISRs during init level 1 the ISR install is moved
to the opening/initialization of the timer.
2015-04-17 01:10:22 +02:00
Daniel Hellstrom
f37a3c229e GPTIMER: fix build warnings 2015-04-17 01:10:22 +02:00
Daniel Hellstrom
bf6fe95853 GPTIMER: avoid build warnings 2015-04-17 01:10:21 +02:00
Daniel Hellstrom
fa12bb4396 GRTIMER: added to GPTIMER driver
GRTIMER is compatible with GPTIMER, however the GPTIMER driver
does not support the extended features of GRTIMER.
2015-04-17 01:10:20 +02:00
Daniel Hellstrom
acf7047e2a GPTIMER: timer probing must not be on timer0
Timers are identical within one GPTIMER core. Probing only the
first timer is sufficient, however the first timer was hardcoded
to timer0 which is not correct in a multi-OS system like RTEMS
AMP. This patch makes sure that probing is done on the first
timer that can be used by this RTEMS instance. Without this
patch RTEMS AMP is broken on systems (like the GR712RC) where
there is only one GPTIMER core proviing multiple timers. Designs
(like the NGMP/FP) where there are multiple GPTIMER cores are not
affected.
2015-04-17 01:10:20 +02:00
Daniel Hellstrom
4d249b9fed GPTIMER: support separate & shared irq by clearing pending bit after ISR 2015-04-17 01:10:18 +02:00
Daniel Hellstrom
7ebc28cd1a GPTIMER: Only probe pending bit on timer0 2015-04-17 01:10:18 +02:00
Daniel Hellstrom
16d6e42c43 LEON3: fixed nano seconds support in TLIB
The _Watchdog_Nanoseconds_since_tick_handler() function caller does
not take into account that the timer counter may wrap, underflow or
overflow. Instead, the driver must take that into account. This
GPTIMER DrvMgr driver patch makes use of the IRQ-Pending bit to
determine if a underflow has happened. In that case a greater time
than one tick is returned (even considering the function name..).

The TLIB clock layer must also ACK the interrupt pending bit,
otherwise we couldn't determine whether an IRQ is pending or if
belongs to un old already handled tick IRQ.

Note that this patch only fixes the DrvMgr GPTIMER driver and TLIB,
the standard LEON3 GPTIMER driver still needs a fix.
2015-04-17 01:10:18 +02:00
Daniel Hellstrom
cd64fbfb68 LEON: GPTIMER driver, Timer Library and System Clock for LEON3
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.
2015-04-17 01:10:16 +02:00