Hi Michal, On Tue, Aug 14, 2012 at 11:28 AM, Michal Simek <mon...@monstr.eu> wrote: > On 08/14/2012 05:36 PM, Joe Hershberger wrote: >> >> Hi Michal, >> >> On Tue, Aug 14, 2012 at 6:42 AM, Michal Simek <mon...@monstr.eu> wrote: >>> >>> Add timer driver. >>> >>> Signed-off-by: Michal Simek <mon...@monstr.eu> >>> --- >>> arch/arm/cpu/armv7/zynq/Makefile | 48 ++++++++++++ >>> arch/arm/cpu/armv7/zynq/timer.c | 151 >>> ++++++++++++++++++++++++++++++++++++++ >>> 2 files changed, 199 insertions(+), 0 deletions(-) >>> create mode 100644 arch/arm/cpu/armv7/zynq/Makefile >>> create mode 100644 arch/arm/cpu/armv7/zynq/timer.c >>> >>> diff --git a/arch/arm/cpu/armv7/zynq/Makefile >>> b/arch/arm/cpu/armv7/zynq/Makefile >>> new file mode 100644 >>> index 0000000..814c1d4 >>> --- /dev/null >>> +++ b/arch/arm/cpu/armv7/zynq/Makefile >>> @@ -0,0 +1,48 @@ >>> +# >>> +# (C) Copyright 2000-2003 >>> +# Wolfgang Denk, DENX Software Engineering, w...@denx.de. >>> +# >>> +# (C) Copyright 2008 >>> +# Guennadi Liakhovetki, DENX Software Engineering, <l...@denx.de> >>> +# >>> +# See file CREDITS for list of people who contributed to this >>> +# project. >>> +# >>> +# This program is free software; you can redistribute it and/or >>> +# modify it under the terms of the GNU General Public License as >>> +# published by the Free Software Foundation; either version 2 of >>> +# the License, or (at your option) any later version. >>> +# >>> +# This program is distributed in the hope that it will be useful, >>> +# but WITHOUT ANY WARRANTY; without even the implied warranty of >>> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >>> +# GNU General Public License for more details. >>> +# >>> +# You should have received a copy of the GNU General Public License >>> +# along with this program; if not, write to the Free Software >>> +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, >>> +# MA 02111-1307 USA >>> +# >>> + >>> +include $(TOPDIR)/config.mk >>> + >>> +LIB = $(obj)lib$(SOC).o >>> + >> >> >> You should include the lowlevel_init.o here instead of in the board. > > > Probably make sense. > > > >> >>> +COBJS = timer.o >>> + >> >> >> Preferably emulate the Makefile in arch/arm/cpu/armv7/tegra2/. By >> that I mean use COBJS-y instead of COBJS directly. This is more >> forward looking to allow for features to be disabled in the future. > > > no problem with that. > > >> >>> +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) >>> +OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS)) >>> + >>> +all: $(obj).depend $(LIB) >>> + >>> +$(LIB): $(OBJS) >>> + $(call cmd_link_o_target, $(OBJS)) >>> + >>> >>> +######################################################################### >>> + >>> +# defines $(obj).depend target >>> +include $(SRCTREE)/rules.mk >>> + >>> +sinclude $(obj).depend >>> + >>> >>> +######################################################################### >>> diff --git a/arch/arm/cpu/armv7/zynq/timer.c >>> b/arch/arm/cpu/armv7/zynq/timer.c >>> new file mode 100644 >>> index 0000000..d79da97 >>> --- /dev/null >>> +++ b/arch/arm/cpu/armv7/zynq/timer.c >>> @@ -0,0 +1,151 @@ >>> +/* >>> + * Copyright (C) 2012 Michal Simek <mon...@monstr.eu> >>> + * Copyright (C) 2011-2012 Xilinx, Inc. All rights reserved. >>> + * >>> + * (C) Copyright 2008 >>> + * Guennadi Liakhovetki, DENX Software Engineering, <l...@denx.de> >>> + * >>> + * (C) Copyright 2004 >>> + * Philippe Robin, ARM Ltd. <philippe.ro...@arm.com> >>> + * >>> + * (C) Copyright 2002-2004 >>> + * Gary Jennejohn, DENX Software Engineering, <g...@denx.de> >>> + * >>> + * (C) Copyright 2003 >>> + * Texas Instruments <www.ti.com> >>> + * >>> + * (C) Copyright 2002 >>> + * Sysgo Real-Time Solutions, GmbH <www.elinos.com> >>> + * Marius Groeger <mgroe...@sysgo.de> >>> + * >>> + * (C) Copyright 2002 >>> + * Sysgo Real-Time Solutions, GmbH <www.elinos.com> >>> + * Alex Zuepke <a...@sysgo.de> >>> + * >>> + * See file CREDITS for list of people who contributed to this >>> + * project. >>> + * >>> + * This program is free software; you can redistribute it and/or >>> + * modify it under the terms of the GNU General Public License as >>> + * published by the Free Software Foundation; either version 2 of >>> + * the License, or (at your option) any later version. >>> + * >>> + * This program is distributed in the hope that it will be useful, >>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >>> + * GNU General Public License for more details. >>> + * >>> + * You should have received a copy of the GNU General Public License >>> + * along with this program; if not, write to the Free Software >>> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, >>> + * MA 02111-1307 USA >>> + */ >>> + >>> +#include <common.h> >>> +#include <div64.h> >>> +#include <asm/io.h> >>> + >>> +DECLARE_GLOBAL_DATA_PTR; >>> + >>> +struct scu_timer { >>> + u32 load; /* Timer Load Register */ >>> + u32 counter; /* Timer Counter Register */ >>> + u32 control; /* Timer Control Register */ >>> +}; >> >> >> You are using the timer in the ARM Cortex A9 core. This is not >> Zynq-specific in any way. It should be made available in a different >> place. Probably in arch/arm/lib. It should be stripped on any "XSCU" >> references. Use ARM names instead. > > > > Based on this I can't see the reason why XSCU should be stripped. > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0407f/BABDEAGJ.html > > It is SCU private timer. Agree that we can remove X prefix. > > > I don't think that arch/arm/lib is the proper location for that. > I am not arm specialist to say that this timer is available in all arm > families > to be in lib folder.
I'm not sure that it is available on more than armv7 (like arch/arm/lib/cache-pl310.c). If it is only available in armv7, then it can go in arch/arm/cpu/armv7/. -Joe _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot