We have a prototype board built around the TI8168. Out of three boards, we have experienced varying degrees of stability issues and corruption when transferring data over the Gigabit Ethernet. Oddly enough, uboot is able to transfer and flash data with good integrity (verified by CRC32 in UBoot and the TFTP server). Other issues we are experiencing are random kernel crashes and many CRC related complaints from the JFFS2 filesystem that the system is using in NAND. Due to the nature of the issues, my first impression was that the memory is either running out of spec, or that the DDR3 "software timing workaround" isn't working correctly. That said, I can run a cross compiled memtester under Linux for 24 hrs with no memory errors.
After what has been some fairly exhaustive electrical testing, I'm concerned that the issue is with the processor itself. Our design is based largely around the EVM, and I can run the same Kernel in that environment with no issues.
Since the chips in question are beta silicon, I would like to try to reduce the main processor clock from 1 GHz to 800 MHz in the Linux kernel. My impression is that the EVM chips were hand selected to allow for stable 1 GHz operation.
I've been studying "arch\arm\mach-omap2\clock816x_data.c", looking for a clean way to accomplish this, but I'm not having any luck.
What is the best way to set the master CPU clock under Linux?
Thank you!