Since those powerful chips are so damn cheap, maybe I can practice BGA routing and soldering with them? Maybe I can get a board made for about $50, and if it works, I can create my own BSP. I know for a fact that NXP mainlined the drivers for this chip, so it is very likely I can get stock Ubuntu or Debian armhf running on it.
1. You can, but not with $50 PCB. You need at least 4-mil process for 4-layer, or preferably 6-layer, unless you want to use plugged micro vias.
It would be much cheaper than buying the 4 chips alone anyway. So still worth it.
2. Routing dual 16-bit DDR is gonna be a great fun. When you bifurcate any high speed signal, things get rather nasty rather quickly.
Or can I just stick a laptop memory module onto it? That would be plain point to point connection from the chip to the RAM slot connector.
3. Don't use mainline kernel and u-boot. Use NXP's own one. They have an official BSP if you just want to boot the chip, and a community one if you want to customize it. You will need basics on Yocto.
I don't plan to use Yocto at all. Maybe I will need the kernel if it is the latest version, but I definitely plan to spend zero time on compiling the userland at all and just grab Debian or Ubuntu armhf. In fact the whole point of preferring mainline kernel over NXP's is because of Debian.
4. Prepare at least 16GB of RAM. Yocto for iMX6 fails to compile with 8GB if you don't have swap. It's one of the small things that have wasted me 2 days.
I have an idling server with 128GB RAM and 32 processor threads. Compiling the kernel should be a breeze.
5. Yocto is not very popular in China, expect to ask no one and read a lot of materials in English. Prepare to buy books from abroad. Packt has a few books, one of them is specifically written for fsl-community-bsp (the BSP you will be using), the book is called "Embedded Linux Projects Using Yocto Project Cookbooks".
First off, I am not planning on using Yocto in the first place. Second, I would rather not read Chinese documentations anyway since a lot of the writers of those provide no insight on what is going on anyway.
In fact, for the software, instead of u-boot directly launching Linux kernel, I might place a TiernoCore based UEFI in there so it can launch Linux, Darwin (the underlying UNIX part of macOS and iOS) and Windows.