[RTEMS Project] #4243: rtems_cache_coherent_allocate fallback is to return heap memory
RTEMS trac
trac at rtems.org
Mon Feb 15 22:24:46 UTC 2021
#4243: rtems_cache_coherent_allocate fallback is to return heap memory
-------------------------+---------------------
Reporter: Chris Johns | Owner: (none)
Type: defect | Status: new
Priority: normal | Milestone: 6.1
Component: lib | Version: 6
Severity: normal | Resolution:
Keywords: | Blocked By:
Blocking: |
-------------------------+---------------------
Comment (by Chris Johns):
I have performed further testing and investigation of PCI memory on a
`mvme2700` board that has PCI hardware. I added support to the `rtemsbsd`
DMA and `mbuf` DMA bus buffer handlers to offset segment addresses to the
PCI address space as seen by the PCI master. This offset allowed drivers
that have a `1:1` physical address mapping to be used unchanged.
I have observed that cache coherent `IO_PAGE` memory and heap allocated
memory behave the same. This testing is limited and may appear to be
working but I am not sure and in large applications where there is cache
pressures things may break. I think `IO_PAGE` memory on a PowerPC is
required and I will commit the change to add cache coherent memory.
Note, using a cache coherent memory heap may not be compatible with legacy
network drivers. Those drivers need to be updated to also use this memory.
On the PowerPC the limited number of BATs clashes and the BSP does not
know it is linked to LibBSD or the Legacy stack so adding memory cannot be
conditional. Legacy driver updates are made more complicated because the
`i386` is not using the `rtemsbsd` buf interface in LibBSD and the cache
coherent support.
--
Ticket URL: <http://devel.rtems.org/ticket/4243#comment:1>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list