lib: Make log2() available in romstage on ARM, not just x86

On x86, log2() is defined as an inline functions in arch/io.h. This is
a remnant of ROMCC, and forced us to not include clog2.c in romstage.
As a result, romstage on ARM has no log2().
Use the inline log2 only with ROMCC, but otherwise, use the one in
clog2.c.

Change-Id: Ifef2aa0a7b5a1db071a66f2eec0be421b8b2a56d
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
[RFC] drivers: Import generic MMC handler from uboot

Aye and behold, the wonderful world of MMC and SD cards.
This is the MMC handler imported from uboot and adjusted for coreboot
use. There are over 100 micro-commits to refactor and clean up the
ubootian style, so there is no sense in saying what uboot revision
this came from (yeah, Paul, I'm looking at you).

Let's be honest. This code is a clusterfuck in a coreboot-flavored
candy coating. There's probably so much more work to do, that I didn't
bother cleaning up the comments. I need a general direction on this.
How do we even start bringing this up to coreboot standards? We'll
need this for the Allwinner ports.

There's also the SoC specific MMC driver, but that one is not included
here. I want to get a perspective from someone who's never had to
endure the pains of uboot code.

Change-Id: Ied5ac5701d2fe8338fd92477110d6f74a4295371
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
lib/hexdump: Take void * and size_t as arguments

Representing a memory location as an unsigned long is specific to
32-bit architectures. It also doesn't make sense to represent a length
assumed to be positive as a signed integer. With this change, it is no
longer necessary to cast a pointer to unsigned long when passing it to
hexdump.

Change-Id: I641777d940ceac6f37c363051f1e9c1b3ec3ed95
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
NFM cpu: Import sunxi MMC driver from uboot

Change-Id: I8417875737a5f8e1dc21325ad5d6d245423f68cb
NFM cpu: Add clock reg definitions for SD clock

Change-Id: I88763072c8a541ddba794e79fb55e82eb2f187a9
cubieboard: add basic SD init and testing

Change-Id: I63302b87b583ed62794559238b8b1ae19aba3f81
NFM cpu: use SD card for bootblock media

Change-Id: Ie0b123023c53e485c41650c1fc7b0fb69a286a30
CPU: Kconfig, Clarify positioning of keep ROMSTAGE and RAMSTAGE

Change-Id: I4ca9ad097b145445316bcd962e007731b08a7fda
CPU: bootblock_media, cache entire rom to RAM

Change-Id: I6ec78ae2b173d054a80584315bd2698c618f5b89
board: load ramstage in romstage

Change-Id: I828b7e019b6d66cf99ca039844be50f9f50bdb7d
CPU: Add first ramstage bits

Change-Id: I857755976b17b0e492c086162f395a77933eeed8
KILLME fucking hack

Change-Id: I4a20a0d85621cbd4adc73401f064bc610ae5cb53
Bad attempt at ranking up the system clock

Change-Id: I5a3bb3220aeefdd6822a7dbecf210ff77095dad6