Re: [PATCH] omap: serial: Fix the boot-up crash/reboot without CONFIG_PM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Santosh Shilimkar <santosh.shilimkar@xxxxxx> writes:

> The omap2plus_defconfig doesn't boot up when built with CONFIG_PM
> disabled on the latest linux-omap master. Below are the observations
> 1. OMAP3 reboots in the middle of boot
> --------------------------------------------------
> [    0.000000] Calibrating delay loop... 494.72 BogoMIPS (lpj=1933312)
> [    0.000000] pid_max: default: 32768 minimum: 301
> [    0.000000] Security Framework initialized
> [    0.000000] Mount-cache hash table entries: 512
> [    0.000000] CPU: Testing write buffer coherency: ok
> [    0.000000] Brought up 1 CPUs
> [    0.000000] SMP: Total of 1 processors activated (494.72 BogoMIPS).
> [    0.000000] regulator: core version 0.5
> [    0.000000] NET: Registered protocol family 16
>
> U-Boot 1.1.4 (Feb 11 2009 - 16:10:23)
>
> OMAP3430-GP rev 2, CPU-OPP2 L3-165MHz
> TI 3430SDP 1.0 Version + mDDR (Boot NOR)
> DRAM:  128 MB
> Flash: 128 MB
> NAND:128 MiB
> --------------------------------------------------
>
> 2. OMAP4 does a kernel PANIC
> -------------------------------------
> [    0.000000] Calibrating delay loop... 1195.29 BogoMIPS (lpj=4669440)
> [    0.000000] pid_max: default: 32768 minimum: 301
> [    0.000000] Security Framework initialized
> [    0.000000] Mount-cache hash table entries: 512
> [    0.000000] CPU: Testing write buffer coherency: ok
> [    0.000000] L310 cache controller enabled
> [    0.000000] l2x0: 16 ways, CACHE_ID 0x410000c2, AUX_CTRL 0x0e050000
> [    0.000000] CPU1: Booted secondary processor
> [    0.000000] Brought up 2 CPUs
> [    0.000000] SMP: Total of 2 processors activated (2395.78 BogoMIPS).
> [    0.000000] regulator: core version 0.5
> [    0.000000] NET: Registered protocol family 16
> [    0.000000] mux: Could not set signal i2c2_scl.i2c2_scl
> [    0.000000] mux: Could not set signal i2c2_sda.i2c2_sda
> [    0.000000] mux: Could not set signal i2c3_scl.i2c3_scl
> [    0.000000] mux: Could not set signal i2c3_sda.i2c3_sda
> [    0.000000] mux: Could not set signal i2c4_scl.i2c4_scl
> [    0.000000] mux: Could not set signal i2c4_sda.i2c4_sda
> -------------------------------------
>
> This is happening because 'omap_serial_init()' is hanging in the boot.
> On OMAP3 the watchdog is generating reboot because devices_init doesn't
> happens where as on OMAP4 it just hangs without reboot.
> The uart clock is not getting enabled after omap_device_idle as part
> of omap_serial_init.
> The omap_device_idle(will disable the clock) then omap_uart_block_sleep()
> should enable clock back disabled during the boot up phase.
> But omap_uart_block_sleep() stuffed version is binded only under
> CONFIG_PM and other version is just empty. Hence it is not enabling
> clock back as expected
>
> This patch adds uart clock enable code to omap_uart_block_sleep() function
> built with CONFIG_PM disabled.
> Thanks to Charulatha and Govindraj for their help on this debug.
>
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxx>
> Signed-off-by: Charulatha V <charu@xxxxxx>
> Signed-off-by: Govindraj.R <govindraj.raja@xxxxxx>


Acked-by: Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx>

This is a regression fix, so we should queue this for 2.6.37.

Thanks,

Kevin
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux