Kernel needs to be somewhere not nvme, as u-boot still does not have pci-e support.
For now, I load kernel from sd with root= pointing to nvme. It’s not a terrible solution.
I could put the kernel at the end of the SPI, where there is enough storage, but I would still need the sd, as u-boot configuration is held there. There’s space reserved in SPI for u-boot env, but it is not being used currently.
Using the sd as a clutch until pci-e support is in place seems to be the better solution for now.