Details:
Build kernel with Power management enabled. Please refer to kernel config below.
Set SW 5.1 OFF to make the board can wake up from standby mode automatically.
System continues to enter and exit 'standby' mode. Press keys on the serial console, then system will crash.
Below is the kernel configuration for Power management:
------------------
Power Management support (PM) [Y/n/?] y
Legacy Power Management API (DEPRECATED) (PM_LEGACY) [N/y/?]
Power Management Debug Support (PM_DEBUG) [N/y/?]
Driver model /sys/devices/.../power/state files (DEPRECATED) (PM_SYSFS_DEPRECATED) [N/y/?]
Select PM Wakeup Event Source
> 1. Specify Wakeup Event by SIC_IWR value (PM_WAKEUP_GPIO_BY_SIC_IWR)
2. Cause Wakeup Event by GPIO (PM_WAKEUP_BY_GPIO)
3. Configure Wakeup Event by PM GPIO API (PM_WAKEUP_GPIO_API)
choice[1-3?]: 2
Wakeup GPIO number (PM_WAKEUP_GPIO_NUMBER) [2] (NEW) 2
GPIO Polarity
> 1. Active High (PM_WAKEUP_GPIO_POLAR_H) (NEW)
2. Active Low (PM_WAKEUP_GPIO_POLAR_L) (NEW)
3. Falling EDGE (PM_WAKEUP_GPIO_POLAR_EDGE_F) (NEW)
4. Rising EDGE (PM_WAKEUP_GPIO_POLAR_EDGE_R) (NEW)
5. Both EDGE (PM_WAKEUP_GPIO_POLAR_EDGE_B) (NEW)
choice[1-5]: 1
Below is the steps:
-------------------
root:~> while [ 1 ];echo 'standby' > /sys/power/state ;done
Stopping tasks ... done.
Suspending console(s)
Restarting tasks ... done.
Stopping tasks ... done.
Suspending console(s)
Restarting tasks ... done.
Stopping tasks ... done.
Suspending console(s)
##Now press keys on the serial console or hold keys down.
Restarting tasks ... done.
NULL pointer access (probably)
Kernel or interrupt exception
return address: [0x00091b8a]; contents of:
0x00091b60:
SEQUENCER STATUS:
SEQSTAT: 00000027 IPEND: c030 SYSCFG: 0006
RETE: <0x00000000> /* Maybe null pointer? */
RETN: <0x001c7a40> /* unknown address */
RETX: <0x00091b8a> { _bfin_serial_dma_rx_chars + 0xfe }
RETS: <0x00091f38> { _bfin_serial_rx_dma_timeout + 0x80 }
DCPLB_FAULT_ADDR: <0x00000000> /* Maybe null pointer? */
ICPLB_FAULT_ADDR: <0x00091b8a> { _bfin_serial_dma_rx_chars + 0xfe }
PROCESSOR STATE:
R0 : 00000000 R1 : 00000000 R2 : 00000001 R3 : 00000000
R4 : 00000001 R5 : 001c7a56 R6 : 00000000 R7 : 00000000
P0 : 0000000f P1 : 03283920 P2 : 00000000 P3 : 00156c0c
P4 : 001c7aa8 P5 : 00000000 FP : 001c7a57 SP : 001c7964
LB0: ffa01cee LT0: ffa01cee LC0: 0000005e
LB1: 0002a3bc LT1: 0002a3bc LC1: 00000000
B0 : 00000000 L0 : 00000000 M0 : 00000000 I0 : 00000001
B1 : 00000000 L1 : 00000000 M1 : 00000000 I1 : 00000000
B2 : 00000000 L2 : 00000000 M2 : 00000000 I2 : ffff4747
B3 : 00000000 L3 : 00000000 M3 : 00000000 I3 : 00000000
A0.w: 00000050 A0.x: 00000000 A1.w: 00000050 A1.x: 00000000
USP : 0066e8b0 ASTAT: 02002021
Hardware Trace:
0 Target : <0x000046a8> { _trap_c + 0x0 }
Source : <0xffa00afc> { _exception_to_level5 + 0xb4 }
1 Target : <0xffa00a48> { _exception_to_level5 + 0x0 }
Source : <0xffa009a0> { _ex_trap_c + 0x5c }
2 Target : <0xffa00944> { _ex_trap_c + 0x0 }
Source : <0xffa0077c> { _ex_workaround_261 + 0x1c }
3 Target : <0xffa00760> { _ex_workaround_261 + 0x0 }
Source : <0xffa00b9c> { _trap + 0x28 }
4 Target : <0xffa00b74> { _trap + 0x0 }
Source : <0xffa008e6> { _return_from_exception + 0xe }
5 Target : <0xffa008d8> { _return_from_exception + 0x0 }
Source : <0xffa00772> { _ex_workaround_261 + 0x12 }
6 Target : <0xffa00760> { _ex_workaround_261 + 0x0 }
Source : <0xffa00b9c> { _trap + 0x28 }
7 Target : <0xffa00b74> { _trap + 0x0 }
Source : <0x00091b88> { _bfin_serial_dma_rx_chars + 0xfc }
8 Target : <0x00091b7e> { _bfin_serial_dma_rx_chars + 0xf2 }
Source : <0x00091b14> { _bfin_serial_dma_rx_chars + 0x88 }
9 Target : <0x00091b02> { _bfin_serial_dma_rx_chars + 0x76 }
Source : <0x00091c00> { _bfin_serial_dma_rx_chars + 0x174 }
10 Target : <0x00091bf2> { _bfin_serial_dma_rx_chars + 0x166 }
Source : <0x00091afe> { _bfin_serial_dma_rx_chars + 0x72 }
11 Target : <0x00091af8> { _bfin_serial_dma_rx_chars + 0x6c }
Source : <0x00091af0> { _bfin_serial_dma_rx_chars + 0x64 }
12 Target : <0x00091aee> { _bfin_serial_dma_rx_chars + 0x62 }
Source : <0x00091ae2> { _bfin_serial_dma_rx_chars + 0x56 }
13 Target : <0x00091ae0> { _bfin_serial_dma_rx_chars + 0x54 }
Source : <0x00091ad4> { _bfin_serial_dma_rx_chars + 0x48 }
14 Target : <0x00091ad2> { _bfin_serial_dma_rx_chars + 0x46 } |