What you're looking for is multiple things:
- some documentation that even allows you to figure out how to load a bootloader
- said bootloader (e.g. uboot), able to fetch a Linux kernel from some storage device, which requires drivers for said storage device
- a toolchain that can compile a kernel (and likely userland software) for the target platform
- that primarily means that your device vendor needs to tell you which CPU architecture they use, potentially how much memory they have where etc, if that's not detectable on your platform
- kernel drivers for all the in- and off-SoC peripherals
- a way of building a filesystem image to put onto the storage there (e.g. Yocto/bitbake)
You'll often find that especially low-cost SoC vendors don't maintain upstreamable drivers, but resort to keeping an old (or at least, not new) kernel around that they patched until it works with their hardware.
That means you'll often be stuck with figuring out what they changed relative to the upstream kernel, and port that to the current kernel :(
Alternatively, you can use the kernel they provide, but as said, that's often an unsatisfyingly old, or patched-until-it-barely-works kernel.
I'd generally recommend starting to work with SoCs where the vendor has taken the workload of writing Linux-Mainline-quality kernels and upstreaming them from your shoulders. You might simply want to start using a Beaglebone!