Bind Options

A bind process creates a hypervisor image that combines DTB/IFS/KERNEL of server VMs, Hypervisor kernel, and PCT.

Note: Starting in 6.0.7.0, bind option needs pyparsing version 3.0.9.

Syntax for bind_partitions:

# for standard package/linux nsr production package
$ cd drive-foundation/

# for safety
$ cd drive-foundation-safety/

$ ./make/bind_partitions [-b <board_name>] <pct> [-p <pct_variant>] [-u <use_case>] [-r <storage_config>] [options]

Example of Standard Linux PCT with ECO (QSPI+UFS) use case on NVIDIA DRIVE AGX Orin Devkit:

bind_partitions -b p3710-10-a01 linux
Note: The default configuration of p3710-1* is Standard ECO QSPI+UFS. If you want ECO QSPI+eMMC boot, use the -u eco option.

Example of Standard QNX PCT with NDAS use case on NVIDIA DRIVE AGX Orin DevKit:

bind_partitions -b p3710-10-a01 qnx -u ndas

The following tables list the supported bind options.

Supported Bind Options

Note: Get the full <board_name> from Supported Platform and Board Name.
Use cases bind command -b <board_name> <pct> -p <pct_variant> -u <use_case> (default) -r <storage_config> (default) Comment
ECO bind_partitions
  • -b p3663-a01
  • -b p3663-a01-f1
  • -b p3663-0?-a0?
  • -b p3663-0?-a0?-f1
  • linux
  • linux -p nsr_prod
  • linux -p nsr_prod_debug
  • qnx
  • qnx -p prod
  • qnx -p prod_debug
  • qnx -p prod_debug_extra
  • (eco)
  • (32g)
  • -b p3710-1?-?0?*
  • -b p3710-1?-?0?-f1
  • linux
  • linux -p nsr_prod
  • linux -p nsr_prod_debug
  • qnx
  • qnx -p prod
  • qnx -p prod_debug
  • qnx -p prod_debug_extra
  • (eco_ufs_boot)
  • -u eco
  • (64g)
  • -r 32g
  • -r no_ufs
The -r no_ufs option disables UFS storage, which is used as the secondary boot device on P3710 default ECO use case. Since UFS will be disabled by this option, EMMC need to be the secondary boot device. To make EMMC as the secondary boot device of P3710 for the above case,specify the -u eco option with the -r no_ufs option.
  • -b p3898-b00
  • linux
  • (eco)
  • (32g)
p3898 supports chip sku TA977SA and EMMC as the secondary storage device.
NDAS bind_partitions
  • -b p3710-1?-?0?*
  • -b p3710-1?-?0?-f1
  • linux
  • qnx
  • qnx -p prod
  • qnx -p prod_debug
  • qnx -p prod_debug_extra
  • -u ndas
  • (high)
  • -r base
With the BASE storage configuration option (-r base),UFS device is disabled.
  • -b p3710-1?-?0?*
  • dual-qnx
  • dual-qnx -p prod
  • dual-qnx -p prod_debug
  • dual-qnx -p prod_debug_extra
  • (ndas)
dual-qnx supports only NDAS storage configuration.
REC bind_partitions
  • -b p4024-a00-a
  • -b p4024-a00-a-f1
  • -b p4024-a00-b
  • -b p4024-a00-b-f1
  • linux
Not applicable Not applicable

Bind Options for Power Profile

Platforms Standard, Linux Production, or Safety Power Profile (default)
p3898 Standard
  • (MAXP-A-977-D-02)
p3710-1?-?0? ECO use case: Standard or Linux production
  • (MAXP-A-990-D-04)
  • -w MAXP-A-990-S-02
NDAS use case: QNX Standard/safety
  • (MaxP-A-990-S-10)
Safety
  • (MAXP-A-990-S-02)
p3710-10-a01-ct03 Standard, Linux production, or safety
  • (MAXP-A-983-D02)
p3710-10-a01-ct04 Safety
  • (MAXP-A-977-D02)
  • -w MAXP-A-977-D01
p3710-10-a01-ct04 Standard or Linux production
  • (MAXP-A-977-D01)
  • -w MAXP-A-977-D02
p4024 Standard
  • (MAXP-A-990-D-03)

Bind Options for SOC ID for C2C in GOS-DT

Platforms SOC ID for C2C in GOS-DT Comments
p3663 / p3710 / p4024 -s <SOC_ID:1~4294967295> Specify SOC ID in GOS-DT and rebuild GOS device tree.

When the <SOC_ID> argument is specified with the -s option, SOC_IDENTIFICATION_VALUE is defined and the <SOC_ID> value will be set for soc_id in GOS-DT property.

#ifdef SOC_IDENTIFICATION_VALUE
	soc_id = <SOC_IDENTIFICATION_VALUE>;
#else
	soc_id = <1>;
#endif

DM-VERITY and Root Filesystem Permission for DRIVE AV Linux PCTs

To enable dm-verity, root filesytem partition permission should be read-only. Therefore, enabling dm-verity and read-write root filesystem cannot co-exist and will cause the bind_partition command to fail. The following table shows the default values and possible combination of the OS_ARGS_ENABLE_DM_VERITY value and the OS_ARGS_ROOT_MOUNT_PER value.

Platform and use cases Extra option of OS_ARGS_ENABLE_DM_VERITY Extra option of OS_ARGS_ROOT_MOUNT_PER OS_ARGS_ENABLE_DM_VERITY value OS_ARGS_ROOT_MOUNT_PER value
P3663/P3710/P3898 AV+L ECO Default (or OS_ARGS_ENABLE_DM_VERITY=0) Default (or OS_ARGS_ROOT_MOUNT_PER=rw) 0 rw
OS_ARGS_ROOT_MOUNT_PER=ro 0 ro
OS_ARGS_ENABLE_DM_VERITY=1 Default (or OS_ARGS_ROOT_MOUNT_PER=rw) Bind error due to DM-verity enabled and root filesystem have rw permission.
OS_ARGS_ROOT_MOUNT_PER=ro 1 ro
P3710 AV+L NDAS (-u ndas) P4024 AV+L-REC (-b p4024-*) Default (or OS_ARGS_ENABLE_DM_VERITY=0) Default (or OS_ARGS_ROOT_MOUNT_PER=ro) 0 ro
OS_ARGS_ROOT_MOUNT_PER=rw 0 rw
OS_ARGS_ENABLE_DM_VERITY=1 Default (or OS_ARGS_ROOT_MOUNT_PER=ro) 1 ro
OS_ARGS_ROOT_MOUNT_PER=rw Bind error due to DM-verity enabled and root filesystem have rw permission.

For instance, to enable dm-verity, you can specify OS_ARGS_ENABLE_DM_VERITY=1 OS_ARGS_ROOT_MOUNT_PER=ro with the bind_partitions command regardless of the default values.

bind_partitions -b p3663-a01 linux OS_ARGS_ENABLE_DM_VERITY=1 OS_ARGS_ROOT_MOUNT_PER=ro

Use NVMe Storage Instead of UFS

The P3710 platform has a UFS storage device module in the M.2 Key M slot by default. P3710 has the default ECO profile as QSPI and UFS with UFS as a secondary boot device by using the -u eco_ufs_boot option. If you want to replace the UFS storage with NVME, the default ECO profile will not boot. To do so, you must bind the ECO profile with QSPI and eMMC (with eMMC as the secondary boot device) by using the -r no_ufs option for PCT, as shown in the following example:
bind_partitions -b p3710-10-a01 -u eco -r no_ufs

The preceding options cause BCT, BPMP-DTB, GOS-DTB, and PCT to disable UFS device and enable NVMe (for example, PCIe configuration, storage partition layout, and disabling smmu of UFS partitions).

See Bind Options for more information about the bind_partitions command.