Beaglebone dies when accessing GPMC repeatedly

Greetings everyone,

I have an issue where my beaglebone’s heartbeat LED stop blinking and I am unable to do anything with it after the bug has happened.

The issue happens within a couple of seconds when running at 720 MHz.

Here is a trivial C program that triggers the bug every time it is run at 720 MHz:

Surprisingly, running the very same program at 600 MHz does not seem to trigger the bug.

Another surprise is that changing “writeval” on line 55 for “writeval & 0xFF” seems to prevent the bug from happening.

I am really puzzled by this issue.

Any help is appreciated!

Other info:
I am powering the beaglebone with a power adapter.
I have reproduced the issue on all beaglebones I have tried it on (5).
The GPMC is configured to be available at address 0x1000000.

I dont know why you will be ok when @600MHz

but for my previous experience , for a resolved register read, you can NOT use continuous 4k size map .

map_base = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, (target + 0x1000000) & ~MAP_MASK);

Is it too big?

What can I use?

I have done additional tests with the beaglebone connected to the other device.

The beaglebone dies 10 times out of 10 when not connected to the external board.

The beaglebone dies 0 times out of 10 when connected to the external board.