2012-10-09 08:58:07

by Hiremath, Vaibhav

[permalink] [raw]
Subject: [PATCH] ARM: OMAP2+: gpmc: Fix kernel BUG for DT boot mode

With recent changes in omap gpmc driver code, in case of DT
boot mode, where bootloader does not configure gpmc cs space
will result into kernel BUG() inside gpmc_mem_init() function,
as gpmc cs0 gpmc_config7[0].csvalid bit is set to '1' and
gpmc_config7[0].baseaddress is set to '0' on reset.

This use-case is applicable for any board/EVM which doesn't have
any peripheral connected to gpmc cs0, for example BeagleXM and
BeagleBone, so DT boot mode fails.

This patch adds of_have_populated_dt() check before creating
device, so that for DT boot mode, gpmc probe will not be called
which is expected behavior, as gpmc is not supported yet from DT.

Signed-off-by: Vaibhav Hiremath <[email protected]>
Cc: Afzal Mohammed <[email protected]>
Cc: Tony Lindgren <[email protected]>
Cc Paul Walmsley <[email protected]>
---
This should go in for rc1, as this breaks AM33xx boot.

arch/arm/mach-omap2/gpmc.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 8ab1e1b..c68f9e1 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -981,6 +981,10 @@ static int __init omap_gpmc_init(void)
struct platform_device *pdev;
char *oh_name = "gpmc";

+ /* If dtb is there, the devices will be created dynamically */
+ if (of_have_populated_dt())
+ return -ENODEV;
+
oh = omap_hwmod_lookup(oh_name);
if (!oh) {
pr_err("Could not look up %s\n", oh_name);
--
1.7.0.4


2012-10-10 06:49:34

by Afzal Mohammed

[permalink] [raw]
Subject: Re: [PATCH] ARM: OMAP2+: gpmc: Fix kernel BUG for DT boot mode


On Tuesday 09 October 2012 02:27 PM, Vaibhav Hiremath wrote:

> This patch adds of_have_populated_dt() check before creating

> Signed-off-by: Vaibhav Hiremath<[email protected]>
> Cc: Afzal Mohammed<[email protected]>

Reviewed-by: Afzal Mohammed <[email protected]>

2012-10-10 13:59:45

by Matt Porter

[permalink] [raw]
Subject: Re: [PATCH] ARM: OMAP2+: gpmc: Fix kernel BUG for DT boot mode

On Tue, Oct 09, 2012 at 02:27:20PM +0530, Vaibhav Hiremath wrote:
> With recent changes in omap gpmc driver code, in case of DT
> boot mode, where bootloader does not configure gpmc cs space
> will result into kernel BUG() inside gpmc_mem_init() function,
> as gpmc cs0 gpmc_config7[0].csvalid bit is set to '1' and
> gpmc_config7[0].baseaddress is set to '0' on reset.
>
> This use-case is applicable for any board/EVM which doesn't have
> any peripheral connected to gpmc cs0, for example BeagleXM and
> BeagleBone, so DT boot mode fails.
>
> This patch adds of_have_populated_dt() check before creating
> device, so that for DT boot mode, gpmc probe will not be called
> which is expected behavior, as gpmc is not supported yet from DT.
>
> Signed-off-by: Vaibhav Hiremath <[email protected]>
> Cc: Afzal Mohammed <[email protected]>
> Cc: Tony Lindgren <[email protected]>
> Cc Paul Walmsley <[email protected]>
> ---
> This should go in for rc1, as this breaks AM33xx boot.

Fixes BeagleBone on mainline.

Tested-by: Matt Porter <[email protected]>

-Matt

2012-10-10 14:19:57

by Hiremath, Vaibhav

[permalink] [raw]
Subject: RE: [PATCH] ARM: OMAP2+: gpmc: Fix kernel BUG for DT boot mode

On Wed, Oct 10, 2012 at 19:30:27, Porter, Matt wrote:
> On Tue, Oct 09, 2012 at 02:27:20PM +0530, Vaibhav Hiremath wrote:
> > With recent changes in omap gpmc driver code, in case of DT
> > boot mode, where bootloader does not configure gpmc cs space
> > will result into kernel BUG() inside gpmc_mem_init() function,
> > as gpmc cs0 gpmc_config7[0].csvalid bit is set to '1' and
> > gpmc_config7[0].baseaddress is set to '0' on reset.
> >
> > This use-case is applicable for any board/EVM which doesn't have
> > any peripheral connected to gpmc cs0, for example BeagleXM and
> > BeagleBone, so DT boot mode fails.
> >
> > This patch adds of_have_populated_dt() check before creating
> > device, so that for DT boot mode, gpmc probe will not be called
> > which is expected behavior, as gpmc is not supported yet from DT.
> >
> > Signed-off-by: Vaibhav Hiremath <[email protected]>
> > Cc: Afzal Mohammed <[email protected]>
> > Cc: Tony Lindgren <[email protected]>
> > Cc Paul Walmsley <[email protected]>
> > ---
> > This should go in for rc1, as this breaks AM33xx boot.
>
> Fixes BeagleBone on mainline.
>
> Tested-by: Matt Porter <[email protected]>
>

Thanks Matt and Afzal,

Tony can this be picked up for rc1?? I know you have already sent pull
request for rc1, but by any chance you are planning to send another request?

Thanks,
Vaibhav
> -Matt
>

2012-10-10 14:35:16

by Matt Porter

[permalink] [raw]
Subject: Re: [PATCH] ARM: OMAP2+: gpmc: Fix kernel BUG for DT boot mode

On Wed, Oct 10, 2012 at 02:19:40PM +0000, Vaibhav Hiremath wrote:
> On Wed, Oct 10, 2012 at 19:30:27, Porter, Matt wrote:
> > On Tue, Oct 09, 2012 at 02:27:20PM +0530, Vaibhav Hiremath wrote:
> > > With recent changes in omap gpmc driver code, in case of DT
> > > boot mode, where bootloader does not configure gpmc cs space
> > > will result into kernel BUG() inside gpmc_mem_init() function,
> > > as gpmc cs0 gpmc_config7[0].csvalid bit is set to '1' and
> > > gpmc_config7[0].baseaddress is set to '0' on reset.
> > >
> > > This use-case is applicable for any board/EVM which doesn't have
> > > any peripheral connected to gpmc cs0, for example BeagleXM and
> > > BeagleBone, so DT boot mode fails.
> > >
> > > This patch adds of_have_populated_dt() check before creating
> > > device, so that for DT boot mode, gpmc probe will not be called
> > > which is expected behavior, as gpmc is not supported yet from DT.
> > >
> > > Signed-off-by: Vaibhav Hiremath <[email protected]>
> > > Cc: Afzal Mohammed <[email protected]>
> > > Cc: Tony Lindgren <[email protected]>
> > > Cc Paul Walmsley <[email protected]>
> > > ---
> > > This should go in for rc1, as this breaks AM33xx boot.
> >
> > Fixes BeagleBone on mainline.
> >
> > Tested-by: Matt Porter <[email protected]>
> >
>
> Thanks Matt and Afzal,
>
> Tony can this be picked up for rc1?? I know you have already sent pull
> request for rc1, but by any chance you are planning to send another request?

I also found a separate problem with the mcasp clock data that's needed
for rc1. I just posted a patch for that as I need both this patch and the
clock data fix to boot from current mainline.

-Matt

2012-10-10 14:36:53

by Matt Porter

[permalink] [raw]
Subject: Re: [PATCH] ARM: OMAP2+: gpmc: Fix kernel BUG for DT boot mode

On Wed, Oct 10, 2012 at 10:35:01AM -0400, Matt Porter wrote:
> On Wed, Oct 10, 2012 at 02:19:40PM +0000, Vaibhav Hiremath wrote:
> > On Wed, Oct 10, 2012 at 19:30:27, Porter, Matt wrote:
> > > On Tue, Oct 09, 2012 at 02:27:20PM +0530, Vaibhav Hiremath wrote:
> > > > With recent changes in omap gpmc driver code, in case of DT
> > > > boot mode, where bootloader does not configure gpmc cs space
> > > > will result into kernel BUG() inside gpmc_mem_init() function,
> > > > as gpmc cs0 gpmc_config7[0].csvalid bit is set to '1' and
> > > > gpmc_config7[0].baseaddress is set to '0' on reset.
> > > >
> > > > This use-case is applicable for any board/EVM which doesn't have
> > > > any peripheral connected to gpmc cs0, for example BeagleXM and
> > > > BeagleBone, so DT boot mode fails.
> > > >
> > > > This patch adds of_have_populated_dt() check before creating
> > > > device, so that for DT boot mode, gpmc probe will not be called
> > > > which is expected behavior, as gpmc is not supported yet from DT.
> > > >
> > > > Signed-off-by: Vaibhav Hiremath <[email protected]>
> > > > Cc: Afzal Mohammed <[email protected]>
> > > > Cc: Tony Lindgren <[email protected]>
> > > > Cc Paul Walmsley <[email protected]>
> > > > ---
> > > > This should go in for rc1, as this breaks AM33xx boot.
> > >
> > > Fixes BeagleBone on mainline.
> > >
> > > Tested-by: Matt Porter <[email protected]>
> > >
> >
> > Thanks Matt and Afzal,
> >
> > Tony can this be picked up for rc1?? I know you have already sent pull
> > request for rc1, but by any chance you are planning to send another request?
>
> I also found a separate problem with the mcasp clock data that's needed
> for rc1. I just posted a patch for that as I need both this patch and the
> clock data fix to boot from current mainline.

Disregard now that you got me pointed to the pull request with this :)

-Matt

2012-10-16 17:43:26

by Tony Lindgren

[permalink] [raw]
Subject: Re: [PATCH] ARM: OMAP2+: gpmc: Fix kernel BUG for DT boot mode

* Matt Porter <[email protected]> [121010 07:38]:
> On Wed, Oct 10, 2012 at 10:35:01AM -0400, Matt Porter wrote:
> > On Wed, Oct 10, 2012 at 02:19:40PM +0000, Vaibhav Hiremath wrote:
> > > On Wed, Oct 10, 2012 at 19:30:27, Porter, Matt wrote:
> > > > On Tue, Oct 09, 2012 at 02:27:20PM +0530, Vaibhav Hiremath wrote:
> > > > > With recent changes in omap gpmc driver code, in case of DT
> > > > > boot mode, where bootloader does not configure gpmc cs space
> > > > > will result into kernel BUG() inside gpmc_mem_init() function,
> > > > > as gpmc cs0 gpmc_config7[0].csvalid bit is set to '1' and
> > > > > gpmc_config7[0].baseaddress is set to '0' on reset.
> > > > >
> > > > > This use-case is applicable for any board/EVM which doesn't have
> > > > > any peripheral connected to gpmc cs0, for example BeagleXM and
> > > > > BeagleBone, so DT boot mode fails.
> > > > >
> > > > > This patch adds of_have_populated_dt() check before creating
> > > > > device, so that for DT boot mode, gpmc probe will not be called
> > > > > which is expected behavior, as gpmc is not supported yet from DT.
> > > > >
> > > > > Signed-off-by: Vaibhav Hiremath <[email protected]>
> > > > > Cc: Afzal Mohammed <[email protected]>
> > > > > Cc: Tony Lindgren <[email protected]>
> > > > > Cc Paul Walmsley <[email protected]>
> > > > > ---
> > > > > This should go in for rc1, as this breaks AM33xx boot.
> > > >
> > > > Fixes BeagleBone on mainline.
> > > >
> > > > Tested-by: Matt Porter <[email protected]>
> > > >
> > >
> > > Thanks Matt and Afzal,
> > >
> > > Tony can this be picked up for rc1?? I know you have already sent pull
> > > request for rc1, but by any chance you are planning to send another request?
> >
> > I also found a separate problem with the mcasp clock data that's needed
> > for rc1. I just posted a patch for that as I need both this patch and the
> > clock data fix to boot from current mainline.
>
> Disregard now that you got me pointed to the pull request with this :)

Thanks applying $Subject patch into omap-for-v3.7-rc1/fixes-part2 and
ignoring the comments about the mcasp clock as it sounds like the mcasp
is already fixed.

Regards,

Tony