Currently rimage only supports building ELF images with know TEXT, DATA
and BSS addresses. This patch adds support to build runtime relocatable
modules that can be loaded linked into the base SOF FW at runtime.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
This field doesn't mean anything for DMIC or HDaudio, move it
where it makes sense (I2S/TDM modes)
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
sample_valid_bits remains in main structure for now since it is
handled with a generic dai token.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Making this dynamic doesn't really save much memory and makes the
code more complex for no good reason
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Rename fields to follow topology definitions
Add placeholder for new fields for quirks and associated pdata
No functionality change
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Let's remove reef to avoid confusion/legacy.
no functionality change but the name of generated files
will change so targets and install scripts will need
to be updated
There should be only one occurrence of "Reef" left in
rimage/file_format.h, left as is for backwards compatibility.
This may be changed separately at a later point.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Add APIs to allow atomic additions or subtractions.
This API can be used to synchronize buffer W/R pointers between
pipelines and components running on different DSP cores.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
rimage is not built by default, which can lead to disconnects and
awful bugs when the memory layout changes.
Add rimage build+install as default for xtensa scripts
The BKM should be to rely on executing
./scripts/xtensa-build-all.sh [byt|cht|apl|cnl]
instead of manual commands...
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Detected with Coverity:
In do_notify: The indentation of this code suggests it is nested when
it is not. (CWE-483)
multi_stmt_macro: The macro on this line expands into multiple
statements, only the first of which is nested within the preceding
parent while the rest are not.
if (msg->rx_size && msg->rx_size < SOF_IPC_MSG_MAX_SIZE)
mailbox_dspbox_read(msg->rx_data, 0, msg->rx_size);
Move mailbox macros to inline functions to remove the issue, keep
indentation the same and add typecasts as needed
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
The preprocessor doesn't seem to care about circular dependencies,
the compiler does. So before we replace multi-line macros with
static inlines, move rmemcpy/arch_memcpy to a reef/string.h and
arch/string.h header file.
This is mostly useful for the mailbox functions, which depend on rmemcpy
but are also called from arch/reef.h dump/panic utilities
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
The ROOT is already assumed to be as $pwd/../xtensa-root/$ROOT,
set the PATH as well
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Add hanle for error on dma_set_config(), dma_start() and dma_copy().
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
This event is in pipeline and will produce many trace data in a short
time. It should use tracev to disable it by default.
Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
This reverts commit 7f9110c4c0.
This does not work when both buffer data consumer and producer are DMACs.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Move the DAI's buffer pointer update location from dai_dma_cb()
to dai_copy(). This fixes an occasional race where xrun recovery can
become out of sync with other pipeline components.
Signed-off-by: Wu Zhigang <zhigang.wu@linux.intel.com>
Tested-by: Keyon Jie <yang.jie@linux.intel.com>
1. xrun happens.
2. trigger pipeline xrun and recover.
3. set dd->xrun in XRUN cmd from pipeline recover.
4. stop dma and reset buffer to 0s.
5. dai prepare and clear dd->xrun in prepare calling from recover.
6. start dma again in START cmd from pipeline recover.
This fix APL pause/release Xrun issue in my test.
Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
xcc has more strict rules than gcc:
- Add missing sections to linker scripts
- Fix compile warnings
- Extend memory enabling timeout to infinite (too small delay for xcc)
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
# Conflicts:
# src/platform/apollolake/platform.c
# src/platform/cannonlake/platform.c
When DMA copying fails, its returned copy size is negative error
number. So it shouldn't be used to update avail variable.
Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
Resume pause will re-start DMA, which will cause the DMA status diff
from buffer COMP. Add a release function to recover the status mainily
for LLI now.
This patch fixes pause/resume noise issues.
Tested-by: Keyon Jie <yang.jie@linux.intel.com>
Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
Currently we support maximum of 32 children irqs, so limit the irq mask to not overflow the children irq array.
Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>