日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AM335x(TQ335x)學習筆記——u-boot-2014.10移植

          AM335x(TQ335x)學習筆記——u-boot-2014.10移植

          作者: 時間:2016-11-28 來源:網絡 收藏
          最近移植了下u-boot-2014.10到TQ335x,如果基于am335x evm進行移植,需要修改的地方并不多。

          由于TI的am335x evm開發(fā)使用了一個eeprom保存了板載配置信息,用來區(qū)分不同板子的型號的,而TQ335x沒有這個eeprom,因此,需要修改eeprom相關的部分,使u-boot適應TQ335x開發(fā)板。

          本文引用地址:http://yuyingmama.com.cn/article/201611/322817.htm

          使用source insight查看代碼,很容易發(fā)現,所有獲取板載配置的部分都是通過讀取eeprom獲得的,因此,首選修改read_eeprom(board/ti/am335x/board.c)函數,具體的修改如下:

          1. staticintread_eeprom(structam335x_baseboard_id*header)
          2. {
          3. #if1
          4. strcpy(header->name,"TQ335x");
          5. #else
          6. /*Checkifbaseboardeepromisavailable*/
          7. if(i2c_probe(CONFIG_SYS_I2C_EEPROM_ADDR)){
          8. puts("CouldnotprobetheEEPROM;somethingfundamentally"
          9. "wrongontheI2Cbus.");
          10. return-ENODEV;
          11. }
          12. /*readtheeepromusingi2c*/
          13. if(i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR,0,2,(uchar*)header,
          14. sizeof(structam335x_baseboard_id))){
          15. puts("CouldnotreadtheEEPROM;somethingfundamentally"
          16. "wrongontheI2Cbus.");
          17. return-EIO;
          18. }
          19. if(header->magic!=0xEE3355AA){
          20. /*
          21. *readtheeepromusingi2cagain,
          22. *butuseonlya1byteaddress
          23. */
          24. if(i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR,0,1,(uchar*)header,
          25. sizeof(structam335x_baseboard_id))){
          26. puts("CouldnotreadtheEEPROM;something"
          27. "fundamentallywrongontheI2Cbus.");
          28. return-EIO;
          29. }
          30. if(header->magic!=0xEE3355AA){
          31. printf("Incorrectmagicnumber(0x%x)inEEPROM",
          32. header->magic);
          33. return-EINVAL;
          34. }
          35. }
          36. #endif
          37. return0;
          38. }
          通過上述修改,u-boot不去讀取eeprom,而是直接將header的name賦值為"TQ335x",后面可以根據這一配置區(qū)分是否為TQ335x開發(fā)板。

          然后是修改get_dpll_ddr_params(board/ti/am335x/board.c)函數,具體的修改內容如下:

          1. conststructdpll_params*get_dpll_ddr_params(void)
          2. {
          3. structam335x_baseboard_idheader;
          4. enable_i2c0_pin_mux();
          5. i2c_init(CONFIG_SYS_OMAP24_I2C_SPEED,CONFIG_SYS_OMAP24_I2C_SLAVE);
          6. if(read_eeprom(&header)<0)
          7. puts("CouldnotgetboardID.");
          8. if(board_is_tq335x(&header)||board_is_evm_sk(&header))
          9. return&dpll_ddr_evm_sk;
          10. elseif(board_is_bone_lt(&header))
          11. return&dpll_ddr_bone_black;
          12. elseif(board_is_evm_15_or_later(&header))
          13. return&dpll_ddr_evm_sk;
          14. else
          15. return&dpll_ddr;
          16. }
          然后是修改sdram_init(board/ti/am335x/board.c)函數,具體的修改內容如下:
          1. voidsdram_init(void)
          2. {
          3. __maybe_unusedstructam335x_baseboard_idheader;
          4. if(read_eeprom(&header)<0)
          5. puts("CouldnotgetboardID.");
          6. if(board_is_evm_sk(&header)){
          7. /*
          8. *EVMSK1.2Aandlaterusegpio0_7toenableDDR3.
          9. *Thisissafeenoughtodoonolderrevs.
          10. */
          11. gpio_request(GPIO_DDR_VTT_EN,"ddr_vtt_en");
          12. gpio_direction_output(GPIO_DDR_VTT_EN,1);
          13. }
          14. if(board_is_evm_sk(&header)||board_is_tq335x(&header))
          15. config_ddr(303,&ioregs_evmsk,&ddr3_data,
          16. &ddr3_cmd_ctrl_data,&ddr3_emif_reg_data,0);
          17. elseif(board_is_bone_lt(&header))
          18. config_ddr(400,&ioregs_bonelt,
          19. &ddr3_beagleblack_data,
          20. &ddr3_beagleblack_cmd_ctrl_data,
          21. &ddr3_beagleblack_emif_reg_data,0);
          22. elseif(board_is_evm_15_or_later(&header))
          23. config_ddr(303,&ioregs_evm15,&ddr3_evm_data,
          24. &ddr3_evm_cmd_ctrl_data,&ddr3_evm_emif_reg_data,0);
          25. else
          26. config_ddr(266,&ioregs,&ddr2_data,
          27. &ddr2_cmd_ctrl_data,&ddr2_emif_reg_data,0);
          28. }
            上一頁 1 2 下一頁

          關鍵詞: AM335xTQ335xu-boo

          評論


          技術專區(qū)

          關閉