On Thu 2024-02-22 @ 12:04:13 PM, Trevor Woerner via lists.yoctoproject.org wrote: > Rockchip defines the expected layout/map of the default storage device. > Fill out the wks description so it matches. > > https://opensource.rock-chips.com/wiki_Partitions > > There are 2 partitions at the start that can not be specified in > rockchip.wks due to a limitation in wic which assumes all sizes (e.g. > --size or --fixed-size) are specified in units of 1024 bytes. Since these > partitions don't fall on 1024-byte boundaries, they can not be specified at > this time. > > Note: in the Rockchip layout, not all partitions are expected to show up > in the gpt partition table. While --no-table could be used to hide these > partitions from the partition table, as specified in the wiki, there's > no practical reason to do so. In fact, exposing these partitions in the > partition table makes it easier and safer for users to interact with them. > For example, a user dd'ing some data to a particular area would need to > ensure they're using the correct offset and size values when accessing the > raw disk directly. However being able to specify a partition ensures data > won't accidentally "spill" out into adjacent regions. > > Note: there is a mistake in the Rockchip table (which I've copied verbatim > here in this commit message but corrected in rockchip.wks). Going by the > values of the "Start Sector", the size of the "reserved1" partition is > listed as being 2x its actual size/number of sectors. > > Expected: > Partition Start Sector Number of Sectors Partition > Size PartNum in GPT Requirements > MBR 0 00000000 1 00000001 512 > 0.5KB > Primary GPT 1 00000001 63 0000003F 32256 > 31.5KB > loader1 64 00000040 7104 00001bc0 4096000 > 2.5MB 1 preloader (miniloader or U-Boot SPL) > Vendor Storage 7168 00001c00 512 00000200 262144 > 256KB SN, MAC and etc. > Reserved Space 7680 00001e00 384 00000180 196608 > 192KB Not used > reserved1 8064 00001f80 128 00000080 65536 > 64KB legacy DRM key > U-Boot ENV 8128 00001fc0 64 00000040 32768 32KB > reserved2 8192 00002000 8192 00002000 4194304 4MB > legacy parameter > loader2 16384 00004000 8192 00002000 4194304 4MB > 2 U-Boot or UEFI > trust 24576 00006000 8192 00002000 4194304 4MB > 3 trusted-os like ATF, OP-TEE > boot 32768 00008000 229376 00038000 117440512 > 112MB 4 kernel, dtb, extlinux.conf, ramdisk > rootfs 262144 00040000 - - - -MB > 5 Linux system > > Prior to this patch: > # fdisk -l /dev/mmcblk1 > GPT PMBR size mismatch (1504727 != 30375935) will be corrected by > write. > The backup GPT table is not on the end of the device. > Disk /dev/mmcblk1: 14.48 GiB, 15552479232 bytes, 30375936 sectors > Units: sectors of 1 * 512 = 512 bytes > Sector size (logical/physical): 512 bytes / 512 bytes > I/O size (minimum/optimal): 512 bytes / 512 bytes > Disklabel type: gpt > Disk identifier: 00000000-0000-0000-0000-00004D9B9EF0 > > Device Start End Sectors Size Type > /dev/mmcblk1p1 64 8063 8000 3.9M Microsoft basic data > /dev/mmcblk1p2 8064 8191 128 64K Microsoft basic data > /dev/mmcblk1p3 8192 16383 8192 4M Microsoft basic data > /dev/mmcblk1p4 16384 24575 8192 4M Microsoft basic data > /dev/mmcblk1p5 24576 32767 8192 4M Microsoft basic data > /dev/mmcblk1p6 32768 330955 298188 145.6M Microsoft basic data > /dev/mmcblk1p7 330956 1504693 1173738 573.1M Linux filesystem > > New: > # fdisk -l /dev/mmcblk1 > GPT PMBR size mismatch (1504473 != 30375935) will be corrected by > write. > The backup GPT table is not on the end of the device. > Disk /dev/mmcblk1: 14.48 GiB, 15552479232 bytes, 30375936 sectors > Units: sectors of 1 * 512 = 512 bytes > Sector size (logical/physical): 512 bytes / 512 bytes > I/O size (minimum/optimal): 512 bytes / 512 bytes > Disklabel type: gpt > Disk identifier: 00000000-0000-0000-0000-00004D9B9EF0 > > Device Start End Sectors Size Type > /dev/mmcblk1p1 64 7167 7104 3.5M Linux filesystem > /dev/mmcblk1p2 7168 7679 512 256K Linux filesystem > /dev/mmcblk1p3 7680 8063 384 192K Linux filesystem > /dev/mmcblk1p4 8064 8127 64 32K Linux filesystem > /dev/mmcblk1p5 8128 8191 64 32K Linux filesystem > /dev/mmcblk1p6 8192 16383 8192 4M Linux filesystem > /dev/mmcblk1p7 16384 24575 8192 4M Linux filesystem > /dev/mmcblk1p8 24576 32767 8192 4M Linux filesystem > /dev/mmcblk1p9 32768 330955 298188 145.6M Microsoft basic data > /dev/mmcblk1p10 330956 1504439 1173484 573M Linux filesystem > > Reviewed-by: Quentin Schulz <foss+yo...@0leil.net> > Signed-off-by: Trevor Woerner <twoer...@gmail.com> > --- > changes in v4: > - remove all --no-table to include all partitions in the gpt table > > changes in v3: > - tweaked to accommodate offsets specified in sectors > - clarified that the first 2 partitions can not be added > - change name of vstorage to v_storage > - fixed typo (ATR -> ATF) > - added Quentin's tag > > changes in v2: > - expand the commit message to show past, expected, and new behaviour > - spell out that vstorage stands for "vendor storage" > --- > wic/rockchip.wks | 18 ++++++++++++------ > 1 file changed, 12 insertions(+), 6 deletions(-)
Applied to meta-rockchip, master branch.
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#62610): https://lists.yoctoproject.org/g/yocto/message/62610 Mute This Topic: https://lists.yoctoproject.org/mt/104583938/21656 Group Owner: yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-