Hi,
Unfortunately there isn't much documentation available yet on the interals of S2E yet, you will have to read the code. Documenting the architecture in details has been on my todo list for a while, I hope to get to it at some point.
Fortunately, you do no need to read all the code. What you want is to understand for now is how libcpu and libtcg work as well as how libs2e glues them together and how it communicates with QEMU. You don't need to know much about libs2ecore and the other repos (at least not before you can actually run some ARM code in concrete mode).
So, build S2E in debug mode and use GDB to single step through various components. This way you will understand how guest code is translated, what happens with memory accesses, how are interrupts handled, etc.
To add a new architecture to libcpu, you will need to add a
target-arm folder (similar to target-i386) as well as update the build
system to compile the right files. You can't have multiple targets in
the same binary for now.
First start by making the arm-softmmu build work. Similar to i386-softmmu, it does not link with any S2E code, it's self-contained libs2e, libtcg, libcpu.
Once this works and you can boot the guest properly, move on to arm-s2e-softmmu.
Regarding QEMU, you will need to add KVM ARM extensions to support symbolic execution. Have a look at the last few commits in the qemu repo in order to understand how it is done for i386 [1]. The changes should be minimal.