當前位置:
首頁 >
2013.10u-boot移植之SD保存环境变量
發布時間:2024/9/3
37
豆豆
生活随笔
收集整理的這篇文章主要介紹了
2013.10u-boot移植之SD保存环境变量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本次修改是建立在上次版本之上,相對于nand的環境變量支持,SD卡的就相對麻煩些。
修改real210.h頭文件,修改部分如下所示:
/*-----------------------------------------------------------------------* Boot configuration*/ #if 0 //#define CONFIG_ENV_IS_IN_ONENAND 1 #define CONFIG_ENV_IS_NOWHERE 1 #define CONFIG_ENV_SIZE (128 << 10) /* 128KiB, 0x20000 */ #define CONFIG_ENV_ADDR (256 << 10) /* 256KiB, 0x40000 */ #define CONFIG_ENV_OFFSET (256 << 10) /* 256KiB, 0x40000 */#define CONFIG_USE_ONENAND_BOARD_INIT #define CONFIG_SAMSUNG_ONENAND 1 #define CONFIG_SYS_ONENAND_BASE 0xE7100000 #endif//#define CONFIG_ENV_IS_IN_NAND 1 /* 打開該宏,環境變量會保存在nand,同時CONFIG_ENV_IS_IN_MMC和CONFIG_SYS_MMC_ENV_DEV需要注釋掉*/ #define CONFIG_ENV_IS_IN_MMC 1 /* 打開該宏,環境變量會保存在mmc,同時CONFIG_SYS_MMC_ENV_DEV需要打開并注釋掉CONFIG_ENV_IS_IN_NAND*/ #define CONFIG_SYS_MMC_ENV_DEV 0#define CONFIG_CMD_SAVEENV /* 開啟環境變量操作命令*/ #define CONFIG_ENV_SIZE 0x40000 /* 環境變量的大小 */ #define CONFIG_ENV_ADDR 0 /* 該定義不清楚什么作用,測試結果它的值沒有影響環境變量的存儲地址 */ #define CONFIG_ENV_OFFSET 0x80000 /* 環境變量nand相對基址的偏移量,u-boot的大小一般在500KB以內,所以環境變量設置在512KB到1MB之間即可 */增加下面代碼
/*SD driver*/ #define CONFIG_GENERIC_MMC #define CONFIG_MMC #define CONFIG_SDHCI #define CONFIG_S5P_SDHCI #define CONFIG_CMD_MMC修改real210.c文件,增加下面的代碼: #ifdef CONFIG_GENERIC_MMC int board_mmc_init (bd_t *bis) { //printf ("haha\n"); /*#define GPG0CON (*(volatile unsigned int *)0xE02001A0) #define GPG0DRV (*(volatile unsigned int *)0xE02001AC) #define GPG3CON (*(volatile unsigned int *)0xE0200200) */#define CLK_DIV4 (*(volatile unsigned int *)0xE0100310) #define CLK_SRC4 (*(volatile unsigned int *)0xE0100210) #define MOUTMMC (50000000) /* 50MHz */ unsigned long clk_src, clk_div, mpll, div; //初始化MMC0 MM3管腳,4bit模式 *(volatile unsigned int *)GPG0CON = (0x2<<0)|(0x2<<4)|(0x2<<8)|(0x2<<12)|(0x2<<16)|(0x2<<20)|(0x2<<24); *(volatile unsigned int *)GPG3CON = (0x2<<0)|(0x2<<4)|(0x2<<8)|(0x2<<12)|(0x2<<16)|(0x2<<20)|(0x2<<24); //GPG0DRV = 0x3fdf; //初始化SD時鐘 clk_src = CLK_SRC4; clk_src &= ~((0xf << 12) | 0xf); clk_src |= (0x6 << 12) | 0x6; mpll = get_pll_clk(MPLL); div = ((mpll + MOUTMMC) / MOUTMMC) - 1; clk_div = CLK_DIV4; clk_div &= ~((0xf << 12) | 0xf); clk_div |= (div << 12) | div; CLK_SRC4 = clk_src; CLK_DIV4 = clk_div; return s5p_sdhci_init(0xEB000000, 0, 4)|s5p_sdhci_init(0xEB000000, 0, 4)|s5p_sdhci_init(0xEB300000, 1, 4); } #endif
改完保存,編譯,測試。
總結
以上是生活随笔為你收集整理的2013.10u-boot移植之SD保存环境变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2013.10u-boot移植之增加na
- 下一篇: uboot分析之bootm_start