* [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH Mobile ARM
@ 2010-11-22 23:15 Simon Horman
2010-11-22 23:15 ` [patch v4 1/2] ARM: " Simon Horman
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Simon Horman @ 2010-11-22 23:15 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
this short patch series by Kuninori Morimoto and myself adds
zboot support to mach-shmobile.
This is v4 of the patch series, which includes
a minor rediff to apply cleanly against linux-2.6-arm/devel
without any fuzz.
v2 implemented Magnus's suggestion to initialising atags directly rather
than using assembly.
v2 implemented Magnus's suggestion of setting atags in the framework and
passing them to the kernel rather than using a board-specific fixup.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [patch v4 1/2] ARM: Add zboot support for SuperH Mobile ARM
2010-11-22 23:15 [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH Mobile ARM Simon Horman
@ 2010-11-22 23:15 ` Simon Horman
2010-11-22 23:15 ` [patch v4 2/2] ARM: mach-shmobile: " Simon Horman
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2010-11-22 23:15 UTC (permalink / raw)
To: linux-arm-kernel
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
When CONFIG_ZBOOT_ROM is selected, the resulting zImage file will be small
boot loader and may be burned to rom or flash.
This is the non-board-specific framework portion of this patch-set.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
---
v2:
* As suggested by Magnus Damm; Implemented by Simon Horman
- Initialise atags in framework and pass atags to kernel
v3:
* As suggested by Magnus Damm; Implemented by Simon Horman
- Initialise atags directly rather than using assembly
Index: linux-2.6-arm/arch/arm/boot/compressed/Makefile
=================================--- linux-2.6-arm.orig/arch/arm/boot/compressed/Makefile 2010-10-14 16:47:47.000000000 +0900
+++ linux-2.6-arm/arch/arm/boot/compressed/Makefile 2010-10-14 16:47:53.000000000 +0900
@@ -45,6 +45,10 @@ else
endif
endif
+ifeq ($(CONFIG_ARCH_SHMOBILE),y)
+OBJS += head-shmobile.o
+endif
+
#
# We now have a PIC decompressor implementation. Decompressors running
# from RAM should not define ZTEXTADDR. Decompressors running directly
Index: linux-2.6-arm/arch/arm/boot/compressed/head-shmobile.S
=================================--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6-arm/arch/arm/boot/compressed/head-shmobile.S 2010-10-14 16:57:54.000000000 +0900
@@ -0,0 +1,53 @@
+/*
+ * The head-file for SH-Mobile ARM platforms
+ *
+ * Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+ * Simon Horman <horms@verge.net.au>
+ *
+ * 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; version 2 of the License.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifdef CONFIG_ZBOOT_ROM
+
+ .section ".start", "ax"
+
+ /* load board-specific initialization code */
+#include <mach/zboot.h>
+
+ b 1f
+__atags:@ tag #1
+ .long 12 @ tag->hdr.size = tag_size(tag_core);
+ .long 0x54410001 @ tag->hdr.tag = ATAG_CORE;
+ .long 0 @ tag->u.core.flags = 0;
+ .long 0 @ tag->u.core.pagesize = 0;
+ .long 0 @ tag->u.core.rootdev = 0;
+ @ tag #2
+ .long 8 @ tag->hdr.size = tag_size(tag_mem32);
+ .long 0x54410002 @ tag->hdr.tag = ATAG_MEM;
+ .long CONFIG_MEMORY_SIZE @ tag->u.mem.size = CONFIG_MEMORY_SIZE;
+ .long CONFIG_MEMORY_START @ @ tag->u.mem.start = CONFIG_MEMORY_START;
+ @ tag #3
+ .long 0 @ tag->hdr.size = 0
+ .long 0 @ tag->hdr.tag = ATAG_NONE;
+1:
+
+ /* Set board ID necessary for boot */
+ ldr r7, 1f @ Set machine type register
+ adr r8, __atags @ Set atag register
+ b 2f
+
+1 : .long MACH_TYPE
+2 :
+
+#endif /* CONFIG_ZBOOT_ROM */
Index: linux-2.6-arm/arch/arm/mach-shmobile/include/mach/zboot.h
=================================--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6-arm/arch/arm/mach-shmobile/include/mach/zboot.h 2010-10-14 16:55:20.000000000 +0900
@@ -0,0 +1,12 @@
+#ifndef ZBOOT_H
+#define ZBOOT_H
+
+/**************************************************
+ *
+ * board specific settings
+ *
+ **************************************************/
+
+#error "unsupported board."
+
+#endif /* ZBOOT_H */
^ permalink raw reply [flat|nested] 6+ messages in thread
* [patch v4 2/2] ARM: mach-shmobile: Add zboot support for SuperH Mobile ARM
2010-11-22 23:15 [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH Mobile ARM Simon Horman
2010-11-22 23:15 ` [patch v4 1/2] ARM: " Simon Horman
@ 2010-11-22 23:15 ` Simon Horman
2010-11-24 8:08 ` [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH Magnus Damm
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2010-11-22 23:15 UTC (permalink / raw)
To: linux-arm-kernel
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
When CONFIG_ZBOOT_ROM is selected, the resulting zImage file will be small
boot loader and may be burned to rom or flash.
This is the board-specific portion of this patch-set.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
---
v2:
* As suggested by Magnus Damm; Implemented by Simon Horman
- Initialise atags in framework and pass atags to kernel.
This removes the need for board-specific fixup code.
Index: linux-2.6-arm/arch/arm/mach-shmobile/board-ap4evb.c
=================================--- linux-2.6-arm.orig/arch/arm/mach-shmobile/board-ap4evb.c 2010-11-23 08:13:38.000000000 +0900
+++ linux-2.6-arm/arch/arm/mach-shmobile/board-ap4evb.c 2010-11-23 08:14:08.000000000 +0900
@@ -61,6 +61,7 @@
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/time.h>
+#include <asm/setup.h>
/*
* Address Interface BusWidth note
Index: linux-2.6-arm/arch/arm/mach-shmobile/include/mach/head-ap4evb.txt
=================================--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6-arm/arch/arm/mach-shmobile/include/mach/head-ap4evb.txt 2010-11-23 08:14:08.000000000 +0900
@@ -0,0 +1,87 @@
+LIST "partner-jet-setup.txt"
+LIST "(C) Copyright 2010 Renesas Solutions Corp"
+LIST "Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>"
+
+LIST "RWT Setting"
+EW 0xE6020004, 0xA500
+EW 0xE6030004, 0xA500
+
+DD 0x01001000, 0x01001000
+
+LIST "GPIO Setting"
+EB 0xE6051013, 0xA2
+
+LIST "CPG"
+ED 0xE6150080, 0x00000180
+ED 0xE61500C0, 0x00000002
+
+WAIT 1, 0xFE40009C
+
+LIST "FRQCR"
+ED 0xE6150000, 0x2D1305C3
+ED 0xE61500E0, 0x9E40358E
+ED 0xE6150004, 0x80331050
+
+WAIT 1, 0xFE40009C
+
+ED 0xE61500E4, 0x00002000
+
+WAIT 1, 0xFE40009C
+
+LIST "PLL"
+ED 0xE6150028, 0x00004000
+
+WAIT 1, 0xFE40009C
+
+ED 0xE615002C, 0x93000040
+
+WAIT 1, 0xFE40009C
+
+LIST "BSC"
+ED 0xFEC10000, 0x00E0001B
+
+LIST "SBSC1"
+ED 0xFE400354, 0x01AD8000
+ED 0xFE400354, 0x01AD8001
+
+WAIT 5, 0xFE40009C
+
+ED 0xFE400008, 0xBCC90151
+ED 0xFE400040, 0x41774113
+ED 0xFE400044, 0x2712E229
+ED 0xFE400048, 0x20C18505
+ED 0xFE40004C, 0x00110209
+ED 0xFE400010, 0x00000087
+
+WAIT 10, 0xFE40009C
+
+ED 0xFE400084, 0x0000003F
+EB 0xFE500000, 0x00
+
+WAIT 5, 0xFE40009C
+
+ED 0xFE400084, 0x0000FF0A
+EB 0xFE500000, 0x00
+
+WAIT 1, 0xFE40009C
+
+ED 0xFE400084, 0x00002201
+EB 0xFE500000, 0x00
+ED 0xFE400084, 0x00000302
+EB 0xFE500000, 0x00
+EB 0xFE5C0000, 0x00
+ED 0xFE400008, 0xBCC90159
+ED 0xFE40008C, 0x88800004
+ED 0xFE400094, 0x00000004
+ED 0xFE400028, 0xA55A0032
+ED 0xFE40002C, 0xA55A000C
+ED 0xFE400020, 0xA55A2048
+ED 0xFE400008, 0xBCC90959
+
+LIST "Change CPGA setting"
+ED 0xE61500E0, 0x9E40352E
+ED 0xE6150004, 0x80331050
+
+WAIT 1, 0xFE40009C
+
+ED 0xE6150354, 0x00000002
Index: linux-2.6-arm/arch/arm/mach-shmobile/include/mach/zboot_macros.h
=================================--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6-arm/arch/arm/mach-shmobile/include/mach/zboot_macros.h 2010-11-23 08:14:08.000000000 +0900
@@ -0,0 +1,65 @@
+#ifndef __ZBOOT_MACRO_H
+#define __ZBOOT_MACRO_H
+
+/* The LIST command is used to include comments in the script */
+.macro LIST comment
+.endm
+
+/* The ED command is used to write a 32-bit word */
+.macro ED, addr, data
+ LDR r0, 1f
+ LDR r1, 2f
+ STR r1, [r0]
+ B 3f
+1 : .long \addr
+2 : .long \data
+3 :
+.endm
+
+/* The EW command is used to write a 16-bit word */
+.macro EW, addr, data
+ LDR r0, 1f
+ LDR r1, 2f
+ STRH r1, [r0]
+ B 3f
+1 : .long \addr
+2 : .long \data
+3 :
+.endm
+
+/* The EB command is used to write an 8-bit word */
+.macro EB, addr, data
+ LDR r0, 1f
+ LDR r1, 2f
+ STRB r1, [r0]
+ B 3f
+1 : .long \addr
+2 : .long \data
+3 :
+.endm
+
+/* The WAIT command is used to delay the execution */
+.macro WAIT, time, reg
+ LDR r1, 1f
+ LDR r0, 2f
+ STR r0, [r1]
+10 :
+ LDR r0, [r1]
+ CMP r0, #0x00000000
+ BNE 10b
+ NOP
+ B 3f
+1 : .long \reg
+2 : .long \time * 100
+3 :
+.endm
+
+/* The DD command is used to read a 32-bit word */
+.macro DD, start, end
+ LDR r1, 1f
+ B 2f
+1 : .long \start
+2 :
+.endm
+
+#endif /* __ZBOOT_MACRO_H */
Index: linux-2.6-arm/arch/arm/mach-shmobile/include/mach/zboot.h
=================================--- linux-2.6-arm.orig/arch/arm/mach-shmobile/include/mach/zboot.h 2010-11-23 08:14:06.000000000 +0900
+++ linux-2.6-arm/arch/arm/mach-shmobile/include/mach/zboot.h 2010-11-23 08:14:45.000000000 +0900
@@ -1,12 +1,20 @@
#ifndef ZBOOT_H
#define ZBOOT_H
+#include <asm/mach-types.h>
+#include <mach/zboot_macros.h>
+
/**************************************************
*
* board specific settings
*
**************************************************/
+#ifdef CONFIG_MACH_AP4EVB
+#define MACH_TYPE MACH_TYPE_AP4EVB
+#include "mach/head-ap4evb.txt"
+#else
#error "unsupported board."
+#endif
#endif /* ZBOOT_H */
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH
2010-11-22 23:15 [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH Mobile ARM Simon Horman
2010-11-22 23:15 ` [patch v4 1/2] ARM: " Simon Horman
2010-11-22 23:15 ` [patch v4 2/2] ARM: mach-shmobile: " Simon Horman
@ 2010-11-24 8:08 ` Magnus Damm
2010-12-01 3:57 ` Kuninori Morimoto
2010-12-02 9:08 ` Simon Horman
4 siblings, 0 replies; 6+ messages in thread
From: Magnus Damm @ 2010-11-24 8:08 UTC (permalink / raw)
To: linux-arm-kernel
Hi Simon,
On Tue, Nov 23, 2010 at 8:15 AM, Simon Horman <horms@verge.net.au> wrote:
> this short patch series by Kuninori Morimoto and myself adds
> zboot support to mach-shmobile.
>
> This is v4 of the patch series, which includes
> a minor rediff to apply cleanly against linux-2.6-arm/devel
> without any fuzz.
>
> v2 implemented Magnus's suggestion to initialising atags directly rather
> than using assembly.
>
> v2 implemented Magnus's suggestion of setting atags in the framework and
> passing them to the kernel rather than using a board-specific fixup.
I think V4 of this series looks good, thanks for your work on this!
Acked-by: Magnus Damm <damm@opensource.se>
I'd like to see this merged upstream.
Russell, is there anything I can do to make merging of this series easier?
Thanks,
/ magnus
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH
2010-11-22 23:15 [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH Mobile ARM Simon Horman
` (2 preceding siblings ...)
2010-11-24 8:08 ` [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH Magnus Damm
@ 2010-12-01 3:57 ` Kuninori Morimoto
2010-12-02 9:08 ` Simon Horman
4 siblings, 0 replies; 6+ messages in thread
From: Kuninori Morimoto @ 2010-12-01 3:57 UTC (permalink / raw)
To: linux-arm-kernel
Dear Simon
> this short patch series by Kuninori Morimoto and myself adds
> zboot support to mach-shmobile.
>
> This is v4 of the patch series, which includes
> a minor rediff to apply cleanly against linux-2.6-arm/devel
> without any fuzz.
>
> v2 implemented Magnus's suggestion to initialising atags directly rather
> than using assembly.
>
> v2 implemented Magnus's suggestion of setting atags in the framework and
> passing them to the kernel rather than using a board-specific fixup.
I tested these patches on v2.6.37-rc3 + AP4EVB.
And it works well. Thanks
Best regards
--
Kuninori Morimoto
^ permalink raw reply [flat|nested] 6+ messages in thread
* [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH
2010-11-22 23:15 [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH Mobile ARM Simon Horman
` (3 preceding siblings ...)
2010-12-01 3:57 ` Kuninori Morimoto
@ 2010-12-02 9:08 ` Simon Horman
4 siblings, 0 replies; 6+ messages in thread
From: Simon Horman @ 2010-12-02 9:08 UTC (permalink / raw)
To: linux-arm-kernel
Hi Russell,
I have submitted these patches to the patch system, however due
to an error on my part the first patch got rejected and I had
to resubmit it. As a result the patches are out of order in the patch
system. So I'd like to confirm that the order that they need to be
applied is:
1: 6515/1: ARM: Add zboot support for SuperH Mobile ARM
2: 6514/1: ARM: mach-shmobile: Add zboot support for SuperH Mobile ARM
Thanks
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-12-02 9:08 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-22 23:15 [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH Mobile ARM Simon Horman
2010-11-22 23:15 ` [patch v4 1/2] ARM: " Simon Horman
2010-11-22 23:15 ` [patch v4 2/2] ARM: mach-shmobile: " Simon Horman
2010-11-24 8:08 ` [patch v4 0/2] ARM: mach-shmobile: Add zboot support for SuperH Magnus Damm
2010-12-01 3:57 ` Kuninori Morimoto
2010-12-02 9:08 ` Simon Horman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox