#
b7257d7f |
|
11-May-2020 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
libsel4camkes,dma: Support different cache attribs Support registering DMA memory that is both cached and uncached and then return memory with correct cache attributes when alloc is called.
|
#
e6dbea22 |
|
28-Apr-2020 |
Kent McLeod <Kent.Mcleod@data61.csiro.au> |
libsel4camkes,DMA: Allow multiple allocation pools Calls to camkes_dma_init with different allocation pools will add the pools to the allocator to allocate from.
|
#
fbd3eae3 |
|
26-Jun-2019 |
Damon Lee <Damon.Lee@data61.csiro.au> |
libsel4camkes: Move ELF section externs to sources Instead of leaving the ELF section extern declarations in header files where it could be redefined each time it's included, we move the declarations to the .c files.
|
#
3d9f760f |
|
25-Apr-2019 |
Damon Lee <Damon.Lee@data61.csiro.au> |
trivial: style changed files in libsel4camkes The style checker was only run over the files that were changed in the refactoring of CAmkES connector template functionality into libsel4camkes.
|
#
b27be95b |
|
25-Apr-2019 |
Damon Lee <Damon.Lee@data61.csiro.au> |
libsel4camkes: Update DMA init prototype This commit follows from the previous DMA changes. The commit removes the to_paddr and to_cptr arguments as there is no longer any need to pass in functions from component.common.c. The paddr- and cptr-related functions now exist inside libsel4camkes.
|
#
87985673 |
|
09-Apr-2019 |
Damon Lee <Damon.Lee@data61.csiro.au> |
libsel4camkes: Add dma_frame_t struct to dma.h This commit adds a new struct to the DMA header in libsel4camkes. The struct is used to describe the frames backing that are backing a DMA pool in a CAmkES component.
|
#
8b2ec3e6 |
|
20-Jun-2017 |
Anna Lyons <Anna.Lyons@data61.csiro.au> |
Fix licenses
|
#
4fd601e5 |
|
22-Aug-2016 |
Stephen Sherratt <Stephen.Sherratt@data61.csiro.au> |
Access to caps to frames backing dma pool
|
#
009f61a4 |
|
13-Dec-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
libsel4camkes: Remove camkes_dma_page_alloc and camkes_dma_page_free. These functions have been deprecated for some time and I am not aware of any outstanding active uses of them.
|
#
56ea1b20 |
|
13-Dec-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
Fix: remove references to deprecated functions.
|
#
bacfebce |
|
27-Oct-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
Refactored parser init commit.
|
#
2c005251 |
|
11-Mar-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
libsel4camkes: Make the DMA allocator agnostic to page size. This commit adjusts the API for the DMA allocator to allow the caller to specify the page size used in the mappings backing the DMA pool. It also allows the caller to instruct the allocator itself to automatically determine the page size. The purpose of this is to future proof this code against potential changes to allow the DMA pool to be backed with large frames. No users are expected to be manually calling the DMA initialisation function, so this is not expected to have any user-visible effects.
|
#
26733ff6 |
|
10-Mar-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
libsel4camkes: Use some more attributes to help out fancier compilers.
|
#
68085cbf |
|
09-Mar-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
libsel4camkes: Mark older DMA functions as deprecated.
|
#
14afa31e |
|
23-Feb-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
libsel4camkes: Allow page-colocated DMA allocations. The previous allocation scheme was overly conservative and rounded all DMA allocations up to page boundaries as a security precaution. This extra step actually serves no purpose in a system without an IOMMU, where a misconfigured DMA request is going to access incorrect memory physically anyway. The effect of this commit should be permitting more DMA allocations with a smaller pool.
|
#
92178c24 |
|
20-Feb-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
libsel4camkes: Add profiling functionality to the DMA allocator.
|
#
d38d8c8e |
|
16-Feb-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
libsel4camkes: Support DMA allocations of greater than 4K. This commit implements a more complex free list structure in the DMA allocator in order to locate physically contiguous frames. There is no guarantee virtually contiguous pages within the DMA pool will be backed by physically contiguous frames, but if the CapDL initialiser has provided us with this, we can satisfy caller allocation requests of greater than 4K.
|
#
2d348014 |
|
04-Feb-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
libsel4camkes: Separate IO functionality from DMA. Prior to this commit, the DMA allocator functions incorrectly presumed that the user would want to use ps_io functions to lookup DMA pages by their physical address. These functions are actually intended to be used to lookup the virtual addresses of memory-mapped IO devices. This commit separates this functionality into a separate file and extends IO access functionality to cover IO ports as well. This is primarily for interaction with libplatsupport. If you are not using libplatsupport infrastructure, it will probably be simply to directly invoke CAmkES interface functions.
|
#
7fd4fe5a |
|
27-Jan-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
libsel4camkes: Restructure DMA allocator to book-keep in-place. This commit restructures how the DMA allocator tracks its free list internally, by using a link-list constructed with pointers in the DMA pages themselves. The main purpose of this is to have a cleaner API and reduce confusion from callers and unnecessary memory usage.
|
#
4add7c49 |
|
19-Jan-2015 |
Matthew Fernandez <matthew.fernandez@nicta.com.au> |
Merge DMA support from 'development'. This commit contains the changes to implement support for DMA as well as some auxiliary changes to how we implement dataports. Specifically, DMA pools can now be created as described in the docs and allocated from. Memory allocated from this pool can be reverse looked up to get its physical address(es). A linker script is introduced in this commit, which is actually part of the (to come) support for large frames. DMA pools, stacks, IPC buffers and dataports all end up in specific custom sections. The dataport change that comes as part of this commit is that we now define dataports in the connection templates (as opposed to just declaring them there and then defining them in the component template). This is a little cleaner, though it doesn't remove all dataport code from the component template. As of this commit, the dataport declaration the user sees is only tagged as weak if they have used the 'maybe' keyword. If this is the case, they are expected to check at runtime whether the dataport is connected or not.
|