在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            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://www.biyoush.com/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ū)

            關閉