Another thing I noticed is that og image has 2 GPT partitions:
Disk rockpis_debian_buster_server_arm64_20210924_0412-gpt.img: 905.99 MiB, 950000128 bytes, 1855469 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: 3B415353-E727-4A03-8826-2ABFEF6808AC
Device Start End Sectors Size Type
rockpis_debian_buster_server_arm64_20210924_0412-gpt.img1 32768 262143 229376 112M EFI System
rockpis_debian_buster_server_arm64_20210924_0412-gpt.img2 262144 1855435 1593292 778M Linux filesystem
And rkdeveloptool lists those partitions as well:
$ rkdeveloptool ppt
**********Partition Info(GPT)**********
NO LBA Name
00 00008000 boot
01 00040000 rootfs
While Armbian image doesn't:
Disk Armbian_21.05.9_Rockpi-s_buster_legacy_4.4.247_minimal.img: 912 MiB, 956301312 bytes, 1867776 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: 0x68f75ccf
Device Boot Start End Sectors Size Id Type
Armbian_21.05.9_Rockpi-s_buster_legacy_4.4.247_minimal.img1 32768 1867775 1835008 896M 83 Linux
Disk Armbian_23.5.2_Rockpi-s_bookworm_current_6.1.32_minimal.img: 1.13 GiB, 1207959552 bytes, 2359296 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: 0x6812e470
Device Boot Start End Sectors Size Id Type
Armbian_23.5.2_Rockpi-s_bookworm_current_6.1.32_minimal.img1 32768 2359295 2326528 1.1G 83 Linux
But if I write Armbian_21.05.9_Rockpi-s_buster_legacy_4.4.247_minimal.img which doesn't have GPT, I still can boot from SD NAND, although rkdeveloptool shows no partitions:
$ rkdeveloptool ppt
Not found any partition table!
I didn't expect 23.5.2 to boot from NAND because it's bigger than NAND size (2359296 > 2027520) but I don't understand why it doesn't boot from SD card unless there's bootable image on the NAND.
Arguably, minimal image still should be able to fit to 1G NAND because it has 82M of free space. Also Python is still there (FAQ says it shouldn't) as well as bunch of locales (only needed locales can be generated manually instead) and doc packages. But that's not exactly relevant for the topic.