I found the cause:
The call ioctl(fb, FBIOGET_FSCREENINFO, &fb_fix) in board_framebuffer.h sets initially the wrong line-length (fb-fix.line-length). The first time the call returns 640 for the line-length, the second time 1280. This has effect in the memory allocated for the framebuffer. It tries to write to memory which is not allocated, resulting in a segmentation fault.
So the question is: Why does ioctl(fb, FBIOGET_FSCREENINFO, &fb_fix) returns different values?
For now I can work around this to fix the screen size and not let the board init retrieve its settings.