It's my understanding that AArch64 is supposed to be backward compatible with AArch32, at least that is what the documentation says. But, I found one (1) page at https://en.wikichip.org/wiki/cavium/thunderx that says the ThunderX processors do not support AArch32. I can't find that anywhere other than that WikiChip page. I'm trying to move an assembly language course from Raspberry PI's to a dedicated server, but don't really want to have to completely redo the materials for AArch64, especially since I don't know of a current textbook with AArch64 support, either. Does someone definitively know if ThunderX supports AArch32 executables or not?
Cavium itself says it is an ARM64 core, so no Aarch32.
You can always run Qemu on the server and simulate an Aarch32. Qemu gives you also the advantage to customize the "board".