Partition modification problem on TX2

Hi,
I am facing certain issues while modifying the flash_l4t_t186.xml file to include duplicate partitions.

Some details:
Device : Jetson TX2
L4T : 28.2.1

head -n 1 /etc/nv_tegra_release 
# R28 (release), REVISION: 2.1, GCID: 11272647, BOARD: t186ref, EABI: aarch64, DATE: Thu May 17 07:29:06 UTC 2018

Will attach the serial console boot log in a couple of days (don’t have the serial console cable)

What I am trying to do is create a redundant ‘c’ partition (‘a’ and ‘b’ present by default) for the following:
MB1NAME
MB1_BCT
SPENAME
MB2NAME
MPBNAME
SMD
TBCNAME
TBCDTB-NAME
TOSNAME
BPFNAME
BPFDTB-NAME
SCENAME
SC7NAME
BMP
SOS
LNXNAME
KERNELDTB-NAME
MBPNAME

So I modified the flash_l4t_t186.xml to include these redundant partitions, though the
(Attached as modified_1.txt)the flash was successful, the Jetson did not startup.

And once I specifically removed the MBPNAME’s (mts-bootpack) ‘c’ partition (leaving the others unchanged) the flash was successful and the Jetson booted up successfully without any issues.
(Attached as modified_2.txt)

Got the following output for sudo gdisk -l /dev/mmcblk0 from the config in modified_2.txt

sudo gdisk -l /dev/mmcblk0
Found valid GPT with protective MBR; using GPT.
Disk /dev/mmcblk0: 61071360 sectors, 29.1 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 00000000-0000-0000-0000-000000000000
Partition table holds up to 40 entries
First usable sector is 4097, last usable sector is 61071327
Partitions will be aligned on 1-sector boundaries
Total free space is 1 sectors (512 bytes)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            4097        58235864   27.8 GiB    0700  APP
   2        58235865        58244056   4.0 MiB     0700  mts-bootpack
   3        58244057        58252248   4.0 MiB     0700  mts-bootpack_b
   4        58252249        58253272   512.0 KiB   0700  cpu-bootloader
   5        58253273        58254296   512.0 KiB   0700  cpu-bootloader_b
   6        58254297        58255320   512.0 KiB   0700  cpu-bootloader_c
   7        58255321        58256344   512.0 KiB   0700  bootloader-dtb
   8        58256345        58257368   512.0 KiB   0700  bootloader-dtb_b
   9        58257369        58258392   512.0 KiB   0700  bootloader-dtb_c
  10        58258393        58264536   3.0 MiB     0700  secure-os
  11        58264537        58270680   3.0 MiB     0700  secure-os_b
  12        58270681        58276824   3.0 MiB     0700  secure-os_c
  13        58276825        58280920   2.0 MiB     0700  eks
  14        58280921        58282128   604.0 KiB   0700  bpmp-fw
  15        58282129        58283336   604.0 KiB   0700  bpmp-fw_b
  16        58283337        58284544   604.0 KiB   0700  bpmp-fw_c
  17        58284545        58285544   500.0 KiB   0700  bpmp-fw-dtb
  18        58285545        58286544   500.0 KiB   0700  bpmp-fw-dtb_b
  19        58286545        58287544   500.0 KiB   0700  bpmp-fw-dtb_c
  20        58287545        58291640   2.0 MiB     0700  sce-fw
  21        58291641        58295736   2.0 MiB     0700  sce-fw_b
  22        58295737        58299832   2.0 MiB     0700  sce-fw_c
  23        58299833        58312120   6.0 MiB     0700  sc7
  24        58312121        58324408   6.0 MiB     0700  sc7_b
  25        58324409        58336696   6.0 MiB     0700  sc7_c
  26        58336697        58340792   2.0 MiB     0700  FBNAME
  27        58340793        58602936   128.0 MiB   0700  BMP
  28        58602937        58865080   128.0 MiB   0700  BMP_b
  29        58865081        59127224   128.0 MiB   0700  BMP_c
  30        59127225        59192760   32.0 MiB    0700  SOS
  31        59192761        59258296   32.0 MiB    0700  SOS_b
  32        59258297        59323832   32.0 MiB    0700  SOS_c
  33        59323833        59454904   64.0 MiB    0700  kernel
  34        59454905        59585976   64.0 MiB    0700  kernel_b
  35        59585977        59717048   64.0 MiB    0700  kernel_c
  36        59717049        59718072   512.0 KiB   0700  kernel-dtb
  37        59718073        59719096   512.0 KiB   0700  kernel-dtb_b
  38        59719097        59720120   512.0 KiB   0700  kernel-dtb_c
  39        59720121        60244408   256.0 MiB   0700  CAC
  40        60244409        61071326   403.8 MiB   0700  UDA

I am not able to understand why this is happening.

@linuxdev gave a lot of suggestions and one of the things I was suggested was to modify the APPSIZE in the xml file such that the excess consumed by the new partitions are deducted from APPSIZE and also to make sure that it is divisible by 1024, but it didn’t seem to work.

Would be great if anybody has the solution and could explain why this is happening when including a redundant version for a particular partition.

Thanks
modified_1.txt (28.9 KB)
modified_2.txt (28.4 KB)

hello aramanujam,

you might also refer to TX1/TX2 Mass Storage Partitions Configuration chapter for more details.
thanks

Hi JerryChang,

I have already checked that link, it was mentioned in another thread regarding the addition of a new partition to emmc.
Referred this link to edit the xml file but the problem I face is, after modifying the xml file.
The problem is when I add a redundant partition of MBPNAME, and I have searched in the forums, but I have not found any solution to this.
I have gone through some topics relevant to partitioning in NVIDIA Tegra Linux Driver Package Dev Guide but have not found anything yet.

Thanks

hello aramanujam,

according to TX2 Bootloader Update and Redundancy chapter, the implementation has only two slots layout.
may I have more details about why you need three redundant partitions, thanks

Hi JerryChang,

Someone had asked whether I could create another slot and if possible, how would I do it
So I was searching the guide to find out if this could be done, so I started editing the XML file and found out I get the problem while adding the partition I mentioned in my previous reply.

If there is a possibility of doing this could you tell me how?

And if it is not possible it is fine, but could you tell me why?

Thanks

hello aramanujam,

it’s not support for more than two bootloader redundancy partitions.
currently on l4t-r28.2.1, A/B redundancy implemented for TX2 only supports two slots for each bootloader component.
thanks