AnsweredAssumed Answered

[BF609] EPPI YFIFOERR underflowed

Question asked by C.PASQUIER on Nov 30, 2012
Latest reply on Feb 5, 2013 by C.PASQUIER

Hi everybody,


I currently experimente an ADSP-BF609 EZ-KIT Lite board with ucLinux, and v4l2 (using an ADZS Encoder EX3, on PPI2).

First, I start with ADI buildroot 2012R1-RC6-BF60X. I'm connected to the board using serial port.

I perform some basic testing with v4l2_video_display.

bfin_display and adv7511  compiled as module, and Kernel config set according wiki page for bfin_display.

Using a valid picture (from v4l2_video_capture), v4l2_video_display show it correctly on a monitor (via HDMI cable).


But I notice some out of sync display on the monitor (display spinning from top to bottom). I try a telnet connection, and display goes out of sync.

So, I start investigate it, because, i'm using the same code in another application, with heavy processing, and display is alway out of sync.


First, I add a trace in ppi.c (linux/linux-kernel/drivers/media/video/blackfin), in function  ppi_irq_err(). This trace printout PPI_STAT register value before it's clearing.

While display is out of sync, it prints out 2, with mean (if I correctly understand the HRM), YFIFOERR underflowed.


Then, I try to rise IRQ_EPPI2_CH0/CH1 priority (in ints-priority.c). Out of sync still there, but "spinning" is faster (so, it returns to a stable display faster).


Next, looking at HRM, I see a better with way to improve priority by reconfigure system crossbars (SCB). Nicely, a great developer just add support in trunk linux-kernel.

So, in linux-kernel config, I update SCB0 Master interface 0 (DDR), with more occurrence of SCB5.

Unfortunately, no change in sync display (and PPI irq error remains the same).

If even try to update SCB5 master interface without any change.

(I'm surprised that it have no incidence on it...)


Any suggestion on how to fix it ?

Anybody else face this kind of trouble ?