Controlling which partition gets booted to in an A/B partitioning scheme using a boot partition

I have a multi paritioned microSD card as follows. P1 is the boot partition, P2 and P3 are rootfs partitions. Based on my investigations, I have ensured both P2 and P3 are bootable rootfs. By default, the BBB will boot to P2. By adding mmcpart=3 in /boot/uEnv.txt, I can let the BBB boot to P3. The partition booted to was verified using output from df and seeing which device / was mounted on

I would like to control which partition gets booted to using P1 instead of P2. I remove mmcpart=3 in /boot/uEnv.txt in P2. Then in 1 attempt I added a /uEnv.txt with mmcpart=3 in P1, and in another, I added a /boot/uEnv.txt with mmcpart=3 in P1. Both attempts did not work.

I have referenced the uboot patch[1] by Robert, but perhaps I have missed something

fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 14.5 GiB, 15523119104 bytes, 30318592 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: dos
Disk identifier: 0x9582e2f8

Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 212991 204800 100M 83 Linux
/dev/mmcblk0p2 212992 4308991 4096000 2G 83 Linux
/dev/mmcblk0p3 4308992 8404991 4096000 2G 83 Linux
/dev/mmcblk0p4 8404992 12503039 4098048 2G 5 Extended
/dev/mmcblk0p5 8407040 12503039 4096000 2G 83 Linux