Fix paperbrow bug with DTB symbols

The _binary_<dtb>_start symbols are not pointer to the first bytes but are
actually the first bytes of the DTB.

Now that the FEX and DTB parsing actually work, we can begin the real deal.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Parse the device tree and relocate it

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Integrate the zImage into the binary

Now, it is completely free-standing, and behaves exactly (or should behave)
like one of Allwinner's kernel.

The only remaining part to do is fixing up the DTBs with the infos taken from
the fex file.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Add device tree fixup functions

It only adds the machine compatible, model and bootargs for now, but it allows
to actually boot a mainline kernel and get a few things out of it.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Update the DTSI from sunxi-next

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Define other string manipulation functions

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Lookup in the FEX file for the default UART to output on

And pass it in /chosen/bootargs

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Fix a bug in the strcmp function

Whenever the two strings compared were having different sizes and with the
common part equal, strcmp was returning 0, which is obviously wrong.

Switch to a simpler implementation that actually work...

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Lookup UARTs into FEX, and set them as enabled in the DT accordingly

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>