[ARM] Adding the i.MX6 SPI device in the device tree.
arm32: Fix strex inline asm compiling error.

Signed-off-by: CoryXie <cory.xie@gmail.com>
[MAKEFILE] Simplify dependency file generation.

Echoing the directory of the dependency target and then running '-MM' is not
optimized. Using '-MT' allows to specify the dependency target name.
[CORE] Add IRQ chaining entry and exit function.

The MXC GPIO driver is base on IRQ chaining, and requires this.
[DRIVERS] Adding MXC GPIO driver.

This driver is required by the i.MX SPI driver.
For now, I tried not to use the generic GPIO driver, as it would increase code
size without being necessary.
This driver cannot be tested yet.
[ARM] Correcting GPIO3 IRQ line definition.

Xvisor device tree format is slightly different from Linux's one.
The IRQ should be written as plain number, and not without specifying the
sharing flag nor the interrupt type.
This although can be written with these specifiers (modifying the driver
accordingly), but it would break Xvisor device tree format.

Also, the IRQ number is the IRQ line, without the 32 base IRQ offset.
[ARM] Adding the ARCH_MXC definition.

This definition is used by i.MX platform driver configuration, to ensure the
platform set is an i.MX one.
[CORE] Adding error number definitions.

The SPI driver requires some error numbers that were not yet defined.
[CORE] Adding the nano delay loop.

The nano delay loop is required by the GPIO bitbanging SPI driver.
[DRIVERS] SPI driver added.
[DRIVERS] SPI GPIO bitbanging driver added.

This driver is required by the i.MX SPI driver.
[DRIVERS] i.MX SPI driver added.

This is the i.MX SPI driver required by the Sabre Lite NOR flash driver.
This driver have not been tested yet.