From: Michal Simek <monstr@monstr.eu>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 3/4] arm: Support new Xilinx Zynq platform
Date: Tue, 14 Aug 2012 19:11:36 +0200 [thread overview]
Message-ID: <502A86C8.1040508@monstr.eu> (raw)
In-Reply-To: <CANr=Z=afkLiGfBUH1keUd2AR=zi+emqNECynhawCZbHfUBqQzQ@mail.gmail.com>
On 08/14/2012 06:41 PM, Joe Hershberger wrote:
> Hi Michal,
>
> On Tue, Aug 14, 2012 at 11:28 AM, Michal Simek <monstr@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 <monstr@monstr.eu> wrote:
>>>>
>>>> Add timer driver.
>>>>
>>>> Signed-off-by: Michal Simek <monstr@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, wd at denx.de.
>>>> +#
>>>> +# (C) Copyright 2008
>>>> +# Guennadi Liakhovetki, DENX Software Engineering, <lg@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 <monstr@monstr.eu>
>>>> + * Copyright (C) 2011-2012 Xilinx, Inc. All rights reserved.
>>>> + *
>>>> + * (C) Copyright 2008
>>>> + * Guennadi Liakhovetki, DENX Software Engineering, <lg@denx.de>
>>>> + *
>>>> + * (C) Copyright 2004
>>>> + * Philippe Robin, ARM Ltd. <philippe.robin@arm.com>
>>>> + *
>>>> + * (C) Copyright 2002-2004
>>>> + * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
>>>> + *
>>>> + * (C) Copyright 2003
>>>> + * Texas Instruments <www.ti.com>
>>>> + *
>>>> + * (C) Copyright 2002
>>>> + * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
>>>> + * Marius Groeger <mgroeger@sysgo.de>
>>>> + *
>>>> + * (C) Copyright 2002
>>>> + * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
>>>> + * Alex Zuepke <azu@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/.
For me was just safer to use it in zynq folder because I am not familiar with others ARMs.
+ I see that other armv7 cpus uses own timer drivers.
Any input from arm custodian will be helpful.
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
next prev parent reply other threads:[~2012-08-14 17:11 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-14 11:42 [U-Boot] Xilinx Zynq platform Michal Simek
2012-08-14 11:42 ` [U-Boot] [PATCH 1/4] serial: Add Dragonfire serial driver Michal Simek
2012-08-14 14:09 ` Joe Hershberger
2012-08-14 16:38 ` Michal Simek
2012-08-14 16:45 ` Joe Hershberger
2012-08-14 17:17 ` Michal Simek
2012-08-14 22:40 ` John Williams
2012-08-14 11:42 ` [U-Boot] [PATCH 2/4] net: Add driver for Zynq Gem IP Michal Simek
2012-08-14 14:59 ` Joe Hershberger
2012-08-14 17:04 ` Michal Simek
2012-08-14 11:42 ` [U-Boot] [PATCH 3/4] arm: Support new Xilinx Zynq platform Michal Simek
2012-08-14 15:36 ` Joe Hershberger
2012-08-14 16:28 ` Michal Simek
2012-08-14 16:41 ` Joe Hershberger
2012-08-14 17:11 ` Michal Simek [this message]
2012-08-14 17:15 ` Joe Hershberger
2012-08-14 17:39 ` Michal Simek
2012-08-14 18:19 ` Joe Hershberger
2012-08-14 18:39 ` Michal Simek
2012-08-14 20:18 ` Marek Vasut
2012-08-14 11:42 ` [U-Boot] [PATCH 4/4] xilinx: Add new Zynq board Michal Simek
2012-08-14 12:16 ` Michal Simek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=502A86C8.1040508@monstr.eu \
--to=monstr@monstr.eu \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox