歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> FL2440的U-boot-2010.09移植(三)DM9000網卡及開發板相關配置

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

日期:2017/3/1 10:18:22   编辑:Linux編程

一、在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. #if defined(CONFIG_S3C2410) /* Fout = 202.8MHz */
  7. #define M_MDIV 0xA1
  8. #define M_PDIV 0x3
  9. #define M_SDIV 0x1
  10. #endif
  11. #if defined(CONFIG_S3C2440) /* Fout = 405MHZ */
  12. #define M_MDIV 0x7f
  13. #define M_PDIV 0x2
  14. #define M_SDIV 0x1
  15. #endif
  16. #endif
  17. #define USB_CLOCK 1
  18. #if USB_CLOCK==0
  19. #define U_M_MDIV 0xA1
  20. #define U_M_PDIV 0x3
  21. #define U_M_SDIV 0x1
  22. #elif USB_CLOCK==1
  23. #if defined(CONFIG_S3C2410)
  24. #define U_M_MDIV 0x48
  25. #define U_M_PDIV 0x3
  26. #define U_M_SDIV 0x2
  27. #endif
  28. #if defined(CONFIG_S3C2440)/*見S3C2440數據手冊P227*/
  29. #define U_M_MDIV 0x38
  30. #define U_M_PDIV 0x2
  31. #define U_M_SDIV 0x2
  32. #endif
  33. #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. gpio->GPCCON = 0xAAAA56A9;
  8. gpio->GPCUP = 0xFFFFFFFF;
  9. ……
  10. 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