FL2440的U-boot-2010.09移植(三)DM9000网卡及开发板相关配置


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

相关阅读:

U-Boot源代码下载地址

FL2440的U-boot-2010.09移植(一)
FL2440的U-boot-2010.09移植(二)
FL2440的U-boot-2010.09移植(三)DM9000网卡及开发板相关配置
FL2440的U-boot-2010.09移植(四) 添加NOR FLash启动支持
FL2440的U-boot-2010.09移植(五)uboot架构中NAND FLash驱动修改
FL2440的U-boot-2010.09移植(六)NAND FLash启动支持
FL2440的U-boot-2010.09移植(七)LCD的支持
针对FL2440开发板的u-boot-2010.09版本补丁

(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;  
  • 1
  • 2
  • 下一页

相关内容