eSDHC: Calculate envaddr accroding to the address format
authorHaijun.Zhang <Haijun.Zhang@freescale.com>
Fri, 10 Jan 2014 05:52:19 +0000 (13:52 +0800)
committerYork Sun <yorksun@freescale.com>
Wed, 22 Jan 2014 16:56:44 +0000 (08:56 -0800)
commitf28bea0003536976ebe2fb299cfc140702fec489
treee6550435d4b4f314ced7952274bd2ab3b62b2f75
parentd47e3d27078dd7419c41e1f8f56dcc221511dd5d
eSDHC: Calculate envaddr accroding to the address format

On BSC9131, BSC9132, P1010 : For High Capacity SD Cards (> 2 GBytes), the
32-bit source address specifies the memory address in block address
format. Block length is fixed to 512 bytes as per the SD High Capacity
specification. So we need to convert the block address format
to byte address format to calculate the envaddr.

If there is no enough space for environment variables or envaddr
is larger than 4GiB, we relocate the envaddr to 0x400. The address
relocated is in the front of the first partition that is assigned
for sdboot only.

Signed-off-by: Haijun Zhang <haijun.zhang@freescale.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
Reviewed-by: York Sun <yorksun@freescale.com>
arch/powerpc/include/asm/config_mpc85xx.h
board/freescale/common/sdhc_boot.c