Arch ARM is basically a ready-to-go distro. Choose your board (if it&#x27;s supported, download images, and burn them). Which sounds great, but in the embedded world, that gets kinda limiting very quickly. Using binaries on boards can suck. Pulling down random bootloaders off the internet and hoping one works isn&#x27;t fun, and god forbid you need to debug the bootloader, now you need a compatible toolchain which you don&#x27;t have.<p>In contrast to something like Buildroot, which is a set of config files and dependency matching scripts that allows you to compile your own tool chain, and build your custom software with the same tooling you compiled your target uboot&#x2F;rootfs&#x2F;kernel on. Buildroot was great for being able to compile your boot loaders, kernels, rootfs, apps... and it was simple to use. But supporting multiple boards deploying the same programs was difficult, and moving up versions of the kernel and things like that was also difficult.<p>Enter yocto. The sweet sweet glory of yocto. 
Yocto defines a common base layer of configuration scripts and uses a system called bitbake to build your recipes. (bitbake emerged from portage). On top of that base layer you add layers you need. A lot of arm manufacturers are in the openembedded alliance (which yocto is built on top of) so you&#x27;ll find git repos from them supported just about every chip and SoC they make. so you pull that layer in. Then you browse the yocto repos for other layers you need to pull in, as well as develop your own layers containing your code. Cross-compilation is a snap, and most interestingly: their developer mode which puts you in a shell with a correctly configured environment so you can debug build breaks while cross compiling is amazing (and git aware)). 
So it&#x27;s pluses are
-tremendous board support
-easy ability to migrate to boards that aren&#x27;t supported (as easy as it can be anyhow) 
- ability to put your product code in one layer and just drag it into multiple yocto projects utilizing different board support layers allowing you to easily maintain your product on different processors. 
- It&#x27;s the cleanest system I&#x27;ve seen that does what it does. And by cleanest, I mean a pretty big jump over it&#x27;s predecessors into something unlike anything I&#x27;d ever seen in the embedded world. 
- It does have a harder learning curve than something like buildroot, which has a harder learning curve over something like Arch ARM (where Arch ARM supports your exact SoC)