mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-23 09:15:36 +00:00
foc: map uncached normal memory bufferable
Mapping normal memory bufferable restores support for unaligned reads on DMA memory and prevents the following errors on imx6q_sabrelite. KERNEL0: alignment error at 18003061 (PC: 0102e3f8, SP: 401ffb18, FSR: 90000001, PSR: 20000110) Issue #4094 Issue #4157
This commit is contained in:
@ -103,12 +103,12 @@ void Ipc_pager::reply_and_wait_for_fault()
|
|||||||
|
|
||||||
l4_utcb_mr()->mr[0] = _reply_mapping.dst_addr | L4_ITEM_MAP;
|
l4_utcb_mr()->mr[0] = _reply_mapping.dst_addr | L4_ITEM_MAP;
|
||||||
|
|
||||||
l4_fpage_cacheability_opt_t
|
bool const bufferable = !_reply_mapping.io_mem || _reply_mapping.write_combined;
|
||||||
cacheability = _reply_mapping.cached ? L4_FPAGE_CACHEABLE
|
|
||||||
: L4_FPAGE_UNCACHEABLE;
|
|
||||||
|
|
||||||
if (_reply_mapping.write_combined)
|
l4_fpage_cacheability_opt_t const
|
||||||
cacheability= L4_FPAGE_BUFFERABLE;
|
cacheability = _reply_mapping.cached ? L4_FPAGE_CACHEABLE
|
||||||
|
: bufferable ? L4_FPAGE_BUFFERABLE
|
||||||
|
: L4_FPAGE_UNCACHEABLE;
|
||||||
|
|
||||||
l4_utcb_mr()->mr[0] |= cacheability << 4;
|
l4_utcb_mr()->mr[0] |= cacheability << 4;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user