[U-Boot] Data abort in omap_gpio

Andreas Bießmann
2014-04-10T07:47:03Z

On 04/10/2014 09:22 AM, Andreas Bie?mann wrote:
> On 04/09/2014 05:37 PM, Tom Rini wrote:
>> On Wed, Apr 09, 2014 at 05:22:57PM +0200, Andreas Bie?mann wrote:
>
>>> (gdb) s
>>> 118 __raw_writel(l, reg);
>>> (gdb) print/s l
>>> $17 = 2048
>>> (gdb) print/x l
>>> $18 = 0x800
>>> (gdb) print/x reg
>>> $19 = 0x49050090
>>> (gdb) s
>>> ^C
>>> Program received signal SIGSTOP, Stopped (signal).
>>> _start () at /home/abiessmann/src/u-boot/arch/arm/cpu/armv7/start.S:27
>>> 27 ldr pc, _data_abort
>>> (gdb)
>>> --->8---
>>>
>>> (Encounterd with tricorder board current ToT)
>>>
>>> I'll dive into that tomorrow. If anyone has some pointeres, please speak
>>> out loud ;)
>>
>> You need to add the relevant CONFIG_OMAP3_GPIO_n define to enable
>> clocks/etc for the gpios being used.
>>
>
> Well, it is GPIO 42/43 which is located in bank 1. These clocks are not
> enabled explicitly in 708cfb74b7c6df9c37d3c48988a154be79daefeb. I
> haven't followed the dsicussen but wonder why we do not switch the
> clocks on gpio_request().
>
> So is it seems that 708cfb74b7c6df9c37d3c48988a154be79daefeb missed to
> enable clocks for bank 1. I'll try that.

Got it working. The numbering starts with '1' here (not '0'). Therefore
GPIO 42/43 is in bank 2. Enabling that bank with CONFIG_OMAP3_GPIO_2
stops data abort

Thanks for the hint! Fixup patch series for 2014.04 coming today.