OMAP5910 Local Bus MMU
14-114
14.8.2 Local Bus MMU Programming for USB Host Controller Operation
14.8.2.1
Local Bus MMU Page Size and the USB Host Controller
The OHCI USB host controller assumes that page size is no smaller than 4K
bytes. The OHCI USB host controller allows a transfer descriptor data buffer
to split between two non-contiguous 4K byte pages in local bus virtual address
space. If a transfer descriptor current buffer pointer is in a different 4K-byte
page of local bus virtual address space than the transfer descriptor buffer end,
the OHCI USB host controller reads from or writes to that buffer starting at the
current buffer pointer and increasing until it gets to the last byte of the 4K
aligned block of local bus virtual address space. It then switches to a local bus
virtual address, which has the same 20 upper bits as the transfer descriptor
buffer end register, with 12 lower bits at 0.
Because of this behavior, it is strongly preferred that the mapping of local bus
virtual addresses to processor physical addresses be done via 4K-byte pages
(or larger). If tiny pages (1K byte per page) are used, they must be used in
groups of four tiny pages that are contiguous both in local bus virtual address
space and in processor physical address space, with the first of the tiny pages
aligned on a 4K-byte boundary in both processor physical address space and
local bus virtual address space. When using local bus MMU tiny pages, failure
to allocate and align groups of four tiny pages as described here results in
malfunction of the USB host controller memory access operations.
14.8.2.2
Local Bus MMU and Page Protection
The access protection features of the local bus MMU are similar to the protec-
tion mechanisms provided by the MPU MMU. If a local bus access attempts
to access a local bus virtual address within a local bus MMU page that is
marked as protected or attempts to write to a page that is marked as read-only,
an interrupt is issued to the MPU level 1 interrupt handler.
14.8.2.3
Local Bus MMU Page Miss
A local bus access that has an address within the valid local bus address range
but does not have a corresponding page mapping in the local bus MMU causes
the local bus MMU to issue an interrupt to the MPU level 1 interrupt handler.
The MPU can make use of the local bus MMU page miss interrupt to allow soft-
ware-based conversion between local bus virtual addresses and physical
addresses. If using such a software mechanism, be aware that the software
overhead must be considered in relation to the local bus time-out counter. If
the software cannot provide the converted physical address to the local bus
MMU quickly enough for the USB host controller local bus access to complete