diff options
| author | Egbert Eich <eich@suse.com> | 2013-04-09 06:03:36 +0000 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2013-05-01 16:24:02 -0400 | 
| commit | ae1768a72cf70c00eec6824a5cc9079b0a247640 (patch) | |
| tree | f39da7d478d7208b2603d0466c258dd9e710c30f /include/common.h | |
| parent | 9d956e0fefa39ba49250f61e3c7aa3dadafdb7fd (diff) | |
| download | olio-uboot-2014.01-ae1768a72cf70c00eec6824a5cc9079b0a247640.tar.xz olio-uboot-2014.01-ae1768a72cf70c00eec6824a5cc9079b0a247640.zip | |
disk/gpt: Fix GPT partition handling for blocksize != 512
Disks beyond 2T in size use blocksizes of 4096 bytes. However a lot of
code in u-boot  still assumes a 512 byte blocksize.
This patch fixes the handling of GPTs.
Signed-off-by: Egbert Eich <eich@suse.com>
Diffstat (limited to 'include/common.h')
| -rw-r--r-- | include/common.h | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/include/common.h b/include/common.h index 28aa4b9d6..84315a0b4 100644 --- a/include/common.h +++ b/include/common.h @@ -1011,10 +1011,17 @@ static inline phys_addr_t map_to_sysmem(void *ptr)   * of a function scoped static buffer.  It can not be used to create a cache   * line aligned global buffer.   */ -#define ALLOC_ALIGN_BUFFER(type, name, size, align)			\ -	char __##name[ROUND(size * sizeof(type), align) + (align - 1)];	\ +#define PAD_COUNT(s, pad) ((s - 1) / pad + 1) +#define PAD_SIZE(s, pad) (PAD_COUNT(s, pad) * pad) +#define ALLOC_ALIGN_BUFFER_PAD(type, name, size, align, pad)		\ +	char __##name[ROUND(PAD_SIZE(size * sizeof(type), pad), align)  \ +		      + (align - 1)];					\  									\  	type *name = (type *) ALIGN((uintptr_t)__##name, align) +#define ALLOC_ALIGN_BUFFER(type, name, size, align)		\ +	ALLOC_ALIGN_BUFFER_PAD(type, name, size, align, 1) +#define ALLOC_CACHE_ALIGN_BUFFER_PAD(type, name, size, pad)		\ +	ALLOC_ALIGN_BUFFER_PAD(type, name, size, ARCH_DMA_MINALIGN, pad)  #define ALLOC_CACHE_ALIGN_BUFFER(type, name, size)			\  	ALLOC_ALIGN_BUFFER(type, name, size, ARCH_DMA_MINALIGN) |