[#5622] BF548 can not wake up from standby by uart interrupt
Submitted By: Vivi Li
Open Date
2009-10-16 05:49:38 Close Date
2010-02-24 03:09:13
Priority:
Medium Assignee:
Barry Song
Status:
Closed Fixed In Release:
N/A
Found In Release:
2010R1 Release:
Category:
N/A Board:
N/A
Processor:
BF548 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Out of Date
Uboot version or rev.:
Toolchain version or rev.:
gcc4.1-09r1-rc9
App binary format:
N/A
Summary: BF548 can not wake up from standby by uart interrupt
Details:
BF548-ezkit can not wake up from standby mode by uart interrupt.
--
Linux version 2.6.31.4-ADI-2010R1-pre-svn7656 (test@uclinux61-bf548-std) (gcc version 4.1.2 (ADI svn)) #8 Fri Oct 16 07:28:39 CS9
register early platform devices
bootconsole [early_shadow0] enabled
bootconsole [early_BFuart1] enabled
early printk enabled on early_BFuart1
Board Memory: 64MB
Kernel Managed Memory: 64MB
Memory map:
fixedcode = 0x00000400-0x00000490
text = 0x00001000-0x0018bec0
rodata = 0x0018bec0-0x0021b094
bss = 0x0021c000-0x0022fcf8
data = 0x0022fcf8-0x00248000
stack = 0x00246000-0x00248000
init = 0x00248000-0x009d4000
available = 0x009d4000-0x03dff000
DMA Zone = 0x03e00000-0x04000000
Hardware Trace Active and Enabled
Boot Mode: 1
Blackfin support (C) 2004-2009 Analog Devices, Inc.
Compiled for ADSP-BF548 Rev 0.2
Blackfin Linux support by http://blackfin.uclinux.org/
Processor Speed: 525 MHz core clock and 131 MHz System Clock
NOMPU: setting up cplb tables
Instruction Cache Enabled for CPU0
External memory: cacheable in instruction cache
L2 SRAM : uncacheable in instruction cache
Data Cache Enabled for CPU0
External memory: cacheable (write-back) in data cache
L2 SRAM : uncacheable in data cache
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 15747
Kernel command line: root=/dev/mtdblock0 rw clkin_hz=25000000 earlyprintk=serial,uart1,57600 console=ttyBF1,57600 ip=10.100.4.50f
PID hash table entries: 256 (order: 8, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory available: 52852k/65536k RAM, (7728k init code, 1579k kernel code, 753k data, 2048k dma, 572k reserved)
NR_IRQS:263
Configuring Blackfin Priority Driven Interrupts
console [ttyBF1] enabled, bootconsole disabled
console [ttyBF1] enabled, bootconsole disabled
Calibrating delay loop... 1046.52 BogoMIPS (lpj=2093056)
Security Framework initialized
Mount-cache hash table entries: 512
Blackfin Scratchpad data SRAM: 4 KB
Blackfin L1 Data A SRAM: 16 KB (16 KB free)
Blackfin L1 Data B SRAM: 16 KB (16 KB free)
Blackfin L1 Instruction SRAM: 48 KB (41 KB free)
Blackfin L2 SRAM: 128 KB (128 KB free)
NET: Registered protocol family 16
Blackfin DMA Controller
ezkit_init(): registering device resources
bio: create slab <bio-0> at 0
SCSI subsystem initialized
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
msgmni has been set to 103
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler cfq registered
bf54x-lq043: FrameBuffer initializing...
dma_alloc_init: dma_page @ 0x02a08000 - 512 pages at 0x03e00000
bfin-otp: initialized
bfin-uart: Blackfin serial driver
bfin-uart.1: ttyBF1 at MMIO 0xffc02000 (irq = 48) is a BFIN-UART
brd: module loaded
register bfin atapi driver
scsi0 : pata-bf54x
ata1: PATA max UDMA/66 irq 68
smsc911x: Driver version 2008-10-21.
smsc911x-mdio: probed
eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:01, irq=-1)
net eth0: MAC Address: 00:e0:22:fe:bf:4e
physmap platform flash device: 02000000 at 20000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Intel/Sharp Extended Query Table at 0x010A
Using buffer write method
Using auto-unlock on power-up/resume
cfi_cmdset_0001: Erase suspend on write enabled
RedBoot partition parsing not available
Using physmap partition information
Creating 3 MTD partitions on "physmap-flash.0":
0x000000000000-0x000000040000 : "bootloader(nor)"
0x000000040000-0x000000440000 : "linux kernel(nor)"
0x000000440000-0x000001000000 : "file system(nor)"
BF5xx on-chip NAND FLash Controller Driver, Version 1.2 (c) 2007 Analog Devices, Inc.
bf5xx-nand bf5xx-nand.0: page_size=256, data_width=8, wr_dly=3, rd_dly=3
NAND device: Manufacturer ID: 0x20, Chip ID: 0xda (ST Micro NAND 256MiB 3,3V 8-bit)
Creating 2 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000000400000 : "linux kernel(nand)"
0x000000400000-0x000010000000 : "file system(nand)"
m25p80 spi0.1: m25p16 (2048 Kbytes)
Creating 2 MTD partitions on "m25p80":
0x000000000000-0x000000040000 : "bootloader(spi)"
0x000000040000-0x000000200000 : "linux kernel(spi)"
bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc00500, dma channel@4
bfin-spi bfin-spi.1: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc02300, dma channel@5
input: bf54x-keys as /devices/platform/bf54x-keys/input/input0
bf54x-keys: Blackfin BF54x Keypad registered IRQ 76
rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0
i2c /dev entries driver
i2c-bfin-twi i2c-bfin-twi.0: Blackfin BF5xx on-chip I2C TWI Contoller, regs_base@ffc00700
i2c-bfin-twi i2c-bfin-twi.1: Blackfin BF5xx on-chip I2C TWI Contoller, regs_base@ffc02200
bfin-wdt: initialized: timeout=20 sec (nowayout=0)
bfin-sdh bfin-sdh.0: unable to request DMA channel
bfin-sdh: probe of bfin-sdh.0 failed with error -16
Advanced Linux Sound Architecture Driver Version 1.0.20.
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 17
rtc-bfin rtc-bfin: setting system clock to 2004-05-31 15:14:59 UTC (1086016499)
ata1.00: ATA-6: TOSHIBA MK4032GAX, AD101A, max UDMA/100
ata1.00: 78140160 sectors, multi 16: LBA48
ata1.00: configured for UDMA/66
blk_queue_max_hw_segments: set to minimum 1
scsi 0:0:0:0: Direct-Access ATA TOSHIBA MK4032GA AD10 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 78140160 512-byte logical blocks: (40.0 GB/37.2 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI disk
net eth0: SMSC911x/921x identified at 0x24000000, IRQ: 175
IP-Config: Complete:
device=eth0, addr=10.100.4.50, mask=255.255.255.0, gw=10.100.4.174,
host=bf548-ezkit, domain=, nis-domain=(none),
bootserver=10.100.4.174, rootserver=10.100.4.174, rootpath=
Freeing unused kernel memory: 7728k freed
_____________________________________
a8888b. / Welcome to the uClinux distribution \
d888888b. / _ _ \
8P"YP"Y88 / | | |_| __ __ (TM) |
8|o||o|88 _____/ | | _ ____ _ _ \ \/ / |
8' .88 \ | | | | _ \| | | | \ / |
8`._.' Y8. \ | |__ | | | | | |_| | / \ |
d/ `8b. \ \____||_|_| |_|\____|/_/\_\ |
dP . Y8b. \ For embedded processors including |
d8:' " `::88b \ the Analog Devices Blackfin /
d8" 'Y88b \___________________________________/
:8P ' :888
8a. : _a88P For further information, check out:
._/"Yaa_: .| 88P| - http://blackfin.uclinux.org/
\ YP" `| 8P `. - http://docs.blackfin.uclinux.org/
/ \.___.d| .' - http://www.uclinux.org/
`--..__)8888P`._.' jgs/a:f - http://www.analog.com/blackfin
Have a lot of fun...
BusyBox v1.15.2 (2009-10-16 02:30:55 CST) hush - the humble shell
root:/> version
kernel: Linux release 2.6.31.4-ADI-2010R1-pre-svn7656, build #8 Fri Oct 16 07:28:39 CST 2009
toolchain: bfin-uclinux-gcc release gcc version 4.1.2 (ADI svn)
user-dist: release svn-9000, build #104 Fri Oct 16 07:27:58 CST 2009
root:/> echo enabled > /sys/class/tty/ttyBF1/power/wakeup
root:/> cat /sys/class/tty/ttyBF1/power/wakeup
enabled
root:/> echo standby > /sys/power/state
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
(type char in console, can not wake up)
--
Follow-ups
--- Barry Song 2009-11-12 02:48:25
Not only serial port. BF548's PM should have crashed overall. For example:
root:/> rtcwake -s 15 -m standby
wakeup from "standby" at Thu Jan 1 02:57:54 1970
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
Doesn't work too.
--- Michael Hennerich 2009-11-12 03:03:37
Try to disable the sound drivers and try again.
If this doesn't help - disable the bf54x-keys driver, too.
[#5386] bf54x-keys hangs system in trunk
-Michael
--- Vivi Li 2009-11-12 03:58:08
Power test passed in latest regression for Sleep Deeper mode.
Please try again.
--- Barry Song 2009-11-12 22:01:03
Michael,
For sound drivers, that means a soc-core bug. soc-core will call the resume of
cpu dai even when the cpu dai is not registered. soc-core uses a static link to
maintain the relationship of cpu and codec dai. Now after we move to platform
device for cpu dai, if the platform device information is not placed in
arch/blackfin/mach.../boards, cpu dai will lost the chance to registered, this
soc-core bug will be triggered. Look like I have to send a patch to soc-core
again.
Vivi,
That means I have different kernel configuration with you. Devices I select
like audio can cause rtcwake fails too.
--- Barry Song 2009-11-15 23:35:55
BF548's DMA doesn't support memory in sleep mode:
"When in the sleep mode, system DMA access to L1 and memory other
than L1 is not supported."
That's a difference with other chips:
"When in the sleep mode, system DMA access to L1 is not supported."
then while uart enables DMA, interrupt request is not transmitted to SIR on
BF548 since
"the transmit and receive requests are routed through the DMA
controller."
So in your uart wake-up test case, you can use PIO for UART on BF548. For other
chips whose DMA support memory, you can enable DMA.
-Barry
--- Vivi Li 2009-11-16 01:46:17
My config is fine. CONFIG_SERIAL_BFIN_PIO is already set to yes.
This bug disappeared between Nov. 12nd and 13rd.
The last failed version is:
--
kernel: Linux release 2.6.31.6-ADI-2010R1-pre-svn7789, build #4 Thu Nov 12
21:27:46 CST 2009
toolchain: bfin-uclinux-gcc release gcc version 4.3.4 (ADI-trunk/svn-3679)
user-dist: release svn-9135, build #15 Thu Nov 12 21:27:07 CST 2009
--
The first passed version is:
--
kernel: Linux release 2.6.31.6-ADI-2010R1-pre-svn7798, build #8 Sat Nov 14
03:57:44 CST 2009
toolchain: bfin-uclinux-gcc release gcc version 4.3.4 (ADI-trunk/svn-3679)
user-dist: release svn-9149, build #100 Sat Nov 14 03:57:08 CST 2009
--
--- Vivi Li 2010-02-24 03:08:23
Out of date now.
Close it.
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
config.linux.uart_wakeup application/octet-stream 40017 Vivi Li