我在原先的板上使用24M的时钟,可以在spl上使用usbeth tftp下载,使用没有问题
但是我把时钟换成19.2M之后,也修改了板上sysboot的跳线,但是现在spl usbeth无法使用,串口一直打印提示timeout sending packets to usb ethernet
但是使用ymodem串口下载运行uboot后,却是可以使用usbeth的
请问还有哪里需要修改的呢?是否19.2M在uboot spl里就不能配合usbeth使用?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我在原先的板上使用24M的时钟,可以在spl上使用usbeth tftp下载,使用没有问题
但是我把时钟换成19.2M之后,也修改了板上sysboot的跳线,但是现在spl usbeth无法使用,串口一直打印提示timeout sending packets to usb ethernet
但是使用ymodem串口下载运行uboot后,却是可以使用usbeth的
请问还有哪里需要修改的呢?是否19.2M在uboot spl里就不能配合usbeth使用?
当你的主时钟变为19.2M了后,除了硬件上的修改(配置时钟源的比特位),你也需要在uboot、kernel中也修改相应的时钟源配置,这点有做吗?还是说,你用的还是原来编译出的spl,uboot?
TI的SDK代码都是以24M时钟源作为案例配置的,如果改了主时钟,需要修改相应的源代码时钟源部分的配置参数。
我修改了am335x_evm.h中 时钟这一行
#define V_OSCK 19200000
并且按照如下网址附件所说配置了PLL
http://e2e.ti.com/support/arm/sitara_arm/f/791/t/361298.aspx
现在的现象是uboot 的spl打印了如下这一行就不动了
U-Boot SPL 2013.01.01-g8339ec1-dirty
追踪发现是board/ti/am335x/board.c:s_init()可以执行完毕
但是无法执行到common/spl/spl.c:board_init_f(),中间的过程有部分汇编,未发现有明显和时钟有关的内容
在配置的初期,会对PLL进行多个配置,前分频、后分频、倍频的数值不一样,这些都是要改的,印象中大部分的分频、倍频都在一个头文件中有定义的。你把你修改pll的部分,贴出来一下。
| 19.2 | MHz | ||||||||||||
| MPU DPLL | |||||||||||||
| OPP | CLKIN | N | M | M2 | Fint [MHz] | CLKOUT [MHz] | DCO [MHz] | ||||||
| TURBO | 19.2 | 23 | 1250 | 1 | 0.8 | 1000 | 2000 | ||||||
| TURBO | 19.2 | 23 | 1000 | 1 | 0.8 | 800 | 1600 | ||||||
| OPP120 | 19.2 | 3 | 150 | 1 | 4.8 | 720 | 1440 | ||||||
| OPP100 | 19.2 | 3 | 125 | 1 | 4.8 | 600 | 1200 | ||||||
| OPP50 | 19.2 | 3 | 125 | 2 | 4.8 | 300 | 1200 | ||||||
| CORE DPLL | |||||||||||||
| OPP | CLKIN | N | M | M4 | M5 | M6 | Fint [MHz] | DCO [MHz] | CLKOUTM4 | CLKOUTM5 | CLKOUTM6 | L3 | L4 |
| OPP100 | 19.2 | 11 | 625 | 10 | 8 | 4 | 1.6 | 2000 | 200 | 250 | 500 | 200 | 100 |
| OPP50 | 19.2 | 95 | 250 | 1 | 1 | 1 | 0.2 | 100 | 100 | 100 | 100 | 100 | 50 |
| DDR DPLL | |||||||||||||
| OPP | CLKIN | N | M | M2 | Fint [MHz] | CLKOUT [MHz] | DCO [MHz] | ||||||
| OPP100 DDD3 | 19.2 | 23 | 500 | 1 | 0.8 | 400 | 800 | ||||||
| OPP100 DDR2 | 19.2 | 47 | 665 | 1 | 0.4 | 266 | 532 | ||||||
| OPP50 DDR2 | 19.2 | 95 | 625 | 1 | 0.2 | 125 | 250 | ||||||
| OPP100 mDDR | 19.2 | 23 | 250 | 1 | 0.8 | 200 | 400 | ||||||
| OPP50 mDDR | 19.2 | 63 | 300 | 1 | 0.3 | 90 | 180 | ||||||
| PER DPLL | |||||||||||||
| OPP | CLKIN | N | M | M2 | Fint [MHz] | CLKOUT [MHz] | DCO [MHz] | MMC_CLK | CLK_48 | CLK_24 | CLK_32KHZ | ||
| OPP100 | 19.2 | 7 | 400 | 5 | 2.4 | 192 | 960 | 96 | 48 | 24 | 0.032768 | ||
| OPP50 | 19.2 | 73 | 370 | 1 | 0.25945946 | 96 | 96 | 48 | 24 | 12 | 0.032768 | ||
| DISP DPLL | |||||||||||||
| OPP | CLKIN | N | M | M2 | Fint [MHz] | CLKOUT [MHz] | DCO [MHz] | ||||||
| OPP100/50 | 19.2 | 127 | 320 | 1 | 0.15 | 48 | 96 |
是的,我就是安装上面那个网址所赋的excel表格修改的PLL值
现在最终发现是DDR PLL的设置不正确导致,N 和 M值按照上述要求修改后不正确(此时按程序SPL应该还在内部sram中运行,不明白为什么会涉及到DDR),修改后可以正常工作,结贴吧,谢谢