Tool/software: Linux
Our history is AM335x board based on Beagle Bone White with 253MB DDR2 and RGMII1 Ethernet using a Atheros AR8031-AL1B 10/100/1000 Mbps Transceiver. This board worked well for us. We recently upgraded the Kernel and OS with no problems.
We have designed a new board based on BBB with the same 512 DDR3L memory but still used the Atheros AR8031 Ethernet. This board will not boot any of the pre-made images for BBB, in fact, we get nothing on our UART0 debug port. We have been able to to make it through MLO and U-boot by trial and error using debug messages. This is actually the second revision of this board with the majority of the changes being power. The rev 1 board power ON bring up problems that we fixed with cuts and adds, but were not able to get the Kernal started on that board. The rev 2 board does power ON and start correctly, the power all looks good. But, we are unable to get this board past starting the Kernel. I sent the design schematic to TI for engineering review and received some recommendations, I followed all of the recommended changes. There was no recommendations for memory or Ethernet changes. Unfortunatly, we did not add JTAG to our design. We ran the AM335x DDR3 Software Leveling Program MLO from TI China on our rev1 and rev2 boards as well as BBB. The MLO Software Leveling Program seemed to run properly on rev1, but on rev2 and BBB we received the same results with all the outputs at zero no matter what configuration data was entered. The program runs to the end but doesn't return any useful data.
I'm questioning the board layout for memory. All signals are on three layers with a ground plane between each layer. My memory line lengths are: DDR_Ax, DDR_BAx, DDR_CK(n), DDR_CKE, DDR_CSn0, DDR_CASn, DDR_RASn, DDR_WEn, DDR_ODT are all 24.0xmm. The DDR_Dx, DDR_DQS0(n), DDRDQS1(n), DDR_DQM1, and DDRDQM0 are all 24.4xmm. Do these line lengths seem reasonable for a good memory interface? They are close to the BBB memory line lengths. So much that I wonder why the BBB memory configuration values wouldn't be close enough to start the Kernel.
Since there are very few differences in our board and BBB (SD card interface and the I2C EEPROM (addr 50) are the same) I'm also wondering if the code is getting hung up on the Ethernet differences between BBB and our board.
I could sure use some recommendations and help.
Thanks,
Brian Weir