On Wed 2024-02-21 @ 07:38:41 PM, Quentin Schulz wrote: > Hi Trevor, > > On 2/19/24 18:48, 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. Due to the > > fact 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. This patch uses "--no-table" to only number the > > partitions that are numbered in the Rockchip wiki, as well as to give these > > partitions the partition numbers indicated in the wiki. > > > > 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 (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 7167 7104 3.5M Linux filesystem > > /dev/mmcblk1p2 16384 24575 8192 4M Linux filesystem > > /dev/mmcblk1p3 24576 32767 8192 4M Linux filesystem > > /dev/mmcblk1p4 32768 330955 298188 145.6M Microsoft basic data > > /dev/mmcblk1p5 330956 1504693 1173738 573.1M Linux filesystem > > > > Reviewed-by: Quentin Schulz <foss+yo...@0leil.net> > > Signed-off-by: Trevor Woerner <twoer...@gmail.com> > > --- > > 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 | 20 +++++++++++++------- > > 1 file changed, 13 insertions(+), 7 deletions(-) > > > > diff --git a/wic/rockchip.wks b/wic/rockchip.wks > > index 42b731ac47b2..b557f8137af1 100644 > > --- a/wic/rockchip.wks > > +++ b/wic/rockchip.wks > > @@ -8,17 +8,23 @@ > > # See: https://opensource.rock-chips.com/wiki_Partitions > > # > > # Partition Start Sector Number of Sectors > > -# loader1 64 8000 (idbloader / U-Boot SPL) > > -# reserved1 8064 128 > > -# reserved2 8192 8192 > > +# loader1 64 7104 (idbloader / U-Boot SPL) > > +# v_storage 7168 512 (vendor storage: e.g. serial > > number, MAC address, etc) > > +# reserved 7680 384 (not used) > > +# reserved1 8064 64 (legacy DRM key) > > +# uboot_env 8128 64 (U-Boo environment) > > +# reserved2 8192 8192 (legacy parameters, ATAGS, etc) > > # loader2 16384 8192 (U-Boot proper) > > -# atf 24576 8192 > > +# atf 24576 8192 (trusted OS e.g. ATF, OP-TEE, > > etc) > > # boot 32768 229376 > > # root 262144 - (suggested) > > -part loader1 --offset 64s --fixed-size 4000K --fstype=none > > --source rawcopy > > --sourceparams="file=${SPL_BINARY}" > > -part reserved1 --offset 8064s --fixed-size 64K --fstype=none > > -part reserved2 --offset 8192s --fixed-size 4096K --fstype=none > > +part loader1 --offset 64s --fixed-size 3552K --fstype=none > > --source rawcopy > > --sourceparams="file=${SPL_BINARY}" > > +part v_storage --offset 7168s --fixed-size 256K --fstype=none > > --no-table > > +part reserved --offset 7680s --fixed-size 192K --fstype=none > > --no-table > > +part reserved1 --offset 8064s --fixed-size 32K --fstype=none > > --no-table > > I would have kept this one and... > > > +part uboot_env --offset 8128s --fixed-size 32K --fstype=none > > --no-table > > +part reserved2 --offset 8192s --fixed-size 4096K --fstype=none > > --no-table > > this one in the table to keep the offsets identical before and after this > patch is applied. > > If you don't care about this, then I strongly suggest to have uboot_env > actually a partition (and maybe v_storage as well), those partitions are the > only ones among the one removed now that would make some sense to me to > expose to the user.
My preference would be to make them all show up in the partition table. If you're okay with that then I'm happy to spin a v4 to remove --no-table from all entries that have it in v3. The conundrum is whether or not to follow what Rockchip dictates in: https://opensource.rock-chips.com/wiki_Partitions By removing /boot I guess we're not going to be following what Rockchip says anyway, so we might as well expose them all for maximum flexibility.
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#62558): https://lists.yoctoproject.org/g/yocto/message/62558 Mute This Topic: https://lists.yoctoproject.org/mt/104451458/21656 Group Owner: yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-