[U-Boot] Data abort in omap_gpio

Tom Rini trini at ti.com
Wed Apr 9 17:37:12 CEST 2014


On Wed, Apr 09, 2014 at 05:22:57PM +0200, Andreas Bießmann wrote:

> Hi all,
> 
> I've encountered a data abort in omap_gpio when using
> gpio_direction_output(). Anyone aware of that?
> 
> Here is the trace:
> 
> ---8<---
> gpio_direction_output (gpio=<value optimized out>, value=0) at
> /home/abiessmann/src/u-boot/drivers/gpio/omap_gpio.c:197
> 197		_set_gpio_dataout(bank, get_gpio_index(gpio), value);
> (gdb) s
> _set_gpio_dataout (gpio=<value optimized out>, value=0) at
> /home/abiessmann/src/u-boot/drivers/gpio/omap_gpio.c:102
> 102		void *reg = bank->base;
> (gdb) s
> 105		switch (bank->method) {
> (gdb) s
> 107			if (enable)
> (gdb) list
> 102		void *reg = bank->base;
> 103		u32 l = 0;
> 104	
> 105		switch (bank->method) {
> 106		case METHOD_GPIO_24XX:
> 107			if (enable)
> 108				reg += OMAP_GPIO_SETDATAOUT;
> 109			else
> 110				reg += OMAP_GPIO_CLEARDATAOUT;
> 111			l = 1 << gpio;
> (gdb) s
> 111			l = 1 << gpio;
> (gdb) s
> 108				reg += OMAP_GPIO_SETDATAOUT;
> (gdb) s
> 110				reg += OMAP_GPIO_CLEARDATAOUT;
> (gdb) s
> 111			l = 1 << gpio;
> (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.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140409/0a263121/attachment.pgp>


More information about the U-Boot mailing list