summaryrefslogtreecommitdiff
path: root/include/command.h
diff options
context:
space:
mode:
authorTaylor Hutt <thutt@chromium.org>2012-10-29 05:23:58 +0000
committerTom Rini <trini@ti.com>2012-11-02 15:20:42 -0700
commit64738e8ae89214030061f62d6598e837664916c3 (patch)
tree8196246d368f2ea24a541ef89b2f1b4344ff34ca /include/command.h
parentb4c5bbce49a081f5d05837ba13ee76afeff72d91 (diff)
downloadu-boot-imx-64738e8ae89214030061f62d6598e837664916c3.zip
u-boot-imx-64738e8ae89214030061f62d6598e837664916c3.tar.gz
u-boot-imx-64738e8ae89214030061f62d6598e837664916c3.tar.bz2
ahci: Use virt_to_phys() to denote physical addresses for DMA
Update the assignment of various physical memory buffers used by the SATA controller to explicitly be denoted as physical addresses. The memory is identity-mapped, so these function calls are a nop, but they provide good semantic documentation for any maintainers. The return value of virt_to_phys() is 'unsigned long'. On machines where sizeof(unsigned long) != sizeof(pointer), a cast through (uintptr_t) is needed to appease the compiler due to the potential of losing the upper 32 bits of the address. In compilation this scenario, a physical address could be 64-bits, yet the C pointer environment only allows 32-bit addresses; the constraint is that pointers cannot address more than 4Gb of memory and if virt_to_phys() ever returns an out-of-range value for the physical address, there are issues with emmory mapping which must be solved. However, since the memory is identify mappeed, there is no problem introducing the cast: the original pointer will reside in 32-bits, so the physical address will also be within in 32-bits. Signed-off-by: Taylor Hutt <thutt@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/command.h')
0 files changed, 0 insertions, 0 deletions