主要是提供一个思路,在别人的基础上做事提高效率
基于DIGI的u-boot命令
#define MMCCDEV "setenv mmcdev 0"
#define MMCANDROID "run partition_mmc_android"
#define MMCPART "mmc part"
#define MMC_BOOT "update android mmc 1 fat boot.img"
#define MMC_SYSTEM "update system mmc 1 fat system.img"
#define MMC_BOOT_ANDROID "setenv bootcmd dboot android mmc"
#define MMC_SAVEENV "saveenv"
#define BOOTD "boot"
#define UBOOT_UP "update uboot mmc 1 fat u-boot-ccimx6sbc.imx"
#define GPIO02_IO02_MUX_CON (*(volatile unsigned long *)0x20e0304)
#define GPIO02_IO02_DATA (*(volatile unsigned long *)0x20a0000)
#define GPIO02_IO02_DIR (*(volatile unsigned long *)0x20a0004)
#define HDMI_SET "setenv video_args video=mxcfb0:dev=hdmi,1920x1080M@60"
#define FINDCONFIGFILE "fatload mmc 1 0x80008000 config "
#define FORMAT_CACHE " bootargs_once=androidboot.cache=format "
#define FORMAT_DATA " bootargs_once=androidboot.data=format "
#define CCIMX6SBC_USER_LED0 IMX_GPIO_NR(2,2)
iomux_v3_cfg_t const mx6q_ccimx6sbc_userled_pad[] = {
MX6_PAD_NANDF_D2__GPIO_2_2|MUX_PAD_CTRL(NO_PAD_CTRL),
};
int update_mmc(void)
{
struct mmc *mmc;
int i=100*100*100;
mmc = find_mmc_device(0);
if(NULL==mmc)
return;
else {
mmc_init(mmc);
run_command(MMCCDEV,0);
printf("####################################\n");
printf("open led\n");
imx_iomux_v3_setup_multiple_pads(mx6q_ccimx6sbc_userled_pad, ARRAY_SIZE(mx6q_ccimx6sbc_userled_pad));
gpio_direction_output(CCIMX6SBC_USER_LED0,0);
gpio_set_value(CCIMX6SBC_USER_LED0, 1);
printf("0x%x\n",GPIO02_IO02_MUX_CON);
printf("0x%x\n",GPIO02_IO02_DIR);
printf("0x%x\n",GPIO02_IO02_DATA);
printf("#####################################\n");
run_command(UBOOT_UP,0);
run_command(MMCANDROID,0);
run_command(MMCPART,0);
run_command(MMC_BOOT,0);
run_command(MMC_SYSTEM,0);
run_command(MMC_BOOT_ANDROID,0);
run_command(HDMI_SET,0);
run_command(MMC_SAVEENV,0);
printf("closed led\n");
printf("#######################################\n");
gpio_set_value(CCIMX6SBC_USER_LED0, 0);
run_command(BOOTD,0);
}