[U-Boot-Users] Re: [U-Boot-Users][Patch] Cleanup of arm920t/start.s

Paolo Broggini pbroggini at softool.ch
Thu Oct 13 14:38:20 CEST 2005


Wolfgang Denk ha scritto:
>>Are there any particular reasons why this code should stay in start.S ?
> 
> 
> Never change a running system without need?
> 
Yeah, though not technical is an important one indeed ;-)
But since a SoC structure has been created I thought it was nice to have all the independent
files cleaned. Just give it a try! Anyway I'll fully understand if you prefer not to touch
a running system.

Best regards
-P.Broggini



Signed-off-by: Paolo Broggini <pbroggini at softool.ch>


CHANGELOG:
   Cleanup of cpu/arm920t/start.S, S3C24x0 specific code
   moved into boards depended lowlevel_init.s
   Affected boards: sdmk2400, sdmk2410, vcma9, trab
   Patch by Paolo Broggini, 13 Oct 2005


diff --git a/board/mpl/vcma9/lowlevel_init.S b/board/mpl/vcma9/lowlevel_init.S
--- a/board/mpl/vcma9/lowlevel_init.S
+++ b/board/mpl/vcma9/lowlevel_init.S
@@ -34,6 +34,10 @@

  /* some parameters for the board */

+#define pWTCON		0x53000000
+#define INTMSK		0x4A000008	/* Interupt-Controller base addresses */
+#define INTSUBMSK	0x4A00001C
+#define CLKDIVN	0x4C000014	/* clock divisor register */
  #define BWSCON		0x48000000
  #define PLD_BASE	0x2C000000
  #define SDRAM_REG	0x2C000106
@@ -132,6 +136,30 @@ _TEXT_BASE:

  .globl lowlevel_init
  lowlevel_init:
+
+	/*
+	 * Watchdog disable
+	 */
+	ldr     r0, =pWTCON
+	mov     r1, #0x0
+	str     r1, [r0]
+
+	/*
+	 * mask all IRQs by setting all bits in the INTMR - default
+	 */
+	mov	r1, #0xffffffff
+	ldr	r0, =INTMSK
+	str	r1, [r0]
+	ldr	r1, =0x3ff
+	ldr	r0, =INTSUBMSK
+	str	r1, [r0]
+
+	/* FCLK:HCLK:PCLK = 1:2:4 */
+	/* default FCLK is 120 MHz ! */
+	ldr	r0, =CLKDIVN
+	mov	r1, #3
+	str	r1, [r0]
+
  	/* memory control configuration */
  	/* make r0 relative the current location so that it */
  	/* reads SMRDATA out of FLASH rather than memory ! */
diff --git a/board/smdk2400/lowlevel_init.S b/board/smdk2400/lowlevel_init.S
--- a/board/smdk2400/lowlevel_init.S
+++ b/board/smdk2400/lowlevel_init.S
@@ -44,9 +44,13 @@
   *
   */

+#define pWTCON		0x15300000
+#define INTMSK		0x14400008	/* Interupt-Controller base addresses */
+#define CLKDIVN	0x14800014	/* clock divisor register */
+
  /* memory controller */
-#define BWSCON 0x14000000
-#define BANKCON3 0x14000010	/* for cs8900, ethernet */
+#define BWSCON		0x14000000
+#define BANKCON3 	0x14000010	/* for cs8900, ethernet */

  /* Bank0 */
  #define B0_Tacs	0x0	/* 0 clk */
@@ -127,6 +131,27 @@ _TEXT_BASE:

  .globl lowlevel_init
  lowlevel_init:
+
+	/*
+	 * Watchdog disable
+	 */
+	ldr     r0, =pWTCON
+	mov     r1, #0x0
+	str     r1, [r0]
+
+	/*
+	 * mask all IRQs by setting all bits in the INTMR - default
+	 */
+	mov	r1, #0xffffffff
+	ldr	r0, =INTMSK
+	str	r1, [r0]
+
+	/* FCLK:HCLK:PCLK = 1:2:4 */
+	/* default FCLK is 120 MHz ! */
+	ldr	r0, =CLKDIVN
+	mov	r1, #3
+	str	r1, [r0]
+
  	/* memory control configuration */
  	/* make r0 relative the current location so that it */
  	/* reads SMRDATA out of FLASH rather than memory ! */
diff --git a/board/smdk2410/lowlevel_init.S b/board/smdk2410/lowlevel_init.S
--- a/board/smdk2410/lowlevel_init.S
+++ b/board/smdk2410/lowlevel_init.S
@@ -42,7 +42,11 @@
   *
   */

-#define BWSCON	0x48000000
+#define pWTCON		0x53000000
+#define INTMSK		0x4A000008	/* Interupt-Controller base addresses */
+#define INTSUBMSK	0x4A00001C
+#define CLKDIVN	0x4C000014	/* clock divisor register */
+#define BWSCON		0x48000000

  /* BWSCON */
  #define DW8		 	(0x0)
@@ -131,6 +135,30 @@ _TEXT_BASE:

  .globl lowlevel_init
  lowlevel_init:
+
+	/*
+	 * Watchdog disable
+	 */
+	ldr     r0, =pWTCON
+	mov     r1, #0x0
+	str     r1, [r0]
+
+	/*
+	 * mask all IRQs by setting all bits in the INTMR - default
+	 */
+	mov	r1, #0xffffffff
+	ldr	r0, =INTMSK
+	str	r1, [r0]
+	ldr	r1, =0x3ff
+	ldr	r0, =INTSUBMSK
+	str	r1, [r0]
+
+	/* FCLK:HCLK:PCLK = 1:2:4 */
+	/* default FCLK is 120 MHz ! */
+	ldr	r0, =CLKDIVN
+	mov	r1, #3
+	str	r1, [r0]
+
  	/* memory control configuration */
  	/* make r0 relative the current location so that it */
  	/* reads SMRDATA out of FLASH rather than memory ! */
diff --git a/board/trab/lowlevel_init.S b/board/trab/lowlevel_init.S
--- a/board/trab/lowlevel_init.S
+++ b/board/trab/lowlevel_init.S
@@ -44,6 +44,10 @@
   *
   */

+#define pWTCON		0x15300000
+#define INTMSK		0x14400008	/* Interupt-Controller base addresses */
+#define CLKDIVN	0x14800014	/* clock divisor register */
+
  /* memory controller */
  #define BWSCON 0x14000000

@@ -142,6 +146,27 @@ _TEXT_BASE:

  .globl lowlevel_init
  lowlevel_init:
+
+	/*
+	 * Watchdog disable
+	 */
+	ldr     r0, =pWTCON
+	mov     r1, #0x0
+	str     r1, [r0]
+
+	/*
+	 * mask all IRQs by setting all bits in the INTMR - default
+	 */
+	mov	r1, #0xffffffff
+	ldr	r0, =INTMSK
+	str	r1, [r0]
+
+	/* FCLK:HCLK:PCLK = 1:2:4 */
+	/* default FCLK is 120 MHz ! */
+	ldr	r0, =CLKDIVN
+	mov	r1, #3
+	str	r1, [r0]
+
  	/* memory control configuration */
  	/* make r0 relative the current location so that it */
  	/* reads SMRDATA out of FLASH rather than memory ! */
diff --git a/cpu/arm920t/start.S b/cpu/arm920t/start.S
--- a/cpu/arm920t/start.S
+++ b/cpu/arm920t/start.S
@@ -1,8 +1,8 @@
  /*
   *  armboot - Startup Code for ARM920 CPU-core
   *
- *  Copyright (c) 2001	Marius Grger <mag at sysgo.de>
- *  Copyright (c) 2002	Alex Zpke <azu at sysgo.de>
+ *  Copyright (c) 2001	Marius Grger <mag at sysgo.de>
+ *  Copyright (c) 2002	Alex Zpke <azu at sysgo.de>
   *  Copyright (c) 2002	Gary Jennejohn <gj at denx.de>
   *
   * See file CREDITS for list of people who contributed to this
@@ -116,42 +116,6 @@ reset:
  	orr	r0,r0,#0xd3
  	msr	cpsr,r0

-/* turn off the watchdog */
-#if defined(CONFIG_S3C2400)
-# define pWTCON		0x15300000
-# define INTMSK		0x14400008	/* Interupt-Controller base addresses */
-# define CLKDIVN	0x14800014	/* clock divisor register */
-#elif defined(CONFIG_S3C2410)
-# define pWTCON		0x53000000
-# define INTMSK		0x4A000008	/* Interupt-Controller base addresses */
-# define INTSUBMSK	0x4A00001C
-# define CLKDIVN	0x4C000014	/* clock divisor register */
-#endif
-
-#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)
-	ldr     r0, =pWTCON
-	mov     r1, #0x0
-	str     r1, [r0]
-
-	/*
-	 * mask all IRQs by setting all bits in the INTMR - default
-	 */
-	mov	r1, #0xffffffff
-	ldr	r0, =INTMSK
-	str	r1, [r0]
-# if defined(CONFIG_S3C2410)
-	ldr	r1, =0x3ff
-	ldr	r0, =INTSUBMSK
-	str	r1, [r0]
-# endif
-
-	/* FCLK:HCLK:PCLK = 1:2:4 */
-	/* default FCLK is 120 MHz ! */
-	ldr	r0, =CLKDIVN
-	mov	r1, #3
-	str	r1, [r0]
-#endif	/* CONFIG_S3C2400 || CONFIG_S3C2410 */
-
  	/*
  	 * we do sys-critical inits only at reboot,
  	 * not when booting from ram!













More information about the U-Boot mailing list