* [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash.
@ 2009-08-22 8:00 Santosh Shilimkar
2009-08-22 8:00 ` [PATCH 2/2 v2] ARM: OMAP4: Bypass the clock check Santosh Shilimkar
2009-08-23 19:56 ` [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash Kevin Hilman
0 siblings, 2 replies; 7+ messages in thread
From: Santosh Shilimkar @ 2009-08-22 8:00 UTC (permalink / raw)
To: linux-arm-kernel
After the patch series "[PATCH 00/14] OMAP PM fixes for .31-rc"
merge in 2.6.31-rc5, the kernel crashed during boot on OMAP4430.
This patch fixes it by adding UART4 support and related code.
Without this patch omap_serial_init() would produce " NULL pointer
dereference" and kernel crashes in the bootup on OMAP4430 platform.
Some more info on the merge issue can be found here.
More info- http://lkml.org/lkml/2009/8/20/192
Note: While merging this patch,"IO_ADDRESS" needs to be changed
to "OMAP2_IO_ADDRESS" if the Tony's below series is already merged in.
http://www.mail-archive.com/linux-omap at vger.kernel.org/msg15072.html
Signed-off-by: Syed Rafiuddin <rafiuddin.syed@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
---
arch/arm/mach-omap2/board-4430sdp.c | 2 +-
arch/arm/mach-omap2/serial.c | 27 ++++++++++++++++++++++++++-
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index b0c7402..1b22307 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -39,7 +39,7 @@ static struct platform_device *sdp4430_devices[] __initdata = {
};
static struct omap_uart_config sdp4430_uart_config __initdata = {
- .enabled_uarts = (1 << 0) | (1 << 1) | (1 << 2),
+ .enabled_uarts = (1 << 0) | (1 << 1) | (1 << 2) | (1 << 3),
};
static struct omap_lcd_config sdp4430_lcd_config __initdata = {
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index a7421a5..e1be77b 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -112,7 +112,21 @@ static struct plat_serial8250_port serial_platform_data2[] = {
.flags = 0
}
};
-
+#ifdef CONFIG_ARCH_OMAP4
+static struct plat_serial8250_port serial_platform_data3[] = {
+ {
+ .membase = IO_ADDRESS(OMAP_UART4_BASE),
+ .mapbase = OMAP_UART4_BASE,
+ .irq = 70,
+ .flags = UPF_BOOT_AUTOCONF,
+ .iotype = UPIO_MEM,
+ .regshift = 2,
+ .uartclk = OMAP24XX_BASE_BAUD * 16,
+ }, {
+ .flags = 0
+ }
+};
+#endif
static inline unsigned int serial_read_reg(struct plat_serial8250_port *up,
int offset)
{
@@ -550,6 +564,17 @@ static struct omap_uart_state omap_uart[OMAP_MAX_NR_PORTS] = {
},
},
},
+#ifdef CONFIG_ARCH_OMAP4
+ {
+ .pdev = {
+ .name = "serial8250",
+ .id = PLAT8250_DEV_FOURPORT,
+ .dev = {
+ .platform_data = serial_platform_data3,
+ },
+ },
+ },
+#endif
};
void __init omap_serial_init(void)
--
1.5.4.7
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2 v2] ARM: OMAP4: Bypass the clock check.
2009-08-22 8:00 [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash Santosh Shilimkar
@ 2009-08-22 8:00 ` Santosh Shilimkar
2009-08-23 19:56 ` [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash Kevin Hilman
1 sibling, 0 replies; 7+ messages in thread
From: Santosh Shilimkar @ 2009-08-22 8:00 UTC (permalink / raw)
To: linux-arm-kernel
Second reason of OMAP4 boot failure on 2.6.31.rc6, the UART
platform data is not getting registered to kernel.
Registration was failing because of clock check failure in
omap_serial_init().
Below patch fix the same.
OMAP4 clock framework patches are still getting discussed on mailing
list so till then we need this.
Signed-off-by: Syed Rafiuddin <rafiuddin.syed@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
---
arch/arm/mach-omap2/serial.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index e1be77b..6bbdfe0 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -620,8 +620,11 @@ void __init omap_serial_init(void)
uart->fck = NULL;
}
- if (!uart->ick || !uart->fck)
- continue;
+ /* FIXME: Remove this once the clkdev is ready */
+ if (!cpu_is_omap44xx()) {
+ if (!uart->ick || !uart->fck)
+ continue;
+ }
uart->num = i;
p->private_data = uart;
--
1.5.4.7
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash.
2009-08-22 8:00 [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash Santosh Shilimkar
2009-08-22 8:00 ` [PATCH 2/2 v2] ARM: OMAP4: Bypass the clock check Santosh Shilimkar
@ 2009-08-23 19:56 ` Kevin Hilman
2009-08-24 11:49 ` Kevin Hilman
2009-09-18 11:51 ` Russell King
1 sibling, 2 replies; 7+ messages in thread
From: Kevin Hilman @ 2009-08-23 19:56 UTC (permalink / raw)
To: linux-arm-kernel
Santosh Shilimkar <santosh.shilimkar@ti.com> writes:
> After the patch series "[PATCH 00/14] OMAP PM fixes for .31-rc"
> merge in 2.6.31-rc5, the kernel crashed during boot on OMAP4430.
> This patch fixes it by adding UART4 support and related code.
> Without this patch omap_serial_init() would produce " NULL pointer
> dereference" and kernel crashes in the bootup on OMAP4430 platform.
>
> Some more info on the merge issue can be found here.
> More info- http://lkml.org/lkml/2009/8/20/192
>
> Note: While merging this patch,"IO_ADDRESS" needs to be changed
> to "OMAP2_IO_ADDRESS" if the Tony's below series is already merged in.
> http://www.mail-archive.com/linux-omap at vger.kernel.org/msg15072.html
>
> Signed-off-by: Syed Rafiuddin <rafiuddin.syed@ti.com>
> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Acked-by: Tony Lindgren <tony@atomide.com>
> Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
One other problem, after looking at the Zoom2 UART stuff...
> ---
> arch/arm/mach-omap2/board-4430sdp.c | 2 +-
> arch/arm/mach-omap2/serial.c | 27 ++++++++++++++++++++++++++-
> 2 files changed, 27 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
> index b0c7402..1b22307 100644
> --- a/arch/arm/mach-omap2/board-4430sdp.c
> +++ b/arch/arm/mach-omap2/board-4430sdp.c
> @@ -39,7 +39,7 @@ static struct platform_device *sdp4430_devices[] __initdata = {
> };
>
> static struct omap_uart_config sdp4430_uart_config __initdata = {
> - .enabled_uarts = (1 << 0) | (1 << 1) | (1 << 2),
> + .enabled_uarts = (1 << 0) | (1 << 1) | (1 << 2) | (1 << 3),
> };
>
> static struct omap_lcd_config sdp4430_lcd_config __initdata = {
> diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
> index a7421a5..e1be77b 100644
> --- a/arch/arm/mach-omap2/serial.c
> +++ b/arch/arm/mach-omap2/serial.c
> @@ -112,7 +112,21 @@ static struct plat_serial8250_port serial_platform_data2[] = {
> .flags = 0
> }
> };
> -
> +#ifdef CONFIG_ARCH_OMAP4
> +static struct plat_serial8250_port serial_platform_data3[] = {
> + {
> + .membase = IO_ADDRESS(OMAP_UART4_BASE),
> + .mapbase = OMAP_UART4_BASE,
> + .irq = 70,
> + .flags = UPF_BOOT_AUTOCONF,
> + .iotype = UPIO_MEM,
> + .regshift = 2,
> + .uartclk = OMAP24XX_BASE_BAUD * 16,
> + }, {
> + .flags = 0
> + }
> +};
> +#endif
> static inline unsigned int serial_read_reg(struct plat_serial8250_port *up,
> int offset)
> {
> @@ -550,6 +564,17 @@ static struct omap_uart_state omap_uart[OMAP_MAX_NR_PORTS] = {
> },
> },
> },
> +#ifdef CONFIG_ARCH_OMAP4
> + {
> + .pdev = {
> + .name = "serial8250",
> + .id = PLAT8250_DEV_FOURPORT,
This should not be FOURPORT, it should just be a number. In this case,
it should be 3 (the others start from zero.)
The Zoom2 one should then be changed to something >= 4.
Kevin
> + .dev = {
> + .platform_data = serial_platform_data3,
> + },
> + },
> + },
> +#endif
> };
>
> void __init omap_serial_init(void)
> --
> 1.5.4.7
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash.
2009-08-23 19:56 ` [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash Kevin Hilman
@ 2009-08-24 11:49 ` Kevin Hilman
2009-08-24 12:26 ` Shilimkar, Santosh
2009-09-18 11:51 ` Russell King
1 sibling, 1 reply; 7+ messages in thread
From: Kevin Hilman @ 2009-08-24 11:49 UTC (permalink / raw)
To: linux-arm-kernel
Kevin Hilman <khilman@deeprootsystems.com> writes:
> Santosh Shilimkar <santosh.shilimkar@ti.com> writes:
>
>> After the patch series "[PATCH 00/14] OMAP PM fixes for .31-rc"
>> merge in 2.6.31-rc5, the kernel crashed during boot on OMAP4430.
>> This patch fixes it by adding UART4 support and related code.
>> Without this patch omap_serial_init() would produce " NULL pointer
>> dereference" and kernel crashes in the bootup on OMAP4430 platform.
>>
>> Some more info on the merge issue can be found here.
>> More info- http://lkml.org/lkml/2009/8/20/192
>>
>> Note: While merging this patch,"IO_ADDRESS" needs to be changed
>> to "OMAP2_IO_ADDRESS" if the Tony's below series is already merged in.
>> http://www.mail-archive.com/linux-omap at vger.kernel.org/msg15072.html
>>
>> Signed-off-by: Syed Rafiuddin <rafiuddin.syed@ti.com>
>> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>> Acked-by: Tony Lindgren <tony@atomide.com>
>> Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
>
> One other problem, after looking at the Zoom2 UART stuff...
>
>> ---
>> arch/arm/mach-omap2/board-4430sdp.c | 2 +-
>> arch/arm/mach-omap2/serial.c | 27 ++++++++++++++++++++++++++-
>> 2 files changed, 27 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
>> index b0c7402..1b22307 100644
>> --- a/arch/arm/mach-omap2/board-4430sdp.c
>> +++ b/arch/arm/mach-omap2/board-4430sdp.c
>> @@ -39,7 +39,7 @@ static struct platform_device *sdp4430_devices[] __initdata = {
>> };
>>
>> static struct omap_uart_config sdp4430_uart_config __initdata = {
>> - .enabled_uarts = (1 << 0) | (1 << 1) | (1 << 2),
>> + .enabled_uarts = (1 << 0) | (1 << 1) | (1 << 2) | (1 << 3),
>> };
>>
>> static struct omap_lcd_config sdp4430_lcd_config __initdata = {
>> diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
>> index a7421a5..e1be77b 100644
>> --- a/arch/arm/mach-omap2/serial.c
>> +++ b/arch/arm/mach-omap2/serial.c
>> @@ -112,7 +112,21 @@ static struct plat_serial8250_port serial_platform_data2[] = {
>> .flags = 0
>> }
>> };
>> -
>> +#ifdef CONFIG_ARCH_OMAP4
>> +static struct plat_serial8250_port serial_platform_data3[] = {
>> + {
>> + .membase = IO_ADDRESS(OMAP_UART4_BASE),
>> + .mapbase = OMAP_UART4_BASE,
>> + .irq = 70,
>> + .flags = UPF_BOOT_AUTOCONF,
>> + .iotype = UPIO_MEM,
>> + .regshift = 2,
>> + .uartclk = OMAP24XX_BASE_BAUD * 16,
>> + }, {
>> + .flags = 0
>> + }
>> +};
>> +#endif
>> static inline unsigned int serial_read_reg(struct plat_serial8250_port *up,
>> int offset)
>> {
>> @@ -550,6 +564,17 @@ static struct omap_uart_state omap_uart[OMAP_MAX_NR_PORTS] = {
>> },
>> },
>> },
>> +#ifdef CONFIG_ARCH_OMAP4
>> + {
>> + .pdev = {
>> + .name = "serial8250",
>> + .id = PLAT8250_DEV_FOURPORT,
>
> This should not be FOURPORT, it should just be a number. In this case,
> it should be 3 (the others start from zero.)
Santosh,
I've changed the .id field to '3' and will queue up this fix for the
next merge window along with my fixes queue[1]. Please let me know if you
want to do otherwise.
Kevin
[1] My fixes queue for the next window is the pm-upstream/fixes-32 branch
which is based on Tony's for-next branch.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash.
2009-08-24 11:49 ` Kevin Hilman
@ 2009-08-24 12:26 ` Shilimkar, Santosh
2009-08-24 12:39 ` Kevin Hilman
0 siblings, 1 reply; 7+ messages in thread
From: Shilimkar, Santosh @ 2009-08-24 12:26 UTC (permalink / raw)
To: linux-arm-kernel
> >> static inline unsigned int serial_read_reg(struct plat_serial8250_port
> *up,
> >> int offset)
> >> {
> >> @@ -550,6 +564,17 @@ static struct omap_uart_state
> omap_uart[OMAP_MAX_NR_PORTS] = {
> >> },
> >> },
> >> },
> >> +#ifdef CONFIG_ARCH_OMAP4
> >> + {
> >> + .pdev = {
> >> + .name = "serial8250",
> >> + .id = PLAT8250_DEV_FOURPORT,
> >
> > This should not be FOURPORT, it should just be a number. In this case,
> > it should be 3 (the others start from zero.)
>
> Santosh,
>
> I've changed the .id field to '3' and will queue up this fix for the
> next merge window along with my fixes queue[1]. Please let me know if you
> want to do otherwise.
This is fine Kevin. Thanks !!
Bye the way I have also posted v3 version in which I changed the .id field to 3.
Regards,
Santosh
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash.
2009-08-24 12:26 ` Shilimkar, Santosh
@ 2009-08-24 12:39 ` Kevin Hilman
0 siblings, 0 replies; 7+ messages in thread
From: Kevin Hilman @ 2009-08-24 12:39 UTC (permalink / raw)
To: linux-arm-kernel
"Shilimkar, Santosh" <santosh.shilimkar@ti.com> writes:
>> >> static inline unsigned int serial_read_reg(struct plat_serial8250_port
>> *up,
>> >> int offset)
>> >> {
>> >> @@ -550,6 +564,17 @@ static struct omap_uart_state
>> omap_uart[OMAP_MAX_NR_PORTS] = {
>> >> },
>> >> },
>> >> },
>> >> +#ifdef CONFIG_ARCH_OMAP4
>> >> + {
>> >> + .pdev = {
>> >> + .name = "serial8250",
>> >> + .id = PLAT8250_DEV_FOURPORT,
>> >
>> > This should not be FOURPORT, it should just be a number. In this case,
>> > it should be 3 (the others start from zero.)
>>
>> Santosh,
>>
>> I've changed the .id field to '3' and will queue up this fix for the
>> next merge window along with my fixes queue[1]. Please let me know if you
>> want to do otherwise.
>
> This is fine Kevin. Thanks !!
>
> Bye the way I have also posted v3 version in which I changed the .id field to 3.
Yeah, saw that after I replied. Thanks!
Kevin
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash.
2009-08-23 19:56 ` [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash Kevin Hilman
2009-08-24 11:49 ` Kevin Hilman
@ 2009-09-18 11:51 ` Russell King
1 sibling, 0 replies; 7+ messages in thread
From: Russell King @ 2009-09-18 11:51 UTC (permalink / raw)
To: linux-arm-kernel
On Sun, Aug 23, 2009 at 10:56:14PM +0300, Kevin Hilman wrote:
> This should not be FOURPORT, it should just be a number. In this case,
> it should be 3 (the others start from zero.)
>
> The Zoom2 one should then be changed to something >= 4.
No it should not. There's an enum to control the numbering of these.
Use that.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-09-18 11:51 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-22 8:00 [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash Santosh Shilimkar
2009-08-22 8:00 ` [PATCH 2/2 v2] ARM: OMAP4: Bypass the clock check Santosh Shilimkar
2009-08-23 19:56 ` [PATCH 1/2 v2] ARM: OMAP4: Fix NULL pointer dereference crash Kevin Hilman
2009-08-24 11:49 ` Kevin Hilman
2009-08-24 12:26 ` Shilimkar, Santosh
2009-08-24 12:39 ` Kevin Hilman
2009-09-18 11:51 ` Russell King
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).