eMMC Partition tools usage for msm7x30/msm8x60

同另外两篇

eMMC Partition tools usage for msm7x30/msm8x60

In the emmc boot, There are some changes in emmc partition
       partition.xml  � Everything begins with this file, which describes the number of partitions desired, and how many  
                              sectors  each one should be.
      PartitioningTool.py  � translates partition.xml into binary partitions
      msp.exe  � writes binary partitions to SD/eMMC cards using card reader
     mjsdload.cmm  � writes binary partitions to SD/eMMC cards using Trace32
      msp.py  � writes binary partitions to a single image file
      QPST � writes binary partitions to SD/eMMC cards on Target

Helper /Debug Tools
      parseBinaryPartitionFile.pl  � decodes MBR partition tables . Run "Perl parseBinaryPartitionFile.pl partition.bin"  
                                                 can generate the partition information
      parseGPT.pl  � decodes GPT partition tables
     
Partition.xml

  There add some property entry can be added in new partiton.xml  to specified the configuration.
  <parser_instructions>
          WRITE_PROTECT_BOUNDARY_IN_KB                = 0
          GROW_LAST_PARTITION_TO_FILL_DISK            = false
          ALIGN_ALL_LOGICAL_PARTITIONS_TO_WP_BOUNDARY = false
  </parser_instructions>

    WRITE_PROTECT_BOUNDARY_IN_KB: Typical boundaries are 64MB, i.e. 65536 KB. This means that a 256MB eMMC
     card has 4 write protect boundaries. Any or all of them can be marked as read-only. Different vendors allow  
    for different sized boundaries.
     
    GROW_LAST_PARTITION_TO_FILL_DISK: In partition.xml the size of each partition is specified. If this field  
    is TRUE, then the last partition size is ignored and set to 0. Then during patching this size is updated  
    such that the last partition extends to use all remaining space.  
     
    ALIGN_ALL_LOGICAL_PARTITIONS_TO_WP_BOUNDARY: To allow total flexibility, it could be that a partition that
    is currently writeable might need to be marked as read-only. This can only happen *if* that partition begins
    on a write protect boundary (i.e. 64MB). Thus if this field is TRUE, then all logical partitions are  
    positioned such that they begin on a write protect boundary.
   
   More detail, please refer 80-N4584-1 eMMC_Partition_Tables_Raw_Program for the detail.


PartitioningTool.py , new tools used to generate the the partition.xml
    When run the PartitioningTool.py, it will output following files  
 
     1. emmc_lock_regions.xml � holds the sector ranges that need to be marked as read-only by the operating system (this is
          from readonly="true" in partition.xml)
      i.e. modem code and boot images are typically on read-only partitions
      Typical Write-Protect boundary is 64MB = 131072 sectors = 0x20000 sectors This file below is protecting the very first
     64MB region of the card, Boundary #0  
        Starting at sector 0
        Ending at sector 131071 (for a total of 131072 sectors)

        <?xml version="1.0" ?>
        <protect>
          <!-- NOTE: This is an ** Autogenerated file ** -->
          <!-- NOTE: Sector size is 512bytes, WRITE_PROTECT_BOUNDARY_IN_KB=0,   WRITE_PROTECT_BOUNDARY_IN_SECTORS=0 -->
          <!-- NOTE: "num_sectors" in HEX "start_sector" in HEX, i.e. 10 really equals 16 !! -->
          <program boundary_num="0" num_boundaries_covered="1"  
               num_sectors="20000" num_sectors_dec="131072" physical_partition_number="0"   
               start_sector="0"    start_sector_dec="0"/>
          <information WRITE_PROTECT_BOUNDARY_IN_KB="0"/>
        </protect>

    2.partition0.bin � holds the partition tables, i.e. MBR followed by all EBRs
    This is the partition table in binary format. It is copied over to the storage device in a 1 to 1 manner.
    i.e. how it looks in partition0.bin is exactly how the partition table will look on the storage device.
    partition0.bin  s a "generic" file meant to fit on *any* size SD/eMMC  card, as a result, there are 0's that need to be  
    patched,such as EXT partition and last partition size.
     
    3. patch0.xml � patching instructions to tailor each partition table "partition0.bin" to a specific SD/eMMC card
    i.e. the partition0.bin partition tables can be applied to any size storage device
    As a result, there are empty values (zeros) in the partition tables that must be filled in with a specific cards sector size
    There are two ways to apply this patch
         
        (patch before) When you patch the "zeros" in the partition tables held in the file partition0.bin, and then write it to the card  
        (patch after) When you write partition0.bin to the card (which still has "zeros" in it),  and then patch the cards partition  
                             tables directly
     
    4.rawprogram0.xml � precise sector details of all partitions and what files (if any) need to be placed there,In addition to  
       writing partition tables onto a device, often times it is desired to write one or more files into the partition area as well,
      The File has partition name (i.e. label), where it begins (start_sector) and how big it is   (num_partition_sectors) It also  
      describes what file(s) to write to this partition, as well  as any offsets.
    
    example
     <program file_sector_offset="0" filename="partition0.bin" label="MBR"  
               num_partition_sectors="1" physical_partition_number="0"  
               size_in_KB="0.5" start_sector="0"/>

    <program file_sector_offset="1" filename="partition0.bin " label="EXT"  
               num_partition_sectors="2"  physical_partition_number="0"  
               size_in_KB="1.0" start_sector="779"/>
                
    The 1st line describes taking the 1st sector from partition0.bin, and writing it to
     sector 0 of the card

     The 2nd line describes taking the 2nd and 3rd sector from partition0.bin and writing it to sector  
     779 of the card
     i.e. file_sector_offset = 2 and num_partition_sectors=2
      
   5.loadpt.cmm: used by the mjsdload.cmm to flash the image.


msp.exe .used to apply the patches

  This program will program a memory card (SD/eMMC) attached to the PC as USB mass storage device
  Use -d to detect the path of the memory card if you are unsure what to do first
   
  Commands list:
   
    -h    (Print this help message)                    Ex. msp -h
    -d    (Detect which storage device ID is active)            Ex. msp -d
    -p    (Print partition information)                    Ex. msp -p /dev/sdb
    -pp    (Print partition information - DETAILED)            Ex. msp -pp /dev/sdb
    -x    (Write files as outlined in rawprogram.xml)            Ex. msp -x rawprogram.xml /dev/sdb
    -xx    (Write files as outlined in rawprogram.xml - DETAILED)        Ex. msp -xx rawprogram.xml /dev/sdb
    -s    (Write SINGLE IMAGE "singleimage.bin" as outlined in rawprogram.xml)            Ex. msp -s rawprogram.xml 8192
    -v    (Verify file written correctly as outlined in rawprogram.xml)    Ex. msp -v rawprogram.xml boot.img /dev/sdb
    -f    (Program single file as outlined in rawprogram.xml)        Ex. msp -f rawprogram.xml boot.img /dev/sdb

Program the SD/eMMC with msp.exe in mass storage mode

  STEPS                        Complete example (patchafter)
  parse partition.xml      python PartitioningTool.py partition.xml  
  Detect your device      msp -d
  Program your device   msp �x rawprogram0.xml /dev/sdb
  Patch your device        msp �xx patch0.xml /dev/sdb


  STEPS                         Complete example (patchbefore)
  parse partition.xml        python PartitioningTool.py partition.xml  
  Detect your device       msp -d
  Patch your files             msp �xx patch0.xml 15758336 (patch the 8GB card offline,this will change the partition0.bin)
  Program your device     msp �x rawprogram0.xml /dev/sdb
   
the msp.py can also used to patch the files , such as  
   python msp.py patch0.xml 15758336 ( (patch the 8GB card offline,this will change the partition0.bin)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值