As reported by Fedora CoreOS team, on the AArch64 / ARM64 architecture the new 6.2 kernels will not boot due to older bootloaders in Fedora IoT.
There is now some guidance from the Fedora IoT team on this here. This is probably the better course of action to take than my method below.
This recently impacted one of my devices, after it was rolling back to a 6.1 kernel I found the following:
CoreOS noticing the issue:
CoreOS reporting to Fedora IoT that they'd likely be impacted:
Briefly, the issue is that if your IoT/CoreOS/Silverblue/... install was initially installed a few versions back, you'll fail to boot the new kernels due to older bootloaders, which aren't automatically updated.
To fix this, I downloaded the Fedora IOT 38 raw image, decompressed it then set it up as a loopback device and copied the new EFI boot binaries to replace my existing ones.
CoreOS have their own fix for this, it's unclear if IoT do. I haven't seen any other complaints about it but I'm documenting this here in the hopes it can help anyone in a similar situation.
I.E.
curl -LO https://download.fedoraproject.org/pub/alt/iot/test/38/IoT/aarch64/images/Fedora-IoT-38.20230306.1-20230306.1.aarch64.raw.xz
xz -d Fedora-IoT-38.20230306.1-20230306.1.aarch64.raw.xz
losetup -P /dev/loop0 Fedora-IoT-38.20230306.1-20230306.1.aarch64.raw # the -P is important, so it parses the partitions
mount /dev/loop0p1 /mnt # this is the ESP partition
cd /mnt
cp -prv EFI /boot/efi
After this, my device booted kernel 6.2 without issues.
Linux 6.2.8-200.fc37.aarch64 #1 SMP PREEMPT_DYNAMIC Wed Mar 22 19:12:43 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
I can confirm that this workaround allows to boot the kernel 6.2.X coming from 6.18.X on armv8, on a Raspberry Pi 3B with Fedora IoT (as of march 2023)