AnsweredAssumed Answered

BF609 EZ BOARD and WVGA/LCD Extender with 2014R1/RC1

Question asked by WillMoore on Jan 14, 2016
Latest reply on Jan 18, 2016 by WillMoore

I am having no luck getting the WVGA/LCD extender running under Linux using 2014R1/RC1.  With the same hardware setup (ADSP-BF609 EZ-BOARD rev 1.0 (C) 2012 and WVGA/LCD extender REV 1.1 connected so EZ BOARD P1A is plugged into WVGA/LCD J1) I have the colorbar demo in CCES working, but despite following https://ez.analog.com/message/214417#214417 "Correct answer" advice when I run video_test nothing happens.

 

Now in addition to that "Correct answer" advice, after reconfiguring the kernel with "make linux-menuconfig" as instructed, and buildroot with "make menuconfig" as instructed and rebuilding with "make", reinstalling the uImage on an SD-card, I inserted the bf609-nl8048 and ad7879-spi kernel modules:

 

root:/> modprobe bf609-nl8048

root:/> modprobe ad7879-spi

 

Initially I found that the bf609-nl8048 module insert failed, with an error like "PA0 already registered by physmap-flash" so I went back to the Linux configuration and removed MTD support, rebuilt, then the bf609-nl8048 insert worked.

 

The backlight turns on when I use the /sys/class/gpio calls however running video_test hangs, strace shows:

 

root:/sys/devices/platform/bfin-spi3.0/spi_master/spi0/spi0.65/gpio/gpio112> strace video_test

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x5beb000

stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=3919, ...}) = 0

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3

mmap2(NULL, 3919, PROT_READ, MAP_PRIVATE, 3, 0) = 0x5bb1000

close(3) = 0

open("/lib/libm.so.0", O_RDONLY) = 3

fstat(3, {st_mode=S_IFREG|0755, st_size=68676, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x570d000

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0j\0\1\0\0\0`\34\0\0004\0\0\0"..., 4096) = 4096

mmap2(NULL, 66956, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE|MAP_EXECUTABLE, 3, 0) = 0x5da0000

mmap2(NULL, 2292, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4045000

pread64(3, "wA\347@\314\225\344G\261\30\251\275\306\373\232\346\377\377\261\277\277k\f\371p\243\20\300\203\27}Z"..., 2288, 65536) = 2288

close(3) = 0

munmap(0x570d000, 4096) = 0

open("/lib/libgcc_s.so.1", O_RDONLY) = 3

fstat(3, {st_mode=S_IFREG|0755, st_size=62560, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x570d000

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0j\0\1\0\0\0\324#\0\0004\0\0\0"..., 4096) = 4096

mmap2(NULL, 57400, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE|MAP_EXECUTABLE, 3, 0) = 0x5dd0000

mmap2(NULL, 4232, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x5d98000

pread64(3, "\4\5\5\6\4\5\5\6\5\6\6\7\3\4\4\5\4\5\5\6\4\5\5\6\5\6\6\7\4\5\5\6"..., 4072, 57344) = 4072

close(3) = 0

munmap(0x570d000, 4096) = 0

open("/lib/libc.so.0", O_RDONLY) = 3

fstat(3, {st_mode=S_IFREG|0755, st_size=285436, ...}) = 0

mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x570d000

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0j\0\1\0\0\0t\321\0\0004\0\0\0"..., 4096) = 4096

mmap2(NULL, 276556, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE|MAP_EXECUTABLE, 3, 0) = 0x5c80000

mmap2(NULL, 16764, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x5c48000

pread64(3, "/networks\0\0\0/etc/hostid\0Error 0\0"..., 8628, 274432) = 8628

close(3) = 0

munmap(0x570d000, 4096) = 0

open("/lib/libc.so.0", O_RDONLY) = 3

fstat(3, {st_mode=S_IFREG|0755, st_size=285436, ...}) = 0

close(3) = 0

open("/lib/libc.so.0", O_RDONLY) = 3

fstat(3, {st_mode=S_IFREG|0755, st_size=285436, ...}) = 0

close(3) = 0

stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=23592, ...}) = 0

munmap(0x5bb1000, 3919) = 0

ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B57600 opost isig icanon echo ...}) = 0

ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B57600 opost isig icanon echo ...}) = 0

open("/dev/fb0", O_RDWR|O_LARGEFILE) = 3

ioctl(3, 0x4600, 0x5d9d99c) = 0

mmap2(NULL, 768000, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x7f06000

 

then nothing ... I can Ctrl-c out but it hangs there.

 

Any help appreciated.

 

I can see from  https://ez.analog.com/message/214417#214417 that there is some suggestion that this is a problem with silicon revision 0.0 BF609 on the EZ BOARD, however I believe my BF609 on the EZ BOARD is silicon revision 0.2.  At least that is what it is shown as in CCES, when Linux boots is actually says:

 

U-Boot 2013.07 (ADI-2014R1) (Jul 09 2014 - 18:59:03)

CPU: ADSP bf609-0.0 (Detected Rev: 0.0) (rsi master boot)

Board: ADI BF609 EZ-Kit board

  Support: http://blackfin.uclinux.org/

Clock: VCO: 500 MHz, Core: 500 MHz, System0: 125 MHz, System1: 125 MHz, Dclk: 250 MHz

RAM: 128 MiB

Flash: 16 MiB

MMC: Blackfin SDH: 0

In: serial

Out: serial

Err: serial

KGDB: [on serial] ready

other init

Net: mii0

Hit any key to stop autoboot: 0

reading /uImage

11123443 bytes read in 8067 ms (1.3 MiB/s)

## Booting kernel from Legacy Image at 01000000 ...

  Image Name: bf609-0.0-3.10.10-ADI-2014R1

  Image Type: Blackfin Linux Kernel Image (gzip compressed)

  Data Size: 11123379 Bytes = 10.6 MiB

  Load Address: 00001000

  Entry Point: 002b5990

  Verifying Checksum ... OK

  Uncompressing Kernel Image ... OK

Starting Kernel at = 002b5990

Linux version 3.10.10-ADI-2014R1 (vm@ubuntu) (gcc version 4.3.5 (ADI-2014R1-RC2) ) #29 Thu Jan 14 15:12:07 GMT 2016

register early platform devices

bootconsole [early_shadow0] enabled

ERROR: Not running on ADSP-BF609: unknown CPUID 0x0000 Rev 0.0

--snip--

 

 

It goes on to load Linux OK and I can e.g. run simple hello world type cross compiled applications and telnet in etc so I have some level of functioning system.  I don't know why it fails to identify it as a BF609 silicon revision 0.2 or if this is even relevant.

 

Right now I am just trying to get *something* on the WVGA/LCD extender screen!

Outcomes