Thanks for the input, guys. In performing more debugging today I've had some significant updates to report that will hopefully help narrow down what is happening. I noticed in a forum post viewtopic.php?p=597206
that one person said it took ~7mins for their CM to boot up once installed in a custom carrier board. So I decided to leave mine running for a while even though the screen was flickering heavily. After about 1 hour (yes, a whole hour) suddenly the flickering stopped
and I was presented with a login prompt! Here's a picture:
There was still some gray areas around the text, and the screen was still strangely a bit zoomed in compared to when I connect the CMIO board to my monitor (with the same CM3 installed), but the flickering was gone and the CM3 was responding to my keyboard commands. I was able to login, and even to run
with no problems. I then typed
, the flickering started again immediately (while it was booting down), it took several minutes to boot down, then it finally rebooted. The flickering unfortunately returned the same as before once it rebooted.
During the flickering in the long boot process, I did notice a couple FAILED messages that would appear after a while. I'm not sure if it's directly related to the problem I am having. Here is an example screenshot of this:
Another interesting note... as I mentioned before the screen flickers with a cursor in the top left corner, not simply a blank screen. I noticed that if I have a keyboard hooked up to my carrier board, if I randomly type keys this cursor responds to the key presses! No characters actually show up, but the cursor flickers right as I press any key. If my issue is simply HDMI signal integrity, I wouldn't expect this cursor to respond to key presses like that?
I can also confirm I have the same behavior (flickering and very long boot time) on both the two identical custom carrier boards I've assembled so far. I have been using only one CM3 between my carrier boards and CMIO this whole time. (All runs fine on CMIO).
To answer some of the questions from your comments:
I have not (deliberately) enabled OpenGL. I basically took the Raspbian Jessie Lite, flashed it to the CM3 using the CMIO board, and then plugged the CM3 into my board without changing settings.
I have the HDMI_HPD_N_1V8 line pulled high with a 100k resistor, the same as in the CMIO schematic. I also have the two MOSFETs (Q3 and Q4 on the CMIO schematic) and everything else the same as the CMIO schematic, just no AP2331 hot swap switch. I don't believe leaving out the AP2331 could be responsible for what I am seeing? My monitor sometimes has difficulty recognizing my board, although one procedure that seems to work reliably in getting the monitor to detect it is: 1) power up my board, 2) plug in HDMI cable, 3) power up my monitor.
My board is a 4-layer PCB with constant ground plane beneath the top signal layer. While I did my best to equalize the trace lengths, due to space constraints they have to make a bit of an S-turn. See picture here:
. The trace lengths are:
With all these new details, any ideas what could be the source of the flickering during boot and shutdown, where that cursor is coming from, and why it is taking so long to boot up each time on my custom carrier board when it boots quickly on the CMIO?