I.MX6 change boot partition 1 to User area

/************************************************************************************
 *                  I.MX6 change boot partition 1 to User area
 * 说明:
 *     需要在eMMC中切换U-Boot所在的位置,看一下eMMC的驱动,测试一下效果。
 *
 *                                            2017-5-26 台湾 中和区 曾剑锋
 ***********************************************************************************/

一、参考文档:
    1. emmc boot1 boot2 partition
        http://www.cnblogs.com/helloworldtoyou/p/6053460.html

二、驱动参考代码(drivers/mmc/core/mmc.c):
    /* set up boot partitions */
    static ssize_t
    setup_boot_partitions(struct device *dev, struct device_attribute *attr,
            const char *buf, size_t count)
    {
        ...
        /* enable the boot partition in boot mode */
        /* boot enable be -
         * 0x00 - disable boot enable.
         * 0x08 - boot partition 1 is enabled for boot.
         * 0x10 - boot partition 2 is enabled for boot.
         * 0x38 - User area is enabled for boot.
         */
        switch (part & EXT_CSD_BOOT_PARTITION_ENABLE_MASK) {
        case 0:
            boot_config = (ext_csd[EXT_CSD_PART_CONFIG]
                    & ~EXT_CSD_BOOT_PARTITION_ENABLE_MASK
                    & ~EXT_CSD_BOOT_ACK_ENABLE);
            break;
        case EXT_CSD_BOOT_PARTITION_PART1:
            boot_config = ((ext_csd[EXT_CSD_PART_CONFIG]
                    & ~EXT_CSD_BOOT_PARTITION_ENABLE_MASK)
                    | EXT_CSD_BOOT_PARTITION_PART1
                    | EXT_CSD_BOOT_ACK_ENABLE);
            break;
        case EXT_CSD_BOOT_PARTITION_PART2:
            boot_config = ((ext_csd[EXT_CSD_PART_CONFIG]
                    & ~EXT_CSD_BOOT_PARTITION_ENABLE_MASK)
                    | EXT_CSD_BOOT_PARTITION_PART2
                    | EXT_CSD_BOOT_ACK_ENABLE);
            break;
        case EXT_CSD_BOOT_PARTITION_ENABLE_MASK:
            boot_config = ((ext_csd[EXT_CSD_PART_CONFIG]
                    | EXT_CSD_BOOT_PARTITION_ENABLE_MASK)
                    & ~EXT_CSD_BOOT_ACK_ENABLE);
            break;
        default:
            pr_err("%s: wrong boot config parameter" \
                " 00 (disable boot), 08 (enable boot1)," \
                "16 (enable boot2), 56 (User area)\n",
                mmc_hostname(card->host));
            err = -EINVAL;
            goto err_rtn;
        }
        ...
    }

三、操作流程:
    1. 删除User area区域的U-Boot,防止识别到U-Boot,而不进入烧录模式:
        dd if=/dev/zero of=/dev/block/mmcblk3  bs=1024 count=10240
    2. 切换eMMC启动到User area区域启动:
        echo 56 > /sys/block/mmcblk3/device/boot_config

 

时间: 2024-08-14 00:08:47

I.MX6 change boot partition 1 to User area的相关文章

You cannot change a partition into an extended one or vice versa Delete it first

You cannot change a partition into an extended one or vice versa Delete it first 2015-08-07 16:23 by 潇湘隐者, 1211 阅读, 0 评论, 收藏, 编辑                                                                                                                          

WARNING: Re-reading the partition table failed with error 22: Invalid argument

在划分磁盘分区时,遇到错误"WARNING: Re-reading the partition table failed with error 22: Invalid argument" 如下所示: [root@DB-Server u02]# fdisk -l   Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16

源码-如何在安卓boot分区目录下添加文件?

问题描述 如何在安卓boot分区目录下添加文件? 我现在按照一个教程做安卓的verified boot,其中有一步是要在boot分区根目录下添加一个文件, 原文 "include it in the root of your boot image under the verity_key filename", 安卓aosp官方的原文 "add an RSA-2048 key to the /boot partition at /verity_key" 这里具体不知道

linux /boot目录简介

本文整理自网络: 一./boot/目录中的文件和目录 Linux系统在本地启动时,目录/boot/非常重要,其中的文件和目录有: (1)系统Kernel的配置文件: (2)启动管理程序GRUB的目录,里面存放的都是GRUB在启动时所需要的画面.配置及各阶段(stage1, stage1.5, stage 2)的文件.见下图. [root@localhost boot]# ls -al total 5623 drwxr-xr-x  4 root root    1024 Jul  6 04:49

I.MX6 Manufacturing Tool V2 (MFGTool2) ucl2.xml hacking

<!-- * Copyright (C) 2010-2013, Freescale Semiconductor, Inc. All Rights Reserved. * The CFG element contains a list of recognized usb devices. * DEV elements provide a name, class, vid and pid for each device. * * Each LIST element contains a list o

Linux 关于Transparent Hugepages的介绍

透明大页介绍 Transparent Huge Pages的一些官方介绍资料: Transparent Huge Pages (THP) are enabled by default in RHEL 6 for all applications. The kernel attempts to allocate hugepages whenever possible and any Linux process will receive 2MB pages if the mmap region is

linux系统升级指南

本文是假设您已经使用 Linux 一段时间,随着硬件的升级或空间不足,必须要升级 Linux 系统,抑或是想提供更多的网络服务给用户,因应这个需求而编写的. 一.调整虚拟内存: 在 Linux 上是使用 swap 技术将硬盘空间挪用为虚拟内存,当服务器建置完成使用一段日子以后,有可能会扩充硬件,其中又以扩充主存储器来改善执行效能最为普遍,在这种情形下,就需要增加 swap 虚拟内存的容量. 由于 swap 跟 LVM 机制一样能将多块磁盘分割区虚拟成一块,因此我们并不需要将旧的 swap 扇区先

Linux系统磁盘的分区、格式化、检验与挂载

磁盘分区 - fdisk fdisk的命令不需要记,因为输入m后,就会看到详细的帮助信息,如下所示: [root@lx15 /data ]# fdisk /dev/sda The number of cylinders for this disk is set to 36404. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems wi

详解LINUX中的fdisk命令

fdisk 操作硬盘的命令格式如下: [root@localhost beinan]# fdisk 设备 比如我们通过 fdisk -l 得知 /dev/hda 或者 /dev/sda设备:我们如果想再添加或者删除一些分区,可以用 [root@localhost beinan]# fdisk /dev/hda 或 [root@localhost beinan]# fdisk /dev/sda 注 在以后的例子中,我们要以 /dev/sda设备为例,来讲解如何用fdisk 来操作添加.删除分区等动