Patchwork [U-Boot,5/8] ARM: moved general function to arm/lib

login
register
mail settings
Submitter Stefano Babic
Date Sept. 16, 2011, 9:46 a.m.
Message ID <1316166383-11314-5-git-send-email-sbabic@denx.de>
Download mbox | patch
Permalink /patch/114909/
State Changes Requested
Delegated to: Albert ARIBAUD
Headers show

Comments

Stefano Babic - Sept. 16, 2011, 9:46 a.m.
Functions inside armv7/syslib can be used by other ARM
architectures, too. The file is added as part of
ARM library.

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Albert ARIBAUD <albert.u.boot@aribaud.net>
---
 arch/arm/cpu/armv7/Makefile |    2 -
 arch/arm/cpu/armv7/syslib.c |   69 -------------------------------------------
 arch/arm/lib/Makefile       |    2 +
 arch/arm/lib/syslib.c       |   69 +++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 71 insertions(+), 71 deletions(-)
 delete mode 100644 arch/arm/cpu/armv7/syslib.c
 create mode 100644 arch/arm/lib/syslib.c
Stefano Babic - Sept. 28, 2011, 6:22 p.m.
On 09/16/2011 11:46 AM, Stefano Babic wrote:
> Functions inside armv7/syslib can be used by other ARM
> architectures, too. The file is added as part of
> ARM library.
> 

Hi Albert,

> Signed-off-by: Stefano Babic <sbabic@denx.de>
> CC: Albert ARIBAUD <albert.u.boot@aribaud.net>
> ---

Any issue regarding this patch (code was not really changed, the files
are only moved to be available for other SOCs) ? I have some other
patches for i.MX that depend on this one.....

Thanks,
Stefano
Wolfgang Denk - Oct. 6, 2011, 9:30 p.m.
Dear Stefano Babic,

In message <1316166383-11314-5-git-send-email-sbabic@denx.de> you wrote:
> Functions inside armv7/syslib can be used by other ARM
> architectures, too. The file is added as part of
> ARM library.
> 
> Signed-off-by: Stefano Babic <sbabic@denx.de>
> CC: Albert ARIBAUD <albert.u.boot@aribaud.net>
> ---
>  arch/arm/cpu/armv7/Makefile |    2 -
>  arch/arm/cpu/armv7/syslib.c |   69 -------------------------------------------
>  arch/arm/lib/Makefile       |    2 +
>  arch/arm/lib/syslib.c       |   69 +++++++++++++++++++++++++++++++++++++++++++
>  4 files changed, 71 insertions(+), 71 deletions(-)
>  delete mode 100644 arch/arm/cpu/armv7/syslib.c
>  create mode 100644 arch/arm/lib/syslib.c

Checkpatch says:

total: 2 errors, 0 warnings, 85 lines checked

Please clean up and resubmit.  Thanks.

Best regards,

Wolfgang Denk
Stefano Babic - Oct. 6, 2011, 10:11 p.m.
Am 06/10/2011 23:30, schrieb Wolfgang Denk:
> Dear Stefano Babic,
> 
> In message <1316166383-11314-5-git-send-email-sbabic@denx.de> you wrote:
>> Functions inside armv7/syslib can be used by other ARM
>> architectures, too. The file is added as part of
>> ARM library.
>>
>> Signed-off-by: Stefano Babic <sbabic@denx.de>
>> CC: Albert ARIBAUD <albert.u.boot@aribaud.net>
>> ---
>>  arch/arm/cpu/armv7/Makefile |    2 -
>>  arch/arm/cpu/armv7/syslib.c |   69 -------------------------------------------
>>  arch/arm/lib/Makefile       |    2 +
>>  arch/arm/lib/syslib.c       |   69 +++++++++++++++++++++++++++++++++++++++++++
>>  4 files changed, 71 insertions(+), 71 deletions(-)
>>  delete mode 100644 arch/arm/cpu/armv7/syslib.c
>>  create mode 100644 arch/arm/lib/syslib.c
> 
> Checkpatch says:
> 
> total: 2 errors, 0 warnings, 85 lines checked
> 
> Please clean up and resubmit.  Thanks.

mmhhh..I do not know if this is correct. The patch is really only a "git
mv", an the original files are only moved. If I run checkpatch, I see:

ERROR: spaces required around that ':' (ctx:VxV)
#164: FILE: arch/arm/lib/syslib.c:37:
+			  "bne 1b":"=r" (loops):"0"(loops));
 			          ^

ERROR: spaces required around that ':' (ctx:VxV)
#164: FILE: arch/arm/lib/syslib.c:37:
+			  "bne 1b":"=r" (loops):"0"(loops));
 			                       ^

total: 2 errors, 0 warnings, 85 lines checked

This is an assembly inline - are we sure we apply the same rules for C
and assembly ?

Best regards,
Stefano Babic
Wolfgang Denk - Oct. 6, 2011, 10:25 p.m.
Dear stefano babic,

In message <4E8E279B.8000405@denx.de> you wrote:
>
> >>  arch/arm/cpu/armv7/Makefile |    2 -
> >>  arch/arm/cpu/armv7/syslib.c |   69 -------------------------------------------
> >>  arch/arm/lib/Makefile       |    2 +
> >>  arch/arm/lib/syslib.c       |   69 +++++++++++++++++++++++++++++++++++++++++++
> >>  4 files changed, 71 insertions(+), 71 deletions(-)
> >>  delete mode 100644 arch/arm/cpu/armv7/syslib.c
> >>  create mode 100644 arch/arm/lib/syslib.c
> > 
> > Checkpatch says:
> > 
> > total: 2 errors, 0 warnings, 85 lines checked
> > 
> > Please clean up and resubmit.  Thanks.
> 
> mmhhh..I do not know if this is correct. The patch is really only a "git
> mv", an the original files are only moved. If I run checkpatch, I see:

No, it's NOT a mv, it's a remove + add.  The patch was not correctly
formatted.  This should be fixed, then!

> ERROR: spaces required around that ':' (ctx:VxV)
> #164: FILE: arch/arm/lib/syslib.c:37:
> +			  "bne 1b":"=r" (loops):"0"(loops));
>  			          ^
> 
> ERROR: spaces required around that ':' (ctx:VxV)
> #164: FILE: arch/arm/lib/syslib.c:37:
> +			  "bne 1b":"=r" (loops):"0"(loops));
>  			                       ^
> 
> total: 2 errors, 0 warnings, 85 lines checked
> 
> This is an assembly inline - are we sure we apply the same rules for C
> and assembly ?

Guess you are right here. Sorry.

Best regards,

Wolfgang Denk

Patch

diff --git a/arch/arm/cpu/armv7/Makefile b/arch/arm/cpu/armv7/Makefile
index 92a5a96..5b7f1c7 100644
--- a/arch/arm/cpu/armv7/Makefile
+++ b/arch/arm/cpu/armv7/Makefile
@@ -32,8 +32,6 @@  COBJS	+= cache_v7.o
 COBJS	+= cpu.o
 endif
 
-COBJS  += syslib.o
-
 SRCS	:= $(START:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(COBJS))
 START	:= $(addprefix $(obj),$(START))
diff --git a/arch/arm/cpu/armv7/syslib.c b/arch/arm/cpu/armv7/syslib.c
deleted file mode 100644
index 84d17f0..0000000
--- a/arch/arm/cpu/armv7/syslib.c
+++ /dev/null
@@ -1,69 +0,0 @@ 
-/*
- * (C) Copyright 2008
- * Texas Instruments, <www.ti.com>
- *
- * Richard Woodruff <r-woodruff2@ti.com>
- * Syed Mohammed Khasim <khasim@ti.com>
- *
- * 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 <asm/io.h>
-
-/************************************************************
- * sdelay() - simple spin loop.  Will be constant time as
- *  its generally used in bypass conditions only.  This
- *  is necessary until timers are accessible.
- *
- *  not inline to increase chances its in cache when called
- *************************************************************/
-void sdelay(unsigned long loops)
-{
-	__asm__ volatile ("1:\n" "subs %0, %1, #1\n"
-			  "bne 1b":"=r" (loops):"0"(loops));
-}
-
-/*****************************************************************
- * sr32 - clear & set a value in a bit range for a 32 bit address
- *****************************************************************/
-void sr32(void *addr, u32 start_bit, u32 num_bits, u32 value)
-{
-	u32 tmp, msk = 0;
-	msk = 1 << num_bits;
-	--msk;
-	tmp = readl((u32)addr) & ~(msk << start_bit);
-	tmp |= value << start_bit;
-	writel(tmp, (u32)addr);
-}
-
-/*********************************************************************
- * wait_on_value() - common routine to allow waiting for changes in
- *   volatile regs.
- *********************************************************************/
-u32 wait_on_value(u32 read_bit_mask, u32 match_value, void *read_addr,
-		  u32 bound)
-{
-	u32 i = 0, val;
-	do {
-		++i;
-		val = readl((u32)read_addr) & read_bit_mask;
-		if (val == match_value)
-			return 1;
-		if (i == bound)
-			return 0;
-	} while (1);
-}
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
index 300c8fa..c966aa7 100644
--- a/arch/arm/lib/Makefile
+++ b/arch/arm/lib/Makefile
@@ -48,6 +48,8 @@  SOBJS-$(CONFIG_USE_ARCH_MEMSET) += memset.o
 SOBJS-$(CONFIG_USE_ARCH_MEMCPY) += memcpy.o
 endif
 
+COBJS-y	+= syslib.o
+
 SRCS	:= $(GLSOBJS:.o=.S) $(GLCOBJS:.o=.c) \
 	   $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS	:= $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
diff --git a/arch/arm/lib/syslib.c b/arch/arm/lib/syslib.c
new file mode 100644
index 0000000..84d17f0
--- /dev/null
+++ b/arch/arm/lib/syslib.c
@@ -0,0 +1,69 @@ 
+/*
+ * (C) Copyright 2008
+ * Texas Instruments, <www.ti.com>
+ *
+ * Richard Woodruff <r-woodruff2@ti.com>
+ * Syed Mohammed Khasim <khasim@ti.com>
+ *
+ * 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 <asm/io.h>
+
+/************************************************************
+ * sdelay() - simple spin loop.  Will be constant time as
+ *  its generally used in bypass conditions only.  This
+ *  is necessary until timers are accessible.
+ *
+ *  not inline to increase chances its in cache when called
+ *************************************************************/
+void sdelay(unsigned long loops)
+{
+	__asm__ volatile ("1:\n" "subs %0, %1, #1\n"
+			  "bne 1b":"=r" (loops):"0"(loops));
+}
+
+/*****************************************************************
+ * sr32 - clear & set a value in a bit range for a 32 bit address
+ *****************************************************************/
+void sr32(void *addr, u32 start_bit, u32 num_bits, u32 value)
+{
+	u32 tmp, msk = 0;
+	msk = 1 << num_bits;
+	--msk;
+	tmp = readl((u32)addr) & ~(msk << start_bit);
+	tmp |= value << start_bit;
+	writel(tmp, (u32)addr);
+}
+
+/*********************************************************************
+ * wait_on_value() - common routine to allow waiting for changes in
+ *   volatile regs.
+ *********************************************************************/
+u32 wait_on_value(u32 read_bit_mask, u32 match_value, void *read_addr,
+		  u32 bound)
+{
+	u32 i = 0, val;
+	do {
+		++i;
+		val = readl((u32)read_addr) & read_bit_mask;
+		if (val == match_value)
+			return 1;
+		if (i == bound)
+			return 0;
+	} while (1);
+}