int mmc_unbind(struct udevice *dev) static int mmc_blk_probe(struct udevice *dev) { struct blk_desc *block_dev = dev_get_uclass_platdata(dev); int dev_num = block_dev->devnum; struct mmc *mmc = find_mmc_device(dev_num); if (!mmc) return -ENODEV; return mmc_init(mmc); } 1...
blk是要写入 MMC的块起始地址(十六进制 cnt是要写入的块大小,一个块为 512字节 可以使用命令“ mmc write”来升级 uboot,也就是在 uboot中更新 uboot。这里要用到 nfs或者 tftp命令,通过 nfs或者 tftp命令将新的 u-boot.bin下载到开发板的 DRAM中,然后再使用命令“ mmc write”将其写入到 MMC设备中。 ...
/*read image header to find the image size & load address*/count= blk_dread(mmc_get_blk_desc(mmc), sector,1, header);---将uboot.bin第一个sector写入到header地址。debug("hdr read sector %lx, count=%lu\n", sector, count);...if(IS_ENABLED(CONFIG_SPL_LOAD_FIT) &&... }else{ ret...
blk_select_hwpart_devnum(IF_TYPE_MMC, curr_device, MMC_PART_BOOT2); mmc_set_part_conf(mmc,0, MMC_PART_BOOT2,2);---切换到eMMC boot1分区。n=blk_dread(mmc_get_blk_desc(mmc), blk, cnt, addr);---读取一个block。if(n !=cnt) { free(addr);returnCMD_RET_FAILURE; }/*flush cach...
第二个 eMMC 线性引导分区(/dev/mmcblk1boot1)。 +int __MORT_NOTED_REUST ti_eMMC_BOARDed_GET (无效) +{ +内部 RC; +结构 udevice *dev; +结构 MMC *MMC; +结构 ti_common_eeprom * EP; +结构 ti_am_eeprom brDID; +结构 blk_desc*bdesc; ...
若想编译nand版本的uboot需要将 mx6ull_fire_mmc_defconfig 改为 mx6ull_fire_nand_defconfig sudo make distclean #编译emmc版本uboot sudo make ARCH=arm CROSS_COMPILE=arm-none-eabi- mx6ull_fire_mmc_defconfig #编译uboot sudo make ARCH=arm CROSS_COMPILE=arm-none-eabi- ...
get_disk_ro(dev_to_disk(dev)) ^ md->read_only); mmc_blk_put(md); return ret; } static ssize_t force_ro_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int ret; char *end; struct mmc_blk_data *md = mmc_blk_get(dev_to_disk(dev...
get_disk_ro(dev_to_disk(dev)) ^ md->read_only); mmc_blk_put(md); return ret; }static ssize_t force_ro_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int ret; char *end; struct mmc_blk_data *md = mmc_blk_get(dev_to_disk(dev)...
get_disk_ro(dev_to_disk(dev)) ^ md->read_only); mmc_blk_put(md); return ret; } static ssize_t force_ro_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { int ret; char *end; struct mmc_blk_data *md = mmc_blk_get(dev_to_disk(dev...
> setenv bootargs_mmc 'setenv bootargs ${bootargs} ip=dhcp root=/dev/mmcblk0p1 rootwait video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB666 vmalloc=400M fbmem=28M fbcon=28M' > setenv bootcmd_mmc 'run bootargs_mmc ; mmc dev 1; ext2load mmc 1 0x10800000 uImage-gpu 3916636; bootm ...