Fwd: mmap /dev/mem in python

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux