歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

FL2440的U-boot-2010.09移植(三)DM9000網卡及開發板相關配置

一、在board/fl2440/fl2440.c 中對GPIO和PLL的配置進行修改

相關閱讀:

U-Boot源代碼下載地址 http://www.linuxidc.com/Linux/2011-07/38897.htm

FL2440的U-boot-2010.09移植(一)http://www.linuxidc.com/Linux/2012-06/63755.htm
FL2440的U-boot-2010.09移植(二)http://www.linuxidc.com/Linux/2012-06/63756.htm
FL2440的U-boot-2010.09移植(三)DM9000網卡及開發板相關配置 http://www.linuxidc.com/Linux/2012-07/64155.htm
FL2440的U-boot-2010.09移植(四) 添加NOR FLash啟動支持 http://www.linuxidc.com/Linux/2012-07/64156.htm
FL2440的U-boot-2010.09移植(五)uboot架構中NAND FLash驅動修改 http://www.linuxidc.com/Linux/2012-07/64157.htm
FL2440的U-boot-2010.09移植(六)NAND FLash啟動支持 http://www.linuxidc.com/Linux/2012-07/641587.htm
FL2440的U-boot-2010.09移植(七)LCD的支持 http://www.linuxidc.com/Linux/2012-07/641587.htm
針對FL2440開發板的u-boot-2010.09版本補丁 http://www.linuxidc.com/Linux/2012-07/64116.htm

(1)修改GPIO和PLL的配置(36行附近)為:

  1. #if FCLK_SPEED==0       /* Fout = 203MHz, Fin = 12MHz for Audio */   
  2. #define M_MDIV  0xC3   
  3. #define M_PDIV  0x4   
  4. #define M_SDIV  0x1   
  5. #elif FCLK_SPEED==1        
  6.   
  7. #if defined(CONFIG_S3C2410)     /* Fout = 202.8MHz */   
  8. #define M_MDIV  0xA1   
  9. #define M_PDIV  0x3   
  10. #define M_SDIV  0x1   
  11. #endif   
  12.   
  13. #if defined(CONFIG_S3C2440)     /* Fout = 405MHZ */   
  14. #define M_MDIV 0x7f   
  15. #define M_PDIV 0x2   
  16. #define M_SDIV 0x1   
  17. #endif   
  18. #endif   
  19.   
  20. #define USB_CLOCK 1   
  21.   
  22. #if USB_CLOCK==0   
  23. #define U_M_MDIV    0xA1   
  24. #define U_M_PDIV    0x3   
  25. #define U_M_SDIV    0x1   
  26. #elif USB_CLOCK==1   
  27.   
  28. #if defined(CONFIG_S3C2410)   
  29. #define U_M_MDIV    0x48   
  30. #define U_M_PDIV    0x3   
  31. #define U_M_SDIV    0x2   
  32. #endif   
  33.   
  34. #if defined(CONFIG_S3C2440)/*見S3C2440數據手冊P227*/   
  35. #define U_M_MDIV    0x38   
  36. #define U_M_PDIV    0x2   
  37. #define U_M_SDIV    0x2   
  38. #endif   
  39. #endif  

(2)修改board_init函數中的LED和蜂鳴器的GPIO寄存器配置:

  1. #if defined(CONFIG_S3C2440)   
  2.        gpio->GPBCON = 0x001dd7fc;//初始化相應的GPB 口為輸出口,為顯示LED作准備,之前忘了改導致燈不亮   
  3. #else   
  4.         gpio->GPBCON = 0x00044555;  
  5. #endif   
  6.     
  7. ……  
  8.           gpio->GPCCON =  0xAAAA56A9;  
  9.         gpio->GPCUP = 0xFFFFFFFF;  
  10. ……   
  11.   
  12.   
  13.   
  14.   
  15.   
  16.         gpio->GPDUP = 0xFFFFFFFF;  

 (3)為引導linux 內核,修改開發板的類型代碼

#if defined(CONFIG_S3C2410)
 /* arch number of SMDK2410-Board */
 gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;
#endif
#if defined(CONFIG_S3C2440)
 /* arch number of fl2440-Board */
 gd->bd->bi_arch_number = MACH_TYPE_S3C2440;
#endif

(4)為使int board_init (void)設置完成後,為了測試Uboot第二階段工作完成,我加入了LED燈亮起顯示,在int board_init (void)的最後添加:

  1.         icache_enable();  
  2.         dcache_enable();  
  3. #if defined(CONFIG_FL2440)   
  4.         gpio->GPBDAT = ((1<<5) | (1<<6) | (1<<8) | (1<<10));//使LED全部熄滅   
  5.         gpio->GPBDAT &= 0xffe;  /*添加關閉蜂鳴器語句*/  
  6.         gpio->GPBDAT = ~(3<<5);          
  7. #endif   
  8.         return 0;  
Copyright © Linux教程網 All Rights Reserved