ARM is generally a lot more sane than x86 when it comes to writing close to the metal, although there's a lot less info about stuff out there. Often reading the manuals for the chipset will get you what you want though..
ARM's problem is that every board has a slightly different variant...different instruction sets present or absent, different boot code, and the like. Linus was throwing a fit a few days ago about merge conflicts in a bunch of tables (which he thinks should not even be in the kernel), and noted that 35% of platform-specific code in the kernel is ARM-specific.
ARM is generally a lot more sane than x86 when it comes to writing close to the metal, although there's a lot less info about stuff out there. Often reading the manuals for the chipset will get you what you want though..