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

qi-s3c6410-add-resume-path-processing.patch

First go at resume processing for 6410, can't test it until Ben Dooks
confirms operation of Linux side on SMDK

Signed-off-by: Andy Green <andy@openmoko.com>
This commit is contained in:
Andy Green 2008-12-05 23:15:47 +00:00 committed by Andy Green
parent af49f931b6
commit 1f150a592e

View File

@ -423,9 +423,19 @@ start_code:
ldr r1, =0x1FFF ldr r1, =0x1FFF
str r1, [r0, #UDIVSLOT_OFFSET] str r1, [r0, #UDIVSLOT_OFFSET]
/* resuming? */
ldr r0, =(ELFIN_CLOCK_POWER_BASE+RST_STAT_OFFSET)
ldr r1, [r0]
bic r1, r1, #0xfffffff7
cmp r1, #0x8
beq wakeup_reset
/* no, cold boot */
ldr r0, =ELFIN_UART_BASE + ELFIN_UART3_OFFSET
ldr r1, =0x55 ldr r1, =0x55
str r1, [r0, #UTXH_OFFSET] @'U' str r1, [r0, #UTXH_OFFSET] @'U'
/* >> 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 */
@ -446,5 +456,32 @@ clbss_l:
b _steppingstone_done b _steppingstone_done
/* resume */
wakeup_reset:
ldr r0, =ELFIN_UART_BASE + ELFIN_UART3_OFFSET
ldr r1, =0x4b4b4b4b
str r1, [r0, #UTXH_OFFSET]
/*Clear wakeup status register*/
ldr r0, =(ELFIN_CLOCK_POWER_BASE+WAKEUP_STAT_OFFSET)
ldr r1, [r0]
str r1, [r0]
#if 0
/*LED test*/
ldr r0, =ELFIN_GPIO_BASE
ldr r1, =0x3000
str r1, [r0, #GPNDAT_OFFSET]
#endif
/*Load return address and jump to kernel*/
ldr r0, =(ELFIN_CLOCK_POWER_BASE+INF_REG0_OFFSET)
ldr r1, [r0] /* r1 = physical address of s3c6400_cpu_resume function*/
mov pc, r1 /*Jump to kernel (sleep-s3c6400.S)*/
nop
nop
4: 4:
b 4b b 4b