From cd64fbfb6847b91fb51a2387ba93a255a5afa18d Mon Sep 17 00:00:00 2001 From: Daniel Hellstrom Date: Fri, 16 Dec 2011 10:37:49 +0100 Subject: 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. --- c/src/lib/libbsp/sparc/leon2/Makefile.am | 6 ++++++ c/src/lib/libbsp/sparc/leon2/include/bsp.h | 1 + c/src/lib/libbsp/sparc/leon2/preinstall.am | 4 ++++ 3 files changed, 11 insertions(+) (limited to 'c/src/lib/libbsp/sparc/leon2') diff --git a/c/src/lib/libbsp/sparc/leon2/Makefile.am b/c/src/lib/libbsp/sparc/leon2/Makefile.am index bb30517dd0..e9dcfd8e75 100644 --- a/c/src/lib/libbsp/sparc/leon2/Makefile.am +++ b/c/src/lib/libbsp/sparc/leon2/Makefile.am @@ -102,6 +102,12 @@ libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_parent.c libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_old.c libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_names.c libbsp_a_SOURCES += ../../sparc/shared/amba/ambapp_show.c + +# Clock Driver and Timer Library +include_HEADERS += ../../sparc/shared/include/tlib.h +libbsp_a_SOURCES += ../../sparc/shared/timer/gptimer.c +libbsp_a_SOURCES += ../../sparc/shared/timer/tlib.c + # PCI libbsp_a_SOURCES += pci/pci.c ../../sparc/shared/pci/pcifinddevice.c # RASTA Kit diff --git a/c/src/lib/libbsp/sparc/leon2/include/bsp.h b/c/src/lib/libbsp/sparc/leon2/include/bsp.h index dce8bea661..d669d8910e 100644 --- a/c/src/lib/libbsp/sparc/leon2/include/bsp.h +++ b/c/src/lib/libbsp/sparc/leon2/include/bsp.h @@ -226,6 +226,7 @@ int cchip1_register(void); * image bigger. */ #define AMBAPPBUS_INFO_AVAIL /* AMBAPP Bus driver */ +#define GPTIMER_INFO_AVAIL /* GPTIMER Timer driver */ #ifdef __cplusplus } diff --git a/c/src/lib/libbsp/sparc/leon2/preinstall.am b/c/src/lib/libbsp/sparc/leon2/preinstall.am index 7260f63767..10a0bbcd1f 100644 --- a/c/src/lib/libbsp/sparc/leon2/preinstall.am +++ b/c/src/lib/libbsp/sparc/leon2/preinstall.am @@ -169,6 +169,10 @@ $(PROJECT_INCLUDE)/grlib.h: ../../sparc/shared/include/grlib.h $(PROJECT_INCLUDE $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/grlib.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/grlib.h +$(PROJECT_INCLUDE)/tlib.h: ../../sparc/shared/include/tlib.h $(PROJECT_INCLUDE)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tlib.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/tlib.h + $(PROJECT_INCLUDE)/i2cmst.h: ../../sparc/shared/include/i2cmst.h $(PROJECT_INCLUDE)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/i2cmst.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/i2cmst.h -- cgit v1.2.3