diff options
Diffstat (limited to 'meta/packages/uboot/u-boot-mkimage-openmoko-native/uboot-neo1973-resume.patch')
| -rw-r--r-- | meta/packages/uboot/u-boot-mkimage-openmoko-native/uboot-neo1973-resume.patch | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/meta/packages/uboot/u-boot-mkimage-openmoko-native/uboot-neo1973-resume.patch b/meta/packages/uboot/u-boot-mkimage-openmoko-native/uboot-neo1973-resume.patch new file mode 100644 index 0000000000..19d912620d --- /dev/null +++ b/meta/packages/uboot/u-boot-mkimage-openmoko-native/uboot-neo1973-resume.patch | |||
| @@ -0,0 +1,113 @@ | |||
| 1 | Resume support for low-level uboot code, Version 5 | ||
| 2 | |||
| 3 | Signed-off-by: Ben Dooks <ben-linux@fluff.org> | ||
| 4 | |||
| 5 | Index: u-boot/cpu/arm920t/start.S | ||
| 6 | =================================================================== | ||
| 7 | --- u-boot.orig/cpu/arm920t/start.S 2007-02-28 03:51:24.000000000 +0100 | ||
| 8 | +++ u-boot/cpu/arm920t/start.S 2007-03-01 02:43:47.000000000 +0100 | ||
| 9 | @@ -158,18 +158,68 @@ | ||
| 10 | str r1, [r0] | ||
| 11 | # endif | ||
| 12 | |||
| 13 | + /* default FCLK is 202 MHz ! */ | ||
| 14 | +#define LOCKTIME 0x4c000000 | ||
| 15 | +#define UPLLCON 0x4c000008 | ||
| 16 | +//#define MPLLCFG ((0x90 << 12) + (0x2 << 4) + 0x2) | ||
| 17 | +#define MPLLCFG ((0x90 << 12) + (0x7 << 4) + 0x0) | ||
| 18 | +#define UPLLCFG ((0x78 << 12) + (0x2 << 4) + 0x3) | ||
| 19 | + ldr r0, =LOCKTIME | ||
| 20 | + mov r1, #0xffffff | ||
| 21 | + str r1, [r0] | ||
| 22 | + | ||
| 23 | + ldr r0, =UPLLCON | ||
| 24 | + ldr r1, =UPLLCFG | ||
| 25 | + str r1, [r0] | ||
| 26 | + | ||
| 27 | + /* Page 7-19, seven nops between UPLL and MPLL */ | ||
| 28 | + nop | ||
| 29 | + nop | ||
| 30 | + nop | ||
| 31 | + nop | ||
| 32 | + nop | ||
| 33 | + nop | ||
| 34 | + nop | ||
| 35 | + | ||
| 36 | + ldr r1, =MPLLCFG | ||
| 37 | + str r1, [r0, #-4] /* MPLLCON */ | ||
| 38 | + | ||
| 39 | /* FCLK:HCLK:PCLK = 1:2:4 */ | ||
| 40 | - /* default FCLK is 120 MHz ! */ | ||
| 41 | ldr r0, =CLKDIVN | ||
| 42 | mov r1, #3 | ||
| 43 | str r1, [r0] | ||
| 44 | + | ||
| 45 | +#if 1 | ||
| 46 | + /* enable uart */ | ||
| 47 | + ldr r0, =0x4c00000c /* clkcon */ | ||
| 48 | + ldr r1, =0x7fff0 /* all clocks on */ | ||
| 49 | + str r1, [r0] | ||
| 50 | + | ||
| 51 | + /* gpio UART0 init */ | ||
| 52 | + ldr r0, =0x56000070 | ||
| 53 | + mov r1, #0xaa | ||
| 54 | + str r1, [r0] | ||
| 55 | + | ||
| 56 | + /* init uart */ | ||
| 57 | + ldr r0, =0x50000000 | ||
| 58 | + mov r1, #0x03 | ||
| 59 | + str r1, [r0] | ||
| 60 | + ldr r1, =0x245 | ||
| 61 | + str r1, [r0, #0x04] | ||
| 62 | + mov r1, #0x01 | ||
| 63 | + str r1, [r0, #0x08] | ||
| 64 | + mov r1, #0x00 | ||
| 65 | + str r1, [r0, #0x0c] | ||
| 66 | + mov r1, #0x1a | ||
| 67 | + str r1, [r0, #0x28] | ||
| 68 | +#endif | ||
| 69 | + | ||
| 70 | #endif /* CONFIG_S3C2400 || CONFIG_S3C2410 */ | ||
| 71 | |||
| 72 | #ifndef CONFIG_SKIP_LOWLEVEL_INIT | ||
| 73 | #ifndef CONFIG_LL_INIT_NAND_ONLY | ||
| 74 | bl cpu_init_crit | ||
| 75 | #endif | ||
| 76 | -#endif | ||
| 77 | |||
| 78 | #ifndef CONFIG_SKIP_RELOCATE_UBOOT | ||
| 79 | adr r0, _start /* r0 <- current position of code */ | ||
| 80 | @@ -202,9 +252,33 @@ | ||
| 81 | |||
| 82 | #ifdef CONFIG_S3C2410_NAND_BOOT | ||
| 83 | nand_load: | ||
| 84 | + /* take sdram out of power down */ | ||
| 85 | + ldr r0, =0x56000080 /* misccr */ | ||
| 86 | + ldr r1, [ r0 ] | ||
| 87 | + bic r1, r1, #(S3C2410_MISCCR_nEN_SCLK0 | S3C2410_MISCCR_nEN_SCLK1 | S3C2410_MISCCR_nEN_SCLKE) | ||
| 88 | + str r1, [ r0 ] | ||
| 89 | + | ||
| 90 | + /* ensure signals stabalise */ | ||
| 91 | + mov r1, #128 | ||
| 92 | +1: subs r1, r1, #1 | ||
| 93 | + bpl 1b | ||
| 94 | + | ||
| 95 | #if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && defined(CONFIG_LL_INIT_NAND_ONLY) | ||
| 96 | bl cpu_init_crit | ||
| 97 | #endif | ||
| 98 | +#if defined(CONFIG_S3C2410) | ||
| 99 | + /* ensure some refresh has happened */ | ||
| 100 | + ldr r1, =0xfffff | ||
| 101 | +1: subs r1, r1, #1 | ||
| 102 | + bpl 1b | ||
| 103 | + | ||
| 104 | + /* test for resume */ | ||
| 105 | + ldr r1, =0x560000B4 /* gstatus2 */ | ||
| 106 | + ldr r0, [ r1 ] | ||
| 107 | + tst r0, #0x02 /* is this resume from power down */ | ||
| 108 | + ldrne pc, [r1, #4] /* gstatus3 */ | ||
| 109 | +#endif /* CONFIG_S3C2410 */ | ||
| 110 | +#endif /* CONFIG_SKIP_LOWLEVEL_INIT */ | ||
| 111 | |||
| 112 | /* mov r10, lr */ | ||
| 113 | |||
