1
0
mirror of git://projects.qi-hardware.com/xburst-tools.git synced 2024-11-23 05:47:31 +02:00

qi-fix-resume.patch

Add resume processing so we can resume and not just start up

Signed-off-by: Andy Green <andy@openmoko.com>
This commit is contained in:
Andy Green 2008-11-28 10:16:39 +00:00 committed by Andy Green
parent ac360fcdf6
commit 64f0faee54

View File

@ -22,6 +22,11 @@
#define __ASM_MODE__ #define __ASM_MODE__
#include <neo_gta02.h> #include <neo_gta02.h>
#define S3C2410_MISCCR_nEN_SCLK0 (1 << 17)
#define S3C2410_MISCCR_nEN_SCLK1 (1 << 18)
#define S3C2410_MISCCR_nEN_SCLKE (1 << 19)
.globl _start .globl _start
_start: b start_code _start: b start_code
/* if we are injected by JTAG, the script sets _istag content to nonzero */ /* if we are injected by JTAG, the script sets _istag content to nonzero */
@ -168,8 +173,6 @@ start_code:
ldr r1, =0x54 ldr r1, =0x54
str r1, [r0, #0x20] str r1, [r0, #0x20]
bl cpu_init_crit
/* reset nand controller, or it is dead to us */ /* reset nand controller, or it is dead to us */
mov r1, #0x4E000000 mov r1, #0x4E000000
@ -182,6 +185,57 @@ start_code:
orr r3, r3, #1 @ enable nand controller orr r3, r3, #1 @ enable nand controller
str r3, [r1, #4] str r3, [r1, #4]
/* take sdram out of power down */
ldr r0, =0x56000080 /* misccr */
ldr r1, [ r0 ]
bic r1, r1, #(S3C2410_MISCCR_nEN_SCLK0 | S3C2410_MISCCR_nEN_SCLK1 | S3C2410_MISCCR_nEN_SCLKE)
str r1, [ r0 ]
/* ensure signals stabalise */
mov r1, #128
1: subs r1, r1, #1
bpl 1b
bl cpu_init_crit
/* ensure some refresh has happened */
ldr r1, =0xfffff
1: subs r1, r1, #1
bpl 1b
/* capture full EINT situation into gstatus 4 */
ldr r0, =0x4A000000 /* SRCPND */
ldr r1, [ r0 ]
and r1, r1, #0xf
ldr r0, =0x560000BC /* gstatus4 */
str r1, [ r0 ]
ldr r0, =0x560000A8 /* EINTPEND */
ldr r1, [ r0 ]
ldr r0, =0xfff0
and r1, r1, r0
ldr r0, =0x560000BC /* gstatus4 */
ldr r0, [ r0 ]
orr r1, r1, r0
ldr r0, =0x560000BC /* gstatus4 */
str r1, [ r0 ]
/* test for resume */
ldr r1, =0x560000B4 /* gstatus2 */
ldr r0, [ r1 ]
tst r0, #0x02 /* is this resume from power down */
/* well, if it was, we are going to jump to
* whatever address we stashed in gstatus3,
* and gstatus4 will hold the wake interrupt
* source for the OS to look at
*/
ldrne pc, [r1, #4]
/* >> CFG_VIDEO_LOGO_MAX_SIZE */ /* >> CFG_VIDEO_LOGO_MAX_SIZE */
#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ #define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */