If I run the following commads: devmem2 0x48004a40 w 0x0000038a # select 32kHz clock devmem2 0x48004a10 w 0x03007052 # enable iclk for gpt11 devmem2 0x48004a00 w 0x03007000 # enable fclk for gpt11 which all run sensibly and alter the registers, then I try to previous minimum example on address 0x48088024 (TCLK for gpt11) I get the following error: Unhandled fault: external abort on non-linefetch (0x1018) at 0x40020024 Bus error What puzzles me is that when I use devmem2 to read or write to the same register, everything works fine. On Tue, Oct 20, 2009 at 6:17 PM, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > * Brett Graham <graham@xxxxxxxxxxxxxxxxxxx> [091020 15:06]: >> I'm trying to mmap /dev/mem in python to access various registers on a >> gumstix overo (with an omap 3530 processor). Here is the code I'm >> using (as a minimal example): >> ---------------------------- >> import os, mmap >> MAP_MASK = mmap.PAGESIZE - 1 >> addr = (see below) >> >> f = os.open("/dev/mem", os.O_RDWR | os.O_SYNC) >> m = mmap.mmap(f, mmap.PAGESIZE, mmap.MAP_SHARED, mmap.PROT_WRITE | >> mmap.PROT_READ, offset=addr & ~MAP_MASK) >> m.seek(addr & MAP_MASK) >> c = m.read_byte() >> print c >> m.close() >> os.close(f) >> ---------------------------- >> >> If I use: addr = 0x48002178 everything works swimmingly. However, if I >> use: addr = 0x48088024 (or all the addresses I've tried > 0x48044000) >> I get the following error >> >> Unhandled fault: external abort on non-linefetch (0x1018) at 0x40020024 >> Bus error >> >> and python crashes. I'm basing the mmap flags and options off of >> devmem2.c. If I remove the O_SYNC flag from the os.open command, I can >> read and write to registers fine, but randomly I will get the >> Unhandled fault error and things will not work correctly. >> >> Am I using the right command to write to the omap registers? should I >> be using the O_SYNC flag? Any ideas where these errors are coming >> from? > > Sounds like you need to enable ick and fck for the device you're trying > to read. > > Tony > -- > 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 > -- 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