From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Simek Date: Tue, 14 Aug 2012 18:28:09 +0200 Subject: [U-Boot] [PATCH 3/4] arm: Support new Xilinx Zynq platform In-Reply-To: References: <1344944567-1694-1-git-send-email-monstr@monstr.eu> <1344944567-1694-4-git-send-email-monstr@monstr.eu> Message-ID: <502A7C99.40303@monstr.eu> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 08/14/2012 05:36 PM, Joe Hershberger wrote: > Hi Michal, > > On Tue, Aug 14, 2012 at 6:42 AM, Michal Simek wrote: >> Add timer driver. >> >> Signed-off-by: Michal Simek >> --- >> 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, wd at denx.de. >> +# >> +# (C) Copyright 2008 >> +# Guennadi Liakhovetki, DENX Software Engineering, >> +# >> +# 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 >> + * Copyright (C) 2011-2012 Xilinx, Inc. All rights reserved. >> + * >> + * (C) Copyright 2008 >> + * Guennadi Liakhovetki, DENX Software Engineering, >> + * >> + * (C) Copyright 2004 >> + * Philippe Robin, ARM Ltd. >> + * >> + * (C) Copyright 2002-2004 >> + * Gary Jennejohn, DENX Software Engineering, >> + * >> + * (C) Copyright 2003 >> + * Texas Instruments >> + * >> + * (C) Copyright 2002 >> + * Sysgo Real-Time Solutions, GmbH >> + * Marius Groeger >> + * >> + * (C) Copyright 2002 >> + * Sysgo Real-Time Solutions, GmbH >> + * Alex Zuepke >> + * >> + * 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 >> +#include >> +#include >> + >> +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. Thanks, Michal -- Michal Simek, Ing. (M.Eng) w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/ Microblaze U-BOOT custodian