Our EVM6657 is not enumerating on 2 out of 3 host PC we've tried. I programmed the latest IBL from "mcsdk_2_01_02_06" (with the PLL lock workaround). The host where the board does enumerate only does so when I apply external power to the EVM.
This problem is all over the forum and earlier I have posted questions here:
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/273816/1123605.aspx
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/216539/1122702.aspx
The "solution" mostly ends up with "we changed host system". Something I am not comfortable with: there must be a good reason enumeration fails.
Here's some information regarding my setup:
I am running in Little Endian mode and I loaded the I2C EEPROM (address 0x51) with the latest IBL (from MCSDK mcsdk_2_01_02_06) with the PCIe PLL lock workaround. When I hookup an emulator I see the following values:
PC = 0x20B010B0 (In the Boot ROM. This is an IDLE instruction)
DEVSTAT(@0x2620020) = 0x00011809
BOOTMAGIC (0x8FFFFC) = 0x00000000
PCIE_SERDES_STS (@0x0262015C) = 0x00000001 (so PLL is LOCKed)
I tried first powering up the EVM and then the host in which case the PCIE_SERDES_STS changes from 0x00000209 (LOCK/LOSDTCT0/LOSDTCT1) to 0x00000001 (LOCK).
The only possible explanation I could find is that the x86 host uses spread spectrum clocking (SSC):
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/278885/982383.aspx
EDIT: The register SERDES_CFG0 (0x390) is set to 0x00062320, so RX_CDR = 100b = 0x4 = "Second order, low precision, threshold of 1. Best response to changes in frequency offset and fastest lock time, but lowest precision frequency offset matching. Suitable for use in systems with spread spectrum clocking".
So...I believe a host using SSC should not be a problem.
More links to similar issues:
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/222043.aspx
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/260354.aspx
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/123060/441967.aspx
http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/196023/699565.aspx
In our final design we are planning to use the ROM boot loader (RBL) to boot over PCIe from a Marvel ARM SoC. However, for debugging we plan on using the x86 host system with an EVM6657 and it is important to get this to work reliably.
Any help is hugely appreciated!
Dirk