r4108 - trunk/src/target/u-boot/patches

werner at sita.openmoko.org werner at sita.openmoko.org
Sun Feb 24 23:26:30 CET 2008


Author: werner
Date: 2008-02-24 23:26:25 +0100 (Sun, 24 Feb 2008)
New Revision: 4108

Modified:
   trunk/src/target/u-boot/patches/uboot-neo1973-resume.patch
   trunk/src/target/u-boot/patches/uboot-s3c2440.patch
   trunk/src/target/u-boot/patches/uboot-s3c2442.patch
   trunk/src/target/u-boot/patches/uboot-s3c2443.patch
Log:
When booting from NOR, u-boot did not check whether we are resuming.
This patch moves this code to a common function which is called in the
NOR and NAND boot path (but not when booting from RAM).

cpu/arm920t/start.S is a very busy file, so a number of other patches
had to be refreshed.

uboot-neo1973-resume.patch: 
- cpu/arm920t/start.S: moved resume detection from NAND-specific code to 
  general function
uboot-s3c2440.patch, uboot-s3c2442.patch, uboot-s3c2443.patch:
  refreshed for above change



Modified: trunk/src/target/u-boot/patches/uboot-neo1973-resume.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-neo1973-resume.patch	2008-02-24 22:10:55 UTC (rev 4107)
+++ trunk/src/target/u-boot/patches/uboot-neo1973-resume.patch	2008-02-24 22:26:25 UTC (rev 4108)
@@ -6,7 +6,7 @@
 ===================================================================
 --- u-boot.orig/cpu/arm920t/start.S
 +++ u-boot/cpu/arm920t/start.S
-@@ -223,18 +223,68 @@
+@@ -181,18 +181,68 @@ copyex:
  	str	r1, [r0]
  # endif
  
@@ -75,12 +75,52 @@
  #endif
 -#endif
  
- #ifdef	CONFIG_AT91RM9200
- #ifdef CONFIG_BOOTBINFUNC
-@@ -292,9 +342,33 @@
+ #if defined(CONFIG_AT91RM9200) || defined(CONFIG_S3C2410)
  
+@@ -210,10 +260,8 @@ copyex:
+ #endif /* CONFIG_S3C2410_NAND_BOOT */
+ 
+ relocate:				/* relocate U-Boot to RAM	    */
+-#if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && defined(CONFIG_LL_INIT_NAND_ONLY)
+ 	teq	r0, #0			/* running at address 0 ?	    */
+-	bleq	cpu_init_crit		/* yes -> do low-level setup	    */
+-#endif /* !CONFIG_SKIP_LOWLEVEL_INIT && CONFIG_LL_INIT_NAND_ONLY */
++	bleq	may_resume		/* yes -> do low-level setup	    */
+ 
+ 	adr	r0, _start		/* the above may have clobbered r0  */
+ 
+@@ -239,11 +287,7 @@ _done_relocate:
+ 
  #ifdef CONFIG_S3C2410_NAND_BOOT
  nand_load:
+-#if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && defined(CONFIG_LL_INIT_NAND_ONLY)
+-	bl	cpu_init_crit
+-#endif
+-
+-	/* mov	r10, lr */
++	bl	may_resume		/* low-level setup and resume */
+ 
+ 	@ reset NAND
+ 	mov	r1, #S3C2410_NAND_BASE
+@@ -398,6 +442,51 @@ cpu_init_crit:
+ 	mov	pc, lr
+ #endif /* CONFIG_SKIP_LOWLEVEL_INIT */
+ 
++
++/*
++ *************************************************************************
++ *
++ * may_resume
++ *
++ * Bring up memory and check if we're coming out of suspend.
++ *
++ *************************************************************************
++ */
++
++
++may_resume:
++	mov	r10, lr			/* we may call cpu_init_crit */
++
 +	/* take sdram out of power down */
 +	ldr	r0, =0x56000080		/* misccr */
 +	ldr	r1, [ r0 ]
@@ -92,9 +132,9 @@
 +1:	subs	r1, r1, #1
 +	bpl	1b
 +
- #if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && defined(CONFIG_LL_INIT_NAND_ONLY)
- 	bl	cpu_init_crit
- #endif
++#if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && defined(CONFIG_LL_INIT_NAND_ONLY)
++	bl	cpu_init_crit
++#endif
 +#if defined(CONFIG_S3C2410)
 +	/* ensure some refresh has happened */
 +	ldr	r1, =0xfffff
@@ -108,6 +148,9 @@
 +	ldrne	pc, [r1, #4]		/* gstatus3 */
 +#endif /* CONFIG_S3C2410 */
 +#endif /* CONFIG_SKIP_LOWLEVEL_INIT */
- 
- 	/* mov	r10, lr */
- 
++
++	mov	pc, r10
++
+ /*
+  *************************************************************************
+  *

Modified: trunk/src/target/u-boot/patches/uboot-s3c2440.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-s3c2440.patch	2008-02-24 22:10:55 UTC (rev 4107)
+++ trunk/src/target/u-boot/patches/uboot-s3c2440.patch	2008-02-24 22:26:25 UTC (rev 4108)
@@ -4,7 +4,7 @@
 ===================================================================
 --- u-boot.orig/include/s3c24x0.h
 +++ u-boot/include/s3c24x0.h
-@@ -82,7 +82,7 @@
+@@ -82,7 +82,7 @@ typedef struct {
  	S3C24X0_REG32	PRIORITY;
  	S3C24X0_REG32	INTPND;
  	S3C24X0_REG32	INTOFFSET;
@@ -13,7 +13,7 @@
  	S3C24X0_REG32	SUBSRCPND;
  	S3C24X0_REG32	INTSUBMSK;
  #endif
-@@ -92,11 +92,11 @@
+@@ -92,11 +92,11 @@ typedef struct {
  /* DMAS (see manual chapter 8) */
  typedef struct {
  	S3C24X0_REG32	DISRC;
@@ -27,7 +27,7 @@
  	S3C24X0_REG32	DIDSTC;
  #endif
  	S3C24X0_REG32	DCON;
-@@ -107,7 +107,7 @@
+@@ -107,7 +107,7 @@ typedef struct {
  #ifdef CONFIG_S3C2400
  	S3C24X0_REG32	res[1];
  #endif
@@ -36,7 +36,7 @@
  	S3C24X0_REG32	res[7];
  #endif
  } /*__attribute__((__packed__))*/ S3C24X0_DMA;
-@@ -126,6 +126,9 @@
+@@ -126,6 +126,9 @@ typedef struct {
  	S3C24X0_REG32	CLKCON;
  	S3C24X0_REG32	CLKSLOW;
  	S3C24X0_REG32	CLKDIVN;
@@ -46,7 +46,7 @@
  } /*__attribute__((__packed__))*/ S3C24X0_CLOCK_POWER;
  
  
-@@ -145,7 +148,7 @@
+@@ -145,7 +148,7 @@ typedef struct {
  	S3C24X0_REG32	res[8];
  	S3C24X0_REG32	DITHMODE;
  	S3C24X0_REG32	TPAL;
@@ -55,7 +55,7 @@
  	S3C24X0_REG32	LCDINTPND;
  	S3C24X0_REG32	LCDSRCPND;
  	S3C24X0_REG32	LCDINTMSK;
-@@ -157,6 +160,9 @@
+@@ -157,6 +160,9 @@ typedef struct {
  /* NAND FLASH (see S3C2410 manual chapter 6) */
  typedef struct {
  	S3C24X0_REG32	NFCONF;
@@ -65,7 +65,7 @@
  	S3C24X0_REG32	NFCMD;
  	S3C24X0_REG32	NFADDR;
  	S3C24X0_REG32	NFDATA;
-@@ -164,6 +170,15 @@
+@@ -164,6 +170,15 @@ typedef struct {
  	S3C24X0_REG32	NFECC;
  } /*__attribute__((__packed__))*/ S3C2410_NAND;
  
@@ -81,7 +81,7 @@
  
  /* UART (see manual chapter 11) */
  typedef struct {
-@@ -451,6 +466,65 @@
+@@ -451,6 +466,65 @@ typedef struct {
  	S3C24X0_REG32	GSTATUS3;
  	S3C24X0_REG32	GSTATUS4;
  #endif
@@ -147,7 +147,7 @@
  } /*__attribute__((__packed__))*/ S3C24X0_GPIO;
  
  
-@@ -637,8 +711,13 @@
+@@ -637,8 +711,13 @@ typedef struct {
  	S3C24X0_REG32	SDIDCNT;
  	S3C24X0_REG32	SDIDSTA;
  	S3C24X0_REG32	SDIFSTA;
@@ -164,7 +164,7 @@
 Index: u-boot/drivers/rtc/s3c24x0_rtc.c
 ===================================================================
 --- u-boot.orig/drivers/rtc/s3c24x0_rtc.c
-+++ u-boot/rtc/drivers/s3c24x0_rtc.c
++++ u-boot/drivers/rtc/s3c24x0_rtc.c
 @@ -34,6 +34,8 @@
  #include <s3c2400.h>
  #elif defined(CONFIG_S3C2410)
@@ -483,7 +483,7 @@
 ===================================================================
 --- u-boot.orig/include/common.h
 +++ u-boot/include/common.h
-@@ -479,7 +479,7 @@
+@@ -481,7 +481,7 @@ int	prt_mpc8220_clks (void);
  ulong	get_OPB_freq (void);
  ulong	get_PCI_freq (void);
  #endif
@@ -526,7 +526,7 @@
  #endif
  
  #define MPLL 0
-@@ -66,8 +69,17 @@
+@@ -66,8 +69,17 @@ static ulong get_PLLCLK(int pllreg)
      m = ((r & 0xFF000) >> 12) + 8;
      p = ((r & 0x003F0) >> 4) + 2;
      s = r & 0x3;
@@ -545,7 +545,7 @@
  }
  
  /* return FCLK frequency */
-@@ -81,7 +93,23 @@
+@@ -81,7 +93,23 @@ ulong get_HCLK(void)
  {
      S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
  
@@ -569,7 +569,7 @@
  }
  
  /* return PCLK frequency */
-@@ -98,4 +126,5 @@
+@@ -98,4 +126,5 @@ ulong get_UCLK(void)
      return(get_PLLCLK(UPLL));
  }
  
@@ -598,7 +598,7 @@
  #endif
  
  int timer_load_val = 0;
-@@ -59,6 +62,7 @@
+@@ -59,6 +62,7 @@ int interrupt_init (void)
  	/* use PWM Timer 4 because it has no output */
  	/* prescaler for Timer 4 is 16 */
  	timers->TCFG0 = 0x0f00;
@@ -606,7 +606,7 @@
  	if (timer_load_val == 0)
  	{
  		/*
-@@ -68,6 +72,9 @@
+@@ -68,6 +72,9 @@ int interrupt_init (void)
  		 */
  		timer_load_val = get_PCLK()/(2 * 16 * 100);
  	}
@@ -616,7 +616,7 @@
  	/* load value for 10 ms timeout */
  	lastdec = timers->TCNTB4 = timer_load_val;
  	/* auto load, manual update of Timer 4 */
-@@ -178,6 +185,7 @@
+@@ -178,6 +185,7 @@ ulong get_tbclk (void)
  	tbclk = timer_load_val * 100;
  #elif defined(CONFIG_SBC2410X) || \
        defined(CONFIG_SMDK2410) || \
@@ -624,7 +624,7 @@
        defined(CONFIG_VCMA9)
  	tbclk = CFG_HZ;
  #else
-@@ -232,4 +240,5 @@
+@@ -232,4 +240,5 @@ void s3c2410_irq(void)
  }
  #endif /* USE_IRQ */
  
@@ -652,7 +652,7 @@
  #endif
  
  DECLARE_GLOBAL_DATA_PTR;
-@@ -302,4 +305,5 @@
+@@ -301,4 +304,5 @@ struct serial_device s3c24xx_serial2_dev
  
  #endif /* CONFIG_SERIAL_MULTI */
  
@@ -672,7 +672,7 @@
  #endif
  #include <i2c.h>
  
-@@ -63,7 +65,7 @@
+@@ -63,7 +65,7 @@ static int GetI2CSDA(void)
  {
  	S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
  
@@ -681,7 +681,7 @@
  	return (gpio->GPEDAT & 0x8000) >> 15;
  #endif
  #ifdef CONFIG_S3C2400
-@@ -82,7 +84,7 @@
+@@ -82,7 +84,7 @@ static void SetI2CSCL(int x)
  {
  	S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
  
@@ -690,7 +690,7 @@
  	gpio->GPEDAT = (gpio->GPEDAT & ~0x4000) | (x&1) << 14;
  #endif
  #ifdef CONFIG_S3C2400
-@@ -139,7 +141,7 @@
+@@ -139,7 +141,7 @@ void i2c_init (int speed, int slaveadd)
  	}
  
  	if ((status & I2CSTAT_BSY) || GetI2CSDA () == 0) {
@@ -699,7 +699,7 @@
  		ulong old_gpecon = gpio->GPECON;
  #endif
  #ifdef CONFIG_S3C2400
-@@ -147,7 +149,7 @@
+@@ -147,7 +149,7 @@ void i2c_init (int speed, int slaveadd)
  #endif
  		/* bus still busy probably by (most) previously interrupted transfer */
  
@@ -708,7 +708,7 @@
  		/* set I2CSDA and I2CSCL (GPE15, GPE14) to GPIO */
  		gpio->GPECON = (gpio->GPECON & ~0xF0000000) | 0x10000000;
  #endif
-@@ -171,7 +173,7 @@
+@@ -171,7 +173,7 @@ void i2c_init (int speed, int slaveadd)
  		udelay (1000);
  
  		/* restore pin functions */
@@ -759,7 +759,7 @@
  #include <status_led.h>
  
  /*
-@@ -154,20 +158,38 @@
+@@ -166,20 +170,38 @@ copyex:
  	bne	copyex
  #endif
  
@@ -800,7 +800,7 @@
  	ldr     r0, =pWTCON
  	mov     r1, #0x0
  	str     r1, [r0]
-@@ -178,24 +200,34 @@
+@@ -190,24 +212,34 @@ copyex:
  	mov	r1, #0xffffffff
  	ldr	r0, =INTMSK
  	str	r1, [r0]
@@ -842,7 +842,7 @@
  	str	r1, [r0]
  
  	/* Page 7-19, seven nops between UPLL and MPLL */
-@@ -207,12 +239,12 @@
+@@ -219,12 +251,12 @@ copyex:
  	nop
  	nop
  
@@ -857,7 +857,7 @@
  	str	r1, [r0]
  
  #if 1
-@@ -240,14 +272,15 @@
+@@ -252,14 +284,15 @@ copyex:
  	str	r1, [r0, #0x28]
  #endif
  
@@ -875,30 +875,15 @@
  
  #ifndef CONFIG_SKIP_RELOCATE_UBOOT
  	adr	r0, _start		/* r0 <- current position of code   */
-@@ -299,7 +332,7 @@
- #if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && defined(CONFIG_LL_INIT_NAND_ONLY)
- 	bl	cpu_init_crit
- #endif
--#if defined(CONFIG_S3C2410)
-+#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
- 	/* ensure some refresh has happened */
- 	ldr	r1, =0xfffff
- 1:	subs	r1, r1, #1
-@@ -310,11 +343,12 @@
- 	ldr	r0, [ r1 ]
- 	tst	r0, #0x02		/* is this resume from power down */
- 	ldrne	pc, [r1, #4]		/* gstatus3 */
--#endif /* CONFIG_S3C2410 */
-+#endif /* CONFIG_S3C2410 || CONFIG_S3C2440 */
- #endif /* CONFIG_SKIP_LOWLEVEL_INIT */
+@@ -305,6 +338,7 @@ nand_load:
+ 	bl	may_resume		/* low-level setup and resume */
  
- 	/* mov	r10, lr */
- 
+ 	@ reset NAND
 +#if defined(CONFIG_S3C2410)
- 	@ reset NAND
  	mov	r1, #S3C2410_NAND_BASE
  	ldr	r2, =0xf842		@ initial value enable tacls=3,rph0=6,rph1=0
-@@ -334,6 +368,17 @@
+ 	str	r2, [r1, #oNFCONF]
+@@ -323,6 +357,17 @@ nand_load:
  	ldr	r2, [r1, #oNFCONF]
  	orr	r2, r2, #0x800		@ disable chip
  	str	r2, [r1, #oNFCONF]
@@ -912,11 +897,11 @@
 +	ldr	r3, [r1, #oNFCONT]
 +	orr	r3, r3, #1		@ enable nand controller
 +	str	r3, [r1, #oNFCONT]
-+#endif
++#endif /* CONFIG_S3C2440 */
  
- #if 0
- 	@ get ready to call C functions (for nand_read())
-@@ -402,7 +447,7 @@
+ 	ldr	r0, _TEXT_BASE		/* upper 128 KiB: relocated uboot   */
+ 	sub	r0, r0, #CFG_MALLOC_LEN	/* malloc area                      */
+@@ -385,7 +430,7 @@ done_nand_read:
  #endif /* CONFIG_S3C2410_NAND_BOOT */
  done_relocate:
  
@@ -925,6 +910,24 @@
  	/* In the case of the S3C2410, if we've somehow magically (JTAG, ...)
  	   ended up in RAM, then that ram is mapped to 0x30000000 and not 0.
  	   So we need to copy the interrupt vectors, etc.  */
+@@ -502,7 +547,7 @@ may_resume:
+ #if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && defined(CONFIG_LL_INIT_NAND_ONLY)
+ 	bl	cpu_init_crit
+ #endif
+-#if defined(CONFIG_S3C2410)
++#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
+ 	/* ensure some refresh has happened */
+ 	ldr	r1, =0xfffff
+ 1:	subs	r1, r1, #1
+@@ -513,7 +558,7 @@ may_resume:
+ 	ldr	r0, [ r1 ]
+ 	tst	r0, #0x02		/* is this resume from power down */
+ 	ldrne	pc, [r1, #4]		/* gstatus3 */
+-#endif /* CONFIG_S3C2410 */
++#endif /* CONFIG_S3C2410 || CONFIG_S3C244 */
+ #endif /* CONFIG_SKIP_LOWLEVEL_INIT */
+ 
+ 	mov	pc, r10
 Index: u-boot/cpu/arm920t/s3c24x0/nand_read.c
 ===================================================================
 --- u-boot.orig/cpu/arm920t/s3c24x0/nand_read.c
@@ -1077,7 +1080,7 @@
  
  /* low level nand read function */
  int nand_read_ll(unsigned char *buf, unsigned long start_addr, int size)
-@@ -50,47 +161,28 @@
+@@ -50,47 +161,28 @@ int nand_read_ll(unsigned char *buf, uns
  		return -1;	/* invalid alignment */
  
  	/* chip Enable */
@@ -1199,7 +1202,7 @@
  static void s3c2410_hwcontrol(struct mtd_info *mtd, int cmd)
  {
  	struct nand_chip *chip = mtd->priv;
-@@ -62,23 +92,31 @@
+@@ -62,23 +92,31 @@ static void s3c2410_hwcontrol(struct mtd
  
  	switch (cmd) {
  	case NAND_CTL_SETNCE:
@@ -1236,7 +1239,7 @@
  		break;
  	}
  	return;
-@@ -180,15 +218,21 @@
+@@ -137,15 +175,21 @@ int __board_nand_init(struct nand_chip *
  	/* initialize hardware */
  	twrph0 = 3; twrph1 = 0; tacls = 0;
  
@@ -1259,7 +1262,7 @@
  
  	/* read_buf and write_buf are default */
  	/* read_byte and write_byte are default */
-@@ -213,12 +257,23 @@
+@@ -170,12 +214,23 @@ int __board_nand_init(struct nand_chip *
  	nand->options = 0;
  #endif
  
@@ -1288,7 +1291,7 @@
 ===================================================================
 --- u-boot.orig/cpu/arm920t/s3c24x0/mmc.c
 +++ u-boot/cpu/arm920t/s3c24x0/mmc.c
-@@ -137,6 +137,9 @@
+@@ -137,6 +137,9 @@ static int mmc_block_read(uchar *dst, ul
  	dcon |= S3C2410_SDIDCON_RXAFTERCMD|S3C2410_SDIDCON_XFER_RXSTART;
  	if (wide)
  		dcon |= S3C2410_SDIDCON_WIDEBUS;
@@ -1298,7 +1301,7 @@
  	sdi->SDIDCON = dcon;
  
  	/* send read command */
-@@ -394,13 +397,18 @@
+@@ -394,13 +397,18 @@ int mmc_init(int verbose)
  
  	clk_power->CLKCON |= (1 << 9);
  
@@ -1340,7 +1343,7 @@
  #endif
  
  int usb_cpu_init (void)
-@@ -68,5 +70,5 @@
+@@ -68,5 +70,5 @@ int usb_cpu_init_fail (void)
  	return 0;
  }
  
@@ -1351,7 +1354,7 @@
 ===================================================================
 --- u-boot.orig/drivers/usb/usb_ohci.c
 +++ u-boot/drivers/usb/usb_ohci.c
-@@ -62,6 +62,7 @@
+@@ -66,6 +66,7 @@
  #if defined(CONFIG_ARM920T) || \
      defined(CONFIG_S3C2400) || \
      defined(CONFIG_S3C2410) || \
@@ -1375,7 +1378,7 @@
  
  DECLARE_GLOBAL_DATA_PTR;
  
-@@ -46,6 +50,7 @@
+@@ -46,6 +50,7 @@ struct s3c24x0_pll_speed {
  	u_int16_t	mhz;
  	u_int32_t	mpllcon;
  	u_int32_t	clkdivn;
@@ -1383,7 +1386,7 @@
  };
  
  #define CLKDIVN_1_1_1	0x00
-@@ -53,6 +58,11 @@
+@@ -53,6 +58,11 @@ struct s3c24x0_pll_speed {
  #define CLKDIVN_1_2_4	0x03
  #define CLKDIVN_1_4_4	0x04
  
@@ -1395,7 +1398,7 @@
  #if defined(CONFIG_S3C2410)
  static const u_int32_t upllcon = ((0x78 << 12) + (0x2 << 4) + 0x3);
  static const struct s3c24x0_pll_speed pll_configs[] = {
-@@ -77,6 +87,61 @@
+@@ -77,6 +87,61 @@ static const struct s3c24x0_pll_speed pl
  		.clkdivn = CLKDIVN_1_2_4,
  	},
  };
@@ -1457,7 +1460,7 @@
  #else
  #error "please define valid pll configurations for your cpu type"
  #endif
-@@ -95,6 +160,10 @@
+@@ -95,6 +160,10 @@ static int reconfig_mpll(u_int16_t mhz)
  
  	for (i = 0; i < ARRAY_SIZE(pll_configs); i++) {
  		if (pll_configs[i].mhz == mhz) {
@@ -1472,7 +1475,7 @@
 ===================================================================
 --- u-boot.orig/common/serial.c
 +++ u-boot/common/serial.c
-@@ -59,7 +59,7 @@
+@@ -60,7 +60,7 @@ struct serial_device *__default_serial_c
  #else
  		return &serial0_device;
  #endif
@@ -1481,7 +1484,7 @@
  #if defined(CONFIG_SERIAL1)
  	return &s3c24xx_serial0_device;
  #elif defined(CONFIG_SERIAL2)
-@@ -129,7 +129,7 @@
+@@ -133,7 +133,7 @@ void serial_initialize (void)
  #if defined (CONFIG_STUART)
  	serial_register(&serial_stuart_device);
  #endif
@@ -1494,7 +1497,7 @@
 ===================================================================
 --- u-boot.orig/include/serial.h
 +++ u-boot/include/serial.h
-@@ -35,7 +35,7 @@
+@@ -36,7 +36,7 @@ extern struct serial_device eserial4_dev
  
  #endif
  

Modified: trunk/src/target/u-boot/patches/uboot-s3c2442.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-s3c2442.patch	2008-02-24 22:10:55 UTC (rev 4107)
+++ trunk/src/target/u-boot/patches/uboot-s3c2442.patch	2008-02-24 22:26:25 UTC (rev 4108)
@@ -11,7 +11,7 @@
  #include <s3c2440.h>
  #endif
  
-@@ -58,7 +58,7 @@
+@@ -58,7 +58,7 @@ struct s3c24x0_pll_speed {
  #define CLKDIVN_1_2_4	0x03
  #define CLKDIVN_1_4_4	0x04
  
@@ -20,7 +20,7 @@
  #define CLKDIVN_1_4_8	0x05
  #define CLKDIVN_1_3_6	0x07
  #endif
-@@ -142,6 +142,67 @@
+@@ -142,6 +142,67 @@ static const struct s3c24x0_pll_speed pl
  #error "clock frequencies != 12MHz / 16.9344MHz not supported"
  #endif
  };
@@ -101,7 +101,7 @@
  #include <s3c2440.h>
  #endif
  #include <i2c.h>
-@@ -65,7 +65,8 @@
+@@ -65,7 +65,8 @@ static int GetI2CSDA(void)
  {
  	S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
  
@@ -111,7 +111,7 @@
  	return (gpio->GPEDAT & 0x8000) >> 15;
  #endif
  #ifdef CONFIG_S3C2400
-@@ -84,7 +85,8 @@
+@@ -84,7 +85,8 @@ static void SetI2CSCL(int x)
  {
  	S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
  
@@ -121,7 +121,7 @@
  	gpio->GPEDAT = (gpio->GPEDAT & ~0x4000) | (x&1) << 14;
  #endif
  #ifdef CONFIG_S3C2400
-@@ -141,7 +143,8 @@
+@@ -141,7 +143,8 @@ void i2c_init (int speed, int slaveadd)
  	}
  
  	if ((status & I2CSTAT_BSY) || GetI2CSDA () == 0) {
@@ -131,7 +131,7 @@
  		ulong old_gpecon = gpio->GPECON;
  #endif
  #ifdef CONFIG_S3C2400
-@@ -149,7 +152,8 @@
+@@ -149,7 +152,8 @@ void i2c_init (int speed, int slaveadd)
  #endif
  		/* bus still busy probably by (most) previously interrupted transfer */
  
@@ -141,7 +141,7 @@
  		/* set I2CSDA and I2CSCL (GPE15, GPE14) to GPIO */
  		gpio->GPECON = (gpio->GPECON & ~0xF0000000) | 0x10000000;
  #endif
-@@ -173,7 +177,8 @@
+@@ -173,7 +177,8 @@ void i2c_init (int speed, int slaveadd)
  		udelay (1000);
  
  		/* restore pin functions */
@@ -173,7 +173,7 @@
  #include <s3c2440.h>
  #endif
  
-@@ -62,7 +63,7 @@
+@@ -62,7 +63,7 @@ int interrupt_init (void)
  	/* use PWM Timer 4 because it has no output */
  	/* prescaler for Timer 4 is 16 */
  	timers->TCFG0 = 0x0f00;
@@ -182,7 +182,7 @@
  	if (timer_load_val == 0)
  	{
  		/*
-@@ -241,4 +242,5 @@
+@@ -241,4 +242,5 @@ void s3c2410_irq(void)
  #endif /* USE_IRQ */
  
  #endif /* defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) ||
@@ -193,7 +193,7 @@
 ===================================================================
 --- u-boot.orig/cpu/arm920t/s3c24x0/mmc.c
 +++ u-boot/cpu/arm920t/s3c24x0/mmc.c
-@@ -137,7 +137,7 @@
+@@ -137,7 +137,7 @@ static int mmc_block_read(uchar *dst, ul
  	dcon |= S3C2410_SDIDCON_RXAFTERCMD|S3C2410_SDIDCON_XFER_RXSTART;
  	if (wide)
  		dcon |= S3C2410_SDIDCON_WIDEBUS;
@@ -202,7 +202,7 @@
  	dcon |= S3C2440_SDIDCON_DS_WORD | S3C2440_SDIDCON_DATSTART;
  #endif
  	sdi->SDIDCON = dcon;
-@@ -403,7 +403,7 @@
+@@ -403,7 +403,7 @@ int mmc_init(int verbose)
  	//sdi->SDIPRE = 0x3e;  /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */
  	sdi->SDIPRE = 0x02;  /* 2410: SDCLK = PCLK/2 / (SDIPRE+1) = 11MHz */
  	sdi->SDIDTIMER = 0xffff;
@@ -224,7 +224,7 @@
  
  #define oNFCMD		0x8
  #define oNFADDR		0xc
-@@ -147,7 +147,7 @@
+@@ -147,7 +147,7 @@ static void s3c2410_hwcontrol(struct mtd
  	case NAND_CTL_SETNCE:
  #if defined(CONFIG_S3C2410)
  		NFCONF &= ~NFCONF_nFCE;
@@ -233,7 +233,7 @@
  		NFCONT &= ~NFCONF_nFCE;
  #endif
  		DEBUGN("NFCONF=0x%08x\n", NFCONF);
-@@ -155,7 +155,7 @@
+@@ -155,7 +155,7 @@ static void s3c2410_hwcontrol(struct mtd
  	case NAND_CTL_CLRNCE:
  #if defined(CONFIG_S3C2410)
  		NFCONF |= NFCONF_nFCE;
@@ -242,7 +242,7 @@
  		NFCONT &= ~NFCONF_nFCE;
  #endif
  		DEBUGN("NFCONF=0x%08x\n", NFCONF);
-@@ -278,7 +278,7 @@
+@@ -235,7 +235,7 @@ int __board_nand_init(struct nand_chip *
  	cfg |= S3C2410_NFCONF_TWRPH1(twrph1 - 1);
  
  	NFCONF = cfg;
@@ -251,7 +251,7 @@
  	twrph0 = 7; twrph1 = 7; tacls = 7;
  	NFCONF = (tacls<<12)|(twrph0<<8)|(twrph1<<4)|(0<<0);
  	NFCONT = (0<<13)|(0<<12)|(0<<10)|(0<<9)|(0<<8)|(1<<6)|(1<<5)|(1<<4)|(1<<1)|(1<<0);
-@@ -315,7 +315,7 @@
+@@ -272,7 +272,7 @@ int __board_nand_init(struct nand_chip *
  	nand->options = 0;
  #endif
  
@@ -273,7 +273,7 @@
  #define NFCONF		__REGi(NF_BASE + 0x0)
  #define NFCONT		__REGi(NF_BASE + 0x4)
  #define NFCMD		__REGb(NF_BASE + 0x8)
-@@ -142,7 +142,7 @@
+@@ -142,7 +142,7 @@ static int nand_read_page_ll(unsigned ch
  		*buf = (NFDATA & 0xff);
  		buf++;
  	}
@@ -303,7 +303,7 @@
  #include <s3c2440.h>
  #endif
  
-@@ -306,4 +307,5 @@
+@@ -305,4 +306,5 @@ struct serial_device s3c24xx_serial2_dev
  #endif /* CONFIG_SERIAL_MULTI */
  
  #endif /* defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) ||
@@ -330,7 +330,7 @@
  #include <s3c2440.h>
  #endif
  
-@@ -71,7 +71,7 @@
+@@ -71,7 +71,7 @@ static ulong get_PLLCLK(int pllreg)
      s = r & 0x3;
  #if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)
      return((CONFIG_SYS_CLK_FREQ * m) / (p << s));
@@ -339,7 +339,7 @@
      /* To avoid integer overflow, changed the calc order */
      if (pllreg == MPLL)
      	return ( 2 * m * (CONFIG_SYS_CLK_FREQ / (p << s )) );
-@@ -95,7 +95,7 @@
+@@ -95,7 +95,7 @@ ulong get_HCLK(void)
  
  #if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)
      return((clk_power->CLKDIVN & 0x2) ? get_FCLK()/2 : get_FCLK());
@@ -348,7 +348,7 @@
      switch (clk_power->CLKDIVN & 0x6) {
          case 0x0:
  	    return get_FCLK();
-@@ -127,4 +127,5 @@
+@@ -127,4 +127,5 @@ ulong get_UCLK(void)
  }
  
  #endif /* defined(CONFIG_S3C2400) || defined (CONFIG_S3C2410) ||
@@ -376,7 +376,7 @@
  # include <s3c2440.h>
  #endif
  
-@@ -70,5 +71,6 @@
+@@ -70,5 +71,6 @@ int usb_cpu_init_fail (void)
  	return 0;
  }
  
@@ -410,7 +410,7 @@
  #include <s3c2440.h>
  #endif
  #include <status_led.h>
-@@ -163,14 +163,15 @@
+@@ -170,14 +170,15 @@ copyex:
  	bne	copyex
  #endif
  
@@ -428,7 +428,7 @@
  #  define pWTCON		0x53000000
  #  define INTMSK		0x4A000008	/* Interupt-Controller base addresses */
  #  define INTSUBMSK	0x4A00001C
-@@ -193,6 +194,17 @@
+@@ -200,6 +201,17 @@ copyex:
  #endif
  # define CLKDIVN_val	7 /* FCLK:HCLK:PCLK = 1:3:6 */
  # define CAMDIVN	0x4C000018
@@ -446,7 +446,7 @@
  #endif
  
  	ldr     r0, =pWTCON
-@@ -205,13 +217,13 @@
+@@ -212,13 +224,13 @@ copyex:
  	mov	r1, #0xffffffff
  	ldr	r0, =INTMSK
  	str	r1, [r0]
@@ -462,7 +462,7 @@
  	/* Make sure we get FCLK:HCLK:PCLK = 1:3:6 */
  	ldr	r0, =CAMDIVN
  	mov	r1, #0
-@@ -277,7 +289,7 @@
+@@ -284,7 +296,7 @@ copyex:
  	str	r1, [r0, #0x28]
  #endif
  
@@ -471,7 +471,7 @@
  
  #ifndef CONFIG_SKIP_LOWLEVEL_INIT
  #ifndef CONFIG_LL_INIT_NAND_ONLY
-@@ -285,7 +297,7 @@
+@@ -292,7 +304,7 @@ copyex:
  #endif
  
  #if defined(CONFIG_AT91RM9200) || defined(CONFIG_S3C2410) || \
@@ -480,25 +480,7 @@
  
  #ifndef CONFIG_SKIP_RELOCATE_UBOOT
  	adr	r0, _start		/* r0 <- current position of code   */
-@@ -337,7 +349,7 @@
- #if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && defined(CONFIG_LL_INIT_NAND_ONLY)
- 	bl	cpu_init_crit
- #endif
--#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
-+#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) || defined(CONFIG_S3C2442)
- 	/* ensure some refresh has happened */
- 	ldr	r1, =0xfffff
- 1:	subs	r1, r1, #1
-@@ -348,7 +360,7 @@
- 	ldr	r0, [ r1 ]
- 	tst	r0, #0x02		/* is this resume from power down */
- 	ldrne	pc, [r1, #4]		/* gstatus3 */
--#endif /* CONFIG_S3C2410 || CONFIG_S3C2440 */
-+#endif /* CONFIG_S3C2410 || CONFIG_S3C2440 || CONFIG_S3C2442*/
- #endif /* CONFIG_SKIP_LOWLEVEL_INIT */
- 
- 	/* mov	r10, lr */
-@@ -373,7 +385,7 @@
+@@ -357,7 +369,7 @@ nand_load:
  	ldr	r2, [r1, #oNFCONF]
  	orr	r2, r2, #0x800		@ disable chip
  	str	r2, [r1, #oNFCONF]
@@ -507,17 +489,44 @@
  	mov	r1, #S3C2440_NAND_BASE
  	ldr	r2, =0xfff0		@ initial value tacls=3,rph0=7,rph1=7
  	ldr	r3, [r1, #oNFCONF]
-@@ -452,7 +464,8 @@
+@@ -367,7 +379,7 @@ nand_load:
+ 	ldr	r3, [r1, #oNFCONT]
+ 	orr	r3, r3, #1		@ enable nand controller
+ 	str	r3, [r1, #oNFCONT]
+-#endif /* CONFIG_S3C2440 */
++#endif /* CONFIG_S3C2440 || CONFIG_S3C2442 */
+ 
+ 	ldr	r0, _TEXT_BASE		/* upper 128 KiB: relocated uboot   */
+ 	sub	r0, r0, #CFG_MALLOC_LEN	/* malloc area                      */
+@@ -430,7 +442,8 @@ done_nand_read:
  #endif /* CONFIG_S3C2410_NAND_BOOT */
  done_relocate:
  
 -#if defined(CONFIG_USE_IRQ) && (defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440))
-+#if defined(CONFIG_USE_IRQ) && (defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) || \
-+				defined(CONFIG_S3C2442))
++#if defined(CONFIG_USE_IRQ) && (defined(CONFIG_S3C2410) || \
++    defined(CONFIG_S3C2440) || defined(CONFIG_S3C2442))
  	/* In the case of the S3C2410, if we've somehow magically (JTAG, ...)
  	   ended up in RAM, then that ram is mapped to 0x30000000 and not 0.
  	   So we need to copy the interrupt vectors, etc.  */
-Index: u-boot/drivers/usbdcore_s3c2410.c
+@@ -547,7 +560,7 @@ may_resume:
+ #if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && defined(CONFIG_LL_INIT_NAND_ONLY)
+ 	bl	cpu_init_crit
+ #endif
+-#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)
++#if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) || defined(CONFIG_S3C2442)
+ 	/* ensure some refresh has happened */
+ 	ldr	r1, =0xfffff
+ 1:	subs	r1, r1, #1
+@@ -558,7 +571,7 @@ may_resume:
+ 	ldr	r0, [ r1 ]
+ 	tst	r0, #0x02		/* is this resume from power down */
+ 	ldrne	pc, [r1, #4]		/* gstatus3 */
+-#endif /* CONFIG_S3C2410 || CONFIG_S3C244 */
++#endif /* CONFIG_S3C2410 || CONFIG_S3C244 || CONFIG_S3C2442 */
+ #endif /* CONFIG_SKIP_LOWLEVEL_INIT */
+ 
+ 	mov	pc, r10
+Index: u-boot/drivers/usb/usbdcore_s3c2410.c
 ===================================================================
 --- u-boot.orig/drivers/usb/usbdcore_s3c2410.c
 +++ u-boot/drivers/usb/usbdcore_s3c2410.c
@@ -531,7 +540,7 @@
  
  #include <common.h>
  
-Index: u-boot/drivers/usbtty.h
+Index: u-boot/drivers/serial/usbtty.h
 ===================================================================
 --- u-boot.orig/drivers/serial/usbtty.h
 +++ u-boot/drivers/serial/usbtty.h
@@ -549,7 +558,7 @@
 ===================================================================
 --- u-boot.orig/include/common.h
 +++ u-boot/include/common.h
-@@ -479,7 +479,9 @@
+@@ -481,7 +481,9 @@ int	prt_mpc8220_clks (void);
  ulong	get_OPB_freq (void);
  ulong	get_PCI_freq (void);
  #endif
@@ -564,7 +573,7 @@
 ===================================================================
 --- u-boot.orig/include/s3c24x0.h
 +++ u-boot/include/s3c24x0.h
-@@ -82,7 +82,8 @@
+@@ -82,7 +82,8 @@ typedef struct {
  	S3C24X0_REG32	PRIORITY;
  	S3C24X0_REG32	INTPND;
  	S3C24X0_REG32	INTOFFSET;
@@ -574,7 +583,7 @@
  	S3C24X0_REG32	SUBSRCPND;
  	S3C24X0_REG32	INTSUBMSK;
  #endif
-@@ -92,11 +93,13 @@
+@@ -92,11 +93,13 @@ typedef struct {
  /* DMAS (see manual chapter 8) */
  typedef struct {
  	S3C24X0_REG32	DISRC;
@@ -590,7 +599,7 @@
  	S3C24X0_REG32	DIDSTC;
  #endif
  	S3C24X0_REG32	DCON;
-@@ -107,7 +110,8 @@
+@@ -107,7 +110,8 @@ typedef struct {
  #ifdef CONFIG_S3C2400
  	S3C24X0_REG32	res[1];
  #endif
@@ -600,7 +609,7 @@
  	S3C24X0_REG32	res[7];
  #endif
  } /*__attribute__((__packed__))*/ S3C24X0_DMA;
-@@ -126,7 +130,7 @@
+@@ -126,7 +130,7 @@ typedef struct {
  	S3C24X0_REG32	CLKCON;
  	S3C24X0_REG32	CLKSLOW;
  	S3C24X0_REG32	CLKDIVN;
@@ -609,7 +618,7 @@
  	S3C24X0_REG32	CAMDIVN;
  #endif
  } /*__attribute__((__packed__))*/ S3C24X0_CLOCK_POWER;
-@@ -148,7 +152,8 @@
+@@ -148,7 +152,8 @@ typedef struct {
  	S3C24X0_REG32	res[8];
  	S3C24X0_REG32	DITHMODE;
  	S3C24X0_REG32	TPAL;
@@ -619,7 +628,7 @@
  	S3C24X0_REG32	LCDINTPND;
  	S3C24X0_REG32	LCDSRCPND;
  	S3C24X0_REG32	LCDINTMSK;
-@@ -160,7 +165,7 @@
+@@ -160,7 +165,7 @@ typedef struct {
  /* NAND FLASH (see S3C2410 manual chapter 6) */
  typedef struct {
  	S3C24X0_REG32	NFCONF;
@@ -628,7 +637,7 @@
  	S3C24X0_REG32	NFCONT;
  #endif
  	S3C24X0_REG32	NFCMD;
-@@ -466,7 +471,7 @@
+@@ -466,7 +471,7 @@ typedef struct {
  	S3C24X0_REG32	GSTATUS3;
  	S3C24X0_REG32	GSTATUS4;
  #endif
@@ -637,7 +646,7 @@
  	S3C24X0_REG32	GPACON;
  	S3C24X0_REG32	GPADAT;
  	S3C24X0_REG32	res1[2];
-@@ -714,7 +719,7 @@
+@@ -714,7 +719,7 @@ typedef struct {
  #if defined(CONFIG_S3C2410)
  	S3C24X0_REG32	SDIDAT;
  	S3C24X0_REG32	SDIIMSK;
@@ -663,7 +672,7 @@
 ===================================================================
 --- u-boot.orig/common/serial.c
 +++ u-boot/common/serial.c
-@@ -59,7 +59,8 @@
+@@ -60,7 +60,8 @@ struct serial_device *__default_serial_c
  #else
  		return &serial0_device;
  #endif
@@ -673,7 +682,7 @@
  #if defined(CONFIG_SERIAL1)
  	return &s3c24xx_serial0_device;
  #elif defined(CONFIG_SERIAL2)
-@@ -129,7 +130,8 @@
+@@ -133,7 +134,8 @@ void serial_initialize (void)
  #if defined (CONFIG_STUART)
  	serial_register(&serial_stuart_device);
  #endif
@@ -687,7 +696,7 @@
 ===================================================================
 --- u-boot.orig/include/serial.h
 +++ u-boot/include/serial.h
-@@ -35,7 +35,8 @@
+@@ -36,7 +36,8 @@ extern struct serial_device eserial4_dev
  
  #endif
  

Modified: trunk/src/target/u-boot/patches/uboot-s3c2443.patch
===================================================================
--- trunk/src/target/u-boot/patches/uboot-s3c2443.patch	2008-02-24 22:10:55 UTC (rev 4107)
+++ trunk/src/target/u-boot/patches/uboot-s3c2443.patch	2008-02-24 22:26:25 UTC (rev 4108)
@@ -11,7 +11,7 @@
  #endif
  #include <status_led.h>
  
-@@ -164,7 +166,7 @@
+@@ -171,7 +173,7 @@ copyex:
  #endif
  
  #if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) || \
@@ -20,7 +20,7 @@
  	/* turn off the watchdog */
  
  # if defined(CONFIG_S3C2400)
-@@ -205,6 +207,11 @@
+@@ -212,6 +214,11 @@ copyex:
  # endif
  # define CLKDIVN_val  7 /* FCLK:HCLK:PCLK = 1:3:6 */
  # define CAMDIVN      0x4C000018
@@ -32,7 +32,7 @@
  #endif
  
  	ldr     r0, =pWTCON
-@@ -217,7 +224,8 @@
+@@ -224,7 +231,8 @@ copyex:
  	mov	r1, #0xffffffff
  	ldr	r0, =INTMSK
  	str	r1, [r0]
@@ -42,7 +42,7 @@
  	ldr	r1, =INTSUBMSK_val
  	ldr	r0, =INTSUBMSK
  	str	r1, [r0]
-@@ -236,6 +244,43 @@
+@@ -243,6 +251,43 @@ copyex:
  	mcr	p15, 0, r1, c1, c0, 0
  
  
@@ -86,7 +86,7 @@
  #define LOCKTIME	0x4c000000
  #define UPLLCON		0x4c000008
  
-@@ -263,6 +308,7 @@
+@@ -270,6 +315,7 @@ copyex:
  	ldr	r0, =CLKDIVN
  	mov	r1, #CLKDIVN_val
  	str	r1, [r0]
@@ -94,7 +94,7 @@
  
  #if 1
  	/* enable uart */
-@@ -289,7 +335,8 @@
+@@ -296,7 +342,8 @@ copyex:
  	str	r1, [r0, #0x28]
  #endif
  
@@ -104,7 +104,7 @@
  
  #ifndef CONFIG_SKIP_LOWLEVEL_INIT
  #ifndef CONFIG_LL_INIT_NAND_ONLY
-@@ -297,7 +344,8 @@
+@@ -304,7 +351,8 @@ copyex:
  #endif
  
  #if defined(CONFIG_AT91RM9200) || defined(CONFIG_S3C2410) || \
@@ -136,7 +136,7 @@
  #endif
  
  int timer_load_val = 0;
-@@ -187,6 +189,7 @@
+@@ -187,6 +189,7 @@ ulong get_tbclk (void)
  #elif defined(CONFIG_SBC2410X) || \
        defined(CONFIG_SMDK2410) || \
        defined(CONFIG_SMDK2440) || \





More information about the commitlog mailing list