May 20, 2015

Debugging Zedboard HDMI resolution 1360x768

Problem

I don't see the penguin logo on the 1360x768 HDMI monitor.  After debugging, I discovered that I can actually see something (can run the Qt pathstroke demo), but if the monitor is NOT on when the board boots, the resolution initialization is incorrect (1024x768 instead of 1360x768).

dmesg shows:


[drm] Initialized drm 1.1.0 20060810
drivers/gpu/drm/adi_axi_hdmi/axi_hdmi_drv.c:axi_hdmi_platform_probe[176]
platform 70e00000.axi_hdmi: Driver axi-hdmi requests probe deferral
...
adv7511-hdmi-snd fpga-axi@0:adv7511_hdmi_snd: adv7511 <-> 75c00000.axi-spdif-tx mapping ok
...
Console: colour dummy device 80x30
Console: switching to colour frame buffer device 128x48

axi-hdmi 70e00000.axi_hdmi: fb0:  frame buffer device
axi-hdmi 70e00000.axi_hdmi: registered panic notifier
[drm] Initialized axi_hdmi_drm 1.0.0 20120930 on minor 0

The "Console: switching to colour..." log above is from drivers/tty/vt/vt.c, do_bind_con_driver()

ADI diagnostic tool

To run this tool, get python

git clone https://github.com/analogdevicesinc/diagnostic_report.git

sed 's/@PREFIX@/\/usr/' adi-diagnostic-report.desktop.in > adi-diagnostic-report.desktop

install -d /usr/bin
install -d /usr/share/adi_diagnostic_report/
install ./adi_diagnostic_report /usr/bin/
install ./adi_diagnostic_report.glade /usr/share/adi_diagnostic_report/
xdg-desktop-menu install adi-diagnostic-report.desktop

In the end, it just wants to gather the following output:

dmesg

...

uname -a

Linux zed 3.19.0 #1 SMP PREEMPT Sat May 9 10:20:22 PDT 2015 armv7l GNU/Linux

/etc/os-release:
NAME=Buildroot
VERSION=2015.05-rc1-00029-g89f96ea-dirty
ID=buildroot
VERSION_ID=2015.05-rc1
PRETTY_NAME="Buildroot 2015.05-rc1"

Bitstream information: /sys/kernel/debug/adi_diagnostic/info

does NOT exist

/sys/kernel/debug

Nothing here!
Clock information: /sys/kernel/debug/clk/clk_summary
/sys/kernel/debug/adi_diagnostic/clock_monitor
Board status signals: /sys/kernel/debug/adi_diagnostic/status_monitor

Video out information: /sys/class/drm/*/status

# find  /sys/class/drm/
# find  /sys/class/drm/ -exec file {} \;
/sys/class/drm/: directory
/sys/class/drm/card0-HDMI-A-1: symbolic link to ../../devices/soc0/fpga-axi@0/70e00000.axi_hdmi/drm/card0/card0-HDMI-A-1
/sys/class/drm/card0: symbolic link to ../../devices/soc0/fpga-axi@0/70e00000.axi_hdmi/drm/card0
/sys/class/drm/controlD64: symbolic link to ../../devices/soc0/fpga-axi@0/70e00000.axi_hdmi/drm/controlD64
/sys/class/drm/version: drm 1.1.0 20060810

# file *
device:    symbolic link to ../../card0
dpms:      ASCII text
edid:      empty
enabled:   ASCII text
modes:     empty
power:     directory
status:    ASCII text
subsystem: symbolic link to ../../../../../../../class/drm

# cd /sys/devices/soc0/fpga-axi@0/70e00000.axi_hdmi/drm/card0/card0-HDMI-A-1
# cat dpms
On
# cat enabled
enabled
# cat status
disconnected

IIO device information: iio_info

/proc/config.gz
/proc/interrupts
/proc/iomem
/proc/cmdline

Device register settings (regmap): /sys/kernel/debug/regmap/*


ADI tools source revisions:
mount
/media/boot/VERSION: does NOT exist
FMC FRU EEPROMs: /sys/devices/*/eeprom
/var/log/Xorg.0.log
/proc/device-tree
/sbin/ifconfig -a
/sbin/route -n
/sys/bus/{platform,i2c,spi}/