Have you ever done a Linux boot repair before?
There are a few things you can do to fix this.
First off, I would make a liveusb. We are gonna try to avoid reinstalling, but we need a live system to work with.
Boot into it and mount your partitions under /mnt. So your / is on /mnt, your /boot is on /mnt/boot, etc…
arch-chroot /mnt /bin/bash.
From there, you’re in a fully functional chroot environment of your real system, with the convenience of a browser to help you.
You can then begin the boot repair process.
First things first, regenerate your initcpio, then reinstall grub on your disk. Once that’s done, remake your grub config and try rebooting. If this doesn’t fix it, reinstall your kernel, rebuild any dkms stuff you’ve got and see if that helps.
If that doesn’t help, I’ll have to get more info from you.