hikey960: Remove hifi dsp support.
The hifi dsp support wasn't frequently used nor enabled by
default. Since we are moving binary firmware objects to the
vendor package, just remove the hifi dsp logic and firmware
all together.
This patch reapplies the reverted patch of the same name,
as issues were seen when the vendor package was missing.
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I6d72e5ca52a4b1b0ca460e0c4613c09175dba02d
diff --git a/audio/Android.mk b/audio/Android.mk
index eb0732d..84e2e56 100644
--- a/audio/Android.mk
+++ b/audio/Android.mk
@@ -38,15 +38,4 @@
system/media/audio_utils/include \
system/media/audio_effects/include
-ifeq ($(TARGET_ENABLE_DSP_DEVICE), true)
-LOCAL_CFLAGS += -DENABLE_XAF_DSP_DEVICE
-LOCAL_C_INCLUDES += \
- $(LOCAL_PATH)/../hifi/xaf/host-apf/include \
- $(LOCAL_PATH)/../hifi/xaf/host-apf/include/os/android \
- $(LOCAL_PATH)/../hifi/xaf/host-apf/include/sys/fio\
- $(LOCAL_PATH)/../hifi/xaf/host-apf/include/audio \
- $(LOCAL_PATH)/../hifi/xaf/host-apf/utest/include
-
-LOCAL_STATIC_LIBRARIES := libxtensa_proxy
-endif
include $(BUILD_SHARED_LIBRARY)
diff --git a/audio/audio_hw.c b/audio/audio_hw.c
index 02ce250..3fdf3f9 100644
--- a/audio/audio_hw.c
+++ b/audio/audio_hw.c
@@ -42,7 +42,6 @@
#include <audio_effects/effect_aec.h>
#include <sys/ioctl.h>
-#include <linux/audio_hifi.h>
#define CARD_OUT 0
#define PORT_CODEC 0
diff --git a/hifi/Android.mk b/hifi/Android.mk
deleted file mode 100644
index f3377fe..0000000
--- a/hifi/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright 2017 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-include $(all-subdir-makefiles)
diff --git a/hifi/debug-hifi/Android.mk b/hifi/debug-hifi/Android.mk
deleted file mode 100644
index eefcaa5..0000000
--- a/hifi/debug-hifi/Android.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright (C) 2017 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := debug-hifi
-LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
-LOCAL_LICENSE_CONDITIONS := notice
-LOCAL_SHARED_LIBRARIES := liblog libcutils
-LOCAL_SRC_FILES := debug-hifi.c
-include $(BUILD_EXECUTABLE)
diff --git a/hifi/debug-hifi/debug-hifi.c b/hifi/debug-hifi/debug-hifi.c
deleted file mode 100644
index 75bda4c..0000000
--- a/hifi/debug-hifi/debug-hifi.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#define LOG_TAG "debug-hifi"
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <poll.h>
-#include <pthread.h>
-#include <sys/ioctl.h>
-#include <sys/prctl.h>
-#include <stdio.h>
-#include <cutils/log.h>
-#include <cutils/uevent.h>
-#include <stdlib.h>
-#include <linux/audio_hifi.h>
-
-int main(int argc, char *argv[])
-{
- char *buffer;
- int hifi_dsp_fd;
- int ret = -1;
- int i = 0;
- unsigned int memsize = DRV_DSP_UART_TO_MEM_SIZE;
- unsigned int clear = 0;
- struct misc_io_dump_buf_param dump_buf;
-
- ALOGI("Enter hifi-dsp Audio Framework - sample application\n");
- if (argc > 1)
- memsize = strtoul(argv[1], NULL, 0);
- if (argc > 2)
- clear = 1;
- hifi_dsp_fd = open(HIFI_DSP_MISC_DRIVER, O_RDWR, 0);
- if (hifi_dsp_fd < 0) {
- ALOGE("Error %d opening hifi dsp device", errno);
- return ret;
- }
- buffer = malloc(memsize);
- if (!buffer) {
- ALOGE("Error allocating buffer");
- goto out0;
- }
- dump_buf.user_buf = (uint64_t)buffer;
- dump_buf.buf_size = memsize;
- dump_buf.clear = clear;
- ret = ioctl(hifi_dsp_fd, HIFI_MISC_IOCTL_DISPLAY_MSG, &dump_buf);
- if (ret < 0) { /* This IOCTL returns buffer size */
- ALOGE("Error %d accessing message buffer", errno);
- } else {
- printf("%s\n", ret > 0 ? buffer : "Buffer is empty");
- }
- free(buffer);
-out0:
- close(hifi_dsp_fd);
- ALOGI("Exit hifi-dsp Audio Framework - sample application\n");
- return ret;
-}
diff --git a/hifi/firmware/hifi-hikey960.img b/hifi/firmware/hifi-hikey960.img
deleted file mode 100644
index b8c2516..0000000
--- a/hifi/firmware/hifi-hikey960.img
+++ /dev/null
Binary files differ
diff --git a/hifi/xaf/Android.mk b/hifi/xaf/Android.mk
deleted file mode 100644
index f3377fe..0000000
--- a/hifi/xaf/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright 2017 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-include $(all-subdir-makefiles)
diff --git a/hifi/xaf/README b/hifi/xaf/README
deleted file mode 100755
index 9c83576..0000000
--- a/hifi/xaf/README
+++ /dev/null
@@ -1,39 +0,0 @@
-
-.
-|--- README
-| - This file
-|
-|--- release.txt
-| - Release notes
-|
-|--- config
-| |
-| |--- hifi3_hikey960_linux.tgz
-| | - HiKey960 HiFi3 LX6 config with SW upgraded to RG.5 tools for Linux
-| |
-| |-- hifi3_hikey960_win32.tgz
-| - HiKey960 HiFi3 LX6 config with SW upgraded to RG.5 tools for Windows
-|
-|--- docs
-| |
-| |--- HiFi-AF-Hosted-ProgrammersGuide.pdf
-| | - Xtensa Audio Framework (Hosted) Programmers Guide, v0.6
-| |
-| |--- HiFi-Audio-Codec-API-Definition.pdf
-| | - HiFi Audio Codec API Definition, v1.0
-| |
-| |--- HiFi-Speech-Codec-API-Definition.pdf
-| | - HiFi Speech Codec API Definition, v1.0
-| |
-| |-- HiKey960-HiFi3-Android-SDK-Guide.pdf
-| - HiKey960-HiFi3-Android-SDK Guide, v0.7
-|
-|--- xaf-dsp-v0.7_Alpha.tgz
-| - XAF DSP Firmware Source Code(hifi-dpf)
-|
-|-- xaf-host-v0.7_Alpha.tgz
-| - XAF Host application Source Code(host-apf)
-|
-|-- Get xtensa tools and guide to install xtensa tools,HiKey960 HiFi3 LX6 config
-| -https://www.tensilicatools.com/platform/huawei-kirin-960/
-|
diff --git a/hifi/xaf/config/hifi3_hikey960_linux.tgz b/hifi/xaf/config/hifi3_hikey960_linux.tgz
deleted file mode 100755
index 8115219..0000000
--- a/hifi/xaf/config/hifi3_hikey960_linux.tgz
+++ /dev/null
Binary files differ
diff --git a/hifi/xaf/config/hifi3_hikey960_win32.tgz b/hifi/xaf/config/hifi3_hikey960_win32.tgz
deleted file mode 100755
index 3287175..0000000
--- a/hifi/xaf/config/hifi3_hikey960_win32.tgz
+++ /dev/null
Binary files differ
diff --git a/hifi/xaf/docs/HiFi-AF-Hosted-ProgrammersGuide.pdf b/hifi/xaf/docs/HiFi-AF-Hosted-ProgrammersGuide.pdf
deleted file mode 100755
index 3499a87..0000000
--- a/hifi/xaf/docs/HiFi-AF-Hosted-ProgrammersGuide.pdf
+++ /dev/null
Binary files differ
diff --git a/hifi/xaf/docs/HiFi-Audio-Codec-API-Definition.pdf b/hifi/xaf/docs/HiFi-Audio-Codec-API-Definition.pdf
deleted file mode 100755
index 179d13b..0000000
--- a/hifi/xaf/docs/HiFi-Audio-Codec-API-Definition.pdf
+++ /dev/null
Binary files differ
diff --git a/hifi/xaf/docs/HiFi-Speech-Codec-API-Definition.pdf b/hifi/xaf/docs/HiFi-Speech-Codec-API-Definition.pdf
deleted file mode 100755
index 2b6a68a..0000000
--- a/hifi/xaf/docs/HiFi-Speech-Codec-API-Definition.pdf
+++ /dev/null
Binary files differ
diff --git a/hifi/xaf/docs/HiKey960-HiFi3-Android-SDK-Guide.pdf b/hifi/xaf/docs/HiKey960-HiFi3-Android-SDK-Guide.pdf
deleted file mode 100755
index ea3c07a..0000000
--- a/hifi/xaf/docs/HiKey960-HiFi3-Android-SDK-Guide.pdf
+++ /dev/null
Binary files differ
diff --git a/hifi/xaf/docs/Hosted_XAF_Arch_v0.7.pdf b/hifi/xaf/docs/Hosted_XAF_Arch_v0.7.pdf
deleted file mode 100755
index f5b372f..0000000
--- a/hifi/xaf/docs/Hosted_XAF_Arch_v0.7.pdf
+++ /dev/null
Binary files differ
diff --git a/hifi/xaf/hifi-dpf/app/xa-factory.c b/hifi/xaf/hifi-dpf/app/xa-factory.c
deleted file mode 100644
index b9e7d19..0000000
--- a/hifi/xaf/hifi-dpf/app/xa-factory.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xa-factory.c
- *
- * DSP processing framework core - component factory
- *
- ******************************************************************************/
-
-#define MODULE_TAG FACTORY
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-#include "audio/xa_type_def.h"
-
-/*******************************************************************************
- * Tracing tags
- ******************************************************************************/
-
-/* ...general initialization sequence */
-TRACE_TAG(INIT, 1);
-
-/*******************************************************************************
- * Local types definitions
- ******************************************************************************/
-
-/* ...component descriptor */
-typedef struct xf_component_id
-{
- /* ...class id (string identifier) */
- const char *id;
-
- /* ...class constructor */
- xf_component_t * (*factory)(u32 core, xa_codec_func_t process);
-
- /* ...component API function */
- xa_codec_func_t *process;
-
-} xf_component_id_t;
-
-/*******************************************************************************
- * External functions
- ******************************************************************************/
-
-/* ...components API functions */
-extern XA_ERRORCODE xa_pcm_codec(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_mp3_decoder(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_aac_decoder(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_aac_encoder(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_vorbis_decoder(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_ac3_decoder(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_ddplus71_decoder(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_mixer(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_renderer(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_capturer(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_src_pp_fx(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_dts_hd_decoder(xa_codec_handle_t, WORD32, WORD32, pVOID);
-extern XA_ERRORCODE xa_dap_fx(xa_codec_handle_t, WORD32, WORD32, pVOID);
-
-/* ...component class factories */
-extern xf_component_t * xa_audio_codec_factory(u32 core, xa_codec_func_t process);
-extern xf_component_t * xa_audio_fx_factory(u32 core, xa_codec_func_t process);
-extern xf_component_t * xa_mixer_factory(u32 core, xa_codec_func_t process);
-extern xf_component_t * xa_renderer_factory(u32 core,xa_codec_func_t process);
-
-/*******************************************************************************
- * Local constants definitions
- ******************************************************************************/
-
-/* ...component class id */
-static const xf_component_id_t xf_component_id[] =
-{
-#if XA_PCM
- { "audio-decoder/pcm", xa_audio_codec_factory, xa_pcm_codec },
-#endif
-#if XA_MP3_DECODER
- { "audio-decoder/mp3", xa_audio_codec_factory, xa_mp3_decoder },
-#endif
-#if XA_AAC_DECODER
- { "audio-decoder/aac", xa_audio_codec_factory, xa_aac_decoder },
-#endif
-#if XA_AC3_DECODER
- { "audio-decoder/ac3", xa_audio_codec_factory, xa_ac3_decoder },
-#endif
-#if XA_DDP71_DECODER
- { "audio-decoder/ddplus71", xa_audio_codec_factory, xa_ddplus71_decoder },
-#endif
-#if XA_DTS_HD_DECODER
- { "audio-decoder/dts-hd", xa_audio_codec_factory, xa_dts_hd_decoder },
-#endif
-#if XA_VORBIS_DECODER
- { "audio-decoder/vorbis", xa_audio_codec_factory, xa_vorbis_decoder },
-#endif
-#if XA_AAC_ENCODER
- { "audio-encoder/aac", xa_audio_codec_factory, xa_aac_encoder },
-#endif
-#if XA_SRC_PP_FX
- { "audio-fx/src-pp", xa_audio_codec_factory, xa_src_pp_fx },
-#endif
-#if XA_DAP_FX
- { "audio-fx/dap", xa_audio_codec_factory, xa_dap_fx },
-#endif
-#if XA_MIXER
- { "mixer", xa_mixer_factory, xa_mixer },
-#endif
-#if XA_RENDERER
- { "renderer", xa_renderer_factory, xa_renderer },
-#endif
-#if XA_CAPTURER
- { "capturer", xa_capturer_factory, xa_capturer },
-#endif
-};
-
-/* ...number of items in the map */
-#define XF_COMPONENT_ID_MAX (sizeof(xf_component_id) / sizeof(xf_component_id[0]))
-
-/*******************************************************************************
- * Enry points
- ******************************************************************************/
-
-xf_component_t * xf_component_factory(u32 core, xf_id_t id, u32 length)
-{
- u32 i;
-
- /* ...find component-id in static map */
- for (i = 0; i < XF_COMPONENT_ID_MAX; i++)
- {
- /* ...symbolic search - not too good; would prefer GUIDs in some form */
- if (!strncmp(id, xf_component_id[i].id, length))
- {
- /* ...pass control to specific class factory */
- return xf_component_id[i].factory(core, xf_component_id[i].process);
- }
- }
-
- /* ...component string id is not recognized */
- TRACE(ERROR, _b("Unknown component type: %s"), id);
-
- return NULL;
-}
diff --git a/hifi/xaf/hifi-dpf/audio/xa-class-audio-codec.c b/hifi/xaf/hifi-dpf/audio/xa-class-audio-codec.c
deleted file mode 100644
index ce233f0..0000000
--- a/hifi/xaf/hifi-dpf/audio/xa-class-audio-codec.c
+++ /dev/null
@@ -1,785 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xa-class-audio-codec.c
- *
- * Generic audio codec task implementation
- *
- ******************************************************************************/
-
-#define MODULE_TAG CODEC
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-#include "xa-class-base.h"
-#include "audio/xa-audio-decoder-api.h"
-
-/*******************************************************************************
- * Tracing configuration
- ******************************************************************************/
-
-TRACE_TAG(INIT, 1);
-TRACE_TAG(WARNING, 1);
-TRACE_TAG(INFO, 1);
-TRACE_TAG(INPUT, 1);
-TRACE_TAG(OUTPUT, 1);
-TRACE_TAG(DECODE, 1);
-
-/*******************************************************************************
- * Internal functions definitions
- ******************************************************************************/
-
-typedef struct XAAudioCodec
-{
- /***************************************************************************
- * Control data
- **************************************************************************/
-
- /* ...generic audio codec data */
- XACodecBase base;
-
- /* ...input port data */
- xf_input_port_t input;
-
- /* ...output port data */
- xf_output_port_t output;
-
- /* ...input port index */
- WORD32 in_idx;
-
- /* ...output port index */
- WORD32 out_idx;
-
- /***************************************************************************
- * Run-time configuration parameters
- **************************************************************************/
-
- /* ...sample size in bytes */
- u32 sample_size;
-
- /* ...audio sample duration */
- u32 factor;
-
- /* ...total number of produced audio frames since last reset */
- u32 produced;
-
-} XAAudioCodec;
-
-/*******************************************************************************
- * Auxiliary codec execution flags
- ******************************************************************************/
-
-/* ...input port setup condition */
-#define XA_CODEC_FLAG_INPUT_SETUP __XA_BASE_FLAG(1 << 0)
-
-/* ...output port setup condition */
-#define XA_CODEC_FLAG_OUTPUT_SETUP __XA_BASE_FLAG(1 << 1)
-
-/*******************************************************************************
- * Data processing scheduling
- ******************************************************************************/
-
-/* ...prepare codec for steady operation (tbd - don't absolutely like it) */
-static inline XA_ERRORCODE xa_codec_prepare_runtime(XAAudioCodec *codec)
-{
- XACodecBase *base = (XACodecBase *)codec;
- xf_message_t *m = xf_msg_queue_head(&codec->output.queue);
- xf_start_msg_t *msg = m->buffer;
- u32 frame_size;
- u32 factor;
-
- /* ...fill-in buffer parameters */
- XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, XA_CODEC_CONFIG_PARAM_SAMPLE_RATE, &msg->sample_rate);
- XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, XA_CODEC_CONFIG_PARAM_CHANNELS, &msg->channels);
- XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, XA_CODEC_CONFIG_PARAM_PCM_WIDTH, &msg->pcm_width);
- XA_API(base, XA_API_CMD_GET_MEM_INFO_SIZE, codec->in_idx, &msg->input_length);
- XA_API(base, XA_API_CMD_GET_MEM_INFO_SIZE, codec->out_idx, &msg->output_length);
-
- TRACE(INIT, _b("codec[%p]::runtime init: f=%u, c=%u, w=%u, i=%u, o=%u"), codec, msg->sample_rate, msg->channels, msg->pcm_width, msg->input_length, msg->output_length);
-
- /* ...reallocate input port buffer as needed - tbd */
- BUG(msg->input_length > codec->input.length, _x("Input buffer reallocation required: %u to %u"), codec->input.length, msg->input_length);
-
- /* ...save sample size in bytes */
- codec->sample_size = msg->channels * (msg->pcm_width == 16 ? 2 : 4);
-
- /* ...calculate frame duration; get number of samples in the frame (don't like division here - tbd) */
- frame_size = msg->output_length / codec->sample_size;
-
- /* ...it must be a multiple */
- XF_CHK_ERR(frame_size * codec->sample_size == msg->output_length, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...retrieve upsampling factor for given sample rate */
- XF_CHK_ERR(factor = xf_timebase_factor(msg->sample_rate), XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...set frame duration factor (converts number of bytes into timebase units) */
- codec->factor = factor / codec->sample_size;
-
- TRACE(INIT, _b("ts-factor: %u (%u)"), codec->factor, factor);
-
- BUG(codec->factor * codec->sample_size != factor, _x("Freq mismatch: %u vs %u"), codec->factor * codec->sample_size, factor);
-
- /* ...pass response to caller (push out of output port) */
- xf_output_port_produce(&codec->output, sizeof(*msg));
-
- /* ...codec runtime initialization is completed */
- TRACE(INIT, _b("codec[%p] runtime initialized: i=%u, o=%u"), codec, msg->input_length, msg->output_length);
-
- return XA_NO_ERROR;
-}
-
-/*******************************************************************************
- * Commands processing
- ******************************************************************************/
-
-/* ...EMPTY-THIS-BUFFER command processing */
-static XA_ERRORCODE xa_codec_empty_this_buffer(XACodecBase *base, xf_message_t *m)
-{
- XAAudioCodec *codec = (XAAudioCodec *) base;
-
- /* ...make sure the port is valid */
- XF_CHK_ERR(XF_MSG_DST_PORT(m->id) == 0, XA_API_FATAL_INVALID_CMD);
-
- /* ...command is allowed only in post-init state */
- XF_CHK_ERR(base->state & XA_BASE_FLAG_POSTINIT, XA_API_FATAL_INVALID_CMD);
-
- /* ...put message into input queue */
- if (xf_input_port_put(&codec->input, m))
- {
- /* ...restart stream if it is in completed state */
- if (base->state & XA_BASE_FLAG_COMPLETED)
- {
- /* ...reset execution stage */
- base->state = XA_BASE_FLAG_POSTINIT | XA_BASE_FLAG_EXECUTION;
-
- /* ...reset execution runtime */
- XA_API(base, XA_API_CMD_EXECUTE, XA_CMD_TYPE_DO_RUNTIME_INIT, NULL);
-
- /* ...reset produced samples counter */
- codec->produced = 0;
- }
-
- /* ...codec must be in one of these states */
- XF_CHK_ERR(base->state & (XA_BASE_FLAG_RUNTIME_INIT | XA_BASE_FLAG_EXECUTION), XA_API_FATAL_INVALID_CMD);
-
- /* ...schedule data processing if output is ready */
- if (xf_output_port_ready(&codec->output))
- {
- xa_base_schedule(base, 0);
- }
- }
-
- TRACE(INPUT, _b("Received buffer [%p]:%u"), m->buffer, m->length);
-
- return XA_NO_ERROR;
-}
-
-/* ...FILL-THIS-BUFFER command processing */
-static XA_ERRORCODE xa_codec_fill_this_buffer(XACodecBase *base, xf_message_t *m)
-{
- XAAudioCodec *codec = (XAAudioCodec *) base;
-
- /* ...make sure the port is valid */
- XF_CHK_ERR(XF_MSG_DST_PORT(m->id) == 1, XA_API_FATAL_INVALID_CMD);
-
- /* ...command is allowed only in postinit state */
- XF_CHK_ERR(base->state & XA_BASE_FLAG_POSTINIT, XA_API_FATAL_INVALID_CMD);
-
- /* ...special handling of zero-length buffer */
- if (base->state & XA_BASE_FLAG_RUNTIME_INIT)
- {
- /* ...message must be zero-length */
- BUG(m->length != 0, _x("Invalid message length: %u"), m->length);
- }
- else if (m == xf_output_port_control_msg(&codec->output))
- {
- /* ...end-of-stream processing indication received; check the state */
- BUG((base->state & XA_BASE_FLAG_COMPLETED) == 0, _x("invalid state: %x"), base->state);
-
- /* ... mark flushing sequence is done */
- xf_output_port_flush_done(&codec->output);
-
- /* ...complete pending zero-length input buffer */
- xf_input_port_purge(&codec->input);
-
- TRACE(INFO, _b("codec[%p] playback completed"), codec);
-
- /* ...playback is over */
- return XA_NO_ERROR;
- }
- else if ((base->state & XA_BASE_FLAG_COMPLETED) && !xf_output_port_routed(&codec->output))
- {
- /* ...return message arrived from application immediately */
- xf_response_ok(m);
-
- return XA_NO_ERROR;
- }
- else
- {
- TRACE(OUTPUT, _b("Received output buffer [%p]:%u"), m->buffer, m->length);
-
- /* ...adjust message length (may be shorter than original) */
- m->length = codec->output.length;
- }
-
- /* ...place message into output port */
- if (xf_output_port_put(&codec->output, m) && xf_input_port_ready(&codec->input))
- {
- /* ...schedule data processing instantly */
- if (base->state & (XA_BASE_FLAG_RUNTIME_INIT | XA_BASE_FLAG_EXECUTION))
- {
- xa_base_schedule(base, 0);
- }
- }
-
- return XA_NO_ERROR;
-}
-
-/* ...output port routing */
-static XA_ERRORCODE xa_codec_port_route(XACodecBase *base, xf_message_t *m)
-{
- XAAudioCodec *codec = (XAAudioCodec *) base;
- xf_route_port_msg_t *cmd = m->buffer;
- xf_output_port_t *port = &codec->output;
- u32 src = XF_MSG_DST(m->id);
- u32 dst = cmd->dst;
-
- /* ...command is allowed only in "postinit" state */
- XF_CHK_ERR(base->state & XA_BASE_FLAG_POSTINIT, XA_API_FATAL_INVALID_CMD);
-
- /* ...make sure output port is addressed */
- XF_CHK_ERR(XF_MSG_DST_PORT(m->id) == 1, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...make sure port is not routed yet */
- XF_CHK_ERR(!xf_output_port_routed(port), XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...route output port - allocate queue */
- XF_CHK_ERR(xf_output_port_route(port, __XF_MSG_ID(dst, src), cmd->alloc_number, cmd->alloc_size, cmd->alloc_align) == 0, XA_API_FATAL_MEM_ALLOC);
-
- /* ...schedule processing instantly */
- xa_base_schedule(base, 0);
-
- /* ...pass success result to caller */
- xf_response_ok(m);
-
- return XA_NO_ERROR;
-}
-
-/* ...port unroute command */
-static XA_ERRORCODE xa_codec_port_unroute(XACodecBase *base, xf_message_t *m)
-{
- XAAudioCodec *codec = (XAAudioCodec *) base;
-
- /* ...command is allowed only in "postinit" state */
- XF_CHK_ERR(base->state & XA_BASE_FLAG_POSTINIT, XA_API_FATAL_INVALID_CMD);
-
- /* ...make sure output port is addressed */
- XF_CHK_ERR(XF_MSG_DST_PORT(m->id) == 1, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...cancel any pending processing */
- xa_base_cancel(base);
-
- /* ...clear output-port-setup condition */
- base->state &= ~XA_CODEC_FLAG_OUTPUT_SETUP;
-
- /* ...pass flush command down the graph */
- if (xf_output_port_flush(&codec->output, XF_FLUSH))
- {
- TRACE(INFO, _b("port is idle; instantly unroute"));
-
- /* ...flushing sequence is not needed; command may be satisfied instantly */
- xf_output_port_unroute(&codec->output);
-
- /* ...pass response to the proxy */
- xf_response_ok(m);
- }
- else
- {
- TRACE(INFO, _b("port is busy; propagate unroute command"));
-
- /* ...flushing sequence is started; save flow-control message */
- xf_output_port_unroute_start(&codec->output, m);
- }
-
- return XA_NO_ERROR;
-}
-
-/* ...FLUSH command processing */
-static XA_ERRORCODE xa_codec_flush(XACodecBase *base, xf_message_t *m)
-{
- XAAudioCodec *codec = (XAAudioCodec *) base;
-
- /* ...command is allowed only in "postinit" state */
- XF_CHK_ERR(base->state & XA_BASE_FLAG_POSTINIT, XA_API_FATAL_INVALID_CMD);
-
- /* ...ensure input parameter length is zero */
- XF_CHK_ERR(m->length == 0, XA_API_FATAL_INVALID_CMD_TYPE);
-
- TRACE(1, _b("flush command received"));
-
- /* ...flush command must be addressed to input port */
- if (XF_MSG_DST_PORT(m->id) == 0)
- {
- /* ...cancel data processing message if needed */
- xa_base_cancel(base);
-
- /* ...input port flushing; purge content of input buffer */
- xf_input_port_purge(&codec->input);
-
- /* ...clear input-ready condition */
- base->state &= ~XA_CODEC_FLAG_INPUT_SETUP;
-
- /* ...reset execution runtime */
- XA_API(base, XA_API_CMD_EXECUTE, XA_CMD_TYPE_DO_RUNTIME_INIT, NULL);
-
- /* ...reset produced samples counter */
- codec->produced = 0;
-
- /* ...propagate flushing command to output port */
- if (xf_output_port_flush(&codec->output, XF_FLUSH))
- {
- /* ...flushing sequence is not needed; satisfy command instantly */
- xf_response(m);
- }
- else
- {
- /* ...flushing sequence is started; save flow-control message at input port */
- xf_input_port_control_save(&codec->input, m);
- }
- }
- else if (xf_output_port_unrouting(&codec->output))
- {
- /* ...flushing during port unrouting; complete unroute sequence */
- xf_output_port_unroute_done(&codec->output);
-
- TRACE(INFO, _b("port is unrouted"));
- }
- else
- {
- /* ...output port flush command/response; check if the port is routed */
- if (!xf_output_port_routed(&codec->output))
- {
- /* ...complete all queued messages */
- xf_output_port_flush(&codec->output, XF_FLUSH);
-
- /* ...and pass response to flushing command */
- xf_response(m);
- }
- else
- {
- /* ...response to flushing command received */
- BUG(m != xf_output_port_control_msg(&codec->output), _x("invalid message: %p"), m);
-
- /* ...mark flushing sequence is completed */
- xf_output_port_flush_done(&codec->output);
-
- /* ...complete original flow-control command */
- xf_input_port_purge_done(&codec->input);
- }
-
- /* ...clear output-setup condition */
- base->state &= ~XA_CODEC_FLAG_OUTPUT_SETUP;
- }
-
- return XA_NO_ERROR;
-}
-
-/*******************************************************************************
- * Generic codec API
- ******************************************************************************/
-
-/* ...memory buffer handling */
-static XA_ERRORCODE xa_codec_memtab(XACodecBase *base, WORD32 idx, WORD32 type, WORD32 size, WORD32 align, u32 core)
-{
- XAAudioCodec *codec = (XAAudioCodec *) base;
-
- if (type == XA_MEMTYPE_INPUT)
- {
- /* ...input port specification; allocate internal buffer */
- XF_CHK_ERR(xf_input_port_init(&codec->input, size, align, core) == 0, XA_API_FATAL_MEM_ALLOC);
-
- /* ...save input port index */
- codec->in_idx = idx;
-
- /* ...set input buffer pointer as needed */
- (size ? XA_API(base, XA_API_CMD_SET_MEM_PTR, idx, codec->input.buffer) : 0);
-
- (size ? TRACE(1, _x("set input ptr: %p"), codec->input.buffer) : 0);
- }
- else
- {
- /* ...output buffer specification */
- XF_CHK_ERR(type == XA_MEMTYPE_OUTPUT, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...initialize output port queue (no allocation here yet) */
- XF_CHK_ERR(xf_output_port_init(&codec->output, size) == 0, XA_API_FATAL_MEM_ALLOC);
-
- /* ...save output port index */
- codec->out_idx = idx;
- }
-
- return XA_NO_ERROR;
-}
-
-/* ...prepare input/output buffers */
-static XA_ERRORCODE xa_codec_preprocess(XACodecBase *base)
-{
- XAAudioCodec *codec = (XAAudioCodec *) base;
-
- /* ...prepare output buffer if needed */
- if (!(base->state & XA_CODEC_FLAG_OUTPUT_SETUP))
- {
- void *output;
-
- /* ...get output buffer from port, if possible */
- if (base->state & XA_BASE_FLAG_RUNTIME_INIT)
- {
- /* ...run-time is not initialized yet; use scratch buffer */
- output = base->scratch;
- }
- else if ((output = xf_output_port_data(&codec->output)) == NULL)
- {
- /* ...no output buffer available */
- return XA_CODEC_EXEC_NO_DATA;
- }
-
- /* ...set the output buffer pointer */
- XA_API(base, XA_API_CMD_SET_MEM_PTR, codec->out_idx, output);
-
- TRACE(1, _x("set output ptr: %p"), output);
-
- /* ...mark output port is setup */
- base->state ^= XA_CODEC_FLAG_OUTPUT_SETUP;
- }
-
- /* ...prepare input data if needed */
- if (!(base->state & XA_CODEC_FLAG_INPUT_SETUP))
- {
- void *input;
- u32 filled;
-
- /* ...fill input buffer */
- if (xf_input_port_bypass(&codec->input))
- {
- /* ...use input buffer directly; check if there is data available */
- if ((input = xf_input_port_data(&codec->input)) != NULL)
- {
- /* ...set input data buffer pointer */
- XA_API(base, XA_API_CMD_SET_MEM_PTR, codec->in_idx, input);
-
- /* ...retrieve number of input bytes */
- filled = xf_input_port_length(&codec->input);
- }
- else if (!xf_input_port_done(&codec->input))
- {
- /* ...return non-fatal indication to prevent further processing */
- return XA_CODEC_EXEC_NO_DATA;
- }
- else
- {
- /* ...mark we have no data in current buffer */
- filled = 0;
- }
- }
- else
- {
- /* ...port is in non-bypass mode; try to fill internal buffer */
- if (xf_input_port_done(&codec->input) || xf_input_port_fill(&codec->input))
- {
- /* ...retrieve number of bytes in input buffer (not really - tbd) */
- filled = xf_input_port_level(&codec->input);
- }
- else
- {
- /* ...return non-fatal indication to prevent further processing */
- return XA_CODEC_EXEC_NO_DATA;
- }
- }
-
- /* ...check if input stream is over */
- if (xf_input_port_done(&codec->input))
- {
- /* ...pass input-over command to the codec to indicate the final buffer */
- XA_API(base, XA_API_CMD_INPUT_OVER, codec->in_idx, NULL);
-
- TRACE(INFO, _b("codec[%p]: signal input-over (filled: %u)"), codec, filled);
- }
-
- TRACE(INPUT, _b("input-buffer fill-level: %u bytes"), filled);
-
- /* ...specify number of bytes available in the input buffer */
- XA_API(base, XA_API_CMD_SET_INPUT_BYTES, codec->in_idx, &filled);
-
- /* ...mark input port is setup */
- base->state ^= XA_CODEC_FLAG_INPUT_SETUP;
- }
-
- return XA_NO_ERROR;
-}
-
-/* ...post-processing operation; input/output ports maintenance */
-static XA_ERRORCODE xa_codec_postprocess(XACodecBase *base, int done)
-{
- XAAudioCodec *codec = (XAAudioCodec *) base;
- WORD32 consumed = 0;
- WORD32 produced = 0;
-
- /* ...get number of consumed / produced bytes */
- XA_API(base, XA_API_CMD_GET_CURIDX_INPUT_BUF, codec->in_idx, &consumed);
-
- /* ...get number of produced bytes only if runtime is initialized (sample size is known) */
- (codec->sample_size ? XA_API(base, XA_API_CMD_GET_OUTPUT_BYTES, codec->out_idx, &produced) : 0);
-
- TRACE(DECODE, _b("codec[%p]::postprocess(c=%u, p=%u, d=%u)"), codec, consumed, produced, done);
-
- /* ...input buffer maintenance; check if we consumed anything */
- if (consumed)
- {
- /* ...consume specified number of bytes from input port */
- xf_input_port_consume(&codec->input, consumed);
-
- /* ...clear input-setup flag */
- base->state ^= XA_CODEC_FLAG_INPUT_SETUP;
- }
-
- /* ...output buffer maintenance; check if we have produced anything */
- if (produced)
- {
- /* ...increment total number of produced samples (really don't like division here - tbd) */
- codec->produced += produced / codec->sample_size;
-
- /* ...immediately complete output buffer (don't wait until it gets filled) */
- xf_output_port_produce(&codec->output, produced);
-
- /* ...clear output port setup flag */
- base->state ^= XA_CODEC_FLAG_OUTPUT_SETUP;
- }
-
- /* ...process execution stage transition */
- if (done)
- {
- if (base->state & XA_BASE_FLAG_RUNTIME_INIT)
- {
- /* ...stream is completed while codec is in runtime initialization stage */
- BUG(1, _x("breakpoint"));
- }
- else if (base->state & XA_BASE_FLAG_EXECUTION)
- {
- /* ...runtime initialization done */
- XA_CHK(xa_codec_prepare_runtime(codec));
-
- /* ...clear output port setup flag as we were using scratch buffer;
- * technically, no need to repeat setup of input buffer, but some codecs require
- * it as well
- */
- base->state &= ~(XA_CODEC_FLAG_INPUT_SETUP | XA_CODEC_FLAG_OUTPUT_SETUP);
- }
- else
- {
- /* ...output stream is over; propagate condition to sink port */
- if (xf_output_port_flush(&codec->output, XF_FILL_THIS_BUFFER))
- {
- /* ...flushing sequence is not needed; complete pending zero-length input */
- xf_input_port_purge(&codec->input);
-
- /* ...no propagation to output port */
- TRACE(INFO, _b("codec[%p] playback completed"), codec);
- }
- else
- {
- /* ...flushing sequence is started; wait until flow-control message returns */
- TRACE(INFO, _b("propagate end-of-stream condition"));
- }
- }
-
- /* ...return early to prevent task rescheduling */
- return XA_NO_ERROR;
- }
-
- /* ...reschedule processing if needed */
- if (xf_input_port_ready(&codec->input) && xf_output_port_ready(&codec->output))
- {
- /* ...schedule data processing with respect to its urgency */
- xa_base_schedule(base, produced * codec->factor);
- }
-
- return XA_NO_ERROR;
-}
-
-/* ...configuration parameter retrieval */
-static XA_ERRORCODE xa_codec_getparam(XACodecBase *base, WORD32 id, pVOID value)
-{
- XAAudioCodec *codec = (XAAudioCodec *) base;
-
- if (id == XA_CODEC_CONFIG_PARAM_PRODUCED)
- {
- /* ...retrieve number of produced samples since last reset */
- *(u32 *)value = codec->produced;
-
- return XA_NO_ERROR;
- }
- else
- {
- /* ...pass command to underlying codec plugin */
- return XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, id, value);
- }
-}
-
-/*******************************************************************************
- * Component entry point
- ******************************************************************************/
-
-/* ...command hooks */
-static XA_ERRORCODE (* const xa_codec_cmd[])(XACodecBase *, xf_message_t *) =
-{
- [XF_OPCODE_TYPE(XF_SET_PARAM)] = xa_base_set_param,
- [XF_OPCODE_TYPE(XF_GET_PARAM)] = xa_base_get_param,
- [XF_OPCODE_TYPE(XF_ROUTE)] = xa_codec_port_route,
- [XF_OPCODE_TYPE(XF_UNROUTE)] = xa_codec_port_unroute,
- [XF_OPCODE_TYPE(XF_EMPTY_THIS_BUFFER)] = xa_codec_empty_this_buffer,
- [XF_OPCODE_TYPE(XF_FILL_THIS_BUFFER)] = xa_codec_fill_this_buffer,
- [XF_OPCODE_TYPE(XF_FLUSH)] = xa_codec_flush,
- [XF_OPCODE_TYPE(XF_SET_PARAM_EXT)] = xa_base_set_param_ext,
- [XF_OPCODE_TYPE(XF_GET_PARAM_EXT)] = xa_base_get_param_ext,
-};
-
-/* ...total number of commands supported */
-#define XA_CODEC_CMD_NUM (sizeof(xa_codec_cmd) / sizeof(xa_codec_cmd[0]))
-
-/* ...command processor for termination state (only for routed port case) */
-static int xa_audio_codec_terminate(xf_component_t *component, xf_message_t *m)
-{
- XAAudioCodec *codec = (XAAudioCodec *) component;
- u32 opcode = m->opcode;
-
- /* ...check if we received output port control message */
- if (m == xf_output_port_control_msg(&codec->output))
- {
- /* ...output port flushing complete; mark port is idle and terminate */
- xf_output_port_flush_done(&codec->output);
- return -1;
- }
- else if (opcode == XF_FILL_THIS_BUFFER)
- {
- /* ...output buffer returned by the sink component; ignore and keep waiting */
- TRACE(OUTPUT, _b("collect output buffer"));
- return 0;
- }
- else if (opcode == XF_UNREGISTER)
- {
- /* ...ignore subsequent unregister command/response - tbd */
- return 0;
- }
- else
- {
- /* ...everything else is responded with generic failure */
- xf_response_err(m);
- return 0;
- }
-}
-
-/* ...audio codec destructor */
-static int xa_audio_codec_destroy(xf_component_t *component, xf_message_t *m)
-{
- XAAudioCodec *codec = (XAAudioCodec *) component;
- u32 core = xf_component_core(component);
-
- /* ...destroy input port */
- xf_input_port_destroy(&codec->input, core);
-
- /* ...destroy output port */
- xf_output_port_destroy(&codec->output, core);
-
- /* ...deallocate all resources */
- xa_base_destroy(&codec->base, XF_MM(sizeof(*codec)), core);
-
- TRACE(INIT, _b("audio-codec[%p@%u] destroyed"), codec, core);
-
- /* ...indicate the client has been destroyed */
- return 0;
-}
-
-/* ...audio codec destructor - first stage (ports unrouting) */
-static int xa_audio_codec_cleanup(xf_component_t *component, xf_message_t *m)
-{
- XAAudioCodec *codec = (XAAudioCodec *) component;
-
- /* ...complete message with error response */
- xf_response_err(m);
-
- /* ...cancel internal scheduling message if needed */
- xa_base_cancel(&codec->base);
-
- /* ...purge input port (returns OK? pretty strange at this point - tbd) */
- xf_input_port_purge(&codec->input);
-
- /* ...propagate unregister command to connected component */
- if (xf_output_port_flush(&codec->output, XF_FLUSH))
- {
- /* ...flushing sequence is not needed; destroy audio codec */
- return xa_audio_codec_destroy(component, NULL);
- }
- else
- {
- /* ...wait until output port is cleaned; adjust component hooks */
- component->entry = xa_audio_codec_terminate;
- component->exit = xa_audio_codec_destroy;
-
- TRACE(INIT, _b("codec[%p] cleanup sequence started"), codec);
-
- /* ...indicate that second stage is required */
- return 1;
- }
-}
-
-/*******************************************************************************
- * Audio codec component factory
- ******************************************************************************/
-
-xf_component_t * xa_audio_codec_factory(u32 core, xa_codec_func_t process)
-{
- XAAudioCodec *codec;
-
- /* ...allocate local memory for codec structure */
- XF_CHK_ERR(codec = (XAAudioCodec *) xa_base_factory(core, XF_MM(sizeof(*codec)), process), NULL);
-
- /* ...set base codec API methods */
- codec->base.memtab = xa_codec_memtab;
- codec->base.preprocess = xa_codec_preprocess;
- codec->base.postprocess = xa_codec_postprocess;
- codec->base.getparam = xa_codec_getparam;
-
- /* ...set message commands processing table */
- codec->base.command = xa_codec_cmd;
- codec->base.command_num = XA_CODEC_CMD_NUM;
-
- /* ...set component destructor hook */
- codec->base.component.exit = xa_audio_codec_cleanup;
-
- TRACE(INIT, _b("Codec[%p] initialized"), codec);
-
- return (xf_component_t *) codec;
-}
diff --git a/hifi/xaf/hifi-dpf/audio/xa-class-base.c b/hifi/xaf/hifi-dpf/audio/xa-class-base.c
deleted file mode 100644
index ef1110e..0000000
--- a/hifi/xaf/hifi-dpf/audio/xa-class-base.c
+++ /dev/null
@@ -1,537 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xa-class-base.c
- *
- * Generic audio codec task implementation
- *
- ******************************************************************************/
-
-#define MODULE_TAG BASE
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-#include "xa-class-base.h"
-
-/*******************************************************************************
- * Tracing configuration
- ******************************************************************************/
-
-TRACE_TAG(INIT, 1);
-TRACE_TAG(WARNING, 1);
-TRACE_TAG(SETUP, 1);
-TRACE_TAG(EXEC, 1);
-
-/*******************************************************************************
- * Internal functions definitions
- ******************************************************************************/
-
-/* ...codec pre-initialization */
-static XA_ERRORCODE xa_base_preinit(XACodecBase *base, u32 core)
-{
- WORD32 n;
-
- /* ...codec must be empty */
- XF_CHK_ERR(base->state == 0, XA_API_FATAL_INVALID_CMD);
-
- /* ...get API structure size */
- XA_API(base, XA_API_CMD_GET_API_SIZE, 0, &n);
-
- /* ...allocate memory for codec API structure (4-bytes aligned) */
- XMALLOC(&base->api, n, 4, core);
-
- /* ...set default config parameters */
- XA_API(base, XA_API_CMD_INIT, XA_CMD_TYPE_INIT_API_PRE_CONFIG_PARAMS, NULL);
-
- /* ...get memory info tables size */
- if (XA_API(base, XA_API_CMD_GET_MEMTABS_SIZE, 0, &n), n != 0)
- {
- /* ...allocate memory for tables (4-bytes aligned) */
- XMALLOC(&base->mem_tabs, n, 4, core);
-
- /* ...set pointer for process memory tables */
- XA_API(base, XA_API_CMD_SET_MEMTABS_PTR, 0, base->mem_tabs.addr);
- }
-
- TRACE(INIT, _b("Codec[%p] pre-initialization completed"), base);
-
- return XA_NO_ERROR;
-}
-
-/* ...post-initialization setup */
-static XA_ERRORCODE xa_base_postinit(XACodecBase *base, u32 core)
-{
- WORD32 n, i;
-
- /* ...issue post-config command and determine the buffer requirements */
- XA_API(base, XA_API_CMD_INIT, XA_CMD_TYPE_INIT_API_POST_CONFIG_PARAMS, NULL);
-
- /* ...get number of memory tables required */
- XA_API(base, XA_API_CMD_GET_N_MEMTABS, 0, &n);
-
- /* ...set scratch buffer in advance (as codec not necessarily exposes it) */
- base->scratch = XF_CORE_DATA(core)->scratch;
-
- /* ...allocate memory buffers */
- for (i = 0; i < n; i++)
- {
- WORD32 size, align, type;
-
- TRACE(1, _b("i = %u (of %u)"), (u32)i, (u32)n);
-
- /* ...get memory type */
- XA_API(base, XA_API_CMD_GET_MEM_INFO_TYPE, i, &type);
-
- /* ...get memory size of i-th buffer */
- XA_API(base, XA_API_CMD_GET_MEM_INFO_SIZE, i, &size);
-
- /* ...get alignment */
- XA_API(base, XA_API_CMD_GET_MEM_INFO_ALIGNMENT, i, &align);
-
- /* ...process individual buffer */
- switch (type)
- {
- case XA_MEMTYPE_SCRATCH:
- /* ...scratch memory is shared among all codecs; check its validity */
- XF_CHK_ERR(size <= XF_CFG_CODEC_SCRATCHMEM_SIZE, XA_API_FATAL_MEM_ALLOC);
-
- /* ...make sure alignment is valid */
- XF_CHK_ERR((XF_CFG_CODEC_SCRATCHMEM_ALIGN & (align - 1)) == 0, XA_API_FATAL_MEM_ALIGN);
-
- /* ...set the scratch memory pointer */
- XA_API(base, XA_API_CMD_SET_MEM_PTR, i, base->scratch);
-
- TRACE(INIT, _b("Mem tab %d: sz=%d al=%d ty=%d Scratch memory (%p)"), i, size, align, type, base->scratch);
-
- break;
-
- case XA_MEMTYPE_PERSIST:
- /* ...allocate persistent memory */
- XMALLOC(&base->persist, size, align, core);
-
- /* ...and set the pointer instantly */
- XA_API(base, XA_API_CMD_SET_MEM_PTR, i, base->persist.addr);
-
- TRACE(INIT, _b("Mem tab %d: sz=%d al=%d ty=%d Persistent memory (%p)"), i, size, align, type, base->persist.addr);
-
- break;
-
- case XA_MEMTYPE_INPUT:
- case XA_MEMTYPE_OUTPUT:
- /* ...input/output buffer specification; pass to codec function */
- CODEC_API(base, memtab, i, type, size, align, core);
-
- break;
-
- default:
- /* ...unrecognized memory type */
- TRACE(ERROR, _x("Invalid memory type: [%d]=(%u, %u, %u)"), i, type, size, align);
- return XA_API_FATAL_INVALID_CMD_TYPE;
- }
- }
-
- TRACE(INIT, _b("Codec[%p] post-initialization completed (api:%p[%u])"), base, base->api.addr, base->api.size);
-
- return XA_NO_ERROR;
-}
-
-/*******************************************************************************
- * Commands processing
- ******************************************************************************/
-
-/* ...SET-PARAM processing (enabled in all states) */
-XA_ERRORCODE xa_base_set_param(XACodecBase *base, xf_message_t *m)
-{
- xf_set_param_msg_t *cmd = m->buffer;
- xf_set_param_item_t *param = &cmd->item[0];
- WORD32 n, i;
-
- /* ...calculate total amount of parameters */
- n = m->length / sizeof(*param);
-
- /* ...check the message length is valid */
- XF_CHK_ERR(m->length == XF_SET_PARAM_CMD_LEN(n), XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...apply all parameters; pass to codec-specific function */
- for (i = 0; i < n; i++)
- {
- TRACE(SETUP, _b("set-param[%p]: [%u]=%u"), base, param[i].id, param[i].value);
-
- if (base->setparam)
- {
- CODEC_API(base, setparam, param[i].id, ¶m[i].value);
- }
- else
- {
- XA_API(base, XA_API_CMD_SET_CONFIG_PARAM, param[i].id, ¶m[i].value);
- }
- }
-
- /* ...check if we need to do post-initialization */
- if ((base->state & XA_BASE_FLAG_POSTINIT) == 0)
- {
- /* ...do post-initialization step */
- XA_CHK(xa_base_postinit(base, XF_MSG_DST_CORE(m->id)));
-
- /* ...mark the codec static configuration is set */
- base->state ^= XA_BASE_FLAG_POSTINIT | XA_BASE_FLAG_RUNTIME_INIT;
- }
-
- /* ...complete message processing; output buffer is empty */
- xf_response_ok(m);
-
- return XA_NO_ERROR;
-}
-
-/* ...GET-PARAM message processing (enabled in all states) */
-XA_ERRORCODE xa_base_get_param(XACodecBase *base, xf_message_t *m)
-{
- xf_get_param_msg_t *cmd = m->buffer;
- u32 *id = &cmd->c.id[0];
- u32 *value = &cmd->r.value[0];
- u32 n, i;
-
- /* ...calculate amount of parameters */
- n = m->length / sizeof(*id);
-
- /* ...check input parameter length */
- XF_CHK_ERR(XF_GET_PARAM_CMD_LEN(n) == m->length, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...retrieve the collection of codec parameters */
- for (i = 0; i < n; i++)
- {
- /* ...place the result into same location */
- if (base->getparam)
- {
- CODEC_API(base, getparam, id[i], &value[i]);
- }
- else
- {
- XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, id[i], &value[i]);
- }
- }
-
- /* ...complete message specifying output buffer size */
- xf_response_data(m, XF_GET_PARAM_RSP_LEN(n));
-
- return XA_NO_ERROR;
-}
-
-/* ...SET-PARAM-EXT processing (enabled in all states) */
-XA_ERRORCODE xa_base_set_param_ext(XACodecBase *base, xf_message_t *m)
-{
- xf_ext_param_msg_t *cmd = m->buffer;
- u16 length = m->length;
- u16 remaining = (length + 3) & ~3;
- u16 i;
-
- for (i = 0; TRACE_CFG(SETUP) && i < remaining; i += 16)
- {
- TRACE(SETUP, _b("[%03x]: %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X"),
- i,
- ((u8 *)m->buffer)[i + 0], ((u8 *)m->buffer)[i + 1],
- ((u8 *)m->buffer)[i + 2], ((u8 *)m->buffer)[i + 3],
- ((u8 *)m->buffer)[i + 4], ((u8 *)m->buffer)[i + 5],
- ((u8 *)m->buffer)[i + 6], ((u8 *)m->buffer)[i + 7],
- ((u8 *)m->buffer)[i + 8], ((u8 *)m->buffer)[i + 9],
- ((u8 *)m->buffer)[i + 10], ((u8 *)m->buffer)[i + 11],
- ((u8 *)m->buffer)[i + 12], ((u8 *)m->buffer)[i + 13],
- ((u8 *)m->buffer)[i + 14], ((u8 *)m->buffer)[i + 15]);
- }
-
- /* ...process all parameters encapsulated in buffer */
- while (remaining >= sizeof(*cmd))
- {
- u16 id = cmd->desc.id;
- u16 dlen = cmd->desc.length;
- u16 dsize = (dlen + 3) & ~3;
- u16 pad = dlen & 3;
-
- /* ...cut-off descriptor header */
- remaining -= sizeof(*cmd);
-
- TRACE(SETUP, _b("remaining:%u, desc_size:%u"), (u32)remaining, (u32)dsize);
-
- /* ...make sure length is sufficient */
- XF_CHK_ERR(remaining >= dsize, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...pad remaining bytes with zeroes */
- (pad ? memset(cmd->data + dlen, 0, 4 - pad) : 0);
-
- TRACE(SETUP, _b("set-ext-param[%p]: [%u]:%u - [%02X:%02X:%02X:%02X:...]"), base, id, dsize, cmd->data[0], cmd->data[1], cmd->data[2], cmd->data[3]);
-
- /* ...apply parameter */
- XA_API(base, XA_API_CMD_SET_CONFIG_PARAM, id, cmd->data);
-
- /* ...move to next item (keep 4-bytes alignment for descriptor) */
- cmd = (xf_ext_param_msg_t *)(&cmd->data[0] + dsize), remaining -= dsize;
- }
-
- /* ...check the message is fully processed */
- XF_CHK_ERR(remaining == 0, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...complete message processing; output buffer is empty */
- //xf_response_ok(m);
-
- /* ...unfortunately, it looks like a bug of the library that updates the memory
- * and leaves it in a dirty state causing subsequent cache inconsistency - tbd
- */
- xf_response_data(m, length);
-
- return XA_NO_ERROR;
-}
-
-/* ...GET-PARAM-EXT message processing (enabled in all states) */
-XA_ERRORCODE xa_base_get_param_ext(XACodecBase *base, xf_message_t *m)
-{
- xf_ext_param_msg_t *cmd = m->buffer;
- u32 length = m->length;
- u32 remaining = (length + 3) & ~3;
- int i;
-
- for (i = 0; TRACE_CFG(SETUP) && i < remaining; i += 16)
- {
- TRACE(SETUP, _b("[%03x]: %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X"),
- i,
- ((u8 *)m->buffer)[i + 0], ((u8 *)m->buffer)[i + 1],
- ((u8 *)m->buffer)[i + 2], ((u8 *)m->buffer)[i + 3],
- ((u8 *)m->buffer)[i + 4], ((u8 *)m->buffer)[i + 5],
- ((u8 *)m->buffer)[i + 6], ((u8 *)m->buffer)[i + 7],
- ((u8 *)m->buffer)[i + 8], ((u8 *)m->buffer)[i + 9],
- ((u8 *)m->buffer)[i + 10], ((u8 *)m->buffer)[i + 11],
- ((u8 *)m->buffer)[i + 12], ((u8 *)m->buffer)[i + 13],
- ((u8 *)m->buffer)[i + 14], ((u8 *)m->buffer)[i + 15]);
- }
-
- /* ...process all parameters encapsulated in buffer */
- while (remaining >= sizeof(*cmd))
- {
- u16 id = cmd->desc.id;
- u16 len = cmd->desc.length;
- u16 size = (len + 3) & ~3;
- u8 pad = len & 3;
-
- /* ...cut-off command header */
- remaining -= sizeof(*cmd);
-
- /* ...make sure data buffer has sufficient length */
- XF_CHK_ERR(remaining >= size, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...retrieve parameter from buffer (care about alignment? - tbd) */
- XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, id, cmd->data);
-
- /* ...pad remaininig bytes with zeroes */
- (pad ? memset(cmd->data + len, 0, 4 - pad) : 0);
-
- TRACE(SETUP, _b("get-ext-param[%p]: [%u]:%u - [%02X:%02X:%02X:%02X:...]"), base, id, size, cmd->data[0], cmd->data[1], cmd->data[2], cmd->data[3]);
-
- /* ...move to next item (alignment issues? - tbd) */
- cmd = (xf_ext_param_msg_t *)(&cmd->data[0] + size), remaining -= size;
- }
-
- /* ...check the message is fully processed */
- XF_CHK_ERR(remaining == 0, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...complete message processing; output buffer has the same length */
- xf_response_data(m, length);
-
- return XA_NO_ERROR;
-}
-
-/*******************************************************************************
- * Command/data processing functions
- ******************************************************************************/
-
-/* ...generic codec data processing */
-static XA_ERRORCODE xa_base_process(XACodecBase *base)
-{
- XA_ERRORCODE error;
- WORD32 done;
-
- /* ...clear internal scheduling flag */
- base->state &= ~XA_BASE_FLAG_SCHEDULE;
-
- /* ...codec-specific preprocessing (buffer maintenance) */
- if ((error = CODEC_API(base, preprocess)) != XA_NO_ERROR)
- {
- /* ...return non-fatal codec error */
- return error;
- }
-
- /* ...execution step */
- if (base->state & XA_BASE_FLAG_RUNTIME_INIT)
- {
- /* ...kick initialization process */
- XA_API(base, XA_API_CMD_INIT, XA_CMD_TYPE_INIT_PROCESS, NULL);
-
- /* ...check if initialization is completed */
- XA_API(base, XA_API_CMD_INIT, XA_CMD_TYPE_INIT_DONE_QUERY, &done);
-
- TRACE(EXEC, _b("Initialization result: %d"), done);
-
- /* ...switch to execution state if required */
- (done ? base->state ^= XA_BASE_FLAG_RUNTIME_INIT | XA_BASE_FLAG_EXECUTION : 0);
- }
- else if (base->state & XA_BASE_FLAG_EXECUTION)
- {
- TRACE(1, _b("do exec"));
-
- /* ...execute decoding process */
- XA_API(base, XA_API_CMD_EXECUTE, XA_CMD_TYPE_DO_EXECUTE, NULL);
-
- /* ...check for end-of-stream condition */
- XA_API(base, XA_API_CMD_EXECUTE, XA_CMD_TYPE_DONE_QUERY, &done);
-
- TRACE(EXEC, _b("Execution result: %d"), done);
-
- /* ...mark the output path is done to release all queued buffers */
- (done ? base->state ^= XA_BASE_FLAG_EXECUTION | XA_BASE_FLAG_COMPLETED : 0);
- }
-
- /* ...codec-specific buffer post-processing */
- return CODEC_API(base, postprocess, done);
-}
-
-/* ...message-processing function (component entry point) */
-static int xa_base_command(xf_component_t *component, xf_message_t *m)
-{
- XACodecBase *base = (XACodecBase *) component;
- u32 cmd;
-
- /* ...invoke data-processing function if message is null */
- if (m == NULL)
- {
- XF_CHK_ERR(!XA_ERROR_SEVERITY(xa_base_process(base)), -EPIPE);
- return 0;
- }
-
- /* ...process the command */
- TRACE(EXEC, _b("[%p]:state[%X]:(%X, %d, %p)"), base, base->state, m->opcode, m->length, m->buffer);
-
- /* ...bail out if this is forced termination command (I do have a map; maybe I'd better have a hook? - tbd) */
- if ((cmd = XF_OPCODE_TYPE(m->opcode)) == XF_OPCODE_TYPE(XF_UNREGISTER))
- {
- TRACE(INIT, _b("force component[%p] termination"), base);
- return -1;
- }
-
- /* ...check opcode is valid */
- XF_CHK_ERR(cmd < base->command_num, -EINVAL);
-
- /* ...and has a hook */
- XF_CHK_ERR(base->command[cmd] != NULL, -EINVAL);
-
- /* ...pass control to specific command */
- XF_CHK_ERR(!XA_ERROR_SEVERITY(base->command[cmd](base, m)), -EPIPE);
-
- /* ...execution completed successfully */
- return 0;
-}
-
-/*******************************************************************************
- * Base codec API
- ******************************************************************************/
-
-/* ...data processing scheduling */
-void xa_base_schedule(XACodecBase *base, u32 dts)
-{
- if ((base->state & XA_BASE_FLAG_SCHEDULE) == 0)
- {
- /* ...schedule component task execution */
- xf_component_schedule(&base->component, dts);
-
- /* ...and put scheduling flag */
- base->state ^= XA_BASE_FLAG_SCHEDULE;
- }
- else
- {
- TRACE(EXEC, _b("codec[%p] processing pending"), base);
- }
-}
-
-/* ...cancel data processing */
-void xa_base_cancel(XACodecBase *base)
-{
- if (base->state & XA_BASE_FLAG_SCHEDULE)
- {
- /* ...cancel scheduled codec task */
- xf_component_cancel(&base->component);
-
- /* ...and clear scheduling flag */
- base->state ^= XA_BASE_FLAG_SCHEDULE;
-
- TRACE(EXEC, _b("codec[%p] processing cancelled"), base);
- }
-}
-
-/* ...base codec destructor */
-void xa_base_destroy(XACodecBase *base, u32 size, u32 core)
-{
- /* ...deallocate all resources */
- xf_mm_free_buffer(&base->persist, core);
- xf_mm_free_buffer(&base->mem_tabs, core);
- xf_mm_free_buffer(&base->api, core);
-
- /* ...destroy codec structure (and task) itself */
- xf_mem_free(base, size, core, 0);
-
- TRACE(INIT, _b("codec[%p]:%u destroyed"), base, core);
-}
-
-/* ...generic codec initialization routine */
-XACodecBase * xa_base_factory(u32 core, u32 size, xa_codec_func_t process)
-{
- XACodecBase *base;
-
- /* ...make sure the size is valid */
- XF_CHK_ERR(size >= sizeof(XACodecBase), NULL);
-
- /* ...allocate local memory for codec structure */
- XF_CHK_ERR(base = xf_mem_alloc(size, 0, core, 0), NULL);
-
- /* ...reset codec memory */
- memset(base, 0, size);
-
- /* ...set low-level codec API function */
- base->process = process;
-
- /* ...set message processing function */
- base->component.entry = xa_base_command;
-
- /* ...do basic initialization */
- if (xa_base_preinit(base, core) != XA_NO_ERROR)
- {
- /* ...initialization failed for some reason; do cleanup */
- xa_base_destroy(base, size, core);
-
- return NULL;
- }
-
- /* ...initialization completed successfully */
- TRACE(INIT, _b("Codec[%p]:%u initialized"), base, core);
-
- return base;
-}
diff --git a/hifi/xaf/hifi-dpf/audio/xa-class-base.h b/hifi/xaf/hifi-dpf/audio/xa-class-base.h
deleted file mode 100644
index 252044d..0000000
--- a/hifi/xaf/hifi-dpf/audio/xa-class-base.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xa-class-base.h
- *
- * Generic Xtensa Audio codecs interfaces
- *
- ******************************************************************************/
-
-#ifndef __XA_CLASS_BASE_H
-#define __XA_CLASS_BASE_H
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-/* ...audio-specific API */
-#include "audio/xa_type_def.h"
-#include "audio/xa_error_standards.h"
-#include "audio/xa_apicmd_standards.h"
-#include "audio/xa_memory_standards.h"
-
-/*******************************************************************************
- * Generic codec structure
- ******************************************************************************/
-
-typedef struct XACodecBase XACodecBase;
-
-/* ...memory buffer initialization */
-typedef XA_ERRORCODE (*xa_codec_memtab_f)(XACodecBase *codec, WORD32 i, WORD32 type, WORD32 size, WORD32 align, u32 core);
-
-/* ...preprocessing operation */
-typedef XA_ERRORCODE (*xa_codec_preprocess_f)(XACodecBase *);
-
-/* ...postprocessing operation */
-typedef XA_ERRORCODE (*xa_codec_postprocess_f)(XACodecBase *, int);
-
-/* ...parameter setting function */
-typedef XA_ERRORCODE (*xa_codec_setparam_f)(XACodecBase *, WORD32, pVOID p);
-
-/* ...parameter retrival function */
-typedef XA_ERRORCODE (*xa_codec_getparam_f)(XACodecBase *, WORD32, pVOID p);
-
-/*******************************************************************************
- * Codec instance structure
- ******************************************************************************/
-
-struct XACodecBase
-{
- /***************************************************************************
- * Control data
- **************************************************************************/
-
- /* ...generic component handle */
- xf_component_t component;
-
- /* ...codec API entry point (function) */
- xa_codec_func_t *process;
-
- /* ...codec API handle, passed to *process */
- xf_mm_buffer_t api;
-
- /* ...memory table buffer */
- xf_mm_buffer_t mem_tabs;
-
- /* ...persistent memory buffer */
- xf_mm_buffer_t persist;
-
- /* ...scratch memory pointer */
- void *scratch;
-
- /* ...codec control state */
- u32 state;
-
- /***************************************************************************
- * Codec-specific methods
- **************************************************************************/
-
- /* ...memory buffer initialization */
- xa_codec_memtab_f memtab;
-
- /* ...preprocessing function */
- xa_codec_preprocess_f preprocess;
-
- /* ...postprocessing function */
- xa_codec_postprocess_f postprocess;
-
- /* ...configuration parameter setting function */
- xa_codec_setparam_f setparam;
-
- /* ...configuration parameter retrieval function */
- xa_codec_getparam_f getparam;
-
- /* ...command-processing table */
- XA_ERRORCODE (* const * command)(XACodecBase *, xf_message_t *);
-
- /* ...command-processing table size */
- u32 command_num;
-};
-
-/*******************************************************************************
- * Base codec execution flags
- ******************************************************************************/
-
-/* ...codec static initialization completed */
-#define XA_BASE_FLAG_POSTINIT (1 << 0)
-
-/* ...codec runtime initialization sequence */
-#define XA_BASE_FLAG_RUNTIME_INIT (1 << 1)
-
-/* ...codec steady execution state */
-#define XA_BASE_FLAG_EXECUTION (1 << 2)
-
-/* ...execution stage completed */
-#define XA_BASE_FLAG_COMPLETED (1 << 3)
-
-/* ...data processing scheduling flag */
-#define XA_BASE_FLAG_SCHEDULE (1 << 4)
-
-/* ...base codec flags accessor */
-#define __XA_BASE_FLAGS(flags) ((flags) & ((1 << 5) - 1))
-
-/* ...custom execution flag */
-#define __XA_BASE_FLAG(f) ((f) << 5)
-
-/*******************************************************************************
- * Local macros definitions
- ******************************************************************************/
-
-/* ...audio-framework API function execution */
-#define XA_CHK(cond) \
-({ \
- XA_ERRORCODE __e = (cond); \
- if (__e != XA_NO_ERROR) \
- { \
- if (XA_ERROR_SEVERITY(__e)) \
- { \
- TRACE(ERROR, _x("error: %X"), __e); \
- return __e; \
- } \
- TRACE(WARNING, _x("warning: %X"), __e); \
- } \
- __e; \
-})
-
-/* ...low-level codec API function execution */
-#define XA_API(codec, cmd, idx, pv) \
-({ \
- XA_ERRORCODE __e; \
- __e = (codec)->process((xa_codec_handle_t)(codec)->api.addr, (cmd), (idx), (pv)); \
- if (__e != XA_NO_ERROR) \
- { \
- if (XA_ERROR_SEVERITY(__e)) \
- { \
- TRACE(ERROR, _x("[%p]:(%d, %d, %p): %X"), (codec), (cmd), (idx), (pv), __e); \
- return __e; \
- } \
- TRACE(WARNING, _x("%X"), __e); \
- } \
- __e; \
-})
-
-#define XA_API_NORET(codec, cmd, idx, pv) \
-({ \
- XA_ERRORCODE __e; \
- __e = (codec)->process((xa_codec_handle_t)(codec)->api.addr, (cmd), (idx), (pv)); \
- if (__e != XA_NO_ERROR) \
- { \
- if (XA_ERROR_SEVERITY(__e)) \
- { \
- TRACE(ERROR, _x("[%p]:(%d, %d, %p): %X"), (codec), (cmd), (idx), (pv), __e); \
- } \
- TRACE(WARNING, _x("%X"), __e); \
- } \
- __e; \
-})
-
-/* ...codec hook invocation */
-#define CODEC_API(codec, func, ...) \
-({ \
- XA_ERRORCODE __e = (codec)->func((codec), ##__VA_ARGS__); \
- \
- if (__e != XA_NO_ERROR) \
- { \
- if (XA_ERROR_SEVERITY(__e)) \
- { \
- /* ...actual error is reported by the codec */ \
- TRACE(ERROR, _x("[%p]: " #func ": %X"), (codec), __e); \
- return __e; \
- } \
- \
- TRACE(WARNING, _x("warning: %X"), __e); \
- } \
- __e; \
-})
-
-/* ...allocate local memory on specific core */
-#define XMALLOC(p, size, align, core) \
-do \
-{ \
- if (xf_mm_alloc_buffer((size), (align), (core), (p)) != 0) \
- { \
- TRACE(ERROR, _x("Failed to allocate %d bytes of memory"), (size)); \
- return XA_API_FATAL_MEM_ALLOC; \
- } \
- \
- if (((u32)((p)->addr) & ((align) - 1)) != 0) \
- { \
- TRACE(ERROR, _x("Invalid %d-algnment: %p"), (align), (p)->addr); \
- return XA_API_FATAL_MEM_ALIGN; \
- } \
-} \
-while (0)
-
-/*******************************************************************************
- * Public API
- ******************************************************************************/
-
-/* ...SET-PARAM processing */
-extern XA_ERRORCODE xa_base_set_param(XACodecBase *base, xf_message_t *m);
-
-/* ...GET-PARAM-EXT message processing */
-extern XA_ERRORCODE xa_base_set_param_ext(XACodecBase *base, xf_message_t *m);
-
-/* ...GET-PARAM message processing */
-extern XA_ERRORCODE xa_base_get_param(XACodecBase *base, xf_message_t *m);
-
-/* ...GET-PARAM-EXT message processing */
-extern XA_ERRORCODE xa_base_get_param_ext(XACodecBase *base, xf_message_t *m);
-
-/* ...data processing scheduling */
-extern void xa_base_schedule(XACodecBase *base, u32 dts);
-
-/* ...cancel internal scheduling message */
-extern void xa_base_cancel(XACodecBase *base);
-
-/* ...base codec factory */
-extern XACodecBase * xa_base_factory(u32 core, u32 size, xa_codec_func_t process);
-
-/* ...base codec destructor */
-extern void xa_base_destroy(XACodecBase *base, u32 size, u32 core);
-
-#endif /* __XA_CLASS_BASE_H */
diff --git a/hifi/xaf/hifi-dpf/audio/xa-class-mixer.c b/hifi/xaf/hifi-dpf/audio/xa-class-mixer.c
deleted file mode 100644
index 47b4740..0000000
--- a/hifi/xaf/hifi-dpf/audio/xa-class-mixer.c
+++ /dev/null
@@ -1,870 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xa-class-mixer.c
- *
- * Generic mixer component class
- *
- ******************************************************************************/
-
-#define MODULE_TAG MIXER
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-#include "xa-class-base.h"
-#include "audio/xa-mixer-api.h"
-
-/*******************************************************************************
- * Tracing tags
- ******************************************************************************/
-
-TRACE_TAG(INIT, 1);
-TRACE_TAG(WARNING, 1);
-TRACE_TAG(INFO, 1);
-TRACE_TAG(INPUT, 1);
-TRACE_TAG(OUTPUT, 1);
-
-/*******************************************************************************
- * Data structures
- ******************************************************************************/
-
-/* ...mixed source - input data */
-typedef struct XATrack
-{
- /* ...input port data */
- xf_input_port_t input;
-
- /* ...current presentation timestamp (in samples; local to a mixer state) */
- u32 pts;
-
- /* ...total amount of decoded frames since last synchronization point */
- u32 decoded;
-
- /* ...total amount of rendered frames (consumed) since last synchronization point */
- u32 rendered;
-
-} XATrack;
-
-/*******************************************************************************
- * Helpers
- ******************************************************************************/
-
-static inline u32 xa_track_test_flags(XATrack *track, u32 flags)
-{
- return (track->input.flags & flags);
-}
-
-static inline u32 xa_track_set_flags(XATrack *track, u32 flags)
-{
- return (track->input.flags |= flags);
-}
-
-static inline u32 xa_track_clear_flags(XATrack *track, u32 flags)
-{
- return (track->input.flags &= ~flags);
-}
-
-static inline u32 xa_track_toggle_flags(XATrack *track, u32 flags)
-{
- return (track->input.flags ^= flags);
-}
-
-/*******************************************************************************
- * Mixer data definitions
- ******************************************************************************/
-
-/* ...mixer data */
-typedef struct XAMixer
-{
- /***************************************************************************
- * Control data
- **************************************************************************/
-
- /* ...generic audio codec data */
- XACodecBase base;
-
- /* ...input tracks */
- XATrack track[XA_MIXER_MAX_TRACK_NUMBER];
-
- /* ...output port */
- xf_output_port_t output;
-
- /***************************************************************************
- * Run-time configuration parameters
- **************************************************************************/
-
- /* ...audio frame size in samples */
- u32 frame_size;
-
- /* ...audio frame duration */
- u32 frame_duration;
-
- /* ...presentation timestamp (in samples; local mixer scope) */
- u32 pts;
-
-} XAMixer;
-
-/*******************************************************************************
- * Mixer flags
- ******************************************************************************/
-
-/* ...output port setup completed */
-#define XA_MIXER_FLAG_OUTPUT_SETUP __XA_BASE_FLAG(1 << 0)
-
-/*******************************************************************************
- * Track state flags
- ******************************************************************************/
-
-/* ...track is idle (will autostart as soon as input data received) */
-#define XA_TRACK_FLAG_IDLE __XF_INPUT_FLAG(1 << 0)
-
-/* ...track is rendered */
-#define XA_TRACK_FLAG_ACTIVE __XF_INPUT_FLAG(1 << 1)
-
-/* ...track is paused */
-#define XA_TRACK_FLAG_PAUSED __XF_INPUT_FLAG(1 << 2)
-
-/* ...track input port is setup */
-#define XA_TRACK_FLAG_INPUT_SETUP __XF_INPUT_FLAG(1 << 3)
-
-/* ...track has received data */
-#define XA_TRACK_FLAG_RECVD_DATA __XF_INPUT_FLAG(1 << 4)
-
-/*******************************************************************************
- * Helper functions
- ******************************************************************************/
-/* ...Count the tracks that have received data or are active*/
-static inline UWORD32 xa_mixer_check_active(XAMixer *mixer)
-{
- XATrack *track;
- UWORD32 i;
- UWORD32 cnt = 0;
-
- for (track = &mixer->track[i = 0]; i < XA_MIXER_MAX_TRACK_NUMBER; i++, track++)
- {
- if (xa_track_test_flags(track, XA_TRACK_FLAG_RECVD_DATA | XA_TRACK_FLAG_ACTIVE))
- cnt++;
- }
- return cnt;
-}
-
-/* ...prepare mixer for steady operation */
-static inline XA_ERRORCODE xa_mixer_prepare_runtime(XAMixer *mixer)
-{
- XACodecBase *base = (XACodecBase *) mixer;
- xf_message_t *m = xf_msg_dequeue(&mixer->output.queue);
- xf_start_msg_t *msg = m->buffer;
- u32 frame_size;
- u32 factor;
-
- /* ...query mixer parameters */
- XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, XA_MIXER_CONFIG_PARAM_SAMPLE_RATE, &msg->sample_rate);
- XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, XA_MIXER_CONFIG_PARAM_CHANNELS, &msg->channels);
- XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, XA_MIXER_CONFIG_PARAM_PCM_WIDTH, &msg->pcm_width);
- XA_API(base, XA_API_CMD_GET_MEM_INFO_SIZE, 0, &msg->input_length);
- XA_API(base, XA_API_CMD_GET_MEM_INFO_SIZE, XA_MIXER_MAX_TRACK_NUMBER, &msg->output_length);
- XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, XA_MIXER_CONFIG_PARAM_FRAME_SIZE, &frame_size);
-
- /* ...calculate mixer frame duration; get upsample factor */
- XF_CHK_ERR(factor = xf_timebase_factor(msg->sample_rate), XA_MIXER_CONFIG_FATAL_RANGE);
-
- /* ...set mixer frame duration */
- mixer->frame_duration = frame_size * factor;
-
- /* ...pass response to caller */
- xf_response_data(m, sizeof(*msg));
-
- return XA_NO_ERROR;
-}
-
-/*******************************************************************************
- * Commands handlers
- ******************************************************************************/
-
-/* ...EMPTY-THIS-BUFFER command processing */
-static XA_ERRORCODE xa_mixer_empty_this_buffer(XACodecBase *base, xf_message_t *m)
-{
- XAMixer *mixer = (XAMixer *) base;
- u32 i = XF_MSG_DST_PORT(m->id);
- XATrack *track = &mixer->track[i];
-
- /* ...make sure the port is valid */
- XF_CHK_ERR(i < XA_MIXER_MAX_TRACK_NUMBER, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...command is allowed only in "postinit" state */
- XF_CHK_ERR(base->state & XA_BASE_FLAG_POSTINIT, XA_API_FATAL_INVALID_CMD);
-
- TRACE(INPUT, _b("track-%u: received buffer [%p]:%u"), i, m->buffer, m->length);
-
- /* ...update received data for the track */
- if (m->length)
- xa_track_set_flags(track, XA_TRACK_FLAG_RECVD_DATA);
- else
- xa_track_clear_flags(track, XA_TRACK_FLAG_RECVD_DATA);
-
- /* ...place received message into track input port */
- if (xf_input_port_put(&track->input, m))
- {
- /* ...process track autostart if needed */
- if (xa_track_test_flags(track, XA_TRACK_FLAG_IDLE))
- {
- /* ...put track into active state */
- xa_track_toggle_flags(track, XA_TRACK_FLAG_IDLE | XA_TRACK_FLAG_ACTIVE);
-
- /* ...save track presentation timestamp */
- track->pts = mixer->pts;
-
- TRACE(INFO, _b("track-%u started (pts=%x)"), i, track->pts);
- }
-
- /* ...schedule data processing if there is output port available */
- if (xf_output_port_ready(&mixer->output))
- {
- /* ...force data processing */
- xa_base_schedule(base, 0);
- }
- }
-
- return XA_NO_ERROR;
-}
-
-/* ...FILL-THIS-BUFFER command processing */
-static XA_ERRORCODE xa_mixer_fill_this_buffer(XACodecBase *base, xf_message_t *m)
-{
- XAMixer *mixer = (XAMixer *) base;
- u32 i = XF_MSG_DST_PORT(m->id);
-
- /* ...make sure the port is valid */
- XF_CHK_ERR(i == XA_MIXER_MAX_TRACK_NUMBER, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...command is allowed only in "postinit" state */
- XF_CHK_ERR(base->state & XA_BASE_FLAG_POSTINIT, XA_API_FATAL_INVALID_CMD);
-
- /* ...process runtime initialization explicitly */
- if (base->state & XA_BASE_FLAG_RUNTIME_INIT)
- {
- /* ...message must be zero-length */
- XF_CHK_ERR(m->length == 0, XA_MIXER_EXEC_FATAL_STATE);
- }
- else if (m->length != 0) /* ...EOS response */
- {
- /* ...message must have exactly expected size (there is no ordered abortion) */
- XF_CHK_ERR(m->length == mixer->output.length, XA_MIXER_EXEC_FATAL_STATE);
- }
-
- TRACE(OUTPUT, _b("received output buffer [%p]:%u"), m->buffer, m->length);
-
- /* ...put message into output port */
- if (xf_output_port_put(&mixer->output, m))
- {
- /* ...force data processing */
- xa_base_schedule(base, 0);
- }
-
- return XA_NO_ERROR;
-}
-
-/* ...output port routing */
-static XA_ERRORCODE xa_mixer_port_route(XACodecBase *base, xf_message_t *m)
-{
- XAMixer *mixer = (XAMixer *) base;
- xf_route_port_msg_t *cmd = m->buffer;
- xf_output_port_t *port = &mixer->output;
- u32 src = XF_MSG_DST(m->id);
- u32 dst = cmd->dst;
-
- /* ...command is allowed only in "postinit" state */
- XF_CHK_ERR(base->state & XA_BASE_FLAG_POSTINIT, XA_API_FATAL_INVALID_CMD);
-
- /* ...make sure output port is addressed */
- XF_CHK_ERR(XF_MSG_DST_PORT(m->id) == XA_MIXER_MAX_TRACK_NUMBER, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...make sure port is not routed yet */
- XF_CHK_ERR(!xf_output_port_routed(port), XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...route output port - allocate queue */
- XF_CHK_ERR(xf_output_port_route(port, __XF_MSG_ID(dst, src), cmd->alloc_number, cmd->alloc_size, cmd->alloc_align) == 0, XA_API_FATAL_MEM_ALLOC);
-
- /* ...schedule processing instantly - tbd - check if we have anything pending on input */
- xa_base_schedule(base, 0);
-
- /* ...pass success result to caller */
- xf_response_ok(m);
-
- return XA_NO_ERROR;
-}
-
-/* ...port unroute command */
-static XA_ERRORCODE xa_mixer_port_unroute(XACodecBase *base, xf_message_t *m)
-{
- XAMixer *mixer = (XAMixer *) base;
- xf_output_port_t *port = &mixer->output;
-
- /* ...command is allowed only in "postinit" state */
- XF_CHK_ERR(base->state & XA_BASE_FLAG_POSTINIT, XA_API_FATAL_INVALID_CMD);
-
- /* ...make sure output port is addressed */
- XF_CHK_ERR(XF_MSG_DST_PORT(m->id) == XA_MIXER_MAX_TRACK_NUMBER, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...cancel any pending processing */
- xa_base_cancel(base);
-
- /* ...clear output-port-setup condition */
- base->state &= ~XA_MIXER_FLAG_OUTPUT_SETUP;
-
- /* ...pass flush command down the graph */
- if (xf_output_port_flush(port, XF_FLUSH))
- {
- TRACE(INFO, _b("port is idle; instantly unroute"));
-
- /* ...flushing sequence is not needed; command may be satisfied instantly */
- xf_output_port_unroute(port);
-
- /* ...pass response to the proxy */
- xf_response_ok(m);
- }
- else
- {
- TRACE(INFO, _b("port is busy; propagate unroute command"));
-
- /* ...flushing sequence is started; save flow-control message */
- xf_output_port_unroute_start(port, m);
- }
-
- return XA_NO_ERROR;
-}
-
-/* ...PAUSE message processing */
-static XA_ERRORCODE xa_mixer_pause(XACodecBase *base, xf_message_t *m)
-{
- XAMixer *mixer = (XAMixer *) base;
- u32 i = XF_MSG_DST_PORT(m->id);
- XATrack *track = &mixer->track[i];
-
- /* ...make sure the buffer is empty */
- XF_CHK_ERR(m->length == 0, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...check destination port is valid */
- XF_CHK_ERR(i < XA_MIXER_MAX_TRACK_NUMBER, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...check for actual track flags */
- if (xa_track_test_flags(track, XA_TRACK_FLAG_ACTIVE))
- {
- /* ...switch to paused state */
- xa_track_toggle_flags(track, XA_TRACK_FLAG_ACTIVE | XA_TRACK_FLAG_PAUSED);
-
- /* ...other tracks may be waiting for this one, so force data processing */
- if (xf_output_port_ready(&mixer->output))
- {
- xa_base_schedule(base, 0);
- }
-
- TRACE(INFO, _b("mixer[%p]::track[%u] paused"), mixer, i);
- }
- else
- {
- /* ...track is in idle state and pausing here means suspending */
- TRACE(INFO, _b("mixer[%p]::track[%u] is not active"), mixer, i);
- }
-
- /* ...complete message immediately */
- xf_response(m);
-
- return XA_NO_ERROR;
-}
-
-/* ...RESUME command processing */
-static XA_ERRORCODE xa_mixer_resume(XACodecBase *base, xf_message_t *m)
-{
- XAMixer *mixer = (XAMixer *) base;
- u32 i = XF_MSG_DST_PORT(m->id);
- XATrack *track = &mixer->track[i];
-
- /* ...make sure the buffer is empty */
- XF_CHK_ERR(m->length == 0, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...check destination port is valid */
- XF_CHK_ERR(i < XA_MIXER_MAX_TRACK_NUMBER, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...check for actual track state */
- if (xa_track_test_flags(track, XA_TRACK_FLAG_PAUSED))
- {
- /* ...switch track to active state */
- xa_track_toggle_flags(track, XA_TRACK_FLAG_ACTIVE | XA_TRACK_FLAG_PAUSED);
-
- /* ...reset track presentation timestamp - tbd */
- track->pts = mixer->pts;
-
- /* ...force data processing if there is an output buffer */
- if (xf_output_port_ready(&mixer->output))
- {
- xa_base_schedule(base, 0);
- }
-
- TRACE(INFO, _b("mixer[%p]::track[%u] resumed"), mixer, i);
- }
- else
- {
- /* ...track is in idle state; do nothing */
- TRACE(INFO, _b("mixer[%p]::track[%u] is not paused"), mixer, i);
- }
-
- /* ...complete message */
- xf_response(m);
-
- return XA_NO_ERROR;
-}
-
-/* ...FLUSH command processing */
-static XA_ERRORCODE xa_mixer_flush(XACodecBase *base, xf_message_t *m)
-{
- XAMixer *mixer = (XAMixer *) base;
- u32 i = XF_MSG_DST_PORT(m->id);
- XATrack *track = &mixer->track[i];
-
- /* ...make sure the buffer is empty */
- XF_CHK_ERR(m->length == 0, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...check destination port index */
- if (i == XA_MIXER_MAX_TRACK_NUMBER)
- {
- /* ...flushing response received; that is a port unrouting sequence */
- XF_CHK_ERR(xf_output_port_unrouting(&mixer->output), XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...complete unroute sequence */
- xf_output_port_unroute_done(&mixer->output);
-
- TRACE(INFO, _b("port is unrouted"));
-
- return XA_NO_ERROR;
- }
-
- /* ...check destination port index is valid */
- XF_CHK_ERR(i < XA_MIXER_MAX_TRACK_NUMBER, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...input port flushing; check the track state is valid */
- if (xa_track_test_flags(track, XA_TRACK_FLAG_ACTIVE | XA_TRACK_FLAG_PAUSED))
- {
- /* ...purge input port */
- xf_input_port_purge(&track->input);
-
- /* ...force clearing of ACTIVE and INPUT_SETUP condition */
- xa_track_clear_flags(track, XA_TRACK_FLAG_ACTIVE | XA_TRACK_FLAG_PAUSED | XA_TRACK_FLAG_INPUT_SETUP);
-
- /* ...and enter into idle state */
- xa_track_set_flags(track, XA_TRACK_FLAG_IDLE);
-
- /* ...other tracks may be waiting for this track, so force data processing */
- if (xf_output_port_ready(&mixer->output))
- {
- xa_base_schedule(base, 0);
- }
-
- TRACE(INFO, _b("mixer[%p]::track[%u] flushed"), mixer, i);
- }
-
- /* ...complete message instantly (no propagation to output port) */
- xf_response(m);
-
- return XA_NO_ERROR;
-}
-
-/*******************************************************************************
- * Codec API implementation
- ******************************************************************************/
-
-/* ...buffers handling */
-static XA_ERRORCODE xa_mixer_memtab(XACodecBase *base, WORD32 idx, WORD32 type, WORD32 size, WORD32 align, u32 core)
-{
- XAMixer *mixer = (XAMixer *)base;
-
- if (type == XA_MEMTYPE_INPUT)
- {
- XATrack *track = &mixer->track[idx];
-
- /* ...input buffer allocation; check track number is valid */
- XF_CHK_ERR(idx < XA_MIXER_MAX_TRACK_NUMBER, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...create input port for a track */
- XF_CHK_ERR(xf_input_port_init(&track->input, size, align, core) == 0, XA_API_FATAL_MEM_ALLOC);
-
- /* ...set input port buffer */
- XA_API(base, XA_API_CMD_SET_MEM_PTR, idx, track->input.buffer);
-
- /* ...put track into idle state (will start as soon as we receive data) */
- xa_track_set_flags(track, XA_TRACK_FLAG_IDLE);
-
- TRACE(INIT, _b("mixer[%p]::track[%u] input port created - size=%u"), mixer, idx, size);
- }
- else
- {
- /* ...output buffer allocation */
- XF_CHK_ERR(type == XA_MEMTYPE_OUTPUT, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...check port number is what we expect */
- XF_CHK_ERR(idx == XA_MIXER_MAX_TRACK_NUMBER, XA_API_FATAL_INVALID_CMD_TYPE);
-
- /* ...set mixer frame-size (in samples - for timestamp tracking) */
- XA_API(base, XA_API_CMD_GET_CONFIG_PARAM, XA_MIXER_CONFIG_PARAM_FRAME_SIZE, &mixer->frame_size);
-
- /* ...create output port for a track */
- XF_CHK_ERR(xf_output_port_init(&mixer->output, size) == 0, XA_API_FATAL_MEM_ALLOC);
-
- TRACE(INIT, _b("mixer[%p] output port created; size=%u"), mixer, size);
- }
-
- return XA_NO_ERROR;
-}
-
-/* ...preprocessing function */
-static XA_ERRORCODE xa_mixer_preprocess(XACodecBase *base)
-{
- XAMixer *mixer = (XAMixer *) base;
- XATrack *track;
- u8 i;
- XA_ERRORCODE e = XA_MIXER_EXEC_NONFATAL_NO_DATA;
-
- /* ...prepare output buffer */
- if (!(base->state & XA_MIXER_FLAG_OUTPUT_SETUP))
- {
- void *output;
-
- /* ...set output buffer pointer */
- if (base->state & XA_BASE_FLAG_RUNTIME_INIT)
- {
- /* ...no actual data processing during initialization */
- return XA_NO_ERROR;
- }
- else if ((output = xf_output_port_data(&mixer->output)) == NULL)
- {
- /* ...no output buffer available */
- return e;
- }
-
- /* ...set output buffer pointer */
- XA_API(base, XA_API_CMD_SET_MEM_PTR, XA_MIXER_MAX_TRACK_NUMBER, output);
-
- /* ...mark output port is setup */
- base->state ^= XA_MIXER_FLAG_OUTPUT_SETUP;
- }
-
- /* ...check EOS */
- if (!xa_mixer_check_active(mixer))
- {
- /* ...push EOS to output port */
- xf_output_port_produce(&mixer->output, 0);
- TRACE(INFO, _b("mixer[%p]::EOS generated"), mixer);
- }
-
- /* ...setup input buffer pointers and length */
- for (track = &mixer->track[i = 0]; i < XA_MIXER_MAX_TRACK_NUMBER; i++, track++)
- {
- /* ...skip tracks that are not played */
- if (!xa_track_test_flags(track, XA_TRACK_FLAG_ACTIVE)) continue;
-
- /* ...set temporary mixing request */
- e = XA_NO_ERROR;
-
- /* ...skip the tracks that has been setup already */
- if (xa_track_test_flags(track, XA_TRACK_FLAG_INPUT_SETUP)) continue;
-
- /* ...found active track that hasn't been setup yet */
- TRACE(INPUT, _b("track-%u: ts=%x vs mts=%x"), i, track->pts, mixer->pts);
-
- /* ...if track presentation timestamp is in the future, do nothing yet really */
- if (!xf_time_after(track->pts, mixer->pts))
- {
- u32 filled;
-
- /* ...take actual data from input port (mixer is always using internal buffer) */
- if (!xf_input_port_fill(&track->input))
- {
- /* ...failed to prefill input buffer - no sufficient data yet */
- return XA_MIXER_EXEC_NONFATAL_NO_DATA;
- }
- else
- {
- /* ...retrieve number of bytes available */
- filled = xf_input_port_level(&track->input);
- }
-
- /* ...set total number of bytes we have in buffer */
- XA_API(base, XA_API_CMD_SET_INPUT_BYTES, i, &filled);
-
- /* ...actual data is to be played */
- TRACE(INPUT, _b("track-%u: filled %u bytes"), i, filled);
- }
-
- /* ...mark the track input is setup (emit silence or actual data) */
- xa_track_set_flags(track, XA_TRACK_FLAG_INPUT_SETUP);
- }
-
- /* ...do mixing operation only when all active tracks are setup */
- return e;
-}
-
-/* ...postprocessing function */
-static XA_ERRORCODE xa_mixer_postprocess(XACodecBase *base, int done)
-{
- XAMixer *mixer = (XAMixer *) base;
- XATrack *track;
- u32 produced;
- u32 consumed;
- u8 i;
-
- /* ...process execution stage transitions */
- if (done)
- {
- if (base->state & XA_BASE_FLAG_RUNTIME_INIT)
- {
- /* ...failed to initialize runtime (can't be? - tbd)*/
- BUG(1, _x("breakpoint"));
- }
- else if (base->state & XA_BASE_FLAG_EXECUTION)
- {
- /* ...enter into execution state; initialize runtime */
- return XA_CHK(xa_mixer_prepare_runtime(mixer));
- }
- else
- {
- /* ...mixer operation is over (can't be? - tbd) */
- BUG(1, _x("breakpoint"));
- }
- }
-
- /* ...input ports maintenance; process all tracks */
- for (track = &mixer->track[i = 0]; i < XA_MIXER_MAX_TRACK_NUMBER; i++, track++)
- {
- /* ...skip the tracks that are not runing */
- if (!xa_track_test_flags(track, XA_TRACK_FLAG_ACTIVE)) continue;
-
- /* ...clear input setup flag */
- xa_track_clear_flags(track, XA_TRACK_FLAG_INPUT_SETUP);
-
- /* ...advance track presentation timestamp */
- track->pts += mixer->frame_size;
-
- /* ...get total amount of consumed bytes */
- XA_API(base, XA_API_CMD_GET_CURIDX_INPUT_BUF, i, &consumed);
-
- TRACE(INPUT, _b("track-%u::postprocess(c=%u, ts=%x)"), i, consumed, track->pts);
-
- /* ...consume that amount from input port (may be zero) */
- xf_input_port_consume(&track->input, consumed);
-
- /* ...check if input port is done */
- if (xf_input_port_done(&track->input))
- {
- /* ...input stream is over; return zero-length input back to caller */
- xf_input_port_purge(&track->input);
-
- /* ...switch to idle state */
- xa_track_toggle_flags(track, XA_TRACK_FLAG_ACTIVE | XA_TRACK_FLAG_IDLE);
-
- TRACE(INFO, _b("mixer[%p]::track[%u] completed"), mixer, i);
- }
- }
-
- /* ...check if we have produced anything */
- XA_API(base, XA_API_CMD_GET_OUTPUT_BYTES, XA_MIXER_MAX_TRACK_NUMBER, &produced);
-
- TRACE(OUTPUT, _b("mixer[%p]::postprocess(p=%u, ts=%x, done=%u)"), mixer, produced, mixer->pts, done);
-
- /* ...output port maintenance */
- if (produced)
- {
- /* ...make sure we have produced exactly single frame */
- BUG(produced != mixer->output.length, _x("Invalid length: %u != %u"), produced, mixer->output.length);
-
- /* ...steady mixing process; advance mixer presentation timestamp */
- mixer->pts += mixer->frame_size;
-
- /* ...push data from output port */
- xf_output_port_produce(&mixer->output, produced);
-
- /* ...clear output-setup condition */
- base->state &= ~XA_MIXER_FLAG_OUTPUT_SETUP;
- }
-
- /* ...reschedule data processing if there is a pending output message */
- if (xf_output_port_ready(&mixer->output))
- {
- /* ...schedule execution with respect to urgency */
- xa_base_schedule(base, (produced ? mixer->frame_duration : 0));
- }
-
- return XA_NO_ERROR;
-}
-
-/*******************************************************************************
- * Command-processing function
- ******************************************************************************/
-
-/* ...command hooks */
-static XA_ERRORCODE (* const xa_mixer_cmd[])(XACodecBase *, xf_message_t *) =
-{
- /* ...set-parameter - actually, same as in generic case */
- [XF_OPCODE_TYPE(XF_SET_PARAM)] = xa_base_set_param,
- [XF_OPCODE_TYPE(XF_GET_PARAM)] = xa_base_get_param,
-
- /* ...output port routing/unrouting */
- [XF_OPCODE_TYPE(XF_ROUTE)] = xa_mixer_port_route,
- [XF_OPCODE_TYPE(XF_UNROUTE)] = xa_mixer_port_unroute,
-
- /* ...input/output buffers processing */
- [XF_OPCODE_TYPE(XF_EMPTY_THIS_BUFFER)] = xa_mixer_empty_this_buffer,
- [XF_OPCODE_TYPE(XF_FILL_THIS_BUFFER)] = xa_mixer_fill_this_buffer,
- [XF_OPCODE_TYPE(XF_FLUSH)] = xa_mixer_flush,
-
- /* ...track control */
- [XF_OPCODE_TYPE(XF_PAUSE)] = xa_mixer_pause,
- [XF_OPCODE_TYPE(XF_RESUME)] = xa_mixer_resume,
-};
-
-/* ...total number of commands supported */
-#define XA_MIXER_CMD_NUM (sizeof(xa_mixer_cmd) / sizeof(xa_mixer_cmd[0]))
-
-/*******************************************************************************
- * Entry points
- ******************************************************************************/
-
-/* ...mixer termination-state command processor */
-static int xa_mixer_terminate(xf_component_t *component, xf_message_t *m)
-{
- XAMixer *mixer = (XAMixer *) component;
- u32 opcode = m->opcode;
-
- if (m == xf_output_port_control_msg(&mixer->output))
- {
- /* ...output port flushing complete; mark port is idle and terminate */
- xf_output_port_flush_done(&mixer->output);
- return -1;
- }
- else if (opcode == XF_FILL_THIS_BUFFER && xf_output_port_routed(&mixer->output))
- {
- /* ...output buffer returned by the sink component; ignore and keep waiting */
- TRACE(OUTPUT, _b("collect output buffer"));
- return 0;
- }
- else if (opcode == XF_UNREGISTER)
- {
- /* ...ignore subsequent unregister command/response */
- return 0;
- }
- else
- {
- /* ...everything else is responded with generic failure */
- xf_response_err(m);
- return 0;
- }
-}
-
-/* ...mixer class destructor */
-static int xa_mixer_destroy(xf_component_t *component, xf_message_t *m)
-{
- XAMixer *mixer = (XAMixer *) component;
- u32 core = xf_component_core(component);
- u32 i;
-
- /* ...destroy all inputs */
- for (i = 0; i < XA_MIXER_MAX_TRACK_NUMBER; i++)
- {
- xf_input_port_destroy(&mixer->track[i].input, core);
- }
-
- /* ...destroy output port */
- xf_output_port_destroy(&mixer->output, core);
-
- /* ...destroy base object */
- xa_base_destroy(&mixer->base, XF_MM(sizeof(*mixer)), core);
-
- TRACE(INIT, _b("mixer[%p] destroyed"), mixer);
-
- return 0;
-}
-
-/* ...mixer class first-stage destructor */
-static int xa_mixer_cleanup(xf_component_t *component, xf_message_t *m)
-{
- XAMixer *mixer = (XAMixer *) component;
- u32 i;
-
- /* ...complete message with error result code */
- xf_response_err(m);
-
- /* ...cancel internal scheduling message if needed */
- xa_base_cancel(&mixer->base);
-
- /* ...purge all input ports (specify "unregister"? - don't know yet - tbd) */
- for (i = 0; i < XA_MIXER_MAX_TRACK_NUMBER; i++)
- {
- xf_input_port_purge(&mixer->track[i].input);
- }
-
- /* ...flush output port */
- if (xf_output_port_flush(&mixer->output, XF_FLUSH))
- {
- /* ...flushing sequence is not needed; destroy mixer */
- return xa_mixer_destroy(component, NULL);
- }
- else
- {
- /* ...wait until output port is cleaned; adjust component hooks */
- component->entry = xa_mixer_terminate;
- component->exit = xa_mixer_destroy;
-
- TRACE(INIT, _b("mixer[%p] cleanup sequence started"), mixer);
-
- /* ...indicate that second stage is required */
- return 1;
- }
-}
-
-/* ...mixer class factory */
-xf_component_t * xa_mixer_factory(u32 core, xa_codec_func_t process)
-{
- XAMixer *mixer;
-
- /* ...construct generic audio component */
- XF_CHK_ERR(mixer = (XAMixer *)xa_base_factory(core, XF_MM(sizeof(*mixer)), process), NULL);
-
- /* ...set generic codec API */
- mixer->base.memtab = xa_mixer_memtab;
- mixer->base.preprocess = xa_mixer_preprocess;
- mixer->base.postprocess = xa_mixer_postprocess;
-
- /* ...set message-processing table */
- mixer->base.command = xa_mixer_cmd;
- mixer->base.command_num = XA_MIXER_CMD_NUM;
-
- /* ...set component destructor hook */
- mixer->base.component.exit = xa_mixer_cleanup;
-
- TRACE(INIT, _b("Mixer[%p] created"), mixer);
-
- /* ...return handle to component */
- return (xf_component_t *) mixer;
-}
diff --git a/hifi/xaf/hifi-dpf/build_hikey/Makefile b/hifi/xaf/hifi-dpf/build_hikey/Makefile
deleted file mode 100644
index e1980a0..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/Makefile
+++ /dev/null
@@ -1,135 +0,0 @@
-#
-# Copyright (C) 2018 Cadence Design Systems, Inc.
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to use this Software with Cadence processor cores only and
-# not with any other processors and platforms, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-
-
-.PHONY: all install clean HIKEY960
-
-NOSTRIP = 1
-XF_TRACE = 1
-
-ROOTDIR = ..
-CODEC_NAME = hikey
-
-PLUGINO2OBJS =
-PLUGINLIBS =
-PLUGININCLUDES =
-
-XA_MP3_DECODER ?= 0
-XA_VORBIS_DECODER ?= 1
-XA_MIXER ?= 1
-XA_PCM ?= 1
-
-
-vpath %.c $(ROOTDIR)/ipc/xt-shmem/hikey
-vpath %.c $(ROOTDIR)/ipc/xt-shmem
-vpath %.c $(ROOTDIR)/core/util
-vpath %.c $(ROOTDIR)/core/util/gdbstub
-vpath %.c $(ROOTDIR)/core
-vpath %.c $(ROOTDIR)/app
-vpath %.c $(ROOTDIR)/audio
-
-vpath %.S $(ROOTDIR)/ipc/xt-shmem/hikey
-vpath %.S $(ROOTDIR)/core/util/gdbstub
-
-vpath %.c $(ROOTDIR)/plugins/cadence/mixer
-
-LIBXAFASMOBJS = \
- reset.o \
- int_vector.o \
- arch_hifi330.o \
- gdbstub-entry.o
-
-LIBXAFO2OBJS = \
- cpu_c.o \
- dsp_debug.o \
- dsp_comm.o \
- mutex.o \
- rbtree.o \
- xf-core.o \
- xf-io.o \
- xf-mem.o \
- xf-msg.o \
- xf-sched.o \
- xa-factory.o \
- xf-shmem.o \
- tinyvprintf.o \
- xf-isr.o \
- gdbstub.o \
- xa-class-base.o \
- xa-class-audio-codec.o \
- xa-class-mixer.o \
- xf-main.o
-
-ifeq ($(XF_TRACE),1)
- CFLAGS += -DXF_TRACE=1
- CFLAGS += -DXAF_PROFILE_DSP=1
-endif
-
-ifeq ($(XA_MP3_DECODER),1)
- vpath %.c $(ROOTDIR)/plugins/cadence/mp3_dec
- CFLAGS += -DXA_MP3_DECODER=1
- PLUGINO2OBJS += xa-mp3-decoder.o
- PLUGINLIBS += $(ROOTDIR)/plugins/cadence/mp3_dec/lib/hifi2/xa_mp3_dec.a
- PLUGININCLUDES += -I$(ROOTDIR)/plugins/cadence/mp3_dec
-endif
-
-ifeq ($(XA_PCM),1)
- vpath %.c $(ROOTDIR)/plugins/cadence/pcm_proc
- CFLAGS += -DXA_PCM=1
- PLUGINO2OBJS += xa-pcm.o
- PLUGINLIBS +=
- PLUGININCLUDES += -I$(ROOTDIR)/plugins/cadence/pcm_proc
-endif
-
-ifeq ($(XA_VORBIS_DECODER),1)
- vpath %.c $(ROOTDIR)/plugins/cadence/vorbis_dec
- CFLAGS += -DXA_VORBIS_DECODER=1
- PLUGINO2OBJS += xa-vorbis-decoder.o
- PLUGINLIBS += $(ROOTDIR)/plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a
- PLUGININCLUDES += -I$(ROOTDIR)/plugins/cadence/vorbis_dec
-endif
-
-ifeq ($(XA_MIXER),1)
- vpath %.c $(ROOTDIR)/plugins/cadence/mixer
- CFLAGS += -DXA_MIXER=1
- PLUGINO2OBJS += xa-mixer.o
- PLUGINLIBS +=
- PLUGININCLUDES += -I$(ROOTDIR)/plugins/cadence/mixer
-endif
-
-LIBO2OBJS = $(LIBXAFO2OBJS) $(LIBMP3DECO2OBJS) $(LIBMIXERO2OBJS) $(PLUGINO2OBJS)
-LIBASMOBJS = $(LIBXAFASMOBJS)
-
-INCLUDES += \
- -I$(ROOTDIR)/include \
- -I$(ROOTDIR)/include/audio \
- -I$(ROOTDIR)/include/sys/xt-shmem \
- -I$(ROOTDIR)/include/sys/xt-shmem/board-hikey \
- -I$(ROOTDIR)/plugins/cadence/mp3_dec
-
-INCLUDES += $(PLUGININCLUDES)
-
-LDFLAGS += -nostdlib -lhal -lhandlers-board -lc -lgcc
-LDFLAGS += -mlsp="./hifi_hikey_lsp"
-
-HIKEY960: $(CODEC_NAME)
-
-include $(ROOTDIR)/build_hikey/common.mk
diff --git a/hifi/xaf/hifi-dpf/build_hikey/common.mk b/hifi/xaf/hifi-dpf/build_hikey/common.mk
deleted file mode 100644
index ef4429e..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/common.mk
+++ /dev/null
@@ -1,156 +0,0 @@
-#
-# Copyright (C) 2018 Cadence Design Systems, Inc.
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to use this Software with Cadence processor cores only and
-# not with any other processors and platforms, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-
-QUIET =
-MAPFILE = map_$(CODEC_NAME).txt
-LDSCRIPT = ldscript_$(CODEC_NAME).txt
-SYMFILE = symbols_$(CODEC_NAME).txt
-ELFTOBIN = $(ROOTDIR)/build_hikey/tools/elftobin.sh
-
-ifeq ($(CPU), gcc)
- S = /
- AR = ar
- OBJCOPY = objcopy
- CC = gcc
- CXX = g++
- CFLAGS += -fno-exceptions -DCSTUB=1
- CFLAGS += -ffloat-store
- CFLAGS += -DHIFI3_CSTUB
- RM = rm -f
- RM_R = rm -rf
- MKPATH = mkdir -p
- CP = cp -f
- INCLUDES += \
- -I$(ROOTDIR)/test/include
-else
- AR = xt-ar $(XTCORE)
- OBJCOPY = xt-objcopy $(XTCORE)
- CC = xt-xcc $(XTCORE)
- CXX = xt-xc++ $(XTCORE)
- ISS = xt-run $(XTCORE)
- CONFIGDIR := $(shell $(ISS) --show-config=config)
- include $(CONFIGDIR)/misc/hostenv.mk
- #CFLAGS += -Wall
- #CFLAGS += -Werror
- #CFLAGS += -mno-mul16 -mno-mul32 -mno-div32 -fsigned-char -fno-exceptions -mlongcalls -INLINE:requested -mcoproc -fno-zero-initialized-in-bss
- CFLAGS += -mlongcalls -mtext-section-literals
- ASMFLAGS += -mlongcalls
-endif
-
-OBJDIR = objs$(S)$(CODEC_NAME)
-LIBDIR = $(ROOTDIR)$(S)lib
-
-OBJ_LIBO2OBJS = $(addprefix $(OBJDIR)/,$(LIBO2OBJS))
-OBJ_LIBOSOBJS = $(addprefix $(OBJDIR)/,$(LIBOSOBJS))
-OBJ_LIBO2CPPOBJS = $(addprefix $(OBJDIR)/,$(LIBO2CPPOBJS))
-OBJ_LIBOSCPPOBJS = $(addprefix $(OBJDIR)/,$(LIBOSCPPOBJS))
-OBJ_LIBASMOBJS = $(addprefix $(OBJDIR)/,$(LIBASMOBJS))
-
-TEMPOBJ = temp.o
-
-ifeq ($(CPU), gcc)
- LIBOBJ = $(OBJDIR)/xgcc_$(CODEC_NAME).o
- LIB = xgcc_$(CODEC_NAME).img
-else
- LIBOBJ = $(OBJDIR)/xa_$(CODEC_NAME).o
- LIB = xa_$(CODEC_NAME).img
-endif
-
-CFLAGS += \
- $(EXTRA_CFLAGS) $(EXTRA_CFLAGS2)
-
-
-ifeq ($(DEBUG),1)
- NOSTRIP = 1
- OPT_O2 = -O0 -g
- OPT_OS = -O0 -g
- CFLAGS += -DDEBUG
-else
-ifeq ($(CPU), gcc)
- OPT_O2 = -O2 -g
- OPT_OS = -O2 -g
-else
- #OPT_O2 = -O3 -LNO:simd
- OPT_O2 = -g -O2
- OPT_OS = -Os
-endif
-endif
-
-OPT_ASM = -g -Wa,--gdwarf-2
-
-
-all: $(OBJDIR) $(LIB)
-$(CODEC_NAME): $(OBJDIR) $(LIB)
-
-install: $(LIB)
- @echo "Installing $(LIB)"
- $(QUIET) -$(MKPATH) "$(LIBDIR)"
- $(QUIET) $(CP) $(LIB) "$(LIBDIR)"
-
-$(OBJDIR):
- $(QUIET) -$(MKPATH) $@
-
-ifeq ($(NOSTRIP), 1)
-$(LIBOBJ): $(OBJ_LIBO2OBJS) $(OBJ_LIBOSOBJS) $(OBJ_LIBO2CPPOBJS) $(OBJ_LIBOSCPPOBJS) $(OBJ_LIBASMOBJS) $(PLUGINLIBS)
- @echo "Linking Objects"
- $(QUIET) $(CXX) -c $(OPT_O2) $(CFLAGS) -o $@ $^ \
- -Wl,-Map,$(MAPFILE) --no-standard-libraries \
- $(LDFLAGS) $(EXTRA_LDFLAGS)
-else
-$(LIBOBJ): $(OBJ_LIBO2OBJS) $(OBJ_LIBOSOBJS) $(OBJ_LIBO2CPPOBJS) $(OBJ_LIBOSCPPOBJS) $(OBJ_LIBASMOBJS) $(PLUGINLIBS)
- @echo "Linking Objects"
- $(QUIET) $(CXX) -c $(OPT_O2) $(CFLAGS) -o $@ $^ \
- -Wl,-Map,$(MAPFILE) --no-standard-libraries \
- -Wl,--retain-symbols-file,$(SYMFILE) \
- $(IPA_FLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS)
- $(QUIET) $(OBJCOPY) --keep-global-symbols=$(SYMFILE) $@ $(TEMPOBJ)
- $(QUIET) $(OBJCOPY) --strip-unneeded $(TEMPOBJ) $@
- $(QUIET) -$(RM) $(TEMPOBJ)
-endif
-
-
-$(OBJ_LIBO2OBJS): $(OBJDIR)/%.o: %.c
- @echo "Compiling $<"
- $(QUIET) $(CC) -o $@ $(OPT_O2) $(CFLAGS) $(INCLUDES) -c $<
-
-$(OBJ_LIBOSOBJS): $(OBJDIR)/%.o: %.c
- @echo "Compiling $<"
- $(QUIET) $(CC) -o $@ $(OPT_OS) $(CFLAGS) $(INCLUDES) -c $<
-
-$(OBJ_LIBO2CPPOBJS): $(OBJDIR)/%.o: %.cpp
- @echo "Compiling $<"
- $(QUIET) $(CXX) -o $@ $(OPT_O2) $(CFLAGS) $(INCLUDES) -c $<
-
-$(OBJ_LIBOSCPPOBJS): $(OBJDIR)/%.o: %.cpp
- @echo "Compiling $<"
- $(QUIET) $(CXX) -o $@ $(OPT_OS) $(CFLAGS) $(INCLUDES) -c $<
-
-$(OBJ_LIBASMOBJS): $(OBJDIR)/%.o: %.S
- @echo "Compiling $<"
- $(QUIET) $(CC) -o $@ $(OPT_ASM) $(ASMFLAGS) $(INCLUDES) -c $<
-
-$(LIB): %.img: $(OBJDIR)/%.o
- @echo "Creating Library $@"
- $(ELFTOBIN) $< $@
-
-clean:
- -$(RM) $(LIB) $(MAPFILE)
- -$(RM_R) $(OBJDIR) $(LIBDIR)
diff --git a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.x b/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.x
deleted file mode 100644
index 67507ed..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.x
+++ /dev/null
@@ -1,827 +0,0 @@
-/* This linker script generated from xt-genldscripts.tpp for LSP hifi_hikey_lsp */
-/* Linker Script for default link */
-MEMORY
-{
- sram0_seg : org = 0xC0000000, len = 0x408000
- old_vlpd_seg : org = 0xC0408000, len = 0x10000
- efr_fr_hr_vlpd_seg : org = 0xC0418000, len = 0x10000
- amr_vlpd_seg : org = 0xC0428000, len = 0x10000
- amrwb_vlpd_seg : org = 0xC0438000, len = 0x10000
- evrc_evrcb_vlpt_seg : org = 0xC0448000, len = 0x48000
- efr_fr_hr_vlpt_seg : org = 0xC0490000, len = 0x30000
- amr_vlpt_seg : org = 0xC04C0000, len = 0x20000
- amrwb_vlpt_seg : org = 0xC04E0000, len = 0x30000
- vlpt_seg : org = 0xC0510000, len = 0x48000
- vlpd_seg : org = 0xC0558000, len = 0x20000
- ulpp_seg : org = 0xC0578000, len = 0x40000
- dtsv3_seg : org = 0xC05B8000, len = 0x20000
- dtsv4_seg : org = 0xC05D8000, len = 0x28000
- dram0_0_seg : org = 0xE8058000, len = 0x28000
- iram0_0_seg : org = 0xE8080000, len = 0x300
- iram0_1_seg : org = 0xE8080300, len = 0x100
- iram0_2_seg : org = 0xE8080400, len = 0x178
- iram0_3_seg : org = 0xE8080578, len = 0x8
- iram0_4_seg : org = 0xE8080580, len = 0x38
- iram0_5_seg : org = 0xE80805B8, len = 0x8
- iram0_6_seg : org = 0xE80805C0, len = 0x38
- iram0_7_seg : org = 0xE80805F8, len = 0x8
- iram0_8_seg : org = 0xE8080600, len = 0x38
- iram0_9_seg : org = 0xE8080638, len = 0x8
- iram0_10_seg : org = 0xE8080640, len = 0x38
- iram0_11_seg : org = 0xE8080678, len = 0x48
- iram0_12_seg : org = 0xE80806C0, len = 0x38
- iram0_13_seg : org = 0xE80806F8, len = 0x8
- iram0_14_seg : org = 0xE8080700, len = 0x38
- iram0_15_seg : org = 0xE8080738, len = 0x8
- iram0_16_seg : org = 0xE8080740, len = 0x38
- iram0_17_seg : org = 0xE8080778, len = 0x48
- iram0_18_seg : org = 0xE80807C0, len = 0x40
- iram0_19_seg : org = 0xE8080800, len = 0xB800
-}
-
-PHDRS
-{
- sram0_phdr PT_LOAD;
- sram0_bss_phdr PT_LOAD;
- old_vlpd_phdr PT_LOAD;
- old_vlpd_bss_phdr PT_LOAD;
- efr_fr_hr_vlpd_phdr PT_LOAD;
- efr_fr_hr_vlpd_bss_phdr PT_LOAD;
- amr_vlpd_phdr PT_LOAD;
- amr_vlpd_bss_phdr PT_LOAD;
- amrwb_vlpd_phdr PT_LOAD;
- amrwb_vlpd_bss_phdr PT_LOAD;
- evrc_evrcb_vlpt_phdr PT_LOAD;
- efr_fr_hr_vlpt_phdr PT_LOAD;
- amr_vlpt_phdr PT_LOAD;
- amrwb_vlpt_phdr PT_LOAD;
- vlpt_phdr PT_LOAD;
- vlpd_phdr PT_LOAD;
- ulpp_phdr PT_LOAD;
- ulpp_bss_phdr PT_LOAD;
- dtsv3_phdr PT_LOAD;
- dtsv3_bss_phdr PT_LOAD;
- dtsv4_phdr PT_LOAD;
- dtsv4_bss_phdr PT_LOAD;
- dram0_0_phdr PT_LOAD;
- dram0_0_bss_phdr PT_LOAD;
- iram0_0_phdr PT_LOAD;
- iram0_1_phdr PT_LOAD;
- iram0_2_phdr PT_LOAD;
- iram0_3_phdr PT_LOAD;
- iram0_4_phdr PT_LOAD;
- iram0_5_phdr PT_LOAD;
- iram0_6_phdr PT_LOAD;
- iram0_7_phdr PT_LOAD;
- iram0_8_phdr PT_LOAD;
- iram0_9_phdr PT_LOAD;
- iram0_10_phdr PT_LOAD;
- iram0_11_phdr PT_LOAD;
- iram0_12_phdr PT_LOAD;
- iram0_13_phdr PT_LOAD;
- iram0_14_phdr PT_LOAD;
- iram0_15_phdr PT_LOAD;
- iram0_16_phdr PT_LOAD;
- iram0_17_phdr PT_LOAD;
- iram0_18_phdr PT_LOAD;
- iram0_19_phdr PT_LOAD;
-}
-
-
-/* Default entry point: */
-ENTRY(_ResetVector)
-
-/* Memory boundary addresses: */
-_memmap_mem_iram0_start = 0xe8080000;
-_memmap_mem_iram0_end = 0xe808c000;
-_memmap_mem_dram0_start = 0xe8058000;
-_memmap_mem_dram0_end = 0xe8080000;
-_memmap_mem_sram_start = 0xc0000000;
-_memmap_mem_sram_end = 0xc0600000;
-
-/* Memory segment boundary addresses: */
-_memmap_seg_sram0_start = 0xc0000000;
-_memmap_seg_sram0_max = 0xc0408000;
-_memmap_seg_old_vlpd_start = 0xc0408000;
-_memmap_seg_old_vlpd_max = 0xc0418000;
-_memmap_seg_efr_fr_hr_vlpd_start = 0xc0418000;
-_memmap_seg_efr_fr_hr_vlpd_max = 0xc0428000;
-_memmap_seg_amr_vlpd_start = 0xc0428000;
-_memmap_seg_amr_vlpd_max = 0xc0438000;
-_memmap_seg_amrwb_vlpd_start = 0xc0438000;
-_memmap_seg_amrwb_vlpd_max = 0xc0448000;
-_memmap_seg_evrc_evrcb_vlpt_start = 0xc0448000;
-_memmap_seg_evrc_evrcb_vlpt_max = 0xc0490000;
-_memmap_seg_efr_fr_hr_vlpt_start = 0xc0490000;
-_memmap_seg_efr_fr_hr_vlpt_max = 0xc04c0000;
-_memmap_seg_amr_vlpt_start = 0xc04c0000;
-_memmap_seg_amr_vlpt_max = 0xc04e0000;
-_memmap_seg_amrwb_vlpt_start = 0xc04e0000;
-_memmap_seg_amrwb_vlpt_max = 0xc0510000;
-_memmap_seg_vlpt_start = 0xc0510000;
-_memmap_seg_vlpt_max = 0xc0558000;
-_memmap_seg_vlpd_start = 0xc0558000;
-_memmap_seg_vlpd_max = 0xc0578000;
-_memmap_seg_ulpp_start = 0xc0578000;
-_memmap_seg_ulpp_max = 0xc05b8000;
-_memmap_seg_dtsv3_start = 0xc05b8000;
-_memmap_seg_dtsv3_max = 0xc05d8000;
-_memmap_seg_dtsv4_start = 0xc05d8000;
-_memmap_seg_dtsv4_max = 0xc0600000;
-_memmap_seg_dram0_0_start = 0xe8058000;
-_memmap_seg_dram0_0_max = 0xe8080000;
-_memmap_seg_iram0_0_start = 0xe8080000;
-_memmap_seg_iram0_0_max = 0xe8080300;
-_memmap_seg_iram0_1_start = 0xe8080300;
-_memmap_seg_iram0_1_max = 0xe8080400;
-_memmap_seg_iram0_2_start = 0xe8080400;
-_memmap_seg_iram0_2_max = 0xe8080578;
-_memmap_seg_iram0_3_start = 0xe8080578;
-_memmap_seg_iram0_3_max = 0xe8080580;
-_memmap_seg_iram0_4_start = 0xe8080580;
-_memmap_seg_iram0_4_max = 0xe80805b8;
-_memmap_seg_iram0_5_start = 0xe80805b8;
-_memmap_seg_iram0_5_max = 0xe80805c0;
-_memmap_seg_iram0_6_start = 0xe80805c0;
-_memmap_seg_iram0_6_max = 0xe80805f8;
-_memmap_seg_iram0_7_start = 0xe80805f8;
-_memmap_seg_iram0_7_max = 0xe8080600;
-_memmap_seg_iram0_8_start = 0xe8080600;
-_memmap_seg_iram0_8_max = 0xe8080638;
-_memmap_seg_iram0_9_start = 0xe8080638;
-_memmap_seg_iram0_9_max = 0xe8080640;
-_memmap_seg_iram0_10_start = 0xe8080640;
-_memmap_seg_iram0_10_max = 0xe8080678;
-_memmap_seg_iram0_11_start = 0xe8080678;
-_memmap_seg_iram0_11_max = 0xe80806c0;
-_memmap_seg_iram0_12_start = 0xe80806c0;
-_memmap_seg_iram0_12_max = 0xe80806f8;
-_memmap_seg_iram0_13_start = 0xe80806f8;
-_memmap_seg_iram0_13_max = 0xe8080700;
-_memmap_seg_iram0_14_start = 0xe8080700;
-_memmap_seg_iram0_14_max = 0xe8080738;
-_memmap_seg_iram0_15_start = 0xe8080738;
-_memmap_seg_iram0_15_max = 0xe8080740;
-_memmap_seg_iram0_16_start = 0xe8080740;
-_memmap_seg_iram0_16_max = 0xe8080778;
-_memmap_seg_iram0_17_start = 0xe8080778;
-_memmap_seg_iram0_17_max = 0xe80807c0;
-_memmap_seg_iram0_18_start = 0xe80807c0;
-_memmap_seg_iram0_18_max = 0xe8080800;
-_memmap_seg_iram0_19_start = 0xe8080800;
-_memmap_seg_iram0_19_max = 0xe808c000;
-
-_rom_store_table = 0;
-PROVIDE(_memmap_vecbase_reset = 0xe8080400);
-PROVIDE(_memmap_reset_vector = 0xe8080000);
-/* Various memory-map dependent cache attribute settings: */
-_memmap_cacheattr_wb_base = 0x44000000;
-_memmap_cacheattr_wt_base = 0x11000000;
-_memmap_cacheattr_bp_base = 0x22000000;
-_memmap_cacheattr_unused_mask = 0x00FFFFFF;
-_memmap_cacheattr_wb_trapnull = 0x4422222F;
-_memmap_cacheattr_wba_trapnull = 0x4422222F;
-_memmap_cacheattr_wbna_trapnull = 0x5522222F;
-_memmap_cacheattr_wt_trapnull = 0x1122222F;
-_memmap_cacheattr_bp_trapnull = 0x2222222F;
-_memmap_cacheattr_wb_strict = 0x44FFFFFF;
-_memmap_cacheattr_wt_strict = 0x11FFFFFF;
-_memmap_cacheattr_bp_strict = 0x22FFFFFF;
-_memmap_cacheattr_wb_allvalid = 0x44222222;
-_memmap_cacheattr_wt_allvalid = 0x11222222;
-_memmap_cacheattr_bp_allvalid = 0x22222222;
-PROVIDE(_memmap_cacheattr_reset = _memmap_cacheattr_wb_trapnull);
-
-SECTIONS
-{
-
- .vlpd.rodata : ALIGN(4)
- {
- _vlpd_rodata_start = ABSOLUTE(.);
- *(.vlpd.rodata)
- _vlpd_rodata_end = ABSOLUTE(.);
- } >old_vlpd_seg :old_vlpd_phdr
-
- .vlpd.data : ALIGN(4)
- {
- _vlpd_data_start = ABSOLUTE(.);
- *(.vlpd.data)
- _vlpd_data_end = ABSOLUTE(.);
- } >old_vlpd_seg :old_vlpd_phdr
-
- .vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _vlpd_bss_start = ABSOLUTE(.);
- *(.vlpd.bss)
- . = ALIGN (8);
- _vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_old_vlpd_end = ALIGN(0x8);
- } >old_vlpd_seg :old_vlpd_bss_phdr
-
- .efr_fr_hr_vlpd.rodata : ALIGN(4)
- {
- _efr_fr_hr_vlpd_rodata_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpd.rodata)
- _efr_fr_hr_vlpd_rodata_end = ABSOLUTE(.);
- } >efr_fr_hr_vlpd_seg :efr_fr_hr_vlpd_phdr
-
- .efr_fr_hr_vlpd.data : ALIGN(4)
- {
- _efr_fr_hr_vlpd_data_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpd.data)
- _efr_fr_hr_vlpd_data_end = ABSOLUTE(.);
- } >efr_fr_hr_vlpd_seg :efr_fr_hr_vlpd_phdr
-
- .efr_fr_hr_vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _efr_fr_hr_vlpd_bss_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpd.bss)
- . = ALIGN (8);
- _efr_fr_hr_vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_efr_fr_hr_vlpd_end = ALIGN(0x8);
- } >efr_fr_hr_vlpd_seg :efr_fr_hr_vlpd_bss_phdr
-
- .amr_vlpd.rodata : ALIGN(4)
- {
- _amr_vlpd_rodata_start = ABSOLUTE(.);
- *(.amr_vlpd.rodata)
- _amr_vlpd_rodata_end = ABSOLUTE(.);
- } >amr_vlpd_seg :amr_vlpd_phdr
-
- .amr_vlpd.data : ALIGN(4)
- {
- _amr_vlpd_data_start = ABSOLUTE(.);
- *(.amr_vlpd.data)
- _amr_vlpd_data_end = ABSOLUTE(.);
- } >amr_vlpd_seg :amr_vlpd_phdr
-
- .amr_vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _amr_vlpd_bss_start = ABSOLUTE(.);
- *(.amr_vlpd.bss)
- . = ALIGN (8);
- _amr_vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_amr_vlpd_end = ALIGN(0x8);
- } >amr_vlpd_seg :amr_vlpd_bss_phdr
-
- .amrwb_vlpd.rodata : ALIGN(4)
- {
- _amrwb_vlpd_rodata_start = ABSOLUTE(.);
- *(.amrwb_vlpd.rodata)
- _amrwb_vlpd_rodata_end = ABSOLUTE(.);
- } >amrwb_vlpd_seg :amrwb_vlpd_phdr
-
- .amrwb_vlpd.data : ALIGN(4)
- {
- _amrwb_vlpd_data_start = ABSOLUTE(.);
- *(.amrwb_vlpd.data)
- _amrwb_vlpd_data_end = ABSOLUTE(.);
- } >amrwb_vlpd_seg :amrwb_vlpd_phdr
-
- .amrwb_vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _amrwb_vlpd_bss_start = ABSOLUTE(.);
- *(.amrwb_vlpd.bss)
- . = ALIGN (8);
- _amrwb_vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_amrwb_vlpd_end = ALIGN(0x8);
- } >amrwb_vlpd_seg :amrwb_vlpd_bss_phdr
-
- .evrc_evrcb_vlpt.text : ALIGN(4)
- {
- _evrc_evrcb_vlpt_text_start = ABSOLUTE(.);
- *(.evrc_evrcb_vlpt.literal .evrc_evrcb_vlpt.text)
- _evrc_evrcb_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_evrc_evrcb_vlpt_end = ALIGN(0x8);
- } >evrc_evrcb_vlpt_seg :evrc_evrcb_vlpt_phdr
-
- .efr_fr_hr_vlpt.text : ALIGN(4)
- {
- _efr_fr_hr_vlpt_text_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpt.literal .efr_fr_hr_vlpt.text)
- _efr_fr_hr_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_efr_fr_hr_vlpt_end = ALIGN(0x8);
- } >efr_fr_hr_vlpt_seg :efr_fr_hr_vlpt_phdr
-
- .amr_vlpt.text : ALIGN(4)
- {
- _amr_vlpt_text_start = ABSOLUTE(.);
- *(.amr_vlpt.literal .amr_vlpt.text)
- _amr_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_amr_vlpt_end = ALIGN(0x8);
- } >amr_vlpt_seg :amr_vlpt_phdr
-
- .amrwb_vlpt.text : ALIGN(4)
- {
- _amrwb_vlpt_text_start = ABSOLUTE(.);
- *(.amrwb_vlpt.literal .amrwb_vlpt.text)
- _amrwb_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_amrwb_vlpt_end = ALIGN(0x8);
- } >amrwb_vlpt_seg :amrwb_vlpt_phdr
-
- .vlpt.text : ALIGN(4)
- {
- _vlpt_text_start = ABSOLUTE(.);
- *(.vlpt.literal .vlpt.text)
- _vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_vlpt_end = ALIGN(0x8);
- } >vlpt_seg :vlpt_phdr
-
- .low_power_dyn_alloc : ALIGN(4)
- {
- _low_power_dyn_alloc_start = ABSOLUTE(.);
- *(.low_power_dyn_alloc)
- _low_power_dyn_alloc_end = ABSOLUTE(.);
- _memmap_seg_vlpd_end = ALIGN(0x8);
- } >vlpd_seg :vlpd_phdr
-
- .ulpp.rodata : ALIGN(4)
- {
- _ulpp_rodata_start = ABSOLUTE(.);
- *(.ulpp.rodata)
- _ulpp_rodata_end = ABSOLUTE(.);
- } >ulpp_seg :ulpp_phdr
-
- .ulpp.data : ALIGN(4)
- {
- _ulpp_data_start = ABSOLUTE(.);
- *(.ulpp.data)
- _ulpp_data_end = ABSOLUTE(.);
- } >ulpp_seg :ulpp_phdr
-
- .ulpp.text : ALIGN(4)
- {
- _ulpp_text_start = ABSOLUTE(.);
- *(.ulpp.literal .ulpp.text)
- _ulpp_text_end = ABSOLUTE(.);
- } >ulpp_seg :ulpp_phdr
-
- .ulpp.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _ulpp_bss_start = ABSOLUTE(.);
- *(.ulpp.bss)
- . = ALIGN (8);
- _ulpp_bss_end = ABSOLUTE(.);
- _memmap_seg_ulpp_end = ALIGN(0x8);
- } >ulpp_seg :ulpp_bss_phdr
-
- .dtsv3.rodata : ALIGN(4)
- {
- _dtsv3_rodata_start = ABSOLUTE(.);
- *(.dtsv3.rodata)
- _dtsv3_rodata_end = ABSOLUTE(.);
- } >dtsv3_seg :dtsv3_phdr
-
- .dtsv3.data : ALIGN(4)
- {
- _dtsv3_data_start = ABSOLUTE(.);
- *(.dtsv3.data)
- _dtsv3_data_end = ABSOLUTE(.);
- } >dtsv3_seg :dtsv3_phdr
-
- .dtsv3.text : ALIGN(4)
- {
- _dtsv3_text_start = ABSOLUTE(.);
- *(.dtsv3.literal .dtsv3.text)
- _dtsv3_text_end = ABSOLUTE(.);
- } >dtsv3_seg :dtsv3_phdr
-
- .dtsv3.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _dtsv3_bss_start = ABSOLUTE(.);
- *(.dtsv3.bss)
- . = ALIGN (8);
- _dtsv3_bss_end = ABSOLUTE(.);
- _memmap_seg_dtsv3_end = ALIGN(0x8);
- } >dtsv3_seg :dtsv3_bss_phdr
-
- .dtsv4.rodata : ALIGN(4)
- {
- _dtsv4_rodata_start = ABSOLUTE(.);
- *(.dtsv4.rodata)
- _dtsv4_rodata_end = ABSOLUTE(.);
- } >dtsv4_seg :dtsv4_phdr
-
- .dtsv4.data : ALIGN(4)
- {
- _dtsv4_data_start = ABSOLUTE(.);
- *(.dtsv4.data)
- _dtsv4_data_end = ABSOLUTE(.);
- } >dtsv4_seg :dtsv4_phdr
-
- .dtsv4.text : ALIGN(4)
- {
- _dtsv4_text_start = ABSOLUTE(.);
- *(.dtsv4.literal .dtsv4.text)
- _dtsv4_text_end = ABSOLUTE(.);
- } >dtsv4_seg :dtsv4_phdr
-
- .dtsv4.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _dtsv4_bss_start = ABSOLUTE(.);
- *(.dtsv4.bss)
- . = ALIGN (8);
- _dtsv4_bss_end = ABSOLUTE(.);
- _memmap_seg_dtsv4_end = ALIGN(0x8);
- } >dtsv4_seg :dtsv4_bss_phdr
-
- .dram0.rodata : ALIGN(4)
- {
- _dram0_rodata_start = ABSOLUTE(.);
- *(.dram0.rodata)
- *(.dram.rodata)
- _dram0_rodata_end = ABSOLUTE(.);
- } >dram0_0_seg :dram0_0_phdr
-
- .dram0.literal : ALIGN(4)
- {
- _dram0_literal_start = ABSOLUTE(.);
- *(.dram0.literal)
- *(.dram.literal)
- _dram0_literal_end = ABSOLUTE(.);
- } >dram0_0_seg :dram0_0_phdr
-
- .dram0.data : ALIGN(4)
- {
- _dram0_data_start = ABSOLUTE(.);
- *(.dram0.data)
- *(.dram.data)
- _dram0_data_end = ABSOLUTE(.);
- } >dram0_0_seg :dram0_0_phdr
-
- .dram0.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _dram0_bss_start = ABSOLUTE(.);
- *(.dram0.bss)
- *(.om.debug.bss)
- *(.os.stack.bss)
- . = ALIGN (8);
- _dram0_bss_end = ABSOLUTE(.);
- _end = ALIGN(0x8);
- PROVIDE(end = ALIGN(0x8));
- _stack_sentry = ALIGN(0x8);
- _memmap_seg_dram0_0_end = ALIGN(0x8);
- } >dram0_0_seg :dram0_0_bss_phdr
- __stack = 0xe8080000;
- _heap_sentry = 0xe8080000;
-
- .ResetVector.text : ALIGN(4)
- {
- _ResetVector_text_start = ABSOLUTE(.);
- KEEP (*(.ResetVector.text))
- _ResetVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_0_end = ALIGN(0x8);
- } >iram0_0_seg :iram0_0_phdr
-
- .Reset.literal : ALIGN(4)
- {
- _Reset_literal_start = ABSOLUTE(.);
- *(.Reset.literal)
- _Reset_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_1_end = ALIGN(0x8);
- } >iram0_1_seg :iram0_1_phdr
-
- .WindowVectors.text : ALIGN(4)
- {
- _WindowVectors_text_start = ABSOLUTE(.);
- KEEP (*(.WindowVectors.text))
- _WindowVectors_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_2_end = ALIGN(0x8);
- } >iram0_2_seg :iram0_2_phdr
-
- .Level2InterruptVector.literal : ALIGN(4)
- {
- _Level2InterruptVector_literal_start = ABSOLUTE(.);
- *(.Level2InterruptVector.literal)
- _Level2InterruptVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_3_end = ALIGN(0x8);
- } >iram0_3_seg :iram0_3_phdr
-
- .Level2InterruptVector.text : ALIGN(4)
- {
- _Level2InterruptVector_text_start = ABSOLUTE(.);
- KEEP (*(.Level2InterruptVector.text))
- _Level2InterruptVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_4_end = ALIGN(0x8);
- } >iram0_4_seg :iram0_4_phdr
-
- .Level3InterruptVector.literal : ALIGN(4)
- {
- _Level3InterruptVector_literal_start = ABSOLUTE(.);
- *(.Level3InterruptVector.literal)
- _Level3InterruptVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_5_end = ALIGN(0x8);
- } >iram0_5_seg :iram0_5_phdr
-
- .Level3InterruptVector.text : ALIGN(4)
- {
- _Level3InterruptVector_text_start = ABSOLUTE(.);
- KEEP (*(.Level3InterruptVector.text))
- _Level3InterruptVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_6_end = ALIGN(0x8);
- } >iram0_6_seg :iram0_6_phdr
-
- .Level4InterruptVector.literal : ALIGN(4)
- {
- _Level4InterruptVector_literal_start = ABSOLUTE(.);
- *(.Level4InterruptVector.literal)
- _Level4InterruptVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_7_end = ALIGN(0x8);
- } >iram0_7_seg :iram0_7_phdr
-
- .Level4InterruptVector.text : ALIGN(4)
- {
- _Level4InterruptVector_text_start = ABSOLUTE(.);
- KEEP (*(.Level4InterruptVector.text))
- _Level4InterruptVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_8_end = ALIGN(0x8);
- } >iram0_8_seg :iram0_8_phdr
-
- .DebugExceptionVector.literal : ALIGN(4)
- {
- _DebugExceptionVector_literal_start = ABSOLUTE(.);
- *(.DebugExceptionVector.literal)
- _DebugExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_9_end = ALIGN(0x8);
- } >iram0_9_seg :iram0_9_phdr
-
- .DebugExceptionVector.text : ALIGN(4)
- {
- _DebugExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.DebugExceptionVector.text))
- _DebugExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_10_end = ALIGN(0x8);
- } >iram0_10_seg :iram0_10_phdr
-
- .NMIExceptionVector.literal : ALIGN(4)
- {
- _NMIExceptionVector_literal_start = ABSOLUTE(.);
- *(.NMIExceptionVector.literal)
- _NMIExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_11_end = ALIGN(0x8);
- } >iram0_11_seg :iram0_11_phdr
-
- .NMIExceptionVector.text : ALIGN(4)
- {
- _NMIExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.NMIExceptionVector.text))
- _NMIExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_12_end = ALIGN(0x8);
- } >iram0_12_seg :iram0_12_phdr
-
- .KernelExceptionVector.literal : ALIGN(4)
- {
- _KernelExceptionVector_literal_start = ABSOLUTE(.);
- *(.KernelExceptionVector.literal)
- _KernelExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_13_end = ALIGN(0x8);
- } >iram0_13_seg :iram0_13_phdr
-
- .KernelExceptionVector.text : ALIGN(4)
- {
- _KernelExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.KernelExceptionVector.text))
- _KernelExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_14_end = ALIGN(0x8);
- } >iram0_14_seg :iram0_14_phdr
-
- .UserExceptionVector.literal : ALIGN(4)
- {
- _UserExceptionVector_literal_start = ABSOLUTE(.);
- *(.UserExceptionVector.literal)
- _UserExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_15_end = ALIGN(0x8);
- } >iram0_15_seg :iram0_15_phdr
-
- .UserExceptionVector.text : ALIGN(4)
- {
- _UserExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.UserExceptionVector.text))
- _UserExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_16_end = ALIGN(0x8);
- } >iram0_16_seg :iram0_16_phdr
-
- .DoubleExceptionVector.literal : ALIGN(4)
- {
- _DoubleExceptionVector_literal_start = ABSOLUTE(.);
- *(.DoubleExceptionVector.literal)
- _DoubleExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_17_end = ALIGN(0x8);
- } >iram0_17_seg :iram0_17_phdr
-
- .DoubleExceptionVector.text : ALIGN(4)
- {
- _DoubleExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.DoubleExceptionVector.text))
- _DoubleExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_18_end = ALIGN(0x8);
- } >iram0_18_seg :iram0_18_phdr
-
- .Reset.text : ALIGN(4)
- {
- _Reset_text_start = ABSOLUTE(.);
- *(.Reset.text)
- _Reset_text_end = ABSOLUTE(.);
- } >iram0_19_seg :iram0_19_phdr
-
- .iram0.text : ALIGN(4)
- {
- _iram0_text_start = ABSOLUTE(.);
- *(.iram0.literal .iram.literal .iram.text.literal .iram0.text .iram.text)
- _iram0_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_19_end = ALIGN(0x8);
- } >iram0_19_seg :iram0_19_phdr
-
- .sram.shareaddr : ALIGN(4)
- {
- _sram_shareaddr_start = ABSOLUTE(.);
- *(.sram.shareaddr)
- _sram_shareaddr_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .sram.rodata : ALIGN(4)
- {
- _sram_rodata_start = ABSOLUTE(.);
- *(.sram.rodata)
- _sram_rodata_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .rodata : ALIGN(4)
- {
- _rodata_start = ABSOLUTE(.);
- *(.rodata)
- *(.rodata.*)
- *(.gnu.linkonce.r.*)
- *(.rodata1)
- __XT_EXCEPTION_TABLE__ = ABSOLUTE(.);
- KEEP (*(.xt_except_table))
- KEEP (*(.gcc_except_table))
- *(.gnu.linkonce.e.*)
- *(.gnu.version_r)
- KEEP (*(.eh_frame))
- /* C++ constructor and destructor tables, properly ordered: */
- KEEP (*crtbegin.o(.ctors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- /* C++ exception handlers table: */
- __XT_EXCEPTION_DESCS__ = ABSOLUTE(.);
- *(.xt_except_desc)
- *(.gnu.linkonce.h.*)
- __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
- *(.xt_except_desc_end)
- *(.dynamic)
- *(.gnu.version_d)
- . = ALIGN(4); /* this table MUST be 4-byte aligned */
- _bss_table_start = ABSOLUTE(.);
- LONG(_vlpd_bss_start)
- LONG(_vlpd_bss_end)
- LONG(_efr_fr_hr_vlpd_bss_start)
- LONG(_efr_fr_hr_vlpd_bss_end)
- LONG(_amr_vlpd_bss_start)
- LONG(_amr_vlpd_bss_end)
- LONG(_amrwb_vlpd_bss_start)
- LONG(_amrwb_vlpd_bss_end)
- LONG(_ulpp_bss_start)
- LONG(_ulpp_bss_end)
- LONG(_dtsv3_bss_start)
- LONG(_dtsv3_bss_end)
- LONG(_dtsv4_bss_start)
- LONG(_dtsv4_bss_end)
- LONG(_dram0_bss_start)
- LONG(_dram0_bss_end)
- LONG(_bss_start)
- LONG(_bss_end)
- _bss_table_end = ABSOLUTE(.);
- _rodata_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .sram.text : ALIGN(4)
- {
- _sram_text_start = ABSOLUTE(.);
- *(.sram.literal .sram.text)
- _sram_text_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .text : ALIGN(4)
- {
- _stext = .;
- _text_start = ABSOLUTE(.);
- *(.entry.text)
- *(.init.literal)
- KEEP(*(.init))
- *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
- *(.fini.literal)
- KEEP(*(.fini))
- *(.gnu.version)
- _text_end = ABSOLUTE(.);
- _etext = .;
- } >sram0_seg :sram0_phdr
-
- .sram.data : ALIGN(4)
- {
- _sram_data_start = ABSOLUTE(.);
- *(.sram.data)
- _sram_data_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .data : ALIGN(4)
- {
- _data_start = ABSOLUTE(.);
- *(.data)
- *(.data.*)
- *(.gnu.linkonce.d.*)
- KEEP(*(.gnu.linkonce.d.*personality*))
- *(.data1)
- *(.sdata)
- *(.sdata.*)
- *(.gnu.linkonce.s.*)
- *(.sdata2)
- *(.sdata2.*)
- *(.gnu.linkonce.s2.*)
- KEEP(*(.jcr))
- _data_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .sram.uninit : ALIGN(4)
- {
- _sram_uninit_start = ABSOLUTE(.);
- *(.sram.uninit)
- _sram_uninit_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _bss_start = ABSOLUTE(.);
- *(.dynsbss)
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.sb.*)
- *(.scommon)
- *(.sbss2)
- *(.sbss2.*)
- *(.gnu.linkonce.sb2.*)
- *(.dynbss)
- *(.bss)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- *(.sram.pool.bss)
- *(.sram.bss)
- . = ALIGN (8);
- _bss_end = ABSOLUTE(.);
- _memmap_seg_sram0_end = ALIGN(0x8);
- } >sram0_seg :sram0_bss_phdr
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_info 0 : { *(.debug_info) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- .xt.insn 0 :
- {
- KEEP (*(.xt.insn))
- KEEP (*(.gnu.linkonce.x.*))
- }
- .xt.prop 0 :
- {
- KEEP (*(.xt.prop))
- KEEP (*(.xt.prop.*))
- KEEP (*(.gnu.linkonce.prop.*))
- }
- .xt.lit 0 :
- {
- KEEP (*(.xt.lit))
- KEEP (*(.xt.lit.*))
- KEEP (*(.gnu.linkonce.p.*))
- }
- .debug.xt.callgraph 0 :
- {
- KEEP (*(.debug.xt.callgraph .debug.xt.callgraph.* .gnu.linkonce.xt.callgraph.*))
- }
-}
-
diff --git a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xbn b/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xbn
deleted file mode 100644
index e226d64..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xbn
+++ /dev/null
@@ -1,827 +0,0 @@
-/* This linker script generated from xt-genldscripts.tpp for LSP hifi_hikey_lsp */
-/* Linker Script for ld -N */
-MEMORY
-{
- sram0_seg : org = 0xC0000000, len = 0x408000
- old_vlpd_seg : org = 0xC0408000, len = 0x10000
- efr_fr_hr_vlpd_seg : org = 0xC0418000, len = 0x10000
- amr_vlpd_seg : org = 0xC0428000, len = 0x10000
- amrwb_vlpd_seg : org = 0xC0438000, len = 0x10000
- evrc_evrcb_vlpt_seg : org = 0xC0448000, len = 0x48000
- efr_fr_hr_vlpt_seg : org = 0xC0490000, len = 0x30000
- amr_vlpt_seg : org = 0xC04C0000, len = 0x20000
- amrwb_vlpt_seg : org = 0xC04E0000, len = 0x30000
- vlpt_seg : org = 0xC0510000, len = 0x48000
- vlpd_seg : org = 0xC0558000, len = 0x20000
- ulpp_seg : org = 0xC0578000, len = 0x40000
- dtsv3_seg : org = 0xC05B8000, len = 0x20000
- dtsv4_seg : org = 0xC05D8000, len = 0x28000
- dram0_0_seg : org = 0xE8058000, len = 0x28000
- iram0_0_seg : org = 0xE8080000, len = 0x300
- iram0_1_seg : org = 0xE8080300, len = 0x100
- iram0_2_seg : org = 0xE8080400, len = 0x178
- iram0_3_seg : org = 0xE8080578, len = 0x8
- iram0_4_seg : org = 0xE8080580, len = 0x38
- iram0_5_seg : org = 0xE80805B8, len = 0x8
- iram0_6_seg : org = 0xE80805C0, len = 0x38
- iram0_7_seg : org = 0xE80805F8, len = 0x8
- iram0_8_seg : org = 0xE8080600, len = 0x38
- iram0_9_seg : org = 0xE8080638, len = 0x8
- iram0_10_seg : org = 0xE8080640, len = 0x38
- iram0_11_seg : org = 0xE8080678, len = 0x48
- iram0_12_seg : org = 0xE80806C0, len = 0x38
- iram0_13_seg : org = 0xE80806F8, len = 0x8
- iram0_14_seg : org = 0xE8080700, len = 0x38
- iram0_15_seg : org = 0xE8080738, len = 0x8
- iram0_16_seg : org = 0xE8080740, len = 0x38
- iram0_17_seg : org = 0xE8080778, len = 0x48
- iram0_18_seg : org = 0xE80807C0, len = 0x40
- iram0_19_seg : org = 0xE8080800, len = 0xB800
-}
-
-PHDRS
-{
- sram0_phdr PT_LOAD;
- sram0_bss_phdr PT_LOAD;
- old_vlpd_phdr PT_LOAD;
- old_vlpd_bss_phdr PT_LOAD;
- efr_fr_hr_vlpd_phdr PT_LOAD;
- efr_fr_hr_vlpd_bss_phdr PT_LOAD;
- amr_vlpd_phdr PT_LOAD;
- amr_vlpd_bss_phdr PT_LOAD;
- amrwb_vlpd_phdr PT_LOAD;
- amrwb_vlpd_bss_phdr PT_LOAD;
- evrc_evrcb_vlpt_phdr PT_LOAD;
- efr_fr_hr_vlpt_phdr PT_LOAD;
- amr_vlpt_phdr PT_LOAD;
- amrwb_vlpt_phdr PT_LOAD;
- vlpt_phdr PT_LOAD;
- vlpd_phdr PT_LOAD;
- ulpp_phdr PT_LOAD;
- ulpp_bss_phdr PT_LOAD;
- dtsv3_phdr PT_LOAD;
- dtsv3_bss_phdr PT_LOAD;
- dtsv4_phdr PT_LOAD;
- dtsv4_bss_phdr PT_LOAD;
- dram0_0_phdr PT_LOAD;
- dram0_0_bss_phdr PT_LOAD;
- iram0_0_phdr PT_LOAD;
- iram0_1_phdr PT_LOAD;
- iram0_2_phdr PT_LOAD;
- iram0_3_phdr PT_LOAD;
- iram0_4_phdr PT_LOAD;
- iram0_5_phdr PT_LOAD;
- iram0_6_phdr PT_LOAD;
- iram0_7_phdr PT_LOAD;
- iram0_8_phdr PT_LOAD;
- iram0_9_phdr PT_LOAD;
- iram0_10_phdr PT_LOAD;
- iram0_11_phdr PT_LOAD;
- iram0_12_phdr PT_LOAD;
- iram0_13_phdr PT_LOAD;
- iram0_14_phdr PT_LOAD;
- iram0_15_phdr PT_LOAD;
- iram0_16_phdr PT_LOAD;
- iram0_17_phdr PT_LOAD;
- iram0_18_phdr PT_LOAD;
- iram0_19_phdr PT_LOAD;
-}
-
-
-/* Default entry point: */
-ENTRY(_ResetVector)
-
-/* Memory boundary addresses: */
-_memmap_mem_iram0_start = 0xe8080000;
-_memmap_mem_iram0_end = 0xe808c000;
-_memmap_mem_dram0_start = 0xe8058000;
-_memmap_mem_dram0_end = 0xe8080000;
-_memmap_mem_sram_start = 0xc0000000;
-_memmap_mem_sram_end = 0xc0600000;
-
-/* Memory segment boundary addresses: */
-_memmap_seg_sram0_start = 0xc0000000;
-_memmap_seg_sram0_max = 0xc0408000;
-_memmap_seg_old_vlpd_start = 0xc0408000;
-_memmap_seg_old_vlpd_max = 0xc0418000;
-_memmap_seg_efr_fr_hr_vlpd_start = 0xc0418000;
-_memmap_seg_efr_fr_hr_vlpd_max = 0xc0428000;
-_memmap_seg_amr_vlpd_start = 0xc0428000;
-_memmap_seg_amr_vlpd_max = 0xc0438000;
-_memmap_seg_amrwb_vlpd_start = 0xc0438000;
-_memmap_seg_amrwb_vlpd_max = 0xc0448000;
-_memmap_seg_evrc_evrcb_vlpt_start = 0xc0448000;
-_memmap_seg_evrc_evrcb_vlpt_max = 0xc0490000;
-_memmap_seg_efr_fr_hr_vlpt_start = 0xc0490000;
-_memmap_seg_efr_fr_hr_vlpt_max = 0xc04c0000;
-_memmap_seg_amr_vlpt_start = 0xc04c0000;
-_memmap_seg_amr_vlpt_max = 0xc04e0000;
-_memmap_seg_amrwb_vlpt_start = 0xc04e0000;
-_memmap_seg_amrwb_vlpt_max = 0xc0510000;
-_memmap_seg_vlpt_start = 0xc0510000;
-_memmap_seg_vlpt_max = 0xc0558000;
-_memmap_seg_vlpd_start = 0xc0558000;
-_memmap_seg_vlpd_max = 0xc0578000;
-_memmap_seg_ulpp_start = 0xc0578000;
-_memmap_seg_ulpp_max = 0xc05b8000;
-_memmap_seg_dtsv3_start = 0xc05b8000;
-_memmap_seg_dtsv3_max = 0xc05d8000;
-_memmap_seg_dtsv4_start = 0xc05d8000;
-_memmap_seg_dtsv4_max = 0xc0600000;
-_memmap_seg_dram0_0_start = 0xe8058000;
-_memmap_seg_dram0_0_max = 0xe8080000;
-_memmap_seg_iram0_0_start = 0xe8080000;
-_memmap_seg_iram0_0_max = 0xe8080300;
-_memmap_seg_iram0_1_start = 0xe8080300;
-_memmap_seg_iram0_1_max = 0xe8080400;
-_memmap_seg_iram0_2_start = 0xe8080400;
-_memmap_seg_iram0_2_max = 0xe8080578;
-_memmap_seg_iram0_3_start = 0xe8080578;
-_memmap_seg_iram0_3_max = 0xe8080580;
-_memmap_seg_iram0_4_start = 0xe8080580;
-_memmap_seg_iram0_4_max = 0xe80805b8;
-_memmap_seg_iram0_5_start = 0xe80805b8;
-_memmap_seg_iram0_5_max = 0xe80805c0;
-_memmap_seg_iram0_6_start = 0xe80805c0;
-_memmap_seg_iram0_6_max = 0xe80805f8;
-_memmap_seg_iram0_7_start = 0xe80805f8;
-_memmap_seg_iram0_7_max = 0xe8080600;
-_memmap_seg_iram0_8_start = 0xe8080600;
-_memmap_seg_iram0_8_max = 0xe8080638;
-_memmap_seg_iram0_9_start = 0xe8080638;
-_memmap_seg_iram0_9_max = 0xe8080640;
-_memmap_seg_iram0_10_start = 0xe8080640;
-_memmap_seg_iram0_10_max = 0xe8080678;
-_memmap_seg_iram0_11_start = 0xe8080678;
-_memmap_seg_iram0_11_max = 0xe80806c0;
-_memmap_seg_iram0_12_start = 0xe80806c0;
-_memmap_seg_iram0_12_max = 0xe80806f8;
-_memmap_seg_iram0_13_start = 0xe80806f8;
-_memmap_seg_iram0_13_max = 0xe8080700;
-_memmap_seg_iram0_14_start = 0xe8080700;
-_memmap_seg_iram0_14_max = 0xe8080738;
-_memmap_seg_iram0_15_start = 0xe8080738;
-_memmap_seg_iram0_15_max = 0xe8080740;
-_memmap_seg_iram0_16_start = 0xe8080740;
-_memmap_seg_iram0_16_max = 0xe8080778;
-_memmap_seg_iram0_17_start = 0xe8080778;
-_memmap_seg_iram0_17_max = 0xe80807c0;
-_memmap_seg_iram0_18_start = 0xe80807c0;
-_memmap_seg_iram0_18_max = 0xe8080800;
-_memmap_seg_iram0_19_start = 0xe8080800;
-_memmap_seg_iram0_19_max = 0xe808c000;
-
-_rom_store_table = 0;
-PROVIDE(_memmap_vecbase_reset = 0xe8080400);
-PROVIDE(_memmap_reset_vector = 0xe8080000);
-/* Various memory-map dependent cache attribute settings: */
-_memmap_cacheattr_wb_base = 0x44000000;
-_memmap_cacheattr_wt_base = 0x11000000;
-_memmap_cacheattr_bp_base = 0x22000000;
-_memmap_cacheattr_unused_mask = 0x00FFFFFF;
-_memmap_cacheattr_wb_trapnull = 0x4422222F;
-_memmap_cacheattr_wba_trapnull = 0x4422222F;
-_memmap_cacheattr_wbna_trapnull = 0x5522222F;
-_memmap_cacheattr_wt_trapnull = 0x1122222F;
-_memmap_cacheattr_bp_trapnull = 0x2222222F;
-_memmap_cacheattr_wb_strict = 0x44FFFFFF;
-_memmap_cacheattr_wt_strict = 0x11FFFFFF;
-_memmap_cacheattr_bp_strict = 0x22FFFFFF;
-_memmap_cacheattr_wb_allvalid = 0x44222222;
-_memmap_cacheattr_wt_allvalid = 0x11222222;
-_memmap_cacheattr_bp_allvalid = 0x22222222;
-PROVIDE(_memmap_cacheattr_reset = _memmap_cacheattr_wb_trapnull);
-
-SECTIONS
-{
-
- .vlpd.rodata : ALIGN(4)
- {
- _vlpd_rodata_start = ABSOLUTE(.);
- *(.vlpd.rodata)
- _vlpd_rodata_end = ABSOLUTE(.);
- } >old_vlpd_seg :old_vlpd_phdr
-
- .vlpd.data : ALIGN(4)
- {
- _vlpd_data_start = ABSOLUTE(.);
- *(.vlpd.data)
- _vlpd_data_end = ABSOLUTE(.);
- } >old_vlpd_seg :old_vlpd_phdr
-
- .vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _vlpd_bss_start = ABSOLUTE(.);
- *(.vlpd.bss)
- . = ALIGN (8);
- _vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_old_vlpd_end = ALIGN(0x8);
- } >old_vlpd_seg :old_vlpd_bss_phdr
-
- .efr_fr_hr_vlpd.rodata : ALIGN(4)
- {
- _efr_fr_hr_vlpd_rodata_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpd.rodata)
- _efr_fr_hr_vlpd_rodata_end = ABSOLUTE(.);
- } >efr_fr_hr_vlpd_seg :efr_fr_hr_vlpd_phdr
-
- .efr_fr_hr_vlpd.data : ALIGN(4)
- {
- _efr_fr_hr_vlpd_data_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpd.data)
- _efr_fr_hr_vlpd_data_end = ABSOLUTE(.);
- } >efr_fr_hr_vlpd_seg :efr_fr_hr_vlpd_phdr
-
- .efr_fr_hr_vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _efr_fr_hr_vlpd_bss_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpd.bss)
- . = ALIGN (8);
- _efr_fr_hr_vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_efr_fr_hr_vlpd_end = ALIGN(0x8);
- } >efr_fr_hr_vlpd_seg :efr_fr_hr_vlpd_bss_phdr
-
- .amr_vlpd.rodata : ALIGN(4)
- {
- _amr_vlpd_rodata_start = ABSOLUTE(.);
- *(.amr_vlpd.rodata)
- _amr_vlpd_rodata_end = ABSOLUTE(.);
- } >amr_vlpd_seg :amr_vlpd_phdr
-
- .amr_vlpd.data : ALIGN(4)
- {
- _amr_vlpd_data_start = ABSOLUTE(.);
- *(.amr_vlpd.data)
- _amr_vlpd_data_end = ABSOLUTE(.);
- } >amr_vlpd_seg :amr_vlpd_phdr
-
- .amr_vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _amr_vlpd_bss_start = ABSOLUTE(.);
- *(.amr_vlpd.bss)
- . = ALIGN (8);
- _amr_vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_amr_vlpd_end = ALIGN(0x8);
- } >amr_vlpd_seg :amr_vlpd_bss_phdr
-
- .amrwb_vlpd.rodata : ALIGN(4)
- {
- _amrwb_vlpd_rodata_start = ABSOLUTE(.);
- *(.amrwb_vlpd.rodata)
- _amrwb_vlpd_rodata_end = ABSOLUTE(.);
- } >amrwb_vlpd_seg :amrwb_vlpd_phdr
-
- .amrwb_vlpd.data : ALIGN(4)
- {
- _amrwb_vlpd_data_start = ABSOLUTE(.);
- *(.amrwb_vlpd.data)
- _amrwb_vlpd_data_end = ABSOLUTE(.);
- } >amrwb_vlpd_seg :amrwb_vlpd_phdr
-
- .amrwb_vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _amrwb_vlpd_bss_start = ABSOLUTE(.);
- *(.amrwb_vlpd.bss)
- . = ALIGN (8);
- _amrwb_vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_amrwb_vlpd_end = ALIGN(0x8);
- } >amrwb_vlpd_seg :amrwb_vlpd_bss_phdr
-
- .evrc_evrcb_vlpt.text : ALIGN(4)
- {
- _evrc_evrcb_vlpt_text_start = ABSOLUTE(.);
- *(.evrc_evrcb_vlpt.literal .evrc_evrcb_vlpt.text)
- _evrc_evrcb_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_evrc_evrcb_vlpt_end = ALIGN(0x8);
- } >evrc_evrcb_vlpt_seg :evrc_evrcb_vlpt_phdr
-
- .efr_fr_hr_vlpt.text : ALIGN(4)
- {
- _efr_fr_hr_vlpt_text_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpt.literal .efr_fr_hr_vlpt.text)
- _efr_fr_hr_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_efr_fr_hr_vlpt_end = ALIGN(0x8);
- } >efr_fr_hr_vlpt_seg :efr_fr_hr_vlpt_phdr
-
- .amr_vlpt.text : ALIGN(4)
- {
- _amr_vlpt_text_start = ABSOLUTE(.);
- *(.amr_vlpt.literal .amr_vlpt.text)
- _amr_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_amr_vlpt_end = ALIGN(0x8);
- } >amr_vlpt_seg :amr_vlpt_phdr
-
- .amrwb_vlpt.text : ALIGN(4)
- {
- _amrwb_vlpt_text_start = ABSOLUTE(.);
- *(.amrwb_vlpt.literal .amrwb_vlpt.text)
- _amrwb_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_amrwb_vlpt_end = ALIGN(0x8);
- } >amrwb_vlpt_seg :amrwb_vlpt_phdr
-
- .vlpt.text : ALIGN(4)
- {
- _vlpt_text_start = ABSOLUTE(.);
- *(.vlpt.literal .vlpt.text)
- _vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_vlpt_end = ALIGN(0x8);
- } >vlpt_seg :vlpt_phdr
-
- .low_power_dyn_alloc : ALIGN(4)
- {
- _low_power_dyn_alloc_start = ABSOLUTE(.);
- *(.low_power_dyn_alloc)
- _low_power_dyn_alloc_end = ABSOLUTE(.);
- _memmap_seg_vlpd_end = ALIGN(0x8);
- } >vlpd_seg :vlpd_phdr
-
- .ulpp.rodata : ALIGN(4)
- {
- _ulpp_rodata_start = ABSOLUTE(.);
- *(.ulpp.rodata)
- _ulpp_rodata_end = ABSOLUTE(.);
- } >ulpp_seg :ulpp_phdr
-
- .ulpp.data : ALIGN(4)
- {
- _ulpp_data_start = ABSOLUTE(.);
- *(.ulpp.data)
- _ulpp_data_end = ABSOLUTE(.);
- } >ulpp_seg :ulpp_phdr
-
- .ulpp.text : ALIGN(4)
- {
- _ulpp_text_start = ABSOLUTE(.);
- *(.ulpp.literal .ulpp.text)
- _ulpp_text_end = ABSOLUTE(.);
- } >ulpp_seg :ulpp_phdr
-
- .ulpp.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _ulpp_bss_start = ABSOLUTE(.);
- *(.ulpp.bss)
- . = ALIGN (8);
- _ulpp_bss_end = ABSOLUTE(.);
- _memmap_seg_ulpp_end = ALIGN(0x8);
- } >ulpp_seg :ulpp_bss_phdr
-
- .dtsv3.rodata : ALIGN(4)
- {
- _dtsv3_rodata_start = ABSOLUTE(.);
- *(.dtsv3.rodata)
- _dtsv3_rodata_end = ABSOLUTE(.);
- } >dtsv3_seg :dtsv3_phdr
-
- .dtsv3.data : ALIGN(4)
- {
- _dtsv3_data_start = ABSOLUTE(.);
- *(.dtsv3.data)
- _dtsv3_data_end = ABSOLUTE(.);
- } >dtsv3_seg :dtsv3_phdr
-
- .dtsv3.text : ALIGN(4)
- {
- _dtsv3_text_start = ABSOLUTE(.);
- *(.dtsv3.literal .dtsv3.text)
- _dtsv3_text_end = ABSOLUTE(.);
- } >dtsv3_seg :dtsv3_phdr
-
- .dtsv3.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _dtsv3_bss_start = ABSOLUTE(.);
- *(.dtsv3.bss)
- . = ALIGN (8);
- _dtsv3_bss_end = ABSOLUTE(.);
- _memmap_seg_dtsv3_end = ALIGN(0x8);
- } >dtsv3_seg :dtsv3_bss_phdr
-
- .dtsv4.rodata : ALIGN(4)
- {
- _dtsv4_rodata_start = ABSOLUTE(.);
- *(.dtsv4.rodata)
- _dtsv4_rodata_end = ABSOLUTE(.);
- } >dtsv4_seg :dtsv4_phdr
-
- .dtsv4.data : ALIGN(4)
- {
- _dtsv4_data_start = ABSOLUTE(.);
- *(.dtsv4.data)
- _dtsv4_data_end = ABSOLUTE(.);
- } >dtsv4_seg :dtsv4_phdr
-
- .dtsv4.text : ALIGN(4)
- {
- _dtsv4_text_start = ABSOLUTE(.);
- *(.dtsv4.literal .dtsv4.text)
- _dtsv4_text_end = ABSOLUTE(.);
- } >dtsv4_seg :dtsv4_phdr
-
- .dtsv4.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _dtsv4_bss_start = ABSOLUTE(.);
- *(.dtsv4.bss)
- . = ALIGN (8);
- _dtsv4_bss_end = ABSOLUTE(.);
- _memmap_seg_dtsv4_end = ALIGN(0x8);
- } >dtsv4_seg :dtsv4_bss_phdr
-
- .dram0.rodata : ALIGN(4)
- {
- _dram0_rodata_start = ABSOLUTE(.);
- *(.dram0.rodata)
- *(.dram.rodata)
- _dram0_rodata_end = ABSOLUTE(.);
- } >dram0_0_seg :dram0_0_phdr
-
- .dram0.literal : ALIGN(4)
- {
- _dram0_literal_start = ABSOLUTE(.);
- *(.dram0.literal)
- *(.dram.literal)
- _dram0_literal_end = ABSOLUTE(.);
- } >dram0_0_seg :dram0_0_phdr
-
- .dram0.data : ALIGN(4)
- {
- _dram0_data_start = ABSOLUTE(.);
- *(.dram0.data)
- *(.dram.data)
- _dram0_data_end = ABSOLUTE(.);
- } >dram0_0_seg :dram0_0_phdr
-
- .dram0.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _dram0_bss_start = ABSOLUTE(.);
- *(.dram0.bss)
- *(.om.debug.bss)
- *(.os.stack.bss)
- . = ALIGN (8);
- _dram0_bss_end = ABSOLUTE(.);
- _end = ALIGN(0x8);
- PROVIDE(end = ALIGN(0x8));
- _stack_sentry = ALIGN(0x8);
- _memmap_seg_dram0_0_end = ALIGN(0x8);
- } >dram0_0_seg :dram0_0_bss_phdr
- __stack = 0xe8080000;
- _heap_sentry = 0xe8080000;
-
- .ResetVector.text : ALIGN(4)
- {
- _ResetVector_text_start = ABSOLUTE(.);
- KEEP (*(.ResetVector.text))
- _ResetVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_0_end = ALIGN(0x8);
- } >iram0_0_seg :iram0_0_phdr
-
- .Reset.literal : ALIGN(4)
- {
- _Reset_literal_start = ABSOLUTE(.);
- *(.Reset.literal)
- _Reset_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_1_end = ALIGN(0x8);
- } >iram0_1_seg :iram0_1_phdr
-
- .WindowVectors.text : ALIGN(4)
- {
- _WindowVectors_text_start = ABSOLUTE(.);
- KEEP (*(.WindowVectors.text))
- _WindowVectors_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_2_end = ALIGN(0x8);
- } >iram0_2_seg :iram0_2_phdr
-
- .Level2InterruptVector.literal : ALIGN(4)
- {
- _Level2InterruptVector_literal_start = ABSOLUTE(.);
- *(.Level2InterruptVector.literal)
- _Level2InterruptVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_3_end = ALIGN(0x8);
- } >iram0_3_seg :iram0_3_phdr
-
- .Level2InterruptVector.text : ALIGN(4)
- {
- _Level2InterruptVector_text_start = ABSOLUTE(.);
- KEEP (*(.Level2InterruptVector.text))
- _Level2InterruptVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_4_end = ALIGN(0x8);
- } >iram0_4_seg :iram0_4_phdr
-
- .Level3InterruptVector.literal : ALIGN(4)
- {
- _Level3InterruptVector_literal_start = ABSOLUTE(.);
- *(.Level3InterruptVector.literal)
- _Level3InterruptVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_5_end = ALIGN(0x8);
- } >iram0_5_seg :iram0_5_phdr
-
- .Level3InterruptVector.text : ALIGN(4)
- {
- _Level3InterruptVector_text_start = ABSOLUTE(.);
- KEEP (*(.Level3InterruptVector.text))
- _Level3InterruptVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_6_end = ALIGN(0x8);
- } >iram0_6_seg :iram0_6_phdr
-
- .Level4InterruptVector.literal : ALIGN(4)
- {
- _Level4InterruptVector_literal_start = ABSOLUTE(.);
- *(.Level4InterruptVector.literal)
- _Level4InterruptVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_7_end = ALIGN(0x8);
- } >iram0_7_seg :iram0_7_phdr
-
- .Level4InterruptVector.text : ALIGN(4)
- {
- _Level4InterruptVector_text_start = ABSOLUTE(.);
- KEEP (*(.Level4InterruptVector.text))
- _Level4InterruptVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_8_end = ALIGN(0x8);
- } >iram0_8_seg :iram0_8_phdr
-
- .DebugExceptionVector.literal : ALIGN(4)
- {
- _DebugExceptionVector_literal_start = ABSOLUTE(.);
- *(.DebugExceptionVector.literal)
- _DebugExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_9_end = ALIGN(0x8);
- } >iram0_9_seg :iram0_9_phdr
-
- .DebugExceptionVector.text : ALIGN(4)
- {
- _DebugExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.DebugExceptionVector.text))
- _DebugExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_10_end = ALIGN(0x8);
- } >iram0_10_seg :iram0_10_phdr
-
- .NMIExceptionVector.literal : ALIGN(4)
- {
- _NMIExceptionVector_literal_start = ABSOLUTE(.);
- *(.NMIExceptionVector.literal)
- _NMIExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_11_end = ALIGN(0x8);
- } >iram0_11_seg :iram0_11_phdr
-
- .NMIExceptionVector.text : ALIGN(4)
- {
- _NMIExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.NMIExceptionVector.text))
- _NMIExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_12_end = ALIGN(0x8);
- } >iram0_12_seg :iram0_12_phdr
-
- .KernelExceptionVector.literal : ALIGN(4)
- {
- _KernelExceptionVector_literal_start = ABSOLUTE(.);
- *(.KernelExceptionVector.literal)
- _KernelExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_13_end = ALIGN(0x8);
- } >iram0_13_seg :iram0_13_phdr
-
- .KernelExceptionVector.text : ALIGN(4)
- {
- _KernelExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.KernelExceptionVector.text))
- _KernelExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_14_end = ALIGN(0x8);
- } >iram0_14_seg :iram0_14_phdr
-
- .UserExceptionVector.literal : ALIGN(4)
- {
- _UserExceptionVector_literal_start = ABSOLUTE(.);
- *(.UserExceptionVector.literal)
- _UserExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_15_end = ALIGN(0x8);
- } >iram0_15_seg :iram0_15_phdr
-
- .UserExceptionVector.text : ALIGN(4)
- {
- _UserExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.UserExceptionVector.text))
- _UserExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_16_end = ALIGN(0x8);
- } >iram0_16_seg :iram0_16_phdr
-
- .DoubleExceptionVector.literal : ALIGN(4)
- {
- _DoubleExceptionVector_literal_start = ABSOLUTE(.);
- *(.DoubleExceptionVector.literal)
- _DoubleExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_17_end = ALIGN(0x8);
- } >iram0_17_seg :iram0_17_phdr
-
- .DoubleExceptionVector.text : ALIGN(4)
- {
- _DoubleExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.DoubleExceptionVector.text))
- _DoubleExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_18_end = ALIGN(0x8);
- } >iram0_18_seg :iram0_18_phdr
-
- .Reset.text : ALIGN(4)
- {
- _Reset_text_start = ABSOLUTE(.);
- *(.Reset.text)
- _Reset_text_end = ABSOLUTE(.);
- } >iram0_19_seg :iram0_19_phdr
-
- .iram0.text : ALIGN(4)
- {
- _iram0_text_start = ABSOLUTE(.);
- *(.iram0.literal .iram.literal .iram.text.literal .iram0.text .iram.text)
- _iram0_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_19_end = ALIGN(0x8);
- } >iram0_19_seg :iram0_19_phdr
-
- .sram.shareaddr : ALIGN(4)
- {
- _sram_shareaddr_start = ABSOLUTE(.);
- *(.sram.shareaddr)
- _sram_shareaddr_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .sram.rodata : ALIGN(4)
- {
- _sram_rodata_start = ABSOLUTE(.);
- *(.sram.rodata)
- _sram_rodata_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .rodata : ALIGN(4)
- {
- _rodata_start = ABSOLUTE(.);
- *(.rodata)
- *(.rodata.*)
- *(.gnu.linkonce.r.*)
- *(.rodata1)
- __XT_EXCEPTION_TABLE__ = ABSOLUTE(.);
- KEEP (*(.xt_except_table))
- KEEP (*(.gcc_except_table))
- *(.gnu.linkonce.e.*)
- *(.gnu.version_r)
- KEEP (*(.eh_frame))
- /* C++ constructor and destructor tables, properly ordered: */
- KEEP (*crtbegin.o(.ctors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- /* C++ exception handlers table: */
- __XT_EXCEPTION_DESCS__ = ABSOLUTE(.);
- *(.xt_except_desc)
- *(.gnu.linkonce.h.*)
- __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
- *(.xt_except_desc_end)
- *(.dynamic)
- *(.gnu.version_d)
- . = ALIGN(4); /* this table MUST be 4-byte aligned */
- _bss_table_start = ABSOLUTE(.);
- LONG(_vlpd_bss_start)
- LONG(_vlpd_bss_end)
- LONG(_efr_fr_hr_vlpd_bss_start)
- LONG(_efr_fr_hr_vlpd_bss_end)
- LONG(_amr_vlpd_bss_start)
- LONG(_amr_vlpd_bss_end)
- LONG(_amrwb_vlpd_bss_start)
- LONG(_amrwb_vlpd_bss_end)
- LONG(_ulpp_bss_start)
- LONG(_ulpp_bss_end)
- LONG(_dtsv3_bss_start)
- LONG(_dtsv3_bss_end)
- LONG(_dtsv4_bss_start)
- LONG(_dtsv4_bss_end)
- LONG(_dram0_bss_start)
- LONG(_dram0_bss_end)
- LONG(_bss_start)
- LONG(_bss_end)
- _bss_table_end = ABSOLUTE(.);
- _rodata_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .sram.text : ALIGN(4)
- {
- _sram_text_start = ABSOLUTE(.);
- *(.sram.literal .sram.text)
- _sram_text_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .text : ALIGN(4)
- {
- _stext = .;
- _text_start = ABSOLUTE(.);
- *(.entry.text)
- *(.init.literal)
- KEEP(*(.init))
- *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
- *(.fini.literal)
- KEEP(*(.fini))
- *(.gnu.version)
- _text_end = ABSOLUTE(.);
- _etext = .;
- } >sram0_seg :sram0_phdr
-
- .sram.data : ALIGN(4)
- {
- _sram_data_start = ABSOLUTE(.);
- *(.sram.data)
- _sram_data_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .data : ALIGN(4)
- {
- _data_start = ABSOLUTE(.);
- *(.data)
- *(.data.*)
- *(.gnu.linkonce.d.*)
- KEEP(*(.gnu.linkonce.d.*personality*))
- *(.data1)
- *(.sdata)
- *(.sdata.*)
- *(.gnu.linkonce.s.*)
- *(.sdata2)
- *(.sdata2.*)
- *(.gnu.linkonce.s2.*)
- KEEP(*(.jcr))
- _data_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .sram.uninit : ALIGN(4)
- {
- _sram_uninit_start = ABSOLUTE(.);
- *(.sram.uninit)
- _sram_uninit_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _bss_start = ABSOLUTE(.);
- *(.dynsbss)
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.sb.*)
- *(.scommon)
- *(.sbss2)
- *(.sbss2.*)
- *(.gnu.linkonce.sb2.*)
- *(.dynbss)
- *(.bss)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- *(.sram.pool.bss)
- *(.sram.bss)
- . = ALIGN (8);
- _bss_end = ABSOLUTE(.);
- _memmap_seg_sram0_end = ALIGN(0x8);
- } >sram0_seg :sram0_bss_phdr
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_info 0 : { *(.debug_info) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- .xt.insn 0 :
- {
- KEEP (*(.xt.insn))
- KEEP (*(.gnu.linkonce.x.*))
- }
- .xt.prop 0 :
- {
- KEEP (*(.xt.prop))
- KEEP (*(.xt.prop.*))
- KEEP (*(.gnu.linkonce.prop.*))
- }
- .xt.lit 0 :
- {
- KEEP (*(.xt.lit))
- KEEP (*(.xt.lit.*))
- KEEP (*(.gnu.linkonce.p.*))
- }
- .debug.xt.callgraph 0 :
- {
- KEEP (*(.debug.xt.callgraph .debug.xt.callgraph.* .gnu.linkonce.xt.callgraph.*))
- }
-}
-
diff --git a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xn b/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xn
deleted file mode 100644
index 17c05e1..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xn
+++ /dev/null
@@ -1,827 +0,0 @@
-/* This linker script generated from xt-genldscripts.tpp for LSP hifi_hikey_lsp */
-/* Linker Script for ld -n */
-MEMORY
-{
- sram0_seg : org = 0xC0000000, len = 0x408000
- old_vlpd_seg : org = 0xC0408000, len = 0x10000
- efr_fr_hr_vlpd_seg : org = 0xC0418000, len = 0x10000
- amr_vlpd_seg : org = 0xC0428000, len = 0x10000
- amrwb_vlpd_seg : org = 0xC0438000, len = 0x10000
- evrc_evrcb_vlpt_seg : org = 0xC0448000, len = 0x48000
- efr_fr_hr_vlpt_seg : org = 0xC0490000, len = 0x30000
- amr_vlpt_seg : org = 0xC04C0000, len = 0x20000
- amrwb_vlpt_seg : org = 0xC04E0000, len = 0x30000
- vlpt_seg : org = 0xC0510000, len = 0x48000
- vlpd_seg : org = 0xC0558000, len = 0x20000
- ulpp_seg : org = 0xC0578000, len = 0x40000
- dtsv3_seg : org = 0xC05B8000, len = 0x20000
- dtsv4_seg : org = 0xC05D8000, len = 0x28000
- dram0_0_seg : org = 0xE8058000, len = 0x28000
- iram0_0_seg : org = 0xE8080000, len = 0x300
- iram0_1_seg : org = 0xE8080300, len = 0x100
- iram0_2_seg : org = 0xE8080400, len = 0x178
- iram0_3_seg : org = 0xE8080578, len = 0x8
- iram0_4_seg : org = 0xE8080580, len = 0x38
- iram0_5_seg : org = 0xE80805B8, len = 0x8
- iram0_6_seg : org = 0xE80805C0, len = 0x38
- iram0_7_seg : org = 0xE80805F8, len = 0x8
- iram0_8_seg : org = 0xE8080600, len = 0x38
- iram0_9_seg : org = 0xE8080638, len = 0x8
- iram0_10_seg : org = 0xE8080640, len = 0x38
- iram0_11_seg : org = 0xE8080678, len = 0x48
- iram0_12_seg : org = 0xE80806C0, len = 0x38
- iram0_13_seg : org = 0xE80806F8, len = 0x8
- iram0_14_seg : org = 0xE8080700, len = 0x38
- iram0_15_seg : org = 0xE8080738, len = 0x8
- iram0_16_seg : org = 0xE8080740, len = 0x38
- iram0_17_seg : org = 0xE8080778, len = 0x48
- iram0_18_seg : org = 0xE80807C0, len = 0x40
- iram0_19_seg : org = 0xE8080800, len = 0xB800
-}
-
-PHDRS
-{
- sram0_phdr PT_LOAD;
- sram0_bss_phdr PT_LOAD;
- old_vlpd_phdr PT_LOAD;
- old_vlpd_bss_phdr PT_LOAD;
- efr_fr_hr_vlpd_phdr PT_LOAD;
- efr_fr_hr_vlpd_bss_phdr PT_LOAD;
- amr_vlpd_phdr PT_LOAD;
- amr_vlpd_bss_phdr PT_LOAD;
- amrwb_vlpd_phdr PT_LOAD;
- amrwb_vlpd_bss_phdr PT_LOAD;
- evrc_evrcb_vlpt_phdr PT_LOAD;
- efr_fr_hr_vlpt_phdr PT_LOAD;
- amr_vlpt_phdr PT_LOAD;
- amrwb_vlpt_phdr PT_LOAD;
- vlpt_phdr PT_LOAD;
- vlpd_phdr PT_LOAD;
- ulpp_phdr PT_LOAD;
- ulpp_bss_phdr PT_LOAD;
- dtsv3_phdr PT_LOAD;
- dtsv3_bss_phdr PT_LOAD;
- dtsv4_phdr PT_LOAD;
- dtsv4_bss_phdr PT_LOAD;
- dram0_0_phdr PT_LOAD;
- dram0_0_bss_phdr PT_LOAD;
- iram0_0_phdr PT_LOAD;
- iram0_1_phdr PT_LOAD;
- iram0_2_phdr PT_LOAD;
- iram0_3_phdr PT_LOAD;
- iram0_4_phdr PT_LOAD;
- iram0_5_phdr PT_LOAD;
- iram0_6_phdr PT_LOAD;
- iram0_7_phdr PT_LOAD;
- iram0_8_phdr PT_LOAD;
- iram0_9_phdr PT_LOAD;
- iram0_10_phdr PT_LOAD;
- iram0_11_phdr PT_LOAD;
- iram0_12_phdr PT_LOAD;
- iram0_13_phdr PT_LOAD;
- iram0_14_phdr PT_LOAD;
- iram0_15_phdr PT_LOAD;
- iram0_16_phdr PT_LOAD;
- iram0_17_phdr PT_LOAD;
- iram0_18_phdr PT_LOAD;
- iram0_19_phdr PT_LOAD;
-}
-
-
-/* Default entry point: */
-ENTRY(_ResetVector)
-
-/* Memory boundary addresses: */
-_memmap_mem_iram0_start = 0xe8080000;
-_memmap_mem_iram0_end = 0xe808c000;
-_memmap_mem_dram0_start = 0xe8058000;
-_memmap_mem_dram0_end = 0xe8080000;
-_memmap_mem_sram_start = 0xc0000000;
-_memmap_mem_sram_end = 0xc0600000;
-
-/* Memory segment boundary addresses: */
-_memmap_seg_sram0_start = 0xc0000000;
-_memmap_seg_sram0_max = 0xc0408000;
-_memmap_seg_old_vlpd_start = 0xc0408000;
-_memmap_seg_old_vlpd_max = 0xc0418000;
-_memmap_seg_efr_fr_hr_vlpd_start = 0xc0418000;
-_memmap_seg_efr_fr_hr_vlpd_max = 0xc0428000;
-_memmap_seg_amr_vlpd_start = 0xc0428000;
-_memmap_seg_amr_vlpd_max = 0xc0438000;
-_memmap_seg_amrwb_vlpd_start = 0xc0438000;
-_memmap_seg_amrwb_vlpd_max = 0xc0448000;
-_memmap_seg_evrc_evrcb_vlpt_start = 0xc0448000;
-_memmap_seg_evrc_evrcb_vlpt_max = 0xc0490000;
-_memmap_seg_efr_fr_hr_vlpt_start = 0xc0490000;
-_memmap_seg_efr_fr_hr_vlpt_max = 0xc04c0000;
-_memmap_seg_amr_vlpt_start = 0xc04c0000;
-_memmap_seg_amr_vlpt_max = 0xc04e0000;
-_memmap_seg_amrwb_vlpt_start = 0xc04e0000;
-_memmap_seg_amrwb_vlpt_max = 0xc0510000;
-_memmap_seg_vlpt_start = 0xc0510000;
-_memmap_seg_vlpt_max = 0xc0558000;
-_memmap_seg_vlpd_start = 0xc0558000;
-_memmap_seg_vlpd_max = 0xc0578000;
-_memmap_seg_ulpp_start = 0xc0578000;
-_memmap_seg_ulpp_max = 0xc05b8000;
-_memmap_seg_dtsv3_start = 0xc05b8000;
-_memmap_seg_dtsv3_max = 0xc05d8000;
-_memmap_seg_dtsv4_start = 0xc05d8000;
-_memmap_seg_dtsv4_max = 0xc0600000;
-_memmap_seg_dram0_0_start = 0xe8058000;
-_memmap_seg_dram0_0_max = 0xe8080000;
-_memmap_seg_iram0_0_start = 0xe8080000;
-_memmap_seg_iram0_0_max = 0xe8080300;
-_memmap_seg_iram0_1_start = 0xe8080300;
-_memmap_seg_iram0_1_max = 0xe8080400;
-_memmap_seg_iram0_2_start = 0xe8080400;
-_memmap_seg_iram0_2_max = 0xe8080578;
-_memmap_seg_iram0_3_start = 0xe8080578;
-_memmap_seg_iram0_3_max = 0xe8080580;
-_memmap_seg_iram0_4_start = 0xe8080580;
-_memmap_seg_iram0_4_max = 0xe80805b8;
-_memmap_seg_iram0_5_start = 0xe80805b8;
-_memmap_seg_iram0_5_max = 0xe80805c0;
-_memmap_seg_iram0_6_start = 0xe80805c0;
-_memmap_seg_iram0_6_max = 0xe80805f8;
-_memmap_seg_iram0_7_start = 0xe80805f8;
-_memmap_seg_iram0_7_max = 0xe8080600;
-_memmap_seg_iram0_8_start = 0xe8080600;
-_memmap_seg_iram0_8_max = 0xe8080638;
-_memmap_seg_iram0_9_start = 0xe8080638;
-_memmap_seg_iram0_9_max = 0xe8080640;
-_memmap_seg_iram0_10_start = 0xe8080640;
-_memmap_seg_iram0_10_max = 0xe8080678;
-_memmap_seg_iram0_11_start = 0xe8080678;
-_memmap_seg_iram0_11_max = 0xe80806c0;
-_memmap_seg_iram0_12_start = 0xe80806c0;
-_memmap_seg_iram0_12_max = 0xe80806f8;
-_memmap_seg_iram0_13_start = 0xe80806f8;
-_memmap_seg_iram0_13_max = 0xe8080700;
-_memmap_seg_iram0_14_start = 0xe8080700;
-_memmap_seg_iram0_14_max = 0xe8080738;
-_memmap_seg_iram0_15_start = 0xe8080738;
-_memmap_seg_iram0_15_max = 0xe8080740;
-_memmap_seg_iram0_16_start = 0xe8080740;
-_memmap_seg_iram0_16_max = 0xe8080778;
-_memmap_seg_iram0_17_start = 0xe8080778;
-_memmap_seg_iram0_17_max = 0xe80807c0;
-_memmap_seg_iram0_18_start = 0xe80807c0;
-_memmap_seg_iram0_18_max = 0xe8080800;
-_memmap_seg_iram0_19_start = 0xe8080800;
-_memmap_seg_iram0_19_max = 0xe808c000;
-
-_rom_store_table = 0;
-PROVIDE(_memmap_vecbase_reset = 0xe8080400);
-PROVIDE(_memmap_reset_vector = 0xe8080000);
-/* Various memory-map dependent cache attribute settings: */
-_memmap_cacheattr_wb_base = 0x44000000;
-_memmap_cacheattr_wt_base = 0x11000000;
-_memmap_cacheattr_bp_base = 0x22000000;
-_memmap_cacheattr_unused_mask = 0x00FFFFFF;
-_memmap_cacheattr_wb_trapnull = 0x4422222F;
-_memmap_cacheattr_wba_trapnull = 0x4422222F;
-_memmap_cacheattr_wbna_trapnull = 0x5522222F;
-_memmap_cacheattr_wt_trapnull = 0x1122222F;
-_memmap_cacheattr_bp_trapnull = 0x2222222F;
-_memmap_cacheattr_wb_strict = 0x44FFFFFF;
-_memmap_cacheattr_wt_strict = 0x11FFFFFF;
-_memmap_cacheattr_bp_strict = 0x22FFFFFF;
-_memmap_cacheattr_wb_allvalid = 0x44222222;
-_memmap_cacheattr_wt_allvalid = 0x11222222;
-_memmap_cacheattr_bp_allvalid = 0x22222222;
-PROVIDE(_memmap_cacheattr_reset = _memmap_cacheattr_wb_trapnull);
-
-SECTIONS
-{
-
- .vlpd.rodata : ALIGN(4)
- {
- _vlpd_rodata_start = ABSOLUTE(.);
- *(.vlpd.rodata)
- _vlpd_rodata_end = ABSOLUTE(.);
- } >old_vlpd_seg :old_vlpd_phdr
-
- .vlpd.data : ALIGN(4)
- {
- _vlpd_data_start = ABSOLUTE(.);
- *(.vlpd.data)
- _vlpd_data_end = ABSOLUTE(.);
- } >old_vlpd_seg :old_vlpd_phdr
-
- .vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _vlpd_bss_start = ABSOLUTE(.);
- *(.vlpd.bss)
- . = ALIGN (8);
- _vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_old_vlpd_end = ALIGN(0x8);
- } >old_vlpd_seg :old_vlpd_bss_phdr
-
- .efr_fr_hr_vlpd.rodata : ALIGN(4)
- {
- _efr_fr_hr_vlpd_rodata_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpd.rodata)
- _efr_fr_hr_vlpd_rodata_end = ABSOLUTE(.);
- } >efr_fr_hr_vlpd_seg :efr_fr_hr_vlpd_phdr
-
- .efr_fr_hr_vlpd.data : ALIGN(4)
- {
- _efr_fr_hr_vlpd_data_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpd.data)
- _efr_fr_hr_vlpd_data_end = ABSOLUTE(.);
- } >efr_fr_hr_vlpd_seg :efr_fr_hr_vlpd_phdr
-
- .efr_fr_hr_vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _efr_fr_hr_vlpd_bss_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpd.bss)
- . = ALIGN (8);
- _efr_fr_hr_vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_efr_fr_hr_vlpd_end = ALIGN(0x8);
- } >efr_fr_hr_vlpd_seg :efr_fr_hr_vlpd_bss_phdr
-
- .amr_vlpd.rodata : ALIGN(4)
- {
- _amr_vlpd_rodata_start = ABSOLUTE(.);
- *(.amr_vlpd.rodata)
- _amr_vlpd_rodata_end = ABSOLUTE(.);
- } >amr_vlpd_seg :amr_vlpd_phdr
-
- .amr_vlpd.data : ALIGN(4)
- {
- _amr_vlpd_data_start = ABSOLUTE(.);
- *(.amr_vlpd.data)
- _amr_vlpd_data_end = ABSOLUTE(.);
- } >amr_vlpd_seg :amr_vlpd_phdr
-
- .amr_vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _amr_vlpd_bss_start = ABSOLUTE(.);
- *(.amr_vlpd.bss)
- . = ALIGN (8);
- _amr_vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_amr_vlpd_end = ALIGN(0x8);
- } >amr_vlpd_seg :amr_vlpd_bss_phdr
-
- .amrwb_vlpd.rodata : ALIGN(4)
- {
- _amrwb_vlpd_rodata_start = ABSOLUTE(.);
- *(.amrwb_vlpd.rodata)
- _amrwb_vlpd_rodata_end = ABSOLUTE(.);
- } >amrwb_vlpd_seg :amrwb_vlpd_phdr
-
- .amrwb_vlpd.data : ALIGN(4)
- {
- _amrwb_vlpd_data_start = ABSOLUTE(.);
- *(.amrwb_vlpd.data)
- _amrwb_vlpd_data_end = ABSOLUTE(.);
- } >amrwb_vlpd_seg :amrwb_vlpd_phdr
-
- .amrwb_vlpd.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _amrwb_vlpd_bss_start = ABSOLUTE(.);
- *(.amrwb_vlpd.bss)
- . = ALIGN (8);
- _amrwb_vlpd_bss_end = ABSOLUTE(.);
- _memmap_seg_amrwb_vlpd_end = ALIGN(0x8);
- } >amrwb_vlpd_seg :amrwb_vlpd_bss_phdr
-
- .evrc_evrcb_vlpt.text : ALIGN(4)
- {
- _evrc_evrcb_vlpt_text_start = ABSOLUTE(.);
- *(.evrc_evrcb_vlpt.literal .evrc_evrcb_vlpt.text)
- _evrc_evrcb_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_evrc_evrcb_vlpt_end = ALIGN(0x8);
- } >evrc_evrcb_vlpt_seg :evrc_evrcb_vlpt_phdr
-
- .efr_fr_hr_vlpt.text : ALIGN(4)
- {
- _efr_fr_hr_vlpt_text_start = ABSOLUTE(.);
- *(.efr_fr_hr_vlpt.literal .efr_fr_hr_vlpt.text)
- _efr_fr_hr_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_efr_fr_hr_vlpt_end = ALIGN(0x8);
- } >efr_fr_hr_vlpt_seg :efr_fr_hr_vlpt_phdr
-
- .amr_vlpt.text : ALIGN(4)
- {
- _amr_vlpt_text_start = ABSOLUTE(.);
- *(.amr_vlpt.literal .amr_vlpt.text)
- _amr_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_amr_vlpt_end = ALIGN(0x8);
- } >amr_vlpt_seg :amr_vlpt_phdr
-
- .amrwb_vlpt.text : ALIGN(4)
- {
- _amrwb_vlpt_text_start = ABSOLUTE(.);
- *(.amrwb_vlpt.literal .amrwb_vlpt.text)
- _amrwb_vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_amrwb_vlpt_end = ALIGN(0x8);
- } >amrwb_vlpt_seg :amrwb_vlpt_phdr
-
- .vlpt.text : ALIGN(4)
- {
- _vlpt_text_start = ABSOLUTE(.);
- *(.vlpt.literal .vlpt.text)
- _vlpt_text_end = ABSOLUTE(.);
- _memmap_seg_vlpt_end = ALIGN(0x8);
- } >vlpt_seg :vlpt_phdr
-
- .low_power_dyn_alloc : ALIGN(4)
- {
- _low_power_dyn_alloc_start = ABSOLUTE(.);
- *(.low_power_dyn_alloc)
- _low_power_dyn_alloc_end = ABSOLUTE(.);
- _memmap_seg_vlpd_end = ALIGN(0x8);
- } >vlpd_seg :vlpd_phdr
-
- .ulpp.rodata : ALIGN(4)
- {
- _ulpp_rodata_start = ABSOLUTE(.);
- *(.ulpp.rodata)
- _ulpp_rodata_end = ABSOLUTE(.);
- } >ulpp_seg :ulpp_phdr
-
- .ulpp.data : ALIGN(4)
- {
- _ulpp_data_start = ABSOLUTE(.);
- *(.ulpp.data)
- _ulpp_data_end = ABSOLUTE(.);
- } >ulpp_seg :ulpp_phdr
-
- .ulpp.text : ALIGN(4)
- {
- _ulpp_text_start = ABSOLUTE(.);
- *(.ulpp.literal .ulpp.text)
- _ulpp_text_end = ABSOLUTE(.);
- } >ulpp_seg :ulpp_phdr
-
- .ulpp.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _ulpp_bss_start = ABSOLUTE(.);
- *(.ulpp.bss)
- . = ALIGN (8);
- _ulpp_bss_end = ABSOLUTE(.);
- _memmap_seg_ulpp_end = ALIGN(0x8);
- } >ulpp_seg :ulpp_bss_phdr
-
- .dtsv3.rodata : ALIGN(4)
- {
- _dtsv3_rodata_start = ABSOLUTE(.);
- *(.dtsv3.rodata)
- _dtsv3_rodata_end = ABSOLUTE(.);
- } >dtsv3_seg :dtsv3_phdr
-
- .dtsv3.data : ALIGN(4)
- {
- _dtsv3_data_start = ABSOLUTE(.);
- *(.dtsv3.data)
- _dtsv3_data_end = ABSOLUTE(.);
- } >dtsv3_seg :dtsv3_phdr
-
- .dtsv3.text : ALIGN(4)
- {
- _dtsv3_text_start = ABSOLUTE(.);
- *(.dtsv3.literal .dtsv3.text)
- _dtsv3_text_end = ABSOLUTE(.);
- } >dtsv3_seg :dtsv3_phdr
-
- .dtsv3.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _dtsv3_bss_start = ABSOLUTE(.);
- *(.dtsv3.bss)
- . = ALIGN (8);
- _dtsv3_bss_end = ABSOLUTE(.);
- _memmap_seg_dtsv3_end = ALIGN(0x8);
- } >dtsv3_seg :dtsv3_bss_phdr
-
- .dtsv4.rodata : ALIGN(4)
- {
- _dtsv4_rodata_start = ABSOLUTE(.);
- *(.dtsv4.rodata)
- _dtsv4_rodata_end = ABSOLUTE(.);
- } >dtsv4_seg :dtsv4_phdr
-
- .dtsv4.data : ALIGN(4)
- {
- _dtsv4_data_start = ABSOLUTE(.);
- *(.dtsv4.data)
- _dtsv4_data_end = ABSOLUTE(.);
- } >dtsv4_seg :dtsv4_phdr
-
- .dtsv4.text : ALIGN(4)
- {
- _dtsv4_text_start = ABSOLUTE(.);
- *(.dtsv4.literal .dtsv4.text)
- _dtsv4_text_end = ABSOLUTE(.);
- } >dtsv4_seg :dtsv4_phdr
-
- .dtsv4.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _dtsv4_bss_start = ABSOLUTE(.);
- *(.dtsv4.bss)
- . = ALIGN (8);
- _dtsv4_bss_end = ABSOLUTE(.);
- _memmap_seg_dtsv4_end = ALIGN(0x8);
- } >dtsv4_seg :dtsv4_bss_phdr
-
- .dram0.rodata : ALIGN(4)
- {
- _dram0_rodata_start = ABSOLUTE(.);
- *(.dram0.rodata)
- *(.dram.rodata)
- _dram0_rodata_end = ABSOLUTE(.);
- } >dram0_0_seg :dram0_0_phdr
-
- .dram0.literal : ALIGN(4)
- {
- _dram0_literal_start = ABSOLUTE(.);
- *(.dram0.literal)
- *(.dram.literal)
- _dram0_literal_end = ABSOLUTE(.);
- } >dram0_0_seg :dram0_0_phdr
-
- .dram0.data : ALIGN(4)
- {
- _dram0_data_start = ABSOLUTE(.);
- *(.dram0.data)
- *(.dram.data)
- _dram0_data_end = ABSOLUTE(.);
- } >dram0_0_seg :dram0_0_phdr
-
- .dram0.bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _dram0_bss_start = ABSOLUTE(.);
- *(.dram0.bss)
- *(.om.debug.bss)
- *(.os.stack.bss)
- . = ALIGN (8);
- _dram0_bss_end = ABSOLUTE(.);
- _end = ALIGN(0x8);
- PROVIDE(end = ALIGN(0x8));
- _stack_sentry = ALIGN(0x8);
- _memmap_seg_dram0_0_end = ALIGN(0x8);
- } >dram0_0_seg :dram0_0_bss_phdr
- __stack = 0xe8080000;
- _heap_sentry = 0xe8080000;
-
- .ResetVector.text : ALIGN(4)
- {
- _ResetVector_text_start = ABSOLUTE(.);
- KEEP (*(.ResetVector.text))
- _ResetVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_0_end = ALIGN(0x8);
- } >iram0_0_seg :iram0_0_phdr
-
- .Reset.literal : ALIGN(4)
- {
- _Reset_literal_start = ABSOLUTE(.);
- *(.Reset.literal)
- _Reset_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_1_end = ALIGN(0x8);
- } >iram0_1_seg :iram0_1_phdr
-
- .WindowVectors.text : ALIGN(4)
- {
- _WindowVectors_text_start = ABSOLUTE(.);
- KEEP (*(.WindowVectors.text))
- _WindowVectors_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_2_end = ALIGN(0x8);
- } >iram0_2_seg :iram0_2_phdr
-
- .Level2InterruptVector.literal : ALIGN(4)
- {
- _Level2InterruptVector_literal_start = ABSOLUTE(.);
- *(.Level2InterruptVector.literal)
- _Level2InterruptVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_3_end = ALIGN(0x8);
- } >iram0_3_seg :iram0_3_phdr
-
- .Level2InterruptVector.text : ALIGN(4)
- {
- _Level2InterruptVector_text_start = ABSOLUTE(.);
- KEEP (*(.Level2InterruptVector.text))
- _Level2InterruptVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_4_end = ALIGN(0x8);
- } >iram0_4_seg :iram0_4_phdr
-
- .Level3InterruptVector.literal : ALIGN(4)
- {
- _Level3InterruptVector_literal_start = ABSOLUTE(.);
- *(.Level3InterruptVector.literal)
- _Level3InterruptVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_5_end = ALIGN(0x8);
- } >iram0_5_seg :iram0_5_phdr
-
- .Level3InterruptVector.text : ALIGN(4)
- {
- _Level3InterruptVector_text_start = ABSOLUTE(.);
- KEEP (*(.Level3InterruptVector.text))
- _Level3InterruptVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_6_end = ALIGN(0x8);
- } >iram0_6_seg :iram0_6_phdr
-
- .Level4InterruptVector.literal : ALIGN(4)
- {
- _Level4InterruptVector_literal_start = ABSOLUTE(.);
- *(.Level4InterruptVector.literal)
- _Level4InterruptVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_7_end = ALIGN(0x8);
- } >iram0_7_seg :iram0_7_phdr
-
- .Level4InterruptVector.text : ALIGN(4)
- {
- _Level4InterruptVector_text_start = ABSOLUTE(.);
- KEEP (*(.Level4InterruptVector.text))
- _Level4InterruptVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_8_end = ALIGN(0x8);
- } >iram0_8_seg :iram0_8_phdr
-
- .DebugExceptionVector.literal : ALIGN(4)
- {
- _DebugExceptionVector_literal_start = ABSOLUTE(.);
- *(.DebugExceptionVector.literal)
- _DebugExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_9_end = ALIGN(0x8);
- } >iram0_9_seg :iram0_9_phdr
-
- .DebugExceptionVector.text : ALIGN(4)
- {
- _DebugExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.DebugExceptionVector.text))
- _DebugExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_10_end = ALIGN(0x8);
- } >iram0_10_seg :iram0_10_phdr
-
- .NMIExceptionVector.literal : ALIGN(4)
- {
- _NMIExceptionVector_literal_start = ABSOLUTE(.);
- *(.NMIExceptionVector.literal)
- _NMIExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_11_end = ALIGN(0x8);
- } >iram0_11_seg :iram0_11_phdr
-
- .NMIExceptionVector.text : ALIGN(4)
- {
- _NMIExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.NMIExceptionVector.text))
- _NMIExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_12_end = ALIGN(0x8);
- } >iram0_12_seg :iram0_12_phdr
-
- .KernelExceptionVector.literal : ALIGN(4)
- {
- _KernelExceptionVector_literal_start = ABSOLUTE(.);
- *(.KernelExceptionVector.literal)
- _KernelExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_13_end = ALIGN(0x8);
- } >iram0_13_seg :iram0_13_phdr
-
- .KernelExceptionVector.text : ALIGN(4)
- {
- _KernelExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.KernelExceptionVector.text))
- _KernelExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_14_end = ALIGN(0x8);
- } >iram0_14_seg :iram0_14_phdr
-
- .UserExceptionVector.literal : ALIGN(4)
- {
- _UserExceptionVector_literal_start = ABSOLUTE(.);
- *(.UserExceptionVector.literal)
- _UserExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_15_end = ALIGN(0x8);
- } >iram0_15_seg :iram0_15_phdr
-
- .UserExceptionVector.text : ALIGN(4)
- {
- _UserExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.UserExceptionVector.text))
- _UserExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_16_end = ALIGN(0x8);
- } >iram0_16_seg :iram0_16_phdr
-
- .DoubleExceptionVector.literal : ALIGN(4)
- {
- _DoubleExceptionVector_literal_start = ABSOLUTE(.);
- *(.DoubleExceptionVector.literal)
- _DoubleExceptionVector_literal_end = ABSOLUTE(.);
- _memmap_seg_iram0_17_end = ALIGN(0x8);
- } >iram0_17_seg :iram0_17_phdr
-
- .DoubleExceptionVector.text : ALIGN(4)
- {
- _DoubleExceptionVector_text_start = ABSOLUTE(.);
- KEEP (*(.DoubleExceptionVector.text))
- _DoubleExceptionVector_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_18_end = ALIGN(0x8);
- } >iram0_18_seg :iram0_18_phdr
-
- .Reset.text : ALIGN(4)
- {
- _Reset_text_start = ABSOLUTE(.);
- *(.Reset.text)
- _Reset_text_end = ABSOLUTE(.);
- } >iram0_19_seg :iram0_19_phdr
-
- .iram0.text : ALIGN(4)
- {
- _iram0_text_start = ABSOLUTE(.);
- *(.iram0.literal .iram.literal .iram.text.literal .iram0.text .iram.text)
- _iram0_text_end = ABSOLUTE(.);
- _memmap_seg_iram0_19_end = ALIGN(0x8);
- } >iram0_19_seg :iram0_19_phdr
-
- .sram.shareaddr : ALIGN(4)
- {
- _sram_shareaddr_start = ABSOLUTE(.);
- *(.sram.shareaddr)
- _sram_shareaddr_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .sram.rodata : ALIGN(4)
- {
- _sram_rodata_start = ABSOLUTE(.);
- *(.sram.rodata)
- _sram_rodata_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .rodata : ALIGN(4)
- {
- _rodata_start = ABSOLUTE(.);
- *(.rodata)
- *(.rodata.*)
- *(.gnu.linkonce.r.*)
- *(.rodata1)
- __XT_EXCEPTION_TABLE__ = ABSOLUTE(.);
- KEEP (*(.xt_except_table))
- KEEP (*(.gcc_except_table))
- *(.gnu.linkonce.e.*)
- *(.gnu.version_r)
- KEEP (*(.eh_frame))
- /* C++ constructor and destructor tables, properly ordered: */
- KEEP (*crtbegin.o(.ctors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- /* C++ exception handlers table: */
- __XT_EXCEPTION_DESCS__ = ABSOLUTE(.);
- *(.xt_except_desc)
- *(.gnu.linkonce.h.*)
- __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
- *(.xt_except_desc_end)
- *(.dynamic)
- *(.gnu.version_d)
- . = ALIGN(4); /* this table MUST be 4-byte aligned */
- _bss_table_start = ABSOLUTE(.);
- LONG(_vlpd_bss_start)
- LONG(_vlpd_bss_end)
- LONG(_efr_fr_hr_vlpd_bss_start)
- LONG(_efr_fr_hr_vlpd_bss_end)
- LONG(_amr_vlpd_bss_start)
- LONG(_amr_vlpd_bss_end)
- LONG(_amrwb_vlpd_bss_start)
- LONG(_amrwb_vlpd_bss_end)
- LONG(_ulpp_bss_start)
- LONG(_ulpp_bss_end)
- LONG(_dtsv3_bss_start)
- LONG(_dtsv3_bss_end)
- LONG(_dtsv4_bss_start)
- LONG(_dtsv4_bss_end)
- LONG(_dram0_bss_start)
- LONG(_dram0_bss_end)
- LONG(_bss_start)
- LONG(_bss_end)
- _bss_table_end = ABSOLUTE(.);
- _rodata_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .sram.text : ALIGN(4)
- {
- _sram_text_start = ABSOLUTE(.);
- *(.sram.literal .sram.text)
- _sram_text_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .text : ALIGN(4)
- {
- _stext = .;
- _text_start = ABSOLUTE(.);
- *(.entry.text)
- *(.init.literal)
- KEEP(*(.init))
- *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
- *(.fini.literal)
- KEEP(*(.fini))
- *(.gnu.version)
- _text_end = ABSOLUTE(.);
- _etext = .;
- } >sram0_seg :sram0_phdr
-
- .sram.data : ALIGN(4)
- {
- _sram_data_start = ABSOLUTE(.);
- *(.sram.data)
- _sram_data_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .data : ALIGN(4)
- {
- _data_start = ABSOLUTE(.);
- *(.data)
- *(.data.*)
- *(.gnu.linkonce.d.*)
- KEEP(*(.gnu.linkonce.d.*personality*))
- *(.data1)
- *(.sdata)
- *(.sdata.*)
- *(.gnu.linkonce.s.*)
- *(.sdata2)
- *(.sdata2.*)
- *(.gnu.linkonce.s2.*)
- KEEP(*(.jcr))
- _data_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .sram.uninit : ALIGN(4)
- {
- _sram_uninit_start = ABSOLUTE(.);
- *(.sram.uninit)
- _sram_uninit_end = ABSOLUTE(.);
- } >sram0_seg :sram0_phdr
-
- .bss (NOLOAD) : ALIGN(8)
- {
- . = ALIGN (8);
- _bss_start = ABSOLUTE(.);
- *(.dynsbss)
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.sb.*)
- *(.scommon)
- *(.sbss2)
- *(.sbss2.*)
- *(.gnu.linkonce.sb2.*)
- *(.dynbss)
- *(.bss)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- *(.sram.pool.bss)
- *(.sram.bss)
- . = ALIGN (8);
- _bss_end = ABSOLUTE(.);
- _memmap_seg_sram0_end = ALIGN(0x8);
- } >sram0_seg :sram0_bss_phdr
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_info 0 : { *(.debug_info) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- .xt.insn 0 :
- {
- KEEP (*(.xt.insn))
- KEEP (*(.gnu.linkonce.x.*))
- }
- .xt.prop 0 :
- {
- KEEP (*(.xt.prop))
- KEEP (*(.xt.prop.*))
- KEEP (*(.gnu.linkonce.prop.*))
- }
- .xt.lit 0 :
- {
- KEEP (*(.xt.lit))
- KEEP (*(.xt.lit.*))
- KEEP (*(.gnu.linkonce.p.*))
- }
- .debug.xt.callgraph 0 :
- {
- KEEP (*(.debug.xt.callgraph .debug.xt.callgraph.* .gnu.linkonce.xt.callgraph.*))
- }
-}
-
diff --git a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xr b/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xr
deleted file mode 100644
index 3e9f189..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xr
+++ /dev/null
@@ -1,42 +0,0 @@
-/* This linker script generated from xt-genldscripts.tpp for LSP hifi_hikey_lsp */
-/* Linker Script for ld -r or ld -i */
-
-/* Default entry point: */
-ENTRY(_ResetVector)
-
-SECTIONS
-{
-
- .text 0 :
- {
- *(.literal .text)
- }
-
- .bss 0 :
- {
- *(.dynsbss)
- *(.sbss)
- *(.scommon)
- *(.dynbss)
- *(.bss)
- *(COMMON)
- }
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_info 0 : { *(.debug_info) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
-}
-
diff --git a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xu b/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xu
deleted file mode 100644
index d8e1986..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/ldscripts/elf32xtensa.xu
+++ /dev/null
@@ -1,42 +0,0 @@
-/* This linker script generated from xt-genldscripts.tpp for LSP hifi_hikey_lsp */
-/* Linker Script for ld -Ur */
-
-/* Default entry point: */
-ENTRY(_ResetVector)
-
-SECTIONS
-{
-
- .text 0 :
- {
- *(.literal .text)
- }
-
- .bss 0 :
- {
- *(.dynsbss)
- *(.sbss)
- *(.scommon)
- *(.dynbss)
- *(.bss)
- *(COMMON)
- }
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_info 0 : { *(.debug_info) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
-}
-
diff --git a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/memmap.xmm b/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/memmap.xmm
deleted file mode 100644
index c7a94bc..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/memmap.xmm
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-BEGIN iram0
-0xe8080000: instRam : iram0 : 0xc000 : executable, writable ;
- iram0_0 : F : 0xe8080000 - 0xe80802ff : .ResetVector.text;
- iram0_1 : C : 0xe8080300 - 0xe80803ff : .Reset.literal;
- iram0_2 : F : 0xe8080400 - 0xe8080577 : .WindowVectors.text;
- iram0_3 : C : 0xe8080578 - 0xe808057f : .Level2InterruptVector.literal;
- iram0_4 : F : 0xe8080580 - 0xe80805b7 : .Level2InterruptVector.text;
- iram0_5 : C : 0xe80805b8 - 0xe80805bf : .Level3InterruptVector.literal;
- iram0_6 : F : 0xe80805c0 - 0xe80805f7 : .Level3InterruptVector.text;
- iram0_7 : C : 0xe80805f8 - 0xe80805ff : .Level4InterruptVector.literal;
- iram0_8 : F : 0xe8080600 - 0xe8080637 : .Level4InterruptVector.text;
- iram0_9 : C : 0xe8080638 - 0xe808063f : .DebugExceptionVector.literal;
- iram0_10 : F : 0xe8080640 - 0xe8080677 : .DebugExceptionVector.text;
- iram0_11 : C : 0xe8080678 - 0xe80806bf : .NMIExceptionVector.literal;
- iram0_12 : F : 0xe80806c0 - 0xe80806f7 : .NMIExceptionVector.text;
- iram0_13 : C : 0xe80806f8 - 0xe80806ff : .KernelExceptionVector.literal;
- iram0_14 : F : 0xe8080700 - 0xe8080737 : .KernelExceptionVector.text;
- iram0_15 : C : 0xe8080738 - 0xe808073f : .UserExceptionVector.literal;
- iram0_16 : F : 0xe8080740 - 0xe8080777 : .UserExceptionVector.text;
- iram0_17 : C : 0xe8080778 - 0xe80807bf : .DoubleExceptionVector.literal;
- iram0_18 : F : 0xe80807c0 - 0xe80807ff : .DoubleExceptionVector.text;
- iram0_19 : C : 0xe8080800 - 0xe808bfff : .iram0.literal .Reset.text .iram0.text;
-END iram0
-
-BEGIN dram0
-0xe8058000: dataRam : dram0 : 0x28000 : writable ;
- dram0_0 : C : 0xe8058000 - 0xe807ffff : STACK : HEAP : .dram0.rodata .dram0.literal .dram0.data .dram0.bss .om.debug.bss .os.stack.bss;
-END dram0
-
-BEGIN sram
-0xc0000000: sysram : sram : 0x600000 : executable, writable ;
- sram0 : C : 0xc0000000 - 0xC0407FFF : .sram.shareaddr .sram.rodata .rodata .sram.literal .literal .sram.text .text .sram.data .data .sram.uninit .sram.pool.bss .sram.bss .bss;
- old_vlpd : C : 0xC0408000 - 0xC0417FFF : .vlpd.rodata .vlpd.data .vlpd.bss;
- efr_fr_hr_vlpd : C : 0xC0418000 - 0xC0427FFF : .efr_fr_hr_vlpd.rodata .efr_fr_hr_vlpd.data .efr_fr_hr_vlpd.bss;
- amr_vlpd : C : 0xC0428000 - 0xC0437FFF : .amr_vlpd.rodata .amr_vlpd.data .amr_vlpd.bss;
- amrwb_vlpd : C : 0xC0438000 - 0xC0447FFF : .amrwb_vlpd.rodata .amrwb_vlpd.data .amrwb_vlpd.bss;
- evrc_evrcb_vlpt : C : 0xC0448000 - 0xC048FFFF : .evrc_evrcb_vlpt.literal .evrc_evrcb_vlpt.text;
- efr_fr_hr_vlpt : C : 0xC0490000 - 0xC04BFFFF : .efr_fr_hr_vlpt.literal .efr_fr_hr_vlpt.text;
- amr_vlpt : C : 0xC04C0000 - 0xC04DFFFF : .amr_vlpt.literal .amr_vlpt.text;
- amrwb_vlpt : C : 0xC04E0000 -0xC050FFFF : .amrwb_vlpt.literal .amrwb_vlpt.text;
- vlpt : C : 0xC0510000 - 0xC0557FFF : .vlpt.literal .vlpt.text;
- vlpd : C : 0xC0558000 - 0xC0577FFF : .low_power_dyn_alloc;
- ulpp : C : 0xc0578000 - 0xc05b7fff : .ulpp.rodata .ulpp.data .ulpp.literal .ulpp.text .ulpp.bss;
- dtsv3 : C : 0xc05b8000 - 0xc05d7fff : .dtsv3.rodata .dtsv3.data .dtsv3.literal .dtsv3.text .dtsv3.bss;
- dtsv4 : C : 0xc05d8000 - 0xc05fffff : .dtsv4.rodata .dtsv4.data .dtsv4.literal .dtsv4.text .dtsv4.bss;
-END sram
-
diff --git a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/min-rt.parm b/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/min-rt.parm
deleted file mode 100644
index 25083ee..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/min-rt.parm
+++ /dev/null
@@ -1,15 +0,0 @@
-// Memory map file to generate linker scripts for programs without board I/O.
-
-// $Id: //depot/rel/Cottonwood/Xtensa/SWConfig/ldscripts/min-rt.parm#1 $
-
-// Customer ID=9470; Build=0x42f97; Copyright (c) 2004-2007 by Tensilica Inc. ALL RIGHTS RESERVED.
-// These coded instructions, statements, and computer programs are the
-// copyrighted works and confidential proprietary information of Tensilica Inc.
-// They may not be modified, copied, reproduced, distributed, or disclosed to
-// third parties in any manner, medium, or form, in whole or in part, without
-// the prior written consent of Tensilica Inc.
-
-// Show more details if configuration targets the XT2000 board:
-INCLUDE_XT2000_MEMORIES = try
-RESERVE_SEGMENT_AREA = ".i_ocram.text 0x7800 + 0 start : .d_ocram.data 0x5000 + 0 start"
-
diff --git a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/specs b/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/specs
deleted file mode 100644
index 2988e02..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/specs
+++ /dev/null
@@ -1,22 +0,0 @@
-# Customer ID=9470; Build=0x42f97; Copyright (c) 2001-2010 by Tensilica Inc. ALL RIGHTS RESERVED.
-# These coded instructions, statements, and computer programs are the
-# copyrighted works and confidential proprietary information of Tensilica Inc.
-# They may not be modified, copied, reproduced, distributed, or disclosed to
-# third parties in any manner, medium, or form, in whole or in part, without
-# the prior written consent of Tensilica Inc.
-
-
-# The %O suffix on the start and end files indicates that the system's
-# standard suffix for object files (e.g., ".o") should be appended.
-# The %s suffix tells the compiler driver to search for the file in the
-# list of known locations for startfiles.
-
-*startfile:
-crt1-boards%O%s crti%O%s crtbegin%O%s _sharedvectors%O%s _vectors%O%s
-
-*endfile:
-crtend%O%s crtn%O%s
-
-*lib:
--lc -lgloss -lminrt -lc -lhandler-reset -lhandlers-board -lminrt -lhal -lc
-
diff --git a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/tag b/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/tag
deleted file mode 100644
index 7be80f2..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/tag
+++ /dev/null
@@ -1,3 +0,0 @@
-#This file is generated by Xplorer, do not edit.
-#Mon Aug 26 15:41:31 CST 2013
-standardlsp=min-rt
diff --git a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/user.parm b/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/user.parm
deleted file mode 100644
index e69de29..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/hifi_hikey_lsp/user.parm
+++ /dev/null
diff --git a/hifi/xaf/hifi-dpf/build_hikey/map_hikey.txt b/hifi/xaf/hifi-dpf/build_hikey/map_hikey.txt
deleted file mode 100644
index 58a3efc..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/map_hikey.txt
+++ /dev/null
@@ -1,2167 +0,0 @@
-Archive member included because of file (symbol)
-
-../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o)
- objs/hikey/xa-vorbis-decoder.o (xa_vorbis_dec)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- objs/hikey/arch_hifi330.o (xthal_window_spill_nw)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o)
- objs/hikey/xf-shmem.o (xthal_dcache_region_invalidate)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_writeback.o)
- objs/hikey/xf-shmem.o (xthal_dcache_region_writeback)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--hw_configid0.o)
- /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o) (xthals_hw_configid0)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--hw_configid1.o)
- /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o) (xthals_hw_configid1)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--release_major.o)
- /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o) (xthals_release_major)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--release_minor.o)
- /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o) (xthals_release_minor)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--get_intenable.o)
- objs/hikey/cpu_c.o (xthal_get_intenable)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--set_intenable.o)
- objs/hikey/cpu_c.o (xthal_set_intenable)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--restore_extra_nw.o)
- objs/hikey/arch_hifi330.o (xthal_restore_extra_nw)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--save_extra_nw.o)
- objs/hikey/arch_hifi330.o (xthal_save_extra_nw)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- objs/hikey/xf-main.o (_xtos_ints_on)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- objs/hikey/mutex.o (_xtos_ints_off)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(interrupt-table.o)
- /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o) (_xtos_intstruct)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o) (memchr)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o) (memcmp)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcpy.o)
- objs/hikey/xf-io.o (memcpy)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memset.o)
- objs/hikey/xf-io.o (memset)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o) (qsort)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- objs/hikey/xa-factory.o (strncmp)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divsi3.o)
- ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o) (__divsi3)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_modsi3.o)
- ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o) (__modsi3)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- objs/hikey/xf-core.o (__adddf3)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- objs/hikey/dsp_debug.o (__muldf3)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- objs/hikey/dsp_debug.o (__ltdf2)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- objs/hikey/xf-core.o (__fixunsdfsi)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- objs/hikey/dsp_debug.o (__fixunsdfdi)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatsidf.o)
- objs/hikey/xf-core.o (__floatunsidf)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatdidf.o)
- objs/hikey/dsp_debug.o (__floatundidf)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o) (__divdi3)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- objs/hikey/dsp_debug.o (__udivdi3)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- objs/hikey/dsp_debug.o (__umoddi3)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o) (__vec_memcpy)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o) (__vec_memset)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- objs/hikey/xf-core.o (__divdf3)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o) (__propagateFloat64NaN)
-/scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
- /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o) (__estimateDiv64To32)
-
-Memory Configuration
-
-Name Origin Length Attributes
-sram0_seg 0xc0000000 0x00408000
-old_vlpd_seg 0xc0408000 0x00010000
-efr_fr_hr_vlpd_seg 0xc0418000 0x00010000
-amr_vlpd_seg 0xc0428000 0x00010000
-amrwb_vlpd_seg 0xc0438000 0x00010000
-evrc_evrcb_vlpt_seg 0xc0448000 0x00048000
-efr_fr_hr_vlpt_seg 0xc0490000 0x00030000
-amr_vlpt_seg 0xc04c0000 0x00020000
-amrwb_vlpt_seg 0xc04e0000 0x00030000
-vlpt_seg 0xc0510000 0x00048000
-vlpd_seg 0xc0558000 0x00020000
-ulpp_seg 0xc0578000 0x00040000
-dtsv3_seg 0xc05b8000 0x00020000
-dtsv4_seg 0xc05d8000 0x00028000
-dram0_0_seg 0xe8058000 0x00028000
-iram0_0_seg 0xe8080000 0x00000300
-iram0_1_seg 0xe8080300 0x00000100
-iram0_2_seg 0xe8080400 0x00000178
-iram0_3_seg 0xe8080578 0x00000008
-iram0_4_seg 0xe8080580 0x00000038
-iram0_5_seg 0xe80805b8 0x00000008
-iram0_6_seg 0xe80805c0 0x00000038
-iram0_7_seg 0xe80805f8 0x00000008
-iram0_8_seg 0xe8080600 0x00000038
-iram0_9_seg 0xe8080638 0x00000008
-iram0_10_seg 0xe8080640 0x00000038
-iram0_11_seg 0xe8080678 0x00000048
-iram0_12_seg 0xe80806c0 0x00000038
-iram0_13_seg 0xe80806f8 0x00000008
-iram0_14_seg 0xe8080700 0x00000038
-iram0_15_seg 0xe8080738 0x00000008
-iram0_16_seg 0xe8080740 0x00000038
-iram0_17_seg 0xe8080778 0x00000048
-iram0_18_seg 0xe80807c0 0x00000040
-iram0_19_seg 0xe8080800 0x0000b800
-*default* 0x00000000 0xffffffff
-
-Linker script and memory map
-
-LOAD objs/hikey/cpu_c.o
-LOAD objs/hikey/dsp_debug.o
-LOAD objs/hikey/dsp_comm.o
-LOAD objs/hikey/mutex.o
-LOAD objs/hikey/rbtree.o
-LOAD objs/hikey/xf-core.o
-LOAD objs/hikey/xf-io.o
-LOAD objs/hikey/xf-mem.o
-LOAD objs/hikey/xf-msg.o
-LOAD objs/hikey/xf-sched.o
-LOAD objs/hikey/xa-factory.o
-LOAD objs/hikey/xf-shmem.o
-LOAD objs/hikey/tinyvprintf.o
-LOAD objs/hikey/xf-isr.o
-LOAD objs/hikey/gdbstub.o
-LOAD objs/hikey/xa-class-base.o
-LOAD objs/hikey/xa-class-audio-codec.o
-LOAD objs/hikey/xa-class-mixer.o
-LOAD objs/hikey/xf-main.o
-LOAD objs/hikey/xa-pcm.o
-LOAD objs/hikey/xa-vorbis-decoder.o
-LOAD objs/hikey/xa-mixer.o
-LOAD objs/hikey/reset.o
-LOAD objs/hikey/int_vector.o
-LOAD objs/hikey/arch_hifi330.o
-LOAD objs/hikey/gdbstub-entry.o
-LOAD ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a
-LOAD /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a
-LOAD /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a
-LOAD /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a
-LOAD /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a
- 0xe8080000 _memmap_mem_iram0_start = 0xe8080000
- 0xe808c000 _memmap_mem_iram0_end = 0xe808c000
- 0xe8058000 _memmap_mem_dram0_start = 0xe8058000
- 0xe8080000 _memmap_mem_dram0_end = 0xe8080000
- 0xc0000000 _memmap_mem_sram_start = 0xc0000000
- 0xc0600000 _memmap_mem_sram_end = 0xc0600000
- 0xc0000000 _memmap_seg_sram0_start = 0xc0000000
- 0xc0408000 _memmap_seg_sram0_max = 0xc0408000
- 0xc0408000 _memmap_seg_old_vlpd_start = 0xc0408000
- 0xc0418000 _memmap_seg_old_vlpd_max = 0xc0418000
- 0xc0418000 _memmap_seg_efr_fr_hr_vlpd_start = 0xc0418000
- 0xc0428000 _memmap_seg_efr_fr_hr_vlpd_max = 0xc0428000
- 0xc0428000 _memmap_seg_amr_vlpd_start = 0xc0428000
- 0xc0438000 _memmap_seg_amr_vlpd_max = 0xc0438000
- 0xc0438000 _memmap_seg_amrwb_vlpd_start = 0xc0438000
- 0xc0448000 _memmap_seg_amrwb_vlpd_max = 0xc0448000
- 0xc0448000 _memmap_seg_evrc_evrcb_vlpt_start = 0xc0448000
- 0xc0490000 _memmap_seg_evrc_evrcb_vlpt_max = 0xc0490000
- 0xc0490000 _memmap_seg_efr_fr_hr_vlpt_start = 0xc0490000
- 0xc04c0000 _memmap_seg_efr_fr_hr_vlpt_max = 0xc04c0000
- 0xc04c0000 _memmap_seg_amr_vlpt_start = 0xc04c0000
- 0xc04e0000 _memmap_seg_amr_vlpt_max = 0xc04e0000
- 0xc04e0000 _memmap_seg_amrwb_vlpt_start = 0xc04e0000
- 0xc0510000 _memmap_seg_amrwb_vlpt_max = 0xc0510000
- 0xc0510000 _memmap_seg_vlpt_start = 0xc0510000
- 0xc0558000 _memmap_seg_vlpt_max = 0xc0558000
- 0xc0558000 _memmap_seg_vlpd_start = 0xc0558000
- 0xc0578000 _memmap_seg_vlpd_max = 0xc0578000
- 0xc0578000 _memmap_seg_ulpp_start = 0xc0578000
- 0xc05b8000 _memmap_seg_ulpp_max = 0xc05b8000
- 0xc05b8000 _memmap_seg_dtsv3_start = 0xc05b8000
- 0xc05d8000 _memmap_seg_dtsv3_max = 0xc05d8000
- 0xc05d8000 _memmap_seg_dtsv4_start = 0xc05d8000
- 0xc0600000 _memmap_seg_dtsv4_max = 0xc0600000
- 0xe8058000 _memmap_seg_dram0_0_start = 0xe8058000
- 0xe8080000 _memmap_seg_dram0_0_max = 0xe8080000
- 0xe8080000 _memmap_seg_iram0_0_start = 0xe8080000
- 0xe8080300 _memmap_seg_iram0_0_max = 0xe8080300
- 0xe8080300 _memmap_seg_iram0_1_start = 0xe8080300
- 0xe8080400 _memmap_seg_iram0_1_max = 0xe8080400
- 0xe8080400 _memmap_seg_iram0_2_start = 0xe8080400
- 0xe8080578 _memmap_seg_iram0_2_max = 0xe8080578
- 0xe8080578 _memmap_seg_iram0_3_start = 0xe8080578
- 0xe8080580 _memmap_seg_iram0_3_max = 0xe8080580
- 0xe8080580 _memmap_seg_iram0_4_start = 0xe8080580
- 0xe80805b8 _memmap_seg_iram0_4_max = 0xe80805b8
- 0xe80805b8 _memmap_seg_iram0_5_start = 0xe80805b8
- 0xe80805c0 _memmap_seg_iram0_5_max = 0xe80805c0
- 0xe80805c0 _memmap_seg_iram0_6_start = 0xe80805c0
- 0xe80805f8 _memmap_seg_iram0_6_max = 0xe80805f8
- 0xe80805f8 _memmap_seg_iram0_7_start = 0xe80805f8
- 0xe8080600 _memmap_seg_iram0_7_max = 0xe8080600
- 0xe8080600 _memmap_seg_iram0_8_start = 0xe8080600
- 0xe8080638 _memmap_seg_iram0_8_max = 0xe8080638
- 0xe8080638 _memmap_seg_iram0_9_start = 0xe8080638
- 0xe8080640 _memmap_seg_iram0_9_max = 0xe8080640
- 0xe8080640 _memmap_seg_iram0_10_start = 0xe8080640
- 0xe8080678 _memmap_seg_iram0_10_max = 0xe8080678
- 0xe8080678 _memmap_seg_iram0_11_start = 0xe8080678
- 0xe80806c0 _memmap_seg_iram0_11_max = 0xe80806c0
- 0xe80806c0 _memmap_seg_iram0_12_start = 0xe80806c0
- 0xe80806f8 _memmap_seg_iram0_12_max = 0xe80806f8
- 0xe80806f8 _memmap_seg_iram0_13_start = 0xe80806f8
- 0xe8080700 _memmap_seg_iram0_13_max = 0xe8080700
- 0xe8080700 _memmap_seg_iram0_14_start = 0xe8080700
- 0xe8080738 _memmap_seg_iram0_14_max = 0xe8080738
- 0xe8080738 _memmap_seg_iram0_15_start = 0xe8080738
- 0xe8080740 _memmap_seg_iram0_15_max = 0xe8080740
- 0xe8080740 _memmap_seg_iram0_16_start = 0xe8080740
- 0xe8080778 _memmap_seg_iram0_16_max = 0xe8080778
- 0xe8080778 _memmap_seg_iram0_17_start = 0xe8080778
- 0xe80807c0 _memmap_seg_iram0_17_max = 0xe80807c0
- 0xe80807c0 _memmap_seg_iram0_18_start = 0xe80807c0
- 0xe8080800 _memmap_seg_iram0_18_max = 0xe8080800
- 0xe8080800 _memmap_seg_iram0_19_start = 0xe8080800
- 0xe808c000 _memmap_seg_iram0_19_max = 0xe808c000
- 0x00000000 _rom_store_table = 0x0
- 0xe8080400 PROVIDE (_memmap_vecbase_reset, 0xe8080400)
- 0xe8080000 PROVIDE (_memmap_reset_vector, 0xe8080000)
- 0x44000000 _memmap_cacheattr_wb_base = 0x44000000
- 0x11000000 _memmap_cacheattr_wt_base = 0x11000000
- 0x22000000 _memmap_cacheattr_bp_base = 0x22000000
- 0x00ffffff _memmap_cacheattr_unused_mask = 0xffffff
- 0x4422222f _memmap_cacheattr_wb_trapnull = 0x4422222f
- 0x4422222f _memmap_cacheattr_wba_trapnull = 0x4422222f
- 0x5522222f _memmap_cacheattr_wbna_trapnull = 0x5522222f
- 0x1122222f _memmap_cacheattr_wt_trapnull = 0x1122222f
- 0x2222222f _memmap_cacheattr_bp_trapnull = 0x2222222f
- 0x44ffffff _memmap_cacheattr_wb_strict = 0x44ffffff
- 0x11ffffff _memmap_cacheattr_wt_strict = 0x11ffffff
- 0x22ffffff _memmap_cacheattr_bp_strict = 0x22ffffff
- 0x44222222 _memmap_cacheattr_wb_allvalid = 0x44222222
- 0x11222222 _memmap_cacheattr_wt_allvalid = 0x11222222
- 0x22222222 _memmap_cacheattr_bp_allvalid = 0x22222222
- 0x4422222f PROVIDE (_memmap_cacheattr_reset, _memmap_cacheattr_wb_trapnull)
-
-.vlpd.rodata 0xc0408000 0x0
- 0xc0408000 _vlpd_rodata_start = ABSOLUTE (.)
- *(.vlpd.rodata)
- 0xc0408000 _vlpd_rodata_end = ABSOLUTE (.)
-
-.vlpd.data 0xc0408000 0x0
- 0xc0408000 _vlpd_data_start = ABSOLUTE (.)
- *(.vlpd.data)
- 0xc0408000 _vlpd_data_end = ABSOLUTE (.)
-
-.vlpd.bss 0xc0408000 0x0
- 0xc0408000 . = ALIGN (0x8)
- 0xc0408000 _vlpd_bss_start = ABSOLUTE (.)
- *(.vlpd.bss)
- 0xc0408000 . = ALIGN (0x8)
- 0xc0408000 _vlpd_bss_end = ABSOLUTE (.)
- 0xc0408000 _memmap_seg_old_vlpd_end = ALIGN (0x8)
-
-.efr_fr_hr_vlpd.rodata
- 0xc0418000 0x0
- 0xc0418000 _efr_fr_hr_vlpd_rodata_start = ABSOLUTE (.)
- *(.efr_fr_hr_vlpd.rodata)
- 0xc0418000 _efr_fr_hr_vlpd_rodata_end = ABSOLUTE (.)
-
-.efr_fr_hr_vlpd.data
- 0xc0418000 0x0
- 0xc0418000 _efr_fr_hr_vlpd_data_start = ABSOLUTE (.)
- *(.efr_fr_hr_vlpd.data)
- 0xc0418000 _efr_fr_hr_vlpd_data_end = ABSOLUTE (.)
-
-.efr_fr_hr_vlpd.bss
- 0xc0418000 0x0
- 0xc0418000 . = ALIGN (0x8)
- 0xc0418000 _efr_fr_hr_vlpd_bss_start = ABSOLUTE (.)
- *(.efr_fr_hr_vlpd.bss)
- 0xc0418000 . = ALIGN (0x8)
- 0xc0418000 _efr_fr_hr_vlpd_bss_end = ABSOLUTE (.)
- 0xc0418000 _memmap_seg_efr_fr_hr_vlpd_end = ALIGN (0x8)
-
-.amr_vlpd.rodata
- 0xc0428000 0x0
- 0xc0428000 _amr_vlpd_rodata_start = ABSOLUTE (.)
- *(.amr_vlpd.rodata)
- 0xc0428000 _amr_vlpd_rodata_end = ABSOLUTE (.)
-
-.amr_vlpd.data 0xc0428000 0x0
- 0xc0428000 _amr_vlpd_data_start = ABSOLUTE (.)
- *(.amr_vlpd.data)
- 0xc0428000 _amr_vlpd_data_end = ABSOLUTE (.)
-
-.amr_vlpd.bss 0xc0428000 0x0
- 0xc0428000 . = ALIGN (0x8)
- 0xc0428000 _amr_vlpd_bss_start = ABSOLUTE (.)
- *(.amr_vlpd.bss)
- 0xc0428000 . = ALIGN (0x8)
- 0xc0428000 _amr_vlpd_bss_end = ABSOLUTE (.)
- 0xc0428000 _memmap_seg_amr_vlpd_end = ALIGN (0x8)
-
-.amrwb_vlpd.rodata
- 0xc0438000 0x0
- 0xc0438000 _amrwb_vlpd_rodata_start = ABSOLUTE (.)
- *(.amrwb_vlpd.rodata)
- 0xc0438000 _amrwb_vlpd_rodata_end = ABSOLUTE (.)
-
-.amrwb_vlpd.data
- 0xc0438000 0x0
- 0xc0438000 _amrwb_vlpd_data_start = ABSOLUTE (.)
- *(.amrwb_vlpd.data)
- 0xc0438000 _amrwb_vlpd_data_end = ABSOLUTE (.)
-
-.amrwb_vlpd.bss
- 0xc0438000 0x0
- 0xc0438000 . = ALIGN (0x8)
- 0xc0438000 _amrwb_vlpd_bss_start = ABSOLUTE (.)
- *(.amrwb_vlpd.bss)
- 0xc0438000 . = ALIGN (0x8)
- 0xc0438000 _amrwb_vlpd_bss_end = ABSOLUTE (.)
- 0xc0438000 _memmap_seg_amrwb_vlpd_end = ALIGN (0x8)
-
-.evrc_evrcb_vlpt.text
- 0xc0448000 0x0
- 0xc0448000 _evrc_evrcb_vlpt_text_start = ABSOLUTE (.)
- *(.evrc_evrcb_vlpt.literal .evrc_evrcb_vlpt.text)
- 0xc0448000 _evrc_evrcb_vlpt_text_end = ABSOLUTE (.)
- 0xc0448000 _memmap_seg_evrc_evrcb_vlpt_end = ALIGN (0x8)
-
-.efr_fr_hr_vlpt.text
- 0xc0490000 0x0
- 0xc0490000 _efr_fr_hr_vlpt_text_start = ABSOLUTE (.)
- *(.efr_fr_hr_vlpt.literal .efr_fr_hr_vlpt.text)
- 0xc0490000 _efr_fr_hr_vlpt_text_end = ABSOLUTE (.)
- 0xc0490000 _memmap_seg_efr_fr_hr_vlpt_end = ALIGN (0x8)
-
-.amr_vlpt.text 0xc04c0000 0x0
- 0xc04c0000 _amr_vlpt_text_start = ABSOLUTE (.)
- *(.amr_vlpt.literal .amr_vlpt.text)
- 0xc04c0000 _amr_vlpt_text_end = ABSOLUTE (.)
- 0xc04c0000 _memmap_seg_amr_vlpt_end = ALIGN (0x8)
-
-.amrwb_vlpt.text
- 0xc04e0000 0x0
- 0xc04e0000 _amrwb_vlpt_text_start = ABSOLUTE (.)
- *(.amrwb_vlpt.literal .amrwb_vlpt.text)
- 0xc04e0000 _amrwb_vlpt_text_end = ABSOLUTE (.)
- 0xc04e0000 _memmap_seg_amrwb_vlpt_end = ALIGN (0x8)
-
-.vlpt.text 0xc0510000 0x0
- 0xc0510000 _vlpt_text_start = ABSOLUTE (.)
- *(.vlpt.literal .vlpt.text)
- 0xc0510000 _vlpt_text_end = ABSOLUTE (.)
- 0xc0510000 _memmap_seg_vlpt_end = ALIGN (0x8)
-
-.low_power_dyn_alloc
- 0xc0558000 0x0
- 0xc0558000 _low_power_dyn_alloc_start = ABSOLUTE (.)
- *(.low_power_dyn_alloc)
- 0xc0558000 _low_power_dyn_alloc_end = ABSOLUTE (.)
- 0xc0558000 _memmap_seg_vlpd_end = ALIGN (0x8)
-
-.ulpp.rodata 0xc0578000 0x0
- 0xc0578000 _ulpp_rodata_start = ABSOLUTE (.)
- *(.ulpp.rodata)
- 0xc0578000 _ulpp_rodata_end = ABSOLUTE (.)
-
-.ulpp.data 0xc0578000 0x0
- 0xc0578000 _ulpp_data_start = ABSOLUTE (.)
- *(.ulpp.data)
- 0xc0578000 _ulpp_data_end = ABSOLUTE (.)
-
-.ulpp.text 0xc0578000 0x0
- 0xc0578000 _ulpp_text_start = ABSOLUTE (.)
- *(.ulpp.literal .ulpp.text)
- 0xc0578000 _ulpp_text_end = ABSOLUTE (.)
-
-.ulpp.bss 0xc0578000 0x0
- 0xc0578000 . = ALIGN (0x8)
- 0xc0578000 _ulpp_bss_start = ABSOLUTE (.)
- *(.ulpp.bss)
- 0xc0578000 . = ALIGN (0x8)
- 0xc0578000 _ulpp_bss_end = ABSOLUTE (.)
- 0xc0578000 _memmap_seg_ulpp_end = ALIGN (0x8)
-
-.dtsv3.rodata 0xc05b8000 0x0
- 0xc05b8000 _dtsv3_rodata_start = ABSOLUTE (.)
- *(.dtsv3.rodata)
- 0xc05b8000 _dtsv3_rodata_end = ABSOLUTE (.)
-
-.dtsv3.data 0xc05b8000 0x0
- 0xc05b8000 _dtsv3_data_start = ABSOLUTE (.)
- *(.dtsv3.data)
- 0xc05b8000 _dtsv3_data_end = ABSOLUTE (.)
-
-.dtsv3.text 0xc05b8000 0x0
- 0xc05b8000 _dtsv3_text_start = ABSOLUTE (.)
- *(.dtsv3.literal .dtsv3.text)
- 0xc05b8000 _dtsv3_text_end = ABSOLUTE (.)
-
-.dtsv3.bss 0xc05b8000 0x0
- 0xc05b8000 . = ALIGN (0x8)
- 0xc05b8000 _dtsv3_bss_start = ABSOLUTE (.)
- *(.dtsv3.bss)
- 0xc05b8000 . = ALIGN (0x8)
- 0xc05b8000 _dtsv3_bss_end = ABSOLUTE (.)
- 0xc05b8000 _memmap_seg_dtsv3_end = ALIGN (0x8)
-
-.dtsv4.rodata 0xc05d8000 0x0
- 0xc05d8000 _dtsv4_rodata_start = ABSOLUTE (.)
- *(.dtsv4.rodata)
- 0xc05d8000 _dtsv4_rodata_end = ABSOLUTE (.)
-
-.dtsv4.data 0xc05d8000 0x0
- 0xc05d8000 _dtsv4_data_start = ABSOLUTE (.)
- *(.dtsv4.data)
- 0xc05d8000 _dtsv4_data_end = ABSOLUTE (.)
-
-.dtsv4.text 0xc05d8000 0x0
- 0xc05d8000 _dtsv4_text_start = ABSOLUTE (.)
- *(.dtsv4.literal .dtsv4.text)
- 0xc05d8000 _dtsv4_text_end = ABSOLUTE (.)
-
-.dtsv4.bss 0xc05d8000 0x0
- 0xc05d8000 . = ALIGN (0x8)
- 0xc05d8000 _dtsv4_bss_start = ABSOLUTE (.)
- *(.dtsv4.bss)
- 0xc05d8000 . = ALIGN (0x8)
- 0xc05d8000 _dtsv4_bss_end = ABSOLUTE (.)
- 0xc05d8000 _memmap_seg_dtsv4_end = ALIGN (0x8)
-
-.dram0.rodata 0xe8058000 0x0
- 0xe8058000 _dram0_rodata_start = ABSOLUTE (.)
- *(.dram0.rodata)
- *(.dram.rodata)
- 0xe8058000 _dram0_rodata_end = ABSOLUTE (.)
-
-.dram0.literal 0xe8058000 0x0
- 0xe8058000 _dram0_literal_start = ABSOLUTE (.)
- *(.dram0.literal)
- *(.dram.literal)
- 0xe8058000 _dram0_literal_end = ABSOLUTE (.)
-
-.dram0.data 0xe8058000 0x51
- 0xe8058000 _dram0_data_start = ABSOLUTE (.)
- *(.dram0.data)
- .dram0.data 0xe8058000 0x50 objs/hikey/int_vector.o
- 0xe8058030 g_awVosCoprocOwnerSa
- 0xe8058038 g_strVosPanicMessage
- .dram0.data 0xe8058050 0x1 objs/hikey/arch_hifi330.o
- *(.dram.data)
- 0xe8058051 _dram0_data_end = ABSOLUTE (.)
-
-.dram0.bss 0xe8058058 0x0
- 0xe8058058 . = ALIGN (0x8)
- 0xe8058058 _dram0_bss_start = ABSOLUTE (.)
- *(.dram0.bss)
- *(.om.debug.bss)
- *(.os.stack.bss)
- 0xe8058058 . = ALIGN (0x8)
- 0xe8058058 _dram0_bss_end = ABSOLUTE (.)
- 0xe8058058 _end = ALIGN (0x8)
- 0xe8058058 PROVIDE (end, ALIGN (0x8))
- 0xe8058058 _stack_sentry = ALIGN (0x8)
- 0xe8058058 _memmap_seg_dram0_0_end = ALIGN (0x8)
- 0xe8080000 __stack = 0xe8080000
- 0xe8080000 _heap_sentry = 0xe8080000
-
-.ResetVector.text
- 0xe8080000 0x3
- 0xe8080000 _ResetVector_text_start = ABSOLUTE (.)
- *(.ResetVector.text)
- .ResetVector.text
- 0xe8080000 0x3 objs/hikey/reset.o
- 0xe8080000 _ResetVector
- 0xe8080003 _ResetVector_text_end = ABSOLUTE (.)
- 0xe8080008 _memmap_seg_iram0_0_end = ALIGN (0x8)
-
-.Reset.literal 0xe8080300 0x40
- 0xe8080300 _Reset_literal_start = ABSOLUTE (.)
- *(.Reset.literal)
- .Reset.literal
- 0xe8080300 0x40 objs/hikey/reset.o
- 0xe8080340 _Reset_literal_end = ABSOLUTE (.)
- 0xe8080340 _memmap_seg_iram0_1_end = ALIGN (0x8)
-
-.WindowVectors.text
- 0xe8080400 0x16a
- 0xe8080400 _WindowVectors_text_start = ABSOLUTE (.)
- *(.WindowVectors.text)
- .WindowVectors.text
- 0xe8080400 0x16a objs/hikey/int_vector.o
- 0xe8080400 _WindowOverflow4
- 0xe8080440 _WindowUnderflow4
- 0xe8080450 OS_AllocaException
- 0xe8080480 _WindowOverflow8
- 0xe80804c0 _WindowUnderflow8
- 0xe8080500 _WindowOverflow12
- 0xe8080540 _WindowUnderflow12
- 0xe808056a _WindowVectors_text_end = ABSOLUTE (.)
- 0xe8080570 _memmap_seg_iram0_2_end = ALIGN (0x8)
-
-.Level2InterruptVector.literal
- 0xe8080578 0x0
- 0xe8080578 _Level2InterruptVector_literal_start = ABSOLUTE (.)
- *(.Level2InterruptVector.literal)
- .Level2InterruptVector.literal
- 0xe8080578 0x0 objs/hikey/int_vector.o
- 0x4 (size before relaxing)
- 0xe8080578 _Level2InterruptVector_literal_end = ABSOLUTE (.)
- 0xe8080578 _memmap_seg_iram0_3_end = ALIGN (0x8)
-
-.Level2InterruptVector.text
- 0xe8080580 0x6
- 0xe8080580 _Level2InterruptVector_text_start = ABSOLUTE (.)
- *(.Level2InterruptVector.text)
- .Level2InterruptVector.text
- 0xe8080580 0x6 objs/hikey/int_vector.o
- 0x9 (size before relaxing)
- 0xe8080580 OS_Level2Vector
- 0xe8080586 _Level2InterruptVector_text_end = ABSOLUTE (.)
- 0xe8080588 _memmap_seg_iram0_4_end = ALIGN (0x8)
-
-.Level3InterruptVector.literal
- 0xe80805b8 0x0
- 0xe80805b8 _Level3InterruptVector_literal_start = ABSOLUTE (.)
- *(.Level3InterruptVector.literal)
- .Level3InterruptVector.literal
- 0xe80805b8 0x0 objs/hikey/int_vector.o
- 0x4 (size before relaxing)
- 0xe80805b8 _Level3InterruptVector_literal_end = ABSOLUTE (.)
- 0xe80805b8 _memmap_seg_iram0_5_end = ALIGN (0x8)
-
-.Level3InterruptVector.text
- 0xe80805c0 0x6
- 0xe80805c0 _Level3InterruptVector_text_start = ABSOLUTE (.)
- *(.Level3InterruptVector.text)
- .Level3InterruptVector.text
- 0xe80805c0 0x6 objs/hikey/int_vector.o
- 0x9 (size before relaxing)
- 0xe80805c0 OS_Level3Vector
- 0xe80805c6 _Level3InterruptVector_text_end = ABSOLUTE (.)
- 0xe80805c8 _memmap_seg_iram0_6_end = ALIGN (0x8)
-
-.Level4InterruptVector.literal
- 0xe80805f8 0x0
- 0xe80805f8 _Level4InterruptVector_literal_start = ABSOLUTE (.)
- *(.Level4InterruptVector.literal)
- 0xe80805f8 _Level4InterruptVector_literal_end = ABSOLUTE (.)
- 0xe80805f8 _memmap_seg_iram0_7_end = ALIGN (0x8)
-
-.Level4InterruptVector.text
- 0xe8080600 0x0
- 0xe8080600 _Level4InterruptVector_text_start = ABSOLUTE (.)
- *(.Level4InterruptVector.text)
- 0xe8080600 _Level4InterruptVector_text_end = ABSOLUTE (.)
- 0xe8080600 _memmap_seg_iram0_8_end = ALIGN (0x8)
-
-.DebugExceptionVector.literal
- 0xe8080638 0x0
- 0xe8080638 _DebugExceptionVector_literal_start = ABSOLUTE (.)
- *(.DebugExceptionVector.literal)
- .DebugExceptionVector.literal
- 0xe8080638 0x0 objs/hikey/int_vector.o
- 0x4 (size before relaxing)
- 0xe8080638 _DebugExceptionVector_literal_end = ABSOLUTE (.)
- 0xe8080638 _memmap_seg_iram0_9_end = ALIGN (0x8)
-
-.DebugExceptionVector.text
- 0xe8080640 0x16
- 0xe8080640 _DebugExceptionVector_text_start = ABSOLUTE (.)
- *(.DebugExceptionVector.text)
- .DebugExceptionVector.text
- 0xe8080640 0x9 objs/hikey/int_vector.o
- 0xc (size before relaxing)
- 0xe8080640 OS_DebugExceptionVector
- *fill* 0xe8080649 0x3
- .DebugExceptionVector.text
- 0xe808064c 0xa objs/hikey/gdbstub-entry.o
- 0xe808064c DebugExceptionVector
- 0xe8080656 _DebugExceptionVector_text_end = ABSOLUTE (.)
- 0xe8080658 _memmap_seg_iram0_10_end = ALIGN (0x8)
-
-.NMIExceptionVector.literal
- 0xe8080678 0x8
- 0xe8080678 _NMIExceptionVector_literal_start = ABSOLUTE (.)
- *(.NMIExceptionVector.literal)
- .NMIExceptionVector.literal
- 0xe8080678 0x8 objs/hikey/int_vector.o
- 0xe8080680 _NMIExceptionVector_literal_end = ABSOLUTE (.)
- 0xe8080680 _memmap_seg_iram0_11_end = ALIGN (0x8)
-
-.NMIExceptionVector.text
- 0xe80806c0 0x1b
- 0xe80806c0 _NMIExceptionVector_text_start = ABSOLUTE (.)
- *(.NMIExceptionVector.text)
- .NMIExceptionVector.text
- 0xe80806c0 0x1b objs/hikey/int_vector.o
- 0xe80806c0 OS_NMIExceptionVector
- 0xe80806db _NMIExceptionVector_text_end = ABSOLUTE (.)
- 0xe80806e0 _memmap_seg_iram0_12_end = ALIGN (0x8)
-
-.KernelExceptionVector.literal
- 0xe80806f8 0x0
- 0xe80806f8 _KernelExceptionVector_literal_start = ABSOLUTE (.)
- *(.KernelExceptionVector.literal)
- .KernelExceptionVector.literal
- 0xe80806f8 0x0 objs/hikey/int_vector.o
- 0x4 (size before relaxing)
- 0xe80806f8 _KernelExceptionVector_literal_end = ABSOLUTE (.)
- 0xe80806f8 _memmap_seg_iram0_13_end = ALIGN (0x8)
-
-.KernelExceptionVector.text
- 0xe8080700 0x6
- 0xe8080700 _KernelExceptionVector_text_start = ABSOLUTE (.)
- *(.KernelExceptionVector.text)
- .KernelExceptionVector.text
- 0xe8080700 0x6 objs/hikey/int_vector.o
- 0x9 (size before relaxing)
- 0xe8080700 OS_KernelExceptionVector
- 0xe8080706 _KernelExceptionVector_text_end = ABSOLUTE (.)
- 0xe8080708 _memmap_seg_iram0_14_end = ALIGN (0x8)
-
-.UserExceptionVector.literal
- 0xe8080738 0x0
- 0xe8080738 _UserExceptionVector_literal_start = ABSOLUTE (.)
- *(.UserExceptionVector.literal)
- .UserExceptionVector.literal
- 0xe8080738 0x0 objs/hikey/int_vector.o
- 0x4 (size before relaxing)
- 0xe8080738 _UserExceptionVector_literal_end = ABSOLUTE (.)
- 0xe8080738 _memmap_seg_iram0_15_end = ALIGN (0x8)
-
-.UserExceptionVector.text
- 0xe8080740 0x6
- 0xe8080740 _UserExceptionVector_text_start = ABSOLUTE (.)
- *(.UserExceptionVector.text)
- .UserExceptionVector.text
- 0xe8080740 0x6 objs/hikey/int_vector.o
- 0x9 (size before relaxing)
- 0xe8080740 OS_UserExceptionVector
- 0xe8080746 _UserExceptionVector_text_end = ABSOLUTE (.)
- 0xe8080748 _memmap_seg_iram0_16_end = ALIGN (0x8)
-
-.DoubleExceptionVector.literal
- 0xe8080778 0x0
- 0xe8080778 _DoubleExceptionVector_literal_start = ABSOLUTE (.)
- *(.DoubleExceptionVector.literal)
- .DoubleExceptionVector.literal
- 0xe8080778 0x0 objs/hikey/int_vector.o
- 0x4 (size before relaxing)
- 0xe8080778 _DoubleExceptionVector_literal_end = ABSOLUTE (.)
- 0xe8080778 _memmap_seg_iram0_17_end = ALIGN (0x8)
-
-.DoubleExceptionVector.text
- 0xe80807c0 0x6
- 0xe80807c0 _DoubleExceptionVector_text_start = ABSOLUTE (.)
- *(.DoubleExceptionVector.text)
- .DoubleExceptionVector.text
- 0xe80807c0 0x6 objs/hikey/int_vector.o
- 0x9 (size before relaxing)
- 0xe80807c0 OS_DoubleExceptionVector
- 0xe80807c6 _DoubleExceptionVector_text_end = ABSOLUTE (.)
- 0xe80807c8 _memmap_seg_iram0_18_end = ALIGN (0x8)
-
-.Reset.text 0xe8080800 0x23d
- 0xe8080800 _Reset_text_start = ABSOLUTE (.)
- *(.Reset.text)
- .Reset.text 0xe8080800 0x23d objs/hikey/reset.o
- 0xe8080800 _Reset
- 0xe8080a3d _Reset_text_end = ABSOLUTE (.)
-
-.iram0.text 0xe8080a40 0x600
- 0xe8080a40 _iram0_text_start = ABSOLUTE (.)
- *(.iram0.literal .iram.literal .iram.text.literal .iram0.text .iram.text)
- .iram0.literal
- 0xe8080a40 0x44 objs/hikey/int_vector.o
- 0x88 (size before relaxing)
- .iram0.literal
- 0xe8080a84 0x2c objs/hikey/arch_hifi330.o
- 0x58 (size before relaxing)
- .iram0.text 0xe8080ab0 0x3b4 objs/hikey/int_vector.o
- 0x3c0 (size before relaxing)
- 0xe8080ab0 OS_Panic
- 0xe8080ad0 OS_UserExc
- 0xe8080b68 OS_UserExit
- 0xe8080dc4 OS_Medint2Exit
- 0xe8080e50 OS_Medint3Exit
- .iram0.text 0xe8080e64 0x1dc objs/hikey/arch_hifi330.o
- 0xe8080e64 VOSStartHighRdy
- 0xe8080e7c VOSCtxSw
- 0xe8080eac VOSIntCtxSw
- 0xe8080ecc OSCPUSaveSR
- 0xe8080ed8 OSCPURestoreSR
- 0xe8080ee4 OS_TaskSwitch
- 0xe8080f24 OS_ContextSave
- 0xe8080f90 OS_ContextRestore
- 0xe8080fd8 OS_IntEnter
- 0xe8081008 OS_IntExit
- 0xe8081020 OS_GetTaskCoprocState
- 0xe8081040 _iram0_text_end = ABSOLUTE (.)
- 0xe8081040 _memmap_seg_iram0_19_end = ALIGN (0x8)
-
-.sram.shareaddr
- 0xc0000000 0x0
- 0xc0000000 _sram_shareaddr_start = ABSOLUTE (.)
- *(.sram.shareaddr)
- 0xc0000000 _sram_shareaddr_end = ABSOLUTE (.)
-
-.sram.rodata 0xc0000000 0x0
- 0xc0000000 _sram_rodata_start = ABSOLUTE (.)
- *(.sram.rodata)
- 0xc0000000 _sram_rodata_end = ABSOLUTE (.)
-
-.rodata 0xc0000000 0x75a0
- 0xc0000000 _rodata_start = ABSOLUTE (.)
- *(.rodata)
- .rodata 0xc0000000 0x84 objs/hikey/dsp_debug.o
- *fill* 0xc0000084 0xc
- .rodata 0xc0000090 0x10f objs/hikey/xf-core.o
- *fill* 0xc000019f 0x1
- .rodata 0xc00001a0 0x197 objs/hikey/xf-io.o
- *fill* 0xc0000337 0x9
- .rodata 0xc0000340 0x1b objs/hikey/xf-mem.o
- *fill* 0xc000035b 0x5
- .rodata 0xc0000360 0x30 objs/hikey/xf-msg.o
- .rodata 0xc0000390 0x1d objs/hikey/xf-sched.o
- *fill* 0xc00003ad 0x3
- .rodata 0xc00003b0 0x45 objs/hikey/xa-factory.o
- *fill* 0xc00003f5 0xb
- .rodata 0xc0000400 0x4e objs/hikey/xf-shmem.o
- *fill* 0xc000044e 0x2
- .rodata 0xc0000450 0x1ec objs/hikey/tinyvprintf.o
- *fill* 0xc000063c 0x4
- .rodata 0xc0000640 0x120 objs/hikey/gdbstub.o
- 0xc0000640 rx
- 0xc0000644 tx
- .rodata 0xc0000760 0x140 objs/hikey/xa-class-base.o
- .rodata 0xc00008a0 0x1e7 objs/hikey/xa-class-audio-codec.o
- *fill* 0xc0000a87 0x9
- .rodata 0xc0000a90 0x1d1 objs/hikey/xa-class-mixer.o
- *fill* 0xc0000c61 0xf
- .rodata 0xc0000c70 0x15 objs/hikey/xf-main.o
- *fill* 0xc0000c85 0xb
- .rodata 0xc0000c90 0x2ed objs/hikey/xa-pcm.o
- *fill* 0xc0000f7d 0x3
- .rodata 0xc0000f80 0xc objs/hikey/xa-vorbis-decoder.o
- *fill* 0xc0000f8c 0x4
- .rodata 0xc0000f90 0x269 objs/hikey/xa-mixer.o
- *fill* 0xc00011f9 0x7
- .rodata 0xc0001200 0x4a54 ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o)
- *(.rodata.*)
- .rodata.str1.4
- 0xc0005c54 0x7 objs/hikey/dsp_debug.o
- *fill* 0xc0005c5b 0x1
- .rodata.str1.4
- 0xc0005c5c 0x2e1 objs/hikey/xf-core.o
- *fill* 0xc0005f3d 0x3
- .rodata.str1.4
- 0xc0005f40 0x2fb objs/hikey/xf-io.o
- 0x363 (size before relaxing)
- *fill* 0xc000623b 0x1
- .rodata.str1.4
- 0xc000623c 0x50 objs/hikey/xf-mem.o
- 0x8c (size before relaxing)
- .rodata.str1.4
- 0xc000628c 0x15 objs/hikey/xf-msg.o
- 0x49 (size before relaxing)
- *fill* 0xc00062a1 0x3
- .rodata.str1.4
- 0xc00062a4 0x56 objs/hikey/xf-sched.o
- *fill* 0xc00062fa 0x2
- .rodata.str1.4
- 0xc00062fc 0x68 objs/hikey/xa-factory.o
- 0x70 (size before relaxing)
- .rodata.str1.4
- 0xc0006364 0xa8 objs/hikey/xf-shmem.o
- 0xe4 (size before relaxing)
- .rodata.str1.4
- 0xc000640c 0x11 objs/hikey/tinyvprintf.o
- *fill* 0xc000641d 0x3
- .rodata.str1.4
- 0xc0006420 0x3f objs/hikey/gdbstub.o
- *fill* 0xc000645f 0x1
- .rodata.str1.4
- 0xc0006460 0x6b6 objs/hikey/xa-class-base.o
- 0x6f2 (size before relaxing)
- *fill* 0xc0006b16 0x2
- .rodata.str1.4
- 0xc0006b18 0x41b objs/hikey/xa-class-audio-codec.o
- 0x517 (size before relaxing)
- *fill* 0xc0006f33 0x1
- .rodata.str1.4
- 0xc0006f34 0x3cf objs/hikey/xa-class-mixer.o
- 0x58b (size before relaxing)
- *fill* 0xc0007303 0x1
- .rodata.str1.4
- 0xc0007304 0x4c objs/hikey/xf-main.o
- 0x8c (size before relaxing)
- .rodata.str1.4
- 0xc0007350 0x86 objs/hikey/xa-pcm.o
- 0xc2 (size before relaxing)
- *fill* 0xc00073d6 0x2
- .rodata.str1.4
- 0xc00073d8 0x129 objs/hikey/xa-mixer.o
- 0x169 (size before relaxing)
- *fill* 0xc0007501 0x3
- .rodata.str1.4
- 0xc0007504 0x8 ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o)
- 0x7 (size before relaxing)
- *(.gnu.linkonce.r.*)
- *(.rodata1)
- 0xc000750c __XT_EXCEPTION_TABLE__ = ABSOLUTE (.)
- *(.xt_except_table)
- *(.gcc_except_table)
- *(.gnu.linkonce.e.*)
- *(.gnu.version_r)
- *(.eh_frame)
- .eh_frame 0xc000750c 0x24 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- .eh_frame 0xc0007530 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- 0x24 (size before relaxing)
- .eh_frame 0xc0007544 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- 0x24 (size before relaxing)
- *crtbegin.o(.ctors)
- *(EXCLUDE_FILE(*crtend.o) .ctors)
- *(SORT(.ctors.*))
- *(.ctors)
- *crtbegin.o(.dtors)
- *(EXCLUDE_FILE(*crtend.o) .dtors)
- *(SORT(.dtors.*))
- *(.dtors)
- 0xc0007558 __XT_EXCEPTION_DESCS__ = ABSOLUTE (.)
- *(.xt_except_desc)
- *(.gnu.linkonce.h.*)
- 0xc0007558 __XT_EXCEPTION_DESCS_END__ = ABSOLUTE (.)
- *(.xt_except_desc_end)
- *(.dynamic)
- *(.gnu.version_d)
- 0xc0007558 . = ALIGN (0x4)
- 0xc0007558 _bss_table_start = ABSOLUTE (.)
- 0xc0007558 0x4 LONG 0xc0408000 _vlpd_bss_start
- 0xc000755c 0x4 LONG 0xc0408000 _vlpd_bss_end
- 0xc0007560 0x4 LONG 0xc0418000 _efr_fr_hr_vlpd_bss_start
- 0xc0007564 0x4 LONG 0xc0418000 _efr_fr_hr_vlpd_bss_end
- 0xc0007568 0x4 LONG 0xc0428000 _amr_vlpd_bss_start
- 0xc000756c 0x4 LONG 0xc0428000 _amr_vlpd_bss_end
- 0xc0007570 0x4 LONG 0xc0438000 _amrwb_vlpd_bss_start
- 0xc0007574 0x4 LONG 0xc0438000 _amrwb_vlpd_bss_end
- 0xc0007578 0x4 LONG 0xc0578000 _ulpp_bss_start
- 0xc000757c 0x4 LONG 0xc0578000 _ulpp_bss_end
- 0xc0007580 0x4 LONG 0xc05b8000 _dtsv3_bss_start
- 0xc0007584 0x4 LONG 0xc05b8000 _dtsv3_bss_end
- 0xc0007588 0x4 LONG 0xc05d8000 _dtsv4_bss_start
- 0xc000758c 0x4 LONG 0xc05d8000 _dtsv4_bss_end
- 0xc0007590 0x4 LONG 0xe8058058 _dram0_bss_start
- 0xc0007594 0x4 LONG 0xe8058058 _dram0_bss_end
- 0xc0007598 0x4 LONG 0xc001a300 _bss_start
- 0xc000759c 0x4 LONG 0xc011b628 _bss_end
- 0xc00075a0 _bss_table_end = ABSOLUTE (.)
- 0xc00075a0 _rodata_end = ABSOLUTE (.)
-
-.sram.text 0xc00075a0 0x0
- 0xc00075a0 _sram_text_start = ABSOLUTE (.)
- *(.sram.literal .sram.text)
- 0xc00075a0 _sram_text_end = ABSOLUTE (.)
-
-.text 0xc00075a0 0x12b4c
- 0xc00075a0 _stext = .
- 0xc00075a0 _text_start = ABSOLUTE (.)
- *(.entry.text)
- *(.init.literal)
- *(.init)
- *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
- .text 0xc00075a0 0xc3 objs/hikey/cpu_c.o
- 0xd9 (size before relaxing)
- 0xc00075a4 OS_EnterIntHook
- 0xc00075bc OS_ExitIntHook
- 0xc00075d8 OS_UserexecHandler
- 0xc00075f8 OS_InterruptHandler
- 0xc0007610 OS_NmiHook
- 0xc000762c VOS_ConnectInterrupt
- 0xc000763c VOS_EnableInterrupt
- 0xc0007658 VOS_DisableInterrupt
- *fill* 0xc0007663 0x5
- .text 0xc0007668 0x59a objs/hikey/dsp_debug.o
- 0x5da (size before relaxing)
- 0xc0007690 __xprintf
- 0xc0007b60 dsp_debug_init
- 0xc0007bd8 print_log
- *fill* 0xc0007c02 0x6
- .text 0xc0007c08 0x40 objs/hikey/mutex.o
- .text 0xc0007c48 0x535 objs/hikey/rbtree.o
- 0x53d (size before relaxing)
- 0xc0007c80 rb_first
- 0xc0007ca0 rb_last
- 0xc0007cc0 rb_next
- 0xc0007d00 rb_prev
- 0xc0007d40 rb_init
- 0xc0007d54 rb_insert
- 0xc0007e84 rb_delete
- 0xc0008138 rb_replace
- *fill* 0xc000817d 0x3
- .text 0xc0008180 0x899 objs/hikey/xf-core.o
- 0xaa4 (size before relaxing)
- 0xc0008538 xf_msg_submit
- 0xc00085b4 xf_msg_complete
- 0xc0008614 xf_core_init
- 0xc000874c xf_core_service
- 0xc0008a00 xf_global_init
- *fill* 0xc0008a19 0x7
- .text 0xc0008a20 0x79b objs/hikey/xf-io.o
- 0x88b (size before relaxing)
- 0xc0008a78 xf_input_port_init
- 0xc0008b0c xf_input_port_put
- 0xc0008bf4 xf_input_port_fill
- 0xc0008c9c xf_input_port_pad
- 0xc0008cc8 xf_input_port_consume
- 0xc0008d38 xf_input_port_purge
- 0xc0008da0 xf_input_port_control_save
- 0xc0008de8 xf_input_port_purge_done
- 0xc0008e34 xf_input_port_destroy
- 0xc0008e84 xf_output_port_init
- 0xc0008ec4 xf_output_port_route
- 0xc0008fe0 xf_output_port_unroute_start
- 0xc0008ff4 xf_output_port_unroute_done
- 0xc0009020 xf_output_port_unroute
- 0xc0009088 xf_output_port_put
- 0xc00090ac xf_output_port_data
- 0xc00090c0 xf_output_port_produce
- 0xc00090f0 xf_output_port_flush
- 0xc0009158 xf_output_port_flush_done
- 0xc000918c xf_output_port_destroy
- *fill* 0xc00091bb 0x5
- .text 0xc00091c0 0x2e0 objs/hikey/xf-mem.o
- 0x338 (size before relaxing)
- 0xc000924c xf_mm_alloc
- 0xc00092ec xf_mm_free
- 0xc000940c xf_mm_init
- .text 0xc00094a0 0x153 objs/hikey/xf-msg.o
- 0x173 (size before relaxing)
- 0xc00094f0 xf_msg_pool_init
- 0xc000957c xf_msg_pool_destroy
- 0xc00095b0 xf_msg_pool_get
- 0xc00095e8 xf_msg_pool_put
- *fill* 0xc00095f3 0x5
- .text 0xc00095f8 0x127 objs/hikey/xf-sched.o
- 0x14a (size before relaxing)
- 0xc0009640 xf_sched_put
- 0xc00096b0 xf_sched_get
- 0xc00096f8 xf_sched_cancel
- 0xc0009714 xf_sched_init
- *fill* 0xc000971f 0x1
- .text 0xc0009720 0x91 objs/hikey/xa-factory.o
- 0xa1 (size before relaxing)
- 0xc000976c xf_component_factory
- *fill* 0xc00097b1 0x7
- .text 0xc00097b8 0x532 objs/hikey/xf-shmem.o
- 0x61a (size before relaxing)
- 0xc0009a68 xf_shmem_process_queues
- 0xc0009bd4 xf_msg_proxy_complete
- 0xc0009c4c xf_shmem_init
- *fill* 0xc0009cea 0x6
- .text 0xc0009cf0 0x380 objs/hikey/tinyvprintf.o
- 0xc0009d0c tiny_vsprintf
- 0xc000a04c tiny_sprintf
- .text 0xc000a070 0x108 objs/hikey/xf-isr.o
- 0x120 (size before relaxing)
- 0xc000a0b4 xf_msg_schedule_isr
- 0xc000a11c xf_msg_complete_isr
- .text 0xc000a178 0xe34 objs/hikey/gdbstub.o
- 0x100c (size before relaxing)
- 0xc000a18c init_debug_comm
- 0xc000a1d4 poll_debug_ring
- 0xc000a36c getpacket
- 0xc000aa64 handle_exception
- 0xc000af5c init_gdbstub
- *fill* 0xc000afac 0x4
- .text 0xc000afb0 0x1622 objs/hikey/xa-class-base.o
- 0x1cea (size before relaxing)
- 0xc000b0c4 xa_base_set_param
- 0xc000b82c xa_base_get_param
- 0xc000b968 xa_base_set_param_ext
- 0xc000bb80 xa_base_get_param_ext
- 0xc000c17c xa_base_schedule
- 0xc000c1d4 xa_base_cancel
- 0xc000c22c xa_base_destroy
- 0xc000c2a8 xa_base_factory
- *fill* 0xc000c5d2 0x6
- .text 0xc000c5d8 0x14e3 objs/hikey/xa-class-audio-codec.o
- 0x1afb (size before relaxing)
- 0xc000da44 xa_audio_codec_factory
- *fill* 0xc000dabb 0x5
- .text 0xc000dac0 0x144a objs/hikey/xa-class-mixer.o
- 0x1aaa (size before relaxing)
- 0xc000ee98 xa_mixer_factory
- *fill* 0xc000ef0a 0x6
- .text 0xc000ef10 0x185 objs/hikey/xf-main.o
- 0x205 (size before relaxing)
- 0xc000ef6c xf_ipc_init
- 0xc000efe8 main
- *fill* 0xc000f095 0x3
- .text 0xc000f098 0xf0f objs/hikey/xa-pcm.o
- 0x13e7 (size before relaxing)
- 0xc000ff3c xa_pcm_codec
- *fill* 0xc000ffa7 0x1
- .text 0xc000ffa8 0x46 objs/hikey/xa-vorbis-decoder.o
- 0x4e (size before relaxing)
- 0xc000ffb0 xa_vorbis_decoder
- *fill* 0xc000ffee 0x2
- .text 0xc000fff0 0xc77 objs/hikey/xa-mixer.o
- 0x10cf (size before relaxing)
- 0xc0010bfc xa_mixer
- *fill* 0xc0010c67 0x1
- .literal 0xc0010c68 0x10 objs/hikey/gdbstub-entry.o
- 0x2c (size before relaxing)
- .literal 0xc0010c78 0x4 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- .literal 0xc0010c7c 0x4 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- .literal 0xc0010c80 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- 0x4 (size before relaxing)
- .literal 0xc0010c80 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .literal 0xc0010c88 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- 0x8 (size before relaxing)
- .literal 0xc0010c88 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- 0xc (size before relaxing)
- .literal 0xc0010c90 0x4 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- 0x10 (size before relaxing)
- .literal 0xc0010c94 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- 0x18 (size before relaxing)
- .literal 0xc0010c94 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- 0x4 (size before relaxing)
- .literal 0xc0010c94 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- 0x4 (size before relaxing)
- .literal 0xc0010c94 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- 0x8 (size before relaxing)
- .literal 0xc0010c94 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- 0x4 (size before relaxing)
- .literal 0xc0010c94 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- 0x2c (size before relaxing)
- .literal 0xc0010c9c 0xc /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- 0x1c (size before relaxing)
- .literal 0xc0010ca8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
- 0xc (size before relaxing)
- .text 0xc0010ca8 0x138 objs/hikey/gdbstub-entry.o
- 0xc0010ca8 DebugExceptionEntry
- 0xc0010dc8 init_debug_entry
- 0xc0010dd8 breakpoint
- *fill* 0xc0010de0 0x0
- .text 0xc0010de0 0x7321 ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o)
- 0x7339 (size before relaxing)
- 0xc0013ef8 xa_vorbis_dec
- *fill* 0xc0018101 0x3
- .text 0xc0018104 0x137 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- 0xc0018104 xthal_window_spill_nw
- 0xc0018104 xthal_spill_registers_into_stack_nw
- 0xc0018218 xthal_window_spill
- *fill* 0xc001823b 0x1
- .text 0xc001823c 0x22 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- 0xc001823c _xtos_ints_on
- *fill* 0xc001825e 0x2
- .text 0xc0018260 0x25 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- 0xc0018260 _xtos_ints_off
- *fill* 0xc0018285 0x3
- .text 0xc0018288 0x7c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- 0xc0018288 memchr
- *fill* 0xc0018304 0x4
- .text 0xc0018308 0x84 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- 0xc0018308 strncmp
- .text 0xc001838c 0x2fa /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- 0xc00183ac __adddf3
- 0xc0018500 __subdf3
- *fill* 0xc0018686 0x2
- .text 0xc0018688 0x1ff /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- 0xc0018768 __muldf3
- *fill* 0xc0018887 0x1
- .text 0xc0018888 0x176 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- 0xc0018888 __eqdf2
- 0xc0018888 __nedf2
- 0xc00188bc __gtdf2
- 0xc00188e4 __ledf2
- 0xc0018948 __gedf2
- 0xc0018970 __ltdf2
- 0xc00189d4 __unorddf2
- *fill* 0xc00189fe 0x2
- .text 0xc0018a00 0x5d /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- 0xc0018a00 __fixunsdfsi
- *fill* 0xc0018a5d 0x3
- .text 0xc0018a60 0x75 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- 0xc0018a60 __fixunsdfdi
- *fill* 0xc0018ad5 0x3
- .text 0xc0018ad8 0xa3 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- 0xc0018ad8 __vec_memcpy
- *fill* 0xc0018b7b 0x5
- .text 0xc0018b80 0x71 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- 0xc0018b80 __vec_memset
- *fill* 0xc0018bf1 0x7
- .text 0xc0018bf8 0x318 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- 0xc0018bf8 __divdf3
- .text 0xc0018f10 0x29a /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- 0xc0018f10 __propagateFloat64NaN
- 0xc00190c0 __roundAndPackFloat64
- *fill* 0xc00191aa 0x6
- .text 0xc00191b0 0x6d /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
- 0xc00191b0 __estimateDiv64To32
- *fill* 0xc001921d 0x3
- .literal 0xc0019220 0x0 objs/hikey/cpu_c.o
- *fill* 0xc0019220 0x0
- .literal 0xc0019220 0x0 objs/hikey/dsp_debug.o
- *fill* 0xc0019220 0x0
- *fill* 0xc0019220 0x0
- .literal 0xc0019220 0x0 objs/hikey/dsp_comm.o
- *fill* 0xc0019220 0x0
- .text 0xc0019220 0xda objs/hikey/dsp_comm.o
- 0xc0019220 dsp_memcpy
- 0xc00192a0 dsp_memset
- 0xc00192d4 division
- *fill* 0xc00192fa 0x2
- .literal 0xc00192fc 0x0 objs/hikey/mutex.o
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/rbtree.o
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xf-core.o
- .literal 0xc00192fc 0x0 objs/hikey/xf-io.o
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xf-mem.o
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xf-msg.o
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xf-sched.o
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xa-factory.o
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xf-shmem.o
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/tinyvprintf.o
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xf-isr.o
- .literal 0xc00192fc 0x0 objs/hikey/gdbstub.o
- .literal 0xc00192fc 0x0 objs/hikey/xa-class-base.o
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xa-class-audio-codec.o
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xa-class-mixer.o
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xf-main.o
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xa-pcm.o
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xa-vorbis-decoder.o
- *fill* 0xc00192fc 0x0
- .literal 0xc00192fc 0x0 objs/hikey/xa-mixer.o
- .text 0xc00192fc 0x0 objs/hikey/reset.o
- .text 0xc00192fc 0x0 objs/hikey/int_vector.o
- .text 0xc00192fc 0x0 objs/hikey/arch_hifi330.o
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x0
- *fill* 0xc00192fc 0x4
- .text 0xc0019300 0x1c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o)
- 0xc0019300 xthal_dcache_region_invalidate
- *fill* 0xc001931c 0x4
- .text 0xc0019320 0x1c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_writeback.o)
- 0xc0019320 xthal_dcache_region_writeback
- .text 0xc001933c 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--hw_configid0.o)
- .text 0xc001933c 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--hw_configid1.o)
- .text 0xc001933c 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--release_major.o)
- .text 0xc001933c 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--release_minor.o)
- .text 0xc001933c 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--get_intenable.o)
- 0xc001933c xthal_get_intenable
- .text 0xc0019344 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--set_intenable.o)
- 0xc0019344 xthal_set_intenable
- .text 0xc001934c 0x2a /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--restore_extra_nw.o)
- 0xc001934c xthal_restore_extra_nw
- *fill* 0xc0019376 0x2
- .text 0xc0019378 0x2a /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--save_extra_nw.o)
- 0xc0019378 xthal_save_extra_nw
- *fill* 0xc00193a2 0x0
- *fill* 0xc00193a2 0x0
- *fill* 0xc00193a2 0x2
- .text 0xc00193a4 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(interrupt-table.o)
- 0xc00193a4 _xtos_unhandled_interrupt
- *fill* 0xc00193ac 0x4
- .text 0xc00193b0 0x45 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- 0xc00193b0 memcmp
- *fill* 0xc00193f5 0x3
- .text 0xc00193f8 0x138 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcpy.o)
- 0xc001943c memcpy
- .text 0xc0019530 0x78 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memset.o)
- 0xc001955c memset
- .literal 0xc00195a8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- .text 0xc00195a8 0x338 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- 0xc001962c qsort
- .text 0xc00198e0 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divsi3.o)
- 0xc00198e0 __divsi3
- .text 0xc00198e8 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_modsi3.o)
- 0xc00198e8 __modsi3
- *fill* 0xc00198f0 0x0
- *fill* 0xc00198f0 0x0
- *fill* 0xc00198f0 0x0
- *fill* 0xc00198f0 0x0
- *fill* 0xc00198f0 0x0
- .text 0xc00198f0 0x3e /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatsidf.o)
- 0xc00198f0 __floatunsidf
- 0xc00198fc __floatsidf
- *fill* 0xc001992e 0x2
- .text 0xc0019930 0x84 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatdidf.o)
- 0xc0019930 __floatundidf
- 0xc0019940 __floatdidf
- *fill* 0xc00199b4 0x4
- .text 0xc00199b8 0x271 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- 0xc00199b8 __divdi3
- *fill* 0xc0019c29 0x7
- .text 0xc0019c30 0x24c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- 0xc0019c30 __udivdi3
- *fill* 0xc0019e7c 0x4
- .text 0xc0019e80 0x26c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- 0xc0019e80 __umoddi3
- *fill* 0xc001a0ec 0x0
- *fill* 0xc001a0ec 0x0
- *fill* 0xc001a0ec 0x0
- *fill* 0xc001a0ec 0x0
- *fill* 0xc001a0ec 0x0
- *(.fini.literal)
- *(.fini)
- *(.gnu.version)
- 0xc001a0ec _text_end = ABSOLUTE (.)
- 0xc001a0ec _etext = .
-
-.sram.data 0xc001a0ec 0x0
- 0xc001a0ec _sram_data_start = ABSOLUTE (.)
- *(.sram.data)
- 0xc001a0ec _sram_data_end = ABSOLUTE (.)
-
-.data 0xc001a0f0 0x208
- 0xc001a0f0 _data_start = ABSOLUTE (.)
- *(.data)
- .data 0xc001a0f0 0x0 objs/hikey/cpu_c.o
- .data 0xc001a0f0 0x0 objs/hikey/dsp_debug.o
- .data 0xc001a0f0 0x0 objs/hikey/dsp_comm.o
- .data 0xc001a0f0 0x0 objs/hikey/mutex.o
- .data 0xc001a0f0 0x0 objs/hikey/rbtree.o
- .data 0xc001a0f0 0x0 objs/hikey/xf-core.o
- .data 0xc001a0f0 0x0 objs/hikey/xf-io.o
- .data 0xc001a0f0 0x0 objs/hikey/xf-mem.o
- .data 0xc001a0f0 0x0 objs/hikey/xf-msg.o
- .data 0xc001a0f0 0x0 objs/hikey/xf-sched.o
- .data 0xc001a0f0 0x0 objs/hikey/xa-factory.o
- .data 0xc001a0f0 0x0 objs/hikey/xf-shmem.o
- .data 0xc001a0f0 0x0 objs/hikey/tinyvprintf.o
- .data 0xc001a0f0 0x0 objs/hikey/xf-isr.o
- .data 0xc001a0f0 0x0 objs/hikey/gdbstub.o
- .data 0xc001a0f0 0x0 objs/hikey/xa-class-base.o
- .data 0xc001a0f0 0x0 objs/hikey/xa-class-audio-codec.o
- .data 0xc001a0f0 0x0 objs/hikey/xa-class-mixer.o
- .data 0xc001a0f0 0x0 objs/hikey/xf-main.o
- .data 0xc001a0f0 0x0 objs/hikey/xa-pcm.o
- .data 0xc001a0f0 0x0 objs/hikey/xa-vorbis-decoder.o
- .data 0xc001a0f0 0x0 objs/hikey/xa-mixer.o
- .data 0xc001a0f0 0x0 objs/hikey/reset.o
- .data 0xc001a0f0 0x0 objs/hikey/int_vector.o
- .data 0xc001a0f0 0x0 objs/hikey/arch_hifi330.o
- .data 0xc001a0f0 0x0 objs/hikey/gdbstub-entry.o
- .data 0xc001a0f0 0x0 ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_writeback.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--hw_configid0.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--hw_configid1.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--release_major.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--release_minor.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--get_intenable.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--set_intenable.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--restore_extra_nw.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--save_extra_nw.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- .data 0xc001a0f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- .data 0xc001a0f0 0x208 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(interrupt-table.o)
- 0xc001a0f0 _xtos_enabled
- 0xc001a0f0 _xtos_intstruct
- 0xc001a0f4 _xtos_vpri_enabled
- 0xc001a0f8 _xtos_interrupt_table
- 0xc001a1f8 _xtos_interrupt_mask_table
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcpy.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memset.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divsi3.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_modsi3.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatsidf.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatdidf.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- .data 0xc001a2f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
- *(.data.*)
- *(.gnu.linkonce.d.*)
- *(.gnu.linkonce.d.*personality*)
- *(.data1)
- *(.sdata)
- *(.sdata.*)
- *(.gnu.linkonce.s.*)
- *(.sdata2)
- *(.sdata2.*)
- *(.gnu.linkonce.s2.*)
- *(.jcr)
- 0xc001a2f8 _data_end = ABSOLUTE (.)
-
-.sram.uninit 0xc001a2f8 0x0
- 0xc001a2f8 _sram_uninit_start = ABSOLUTE (.)
- *(.sram.uninit)
- 0xc001a2f8 _sram_uninit_end = ABSOLUTE (.)
-
-.bss 0xc001a300 0x101328
- 0xc001a300 . = ALIGN (0x8)
- 0xc001a300 _bss_start = ABSOLUTE (.)
- *(.dynsbss)
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.sb.*)
- *(.scommon)
- *(.sbss2)
- *(.sbss2.*)
- *(.gnu.linkonce.sb2.*)
- *(.dynbss)
- *(.bss)
- .bss 0xc001a300 0xb0 objs/hikey/cpu_c.o
- 0xc001a300 g_ucVosIntNesting
- 0xc001a301 g_ucVosPrioCur
- 0xc001a302 g_ucVosPrioHighRdy
- 0xc001a304 g_bVosRunning
- 0xc001a308 g_pstVosTCBHighRdy
- 0xc001a30c g_pstVosTCBCur
- 0xc001a310 g_pfVosHookFuncTable
- 0xc001a330 g_pfVosIntrFuncTable
- .bss 0xc001a3b0 0x4 objs/hikey/dsp_debug.o
- .bss 0xc001a3b4 0x0 objs/hikey/dsp_comm.o
- .bss 0xc001a3b4 0x0 objs/hikey/mutex.o
- .bss 0xc001a3b4 0x0 objs/hikey/rbtree.o
- .bss 0xc001a3b4 0x0 objs/hikey/xf-core.o
- .bss 0xc001a3b4 0x0 objs/hikey/xf-io.o
- .bss 0xc001a3b4 0x0 objs/hikey/xf-mem.o
- .bss 0xc001a3b4 0x0 objs/hikey/xf-msg.o
- .bss 0xc001a3b4 0x0 objs/hikey/xf-sched.o
- .bss 0xc001a3b4 0x0 objs/hikey/xa-factory.o
- .bss 0xc001a3b4 0x0 objs/hikey/xf-shmem.o
- .bss 0xc001a3b4 0x0 objs/hikey/tinyvprintf.o
- .bss 0xc001a3b4 0x0 objs/hikey/xf-isr.o
- *fill* 0xc001a3b4 0xc
- .bss 0xc001a3c0 0xb70 objs/hikey/gdbstub.o
- 0xc001a3c0 mem_err
- 0xc001a530 sregs
- 0xc001aa30 aregs
- 0xc001ab30 stack
- .bss 0xc001af30 0x0 objs/hikey/xa-class-base.o
- .bss 0xc001af30 0x0 objs/hikey/xa-class-audio-codec.o
- .bss 0xc001af30 0x0 objs/hikey/xa-class-mixer.o
- *fill* 0xc001af30 0x50
- .bss 0xc001af80 0x1006a8 objs/hikey/xf-main.o
- 0xc001af80 xf_dsp_local_buffer
- 0xc011b2c0 waitstate
- 0xc011b2c8 prof
- 0xc011b318 xf_ap_shmem_pool
- 0xc011b340 xf_core_data
- 0xc011b500 xf_core_rw_data
- 0xc011b580 xf_core_ro_data
- 0xc011b600 xf_dsp_local_pool
- .bss 0xc011b628 0x0 objs/hikey/xa-pcm.o
- .bss 0xc011b628 0x0 objs/hikey/xa-vorbis-decoder.o
- .bss 0xc011b628 0x0 objs/hikey/xa-mixer.o
- .bss 0xc011b628 0x0 objs/hikey/reset.o
- .bss 0xc011b628 0x0 objs/hikey/int_vector.o
- .bss 0xc011b628 0x0 objs/hikey/arch_hifi330.o
- .bss 0xc011b628 0x0 objs/hikey/gdbstub-entry.o
- .bss 0xc011b628 0x0 ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_writeback.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--hw_configid0.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--hw_configid1.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--release_major.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--release_minor.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--get_intenable.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--set_intenable.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--restore_extra_nw.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--save_extra_nw.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(interrupt-table.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcpy.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memset.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divsi3.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_modsi3.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatsidf.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatdidf.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- .bss 0xc011b628 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- *(.sram.pool.bss)
- *(.sram.bss)
- 0xc011b628 . = ALIGN (0x8)
- 0xc011b628 _bss_end = ABSOLUTE (.)
- 0xc011b628 _memmap_seg_sram0_end = ALIGN (0x8)
-
-.debug
- *(.debug)
-
-.line
- *(.line)
-
-.debug_srcinfo
- *(.debug_srcinfo)
-
-.debug_sfnames
- *(.debug_sfnames)
-
-.debug_aranges 0x00000000 0x7b0
- *(.debug_aranges)
- .debug_aranges
- 0x00000000 0x20 objs/hikey/cpu_c.o
- .debug_aranges
- 0x00000020 0x20 objs/hikey/dsp_debug.o
- .debug_aranges
- 0x00000040 0x20 objs/hikey/dsp_comm.o
- .debug_aranges
- 0x00000060 0x20 objs/hikey/mutex.o
- .debug_aranges
- 0x00000080 0x20 objs/hikey/rbtree.o
- .debug_aranges
- 0x000000a0 0x20 objs/hikey/xf-core.o
- .debug_aranges
- 0x000000c0 0x20 objs/hikey/xf-io.o
- .debug_aranges
- 0x000000e0 0x20 objs/hikey/xf-mem.o
- .debug_aranges
- 0x00000100 0x20 objs/hikey/xf-msg.o
- .debug_aranges
- 0x00000120 0x20 objs/hikey/xf-sched.o
- .debug_aranges
- 0x00000140 0x20 objs/hikey/xa-factory.o
- .debug_aranges
- 0x00000160 0x20 objs/hikey/xf-shmem.o
- .debug_aranges
- 0x00000180 0x20 objs/hikey/tinyvprintf.o
- .debug_aranges
- 0x000001a0 0x20 objs/hikey/xf-isr.o
- .debug_aranges
- 0x000001c0 0x20 objs/hikey/gdbstub.o
- .debug_aranges
- 0x000001e0 0x20 objs/hikey/xa-class-base.o
- .debug_aranges
- 0x00000200 0x20 objs/hikey/xa-class-audio-codec.o
- .debug_aranges
- 0x00000220 0x20 objs/hikey/xa-class-mixer.o
- .debug_aranges
- 0x00000240 0x20 objs/hikey/xf-main.o
- .debug_aranges
- 0x00000260 0x20 objs/hikey/xa-pcm.o
- .debug_aranges
- 0x00000280 0x20 objs/hikey/xa-vorbis-decoder.o
- .debug_aranges
- 0x000002a0 0x20 objs/hikey/xa-mixer.o
- .debug_aranges
- 0x000002c0 0x28 objs/hikey/reset.o
- .debug_aranges
- 0x000002e8 0x60 objs/hikey/int_vector.o
- .debug_aranges
- 0x00000348 0x20 objs/hikey/arch_hifi330.o
- .debug_aranges
- 0x00000368 0x28 objs/hikey/gdbstub-entry.o
- .debug_aranges
- 0x00000390 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- .debug_aranges
- 0x000003b0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o)
- .debug_aranges
- 0x000003d0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_writeback.o)
- .debug_aranges
- 0x000003f0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--get_intenable.o)
- .debug_aranges
- 0x00000410 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--set_intenable.o)
- .debug_aranges
- 0x00000430 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--restore_extra_nw.o)
- .debug_aranges
- 0x00000450 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--save_extra_nw.o)
- .debug_aranges
- 0x00000470 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- .debug_aranges
- 0x00000490 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- .debug_aranges
- 0x000004b0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(interrupt-table.o)
- .debug_aranges
- 0x000004d0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .debug_aranges
- 0x000004f0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- .debug_aranges
- 0x00000510 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcpy.o)
- .debug_aranges
- 0x00000530 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memset.o)
- .debug_aranges
- 0x00000550 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- .debug_aranges
- 0x00000570 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- .debug_aranges
- 0x00000590 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divsi3.o)
- .debug_aranges
- 0x000005b0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_modsi3.o)
- .debug_aranges
- 0x000005d0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- .debug_aranges
- 0x000005f0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- .debug_aranges
- 0x00000610 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- .debug_aranges
- 0x00000630 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- .debug_aranges
- 0x00000650 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- .debug_aranges
- 0x00000670 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatsidf.o)
- .debug_aranges
- 0x00000690 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatdidf.o)
- .debug_aranges
- 0x000006b0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- .debug_aranges
- 0x000006d0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- .debug_aranges
- 0x000006f0 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- .debug_aranges
- 0x00000710 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- .debug_aranges
- 0x00000730 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- .debug_aranges
- 0x00000750 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- .debug_aranges
- 0x00000770 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- .debug_aranges
- 0x00000790 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
-
-.debug_pubnames
- 0x00000000 0xb7d
- *(.debug_pubnames)
- .debug_pubnames
- 0x00000000 0x16f objs/hikey/cpu_c.o
- .debug_pubnames
- 0x0000016f 0x41 objs/hikey/dsp_debug.o
- .debug_pubnames
- 0x000001b0 0x3d objs/hikey/dsp_comm.o
- .debug_pubnames
- 0x000001ed 0x7a objs/hikey/rbtree.o
- .debug_pubnames
- 0x00000267 0x70 objs/hikey/xf-core.o
- .debug_pubnames
- 0x000002d7 0x21d objs/hikey/xf-io.o
- .debug_pubnames
- 0x000004f4 0x40 objs/hikey/xf-mem.o
- .debug_pubnames
- 0x00000534 0x67 objs/hikey/xf-msg.o
- .debug_pubnames
- 0x0000059b 0x5a objs/hikey/xf-sched.o
- .debug_pubnames
- 0x000005f5 0x2b objs/hikey/xa-factory.o
- .debug_pubnames
- 0x00000620 0x5a objs/hikey/xf-shmem.o
- .debug_pubnames
- 0x0000067a 0x35 objs/hikey/tinyvprintf.o
- .debug_pubnames
- 0x000006af 0x42 objs/hikey/xf-isr.o
- .debug_pubnames
- 0x000006f1 0xa6 objs/hikey/gdbstub.o
- .debug_pubnames
- 0x00000797 0xc2 objs/hikey/xa-class-base.o
- .debug_pubnames
- 0x00000859 0x2d objs/hikey/xa-class-audio-codec.o
- .debug_pubnames
- 0x00000886 0x27 objs/hikey/xa-class-mixer.o
- .debug_pubnames
- 0x000008ad 0xbe objs/hikey/xf-main.o
- .debug_pubnames
- 0x0000096b 0x23 objs/hikey/xa-pcm.o
- .debug_pubnames
- 0x0000098e 0x28 objs/hikey/xa-vorbis-decoder.o
- .debug_pubnames
- 0x000009b6 0x1f objs/hikey/xa-mixer.o
- .debug_pubnames
- 0x000009d5 0x1d /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .debug_pubnames
- 0x000009f2 0x1d /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- .debug_pubnames
- 0x00000a0f 0x1c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- .debug_pubnames
- 0x00000a2b 0x1e /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- .debug_pubnames
- 0x00000a49 0x1f /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- .debug_pubnames
- 0x00000a68 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- .debug_pubnames
- 0x00000a88 0x20 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- .debug_pubnames
- 0x00000aa8 0x23 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- .debug_pubnames
- 0x00000acb 0x23 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- .debug_pubnames
- 0x00000aee 0x1f /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- .debug_pubnames
- 0x00000b0d 0x46 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- .debug_pubnames
- 0x00000b53 0x2a /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
-
-.debug_info 0x00000000 0x18e3c
- *(.debug_info)
- .debug_info 0x00000000 0x516 objs/hikey/cpu_c.o
- .debug_info 0x00000516 0x3c2 objs/hikey/dsp_debug.o
- .debug_info 0x000008d8 0x208 objs/hikey/dsp_comm.o
- .debug_info 0x00000ae0 0xbd5 objs/hikey/mutex.o
- .debug_info 0x000016b5 0xf10 objs/hikey/rbtree.o
- .debug_info 0x000025c5 0x16ac objs/hikey/xf-core.o
- .debug_info 0x00003c71 0x1826 objs/hikey/xf-io.o
- .debug_info 0x00005497 0xef6 objs/hikey/xf-mem.o
- .debug_info 0x0000638d 0xdc1 objs/hikey/xf-msg.o
- .debug_info 0x0000714e 0xdf5 objs/hikey/xf-sched.o
- .debug_info 0x00007f43 0xdfd objs/hikey/xa-factory.o
- .debug_info 0x00008d40 0x1353 objs/hikey/xf-shmem.o
- .debug_info 0x0000a093 0x2d0 objs/hikey/tinyvprintf.o
- .debug_info 0x0000a363 0xc73 objs/hikey/xf-isr.o
- .debug_info 0x0000afd6 0xa47 objs/hikey/gdbstub.o
- .debug_info 0x0000ba1d 0x1c9b objs/hikey/xa-class-base.o
- .debug_info 0x0000d6b8 0x1fe2 objs/hikey/xa-class-audio-codec.o
- .debug_info 0x0000f69a 0x21c9 objs/hikey/xa-class-mixer.o
- .debug_info 0x00011863 0x1203 objs/hikey/xf-main.o
- .debug_info 0x00012a66 0x1841 objs/hikey/xa-pcm.o
- .debug_info 0x000142a7 0x1f6 objs/hikey/xa-vorbis-decoder.o
- .debug_info 0x0001449d 0x12e9 objs/hikey/xa-mixer.o
- .debug_info 0x00015786 0x95 objs/hikey/reset.o
- .debug_info 0x0001581b 0x9a objs/hikey/int_vector.o
- .debug_info 0x000158b5 0xa0 objs/hikey/arch_hifi330.o
- .debug_info 0x00015955 0x9c objs/hikey/gdbstub-entry.o
- .debug_info 0x000159f1 0xdf /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- .debug_info 0x00015ad0 0xd9 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o)
- .debug_info 0x00015ba9 0xd9 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_writeback.o)
- .debug_info 0x00015c82 0xd7 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--get_intenable.o)
- .debug_info 0x00015d59 0xd7 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--set_intenable.o)
- .debug_info 0x00015e30 0xd9 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--restore_extra_nw.o)
- .debug_info 0x00015f09 0xd9 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--save_extra_nw.o)
- .debug_info 0x00015fe2 0xd9 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- .debug_info 0x000160bb 0xda /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- .debug_info 0x00016195 0xe1 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(interrupt-table.o)
- .debug_info 0x00016276 0x22e /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .debug_info 0x000164a4 0x20a /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- .debug_info 0x000166ae 0x11c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcpy.o)
- .debug_info 0x000167ca 0x11c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memset.o)
- .debug_info 0x000168e6 0x399 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- .debug_info 0x00016c7f 0x204 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- .debug_info 0x00016e83 0xf7 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divsi3.o)
- .debug_info 0x00016f7a 0xf7 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_modsi3.o)
- .debug_info 0x00017071 0xf6 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- .debug_info 0x00017167 0xf6 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- .debug_info 0x0001725d 0xf6 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- .debug_info 0x00017353 0xf6 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- .debug_info 0x00017449 0xf6 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- .debug_info 0x0001753f 0xf6 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatsidf.o)
- .debug_info 0x00017635 0xf6 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatdidf.o)
- .debug_info 0x0001772b 0x2b1 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- .debug_info 0x000179dc 0x26e /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- .debug_info 0x00017c4a 0x278 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- .debug_info 0x00017ec2 0x2c3 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- .debug_info 0x00018185 0x28b /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- .debug_info 0x00018410 0x3a7 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- .debug_info 0x000187b7 0x3ae /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- .debug_info 0x00018b65 0x2d7 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
-
-.debug_abbrev 0x00000000 0x2ee0
- *(.debug_abbrev)
- .debug_abbrev 0x00000000 0xcd objs/hikey/cpu_c.o
- .debug_abbrev 0x000000cd 0x156 objs/hikey/dsp_debug.o
- .debug_abbrev 0x00000223 0xa2 objs/hikey/dsp_comm.o
- .debug_abbrev 0x000002c5 0x140 objs/hikey/mutex.o
- .debug_abbrev 0x00000405 0x201 objs/hikey/rbtree.o
- .debug_abbrev 0x00000606 0x28c objs/hikey/xf-core.o
- .debug_abbrev 0x00000892 0x255 objs/hikey/xf-io.o
- .debug_abbrev 0x00000ae7 0x1ff objs/hikey/xf-mem.o
- .debug_abbrev 0x00000ce6 0x1d3 objs/hikey/xf-msg.o
- .debug_abbrev 0x00000eb9 0x1b2 objs/hikey/xf-sched.o
- .debug_abbrev 0x0000106b 0x17d objs/hikey/xa-factory.o
- .debug_abbrev 0x000011e8 0x1f8 objs/hikey/xf-shmem.o
- .debug_abbrev 0x000013e0 0xf6 objs/hikey/tinyvprintf.o
- .debug_abbrev 0x000014d6 0x184 objs/hikey/xf-isr.o
- .debug_abbrev 0x0000165a 0x282 objs/hikey/gdbstub.o
- .debug_abbrev 0x000018dc 0x269 objs/hikey/xa-class-base.o
- .debug_abbrev 0x00001b45 0x20b objs/hikey/xa-class-audio-codec.o
- .debug_abbrev 0x00001d50 0x20b objs/hikey/xa-class-mixer.o
- .debug_abbrev 0x00001f5b 0x1b3 objs/hikey/xf-main.o
- .debug_abbrev 0x0000210e 0x1aa objs/hikey/xa-pcm.o
- .debug_abbrev 0x000022b8 0xa4 objs/hikey/xa-vorbis-decoder.o
- .debug_abbrev 0x0000235c 0x1cc objs/hikey/xa-mixer.o
- .debug_abbrev 0x00002528 0x12 objs/hikey/reset.o
- .debug_abbrev 0x0000253a 0x12 objs/hikey/int_vector.o
- .debug_abbrev 0x0000254c 0x14 objs/hikey/arch_hifi330.o
- .debug_abbrev 0x00002560 0x12 objs/hikey/gdbstub-entry.o
- .debug_abbrev 0x00002572 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- .debug_abbrev 0x00002586 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o)
- .debug_abbrev 0x0000259a 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_writeback.o)
- .debug_abbrev 0x000025ae 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--get_intenable.o)
- .debug_abbrev 0x000025c2 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--set_intenable.o)
- .debug_abbrev 0x000025d6 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--restore_extra_nw.o)
- .debug_abbrev 0x000025ea 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--save_extra_nw.o)
- .debug_abbrev 0x000025fe 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- .debug_abbrev 0x00002612 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- .debug_abbrev 0x00002626 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(interrupt-table.o)
- .debug_abbrev 0x0000263a 0x8e /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .debug_abbrev 0x000026c8 0x85 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- .debug_abbrev 0x0000274d 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcpy.o)
- .debug_abbrev 0x00002761 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memset.o)
- .debug_abbrev 0x00002775 0xcf /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- .debug_abbrev 0x00002844 0x80 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- .debug_abbrev 0x000028c4 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divsi3.o)
- .debug_abbrev 0x000028d8 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_modsi3.o)
- .debug_abbrev 0x000028ec 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- .debug_abbrev 0x00002900 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- .debug_abbrev 0x00002914 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- .debug_abbrev 0x00002928 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- .debug_abbrev 0x0000293c 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- .debug_abbrev 0x00002950 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatsidf.o)
- .debug_abbrev 0x00002964 0x14 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatdidf.o)
- .debug_abbrev 0x00002978 0xbd /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- .debug_abbrev 0x00002a35 0xa1 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- .debug_abbrev 0x00002ad6 0xae /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- .debug_abbrev 0x00002b84 0xa3 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- .debug_abbrev 0x00002c27 0x82 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- .debug_abbrev 0x00002ca9 0xbb /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- .debug_abbrev 0x00002d64 0xd0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- .debug_abbrev 0x00002e34 0xac /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
-
-.debug_line 0x00000000 0xd0d8
- *(.debug_line)
- .debug_line 0x00000000 0x14b objs/hikey/cpu_c.o
- .debug_line 0x0000014b 0x433 objs/hikey/dsp_debug.o
- .debug_line 0x0000057e 0x105 objs/hikey/dsp_comm.o
- .debug_line 0x00000683 0x1fc objs/hikey/mutex.o
- .debug_line 0x0000087f 0x8f3 objs/hikey/rbtree.o
- .debug_line 0x00001172 0x8a9 objs/hikey/xf-core.o
- .debug_line 0x00001a1b 0xb08 objs/hikey/xf-io.o
- .debug_line 0x00002523 0x4c3 objs/hikey/xf-mem.o
- .debug_line 0x000029e6 0x2cf objs/hikey/xf-msg.o
- .debug_line 0x00002cb5 0x32f objs/hikey/xf-sched.o
- .debug_line 0x00002fe4 0x233 objs/hikey/xa-factory.o
- .debug_line 0x00003217 0x70b objs/hikey/xf-shmem.o
- .debug_line 0x00003922 0x268 objs/hikey/tinyvprintf.o
- .debug_line 0x00003b8a 0x33e objs/hikey/xf-isr.o
- .debug_line 0x00003ec8 0x9d7 objs/hikey/gdbstub.o
- .debug_line 0x0000489f 0x92f objs/hikey/xa-class-base.o
- .debug_line 0x000051ce 0xb85 objs/hikey/xa-class-audio-codec.o
- .debug_line 0x00005d53 0xcd5 objs/hikey/xa-class-mixer.o
- .debug_line 0x00006a28 0x2e7 objs/hikey/xf-main.o
- .debug_line 0x00006d0f 0xbd0 objs/hikey/xa-pcm.o
- .debug_line 0x000078df 0x145 objs/hikey/xa-vorbis-decoder.o
- .debug_line 0x00007a24 0x94f objs/hikey/xa-mixer.o
- .debug_line 0x00008373 0x36b objs/hikey/reset.o
- .debug_line 0x000086de 0x7f7 objs/hikey/int_vector.o
- .debug_line 0x00008ed5 0x463 objs/hikey/arch_hifi330.o
- .debug_line 0x00009338 0x293 objs/hikey/gdbstub-entry.o
- .debug_line 0x000095cb 0x337 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- .debug_line 0x00009902 0x91 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o)
- .debug_line 0x00009993 0x91 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_writeback.o)
- .debug_line 0x00009a24 0x8e /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--get_intenable.o)
- .debug_line 0x00009ab2 0x8f /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--set_intenable.o)
- .debug_line 0x00009b41 0x8a /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--restore_extra_nw.o)
- .debug_line 0x00009bcb 0x8a /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--save_extra_nw.o)
- .debug_line 0x00009c55 0xc5 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- .debug_line 0x00009d1a 0xcc /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- .debug_line 0x00009de6 0x98 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(interrupt-table.o)
- .debug_line 0x00009e7e 0x10f /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .debug_line 0x00009f8d 0xf6 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- .debug_line 0x0000a083 0x363 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcpy.o)
- .debug_line 0x0000a3e6 0x19a /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memset.o)
- .debug_line 0x0000a580 0x25a /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- .debug_line 0x0000a7da 0x110 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- .debug_line 0x0000a8ea 0xa9 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divsi3.o)
- .debug_line 0x0000a993 0xa8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_modsi3.o)
- .debug_line 0x0000aa3b 0x6d1 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- .debug_line 0x0000b10c 0x4c4 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- .debug_line 0x0000b5d0 0x3bf /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- .debug_line 0x0000b98f 0x167 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- .debug_line 0x0000baf6 0x191 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- .debug_line 0x0000bc87 0x119 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatsidf.o)
- .debug_line 0x0000bda0 0x1af /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatdidf.o)
- .debug_line 0x0000bf4f 0x1e3 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- .debug_line 0x0000c132 0x1c4 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- .debug_line 0x0000c2f6 0x220 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- .debug_line 0x0000c516 0x13d /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- .debug_line 0x0000c653 0x137 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- .debug_line 0x0000c78a 0x46e /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- .debug_line 0x0000cbf8 0x36e /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- .debug_line 0x0000cf66 0x172 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
-
-.debug_frame
- *(.debug_frame)
-
-.debug_str
- *(.debug_str)
-
-.debug_loc
- *(.debug_loc)
-
-.debug_macinfo
- *(.debug_macinfo)
-
-.debug_weaknames
- *(.debug_weaknames)
-
-.debug_funcnames
- *(.debug_funcnames)
-
-.debug_typenames
- *(.debug_typenames)
-
-.debug_varnames
- *(.debug_varnames)
-
-.xt.insn
- *(.xt.insn)
- *(.gnu.linkonce.x.*)
-
-.xt.prop 0x00000000 0xe8ec
- *(.xt.prop)
- .xt.prop 0x00000000 0x15c objs/hikey/cpu_c.o
- 0x1ec (size before relaxing)
- .xt.prop 0x0000015c 0x570 objs/hikey/dsp_debug.o
- 0x594 (size before relaxing)
- .xt.prop 0x000006cc 0x84 objs/hikey/dsp_comm.o
- .xt.prop 0x00000750 0x3c objs/hikey/mutex.o
- 0x48 (size before relaxing)
- .xt.prop 0x0000078c 0x6e4 objs/hikey/rbtree.o
- 0x6f0 (size before relaxing)
- .xt.prop 0x00000e70 0x624 objs/hikey/xf-core.o
- 0x6e4 (size before relaxing)
- .xt.prop 0x00001494 0x7b0 objs/hikey/xf-io.o
- 0x894 (size before relaxing)
- .xt.prop 0x00001c44 0x354 objs/hikey/xf-mem.o
- 0x390 (size before relaxing)
- .xt.prop 0x00001f98 0x12c objs/hikey/xf-msg.o
- 0x15c (size before relaxing)
- .xt.prop 0x000020c4 0x150 objs/hikey/xf-sched.o
- 0x18c (size before relaxing)
- .xt.prop 0x00002214 0x9c objs/hikey/xa-factory.o
- 0xb4 (size before relaxing)
- .xt.prop 0x000022b0 0x36c objs/hikey/xf-shmem.o
- 0x3a8 (size before relaxing)
- .xt.prop 0x0000261c 0x498 objs/hikey/tinyvprintf.o
- 0x4a4 (size before relaxing)
- .xt.prop 0x00002ab4 0xe4 objs/hikey/xf-isr.o
- 0x108 (size before relaxing)
- .xt.prop 0x00002b98 0x9c0 objs/hikey/gdbstub.o
- 0xa8c (size before relaxing)
- .xt.prop 0x00003558 0xa80 objs/hikey/xa-class-base.o
- 0xb28 (size before relaxing)
- .xt.prop 0x00003fd8 0xbb8 objs/hikey/xa-class-audio-codec.o
- 0xc84 (size before relaxing)
- .xt.prop 0x00004b90 0xcf0 objs/hikey/xa-class-mixer.o
- 0xdd4 (size before relaxing)
- .xt.prop 0x00005880 0xe4 objs/hikey/xf-main.o
- 0x18c (size before relaxing)
- .xt.prop 0x00005964 0xdec objs/hikey/xa-pcm.o
- 0xef4 (size before relaxing)
- .xt.prop 0x00006750 0x48 objs/hikey/xa-vorbis-decoder.o
- 0x60 (size before relaxing)
- .xt.prop 0x00006798 0xaa4 objs/hikey/xa-mixer.o
- 0xb7c (size before relaxing)
- .xt.prop 0x0000723c 0x6c objs/hikey/reset.o
- .xt.prop 0x000072a8 0x300 objs/hikey/int_vector.o
- 0x390 (size before relaxing)
- .xt.prop 0x000075a8 0x150 objs/hikey/arch_hifi330.o
- 0x15c (size before relaxing)
- .xt.prop 0x000076f8 0xf0 objs/hikey/gdbstub-entry.o
- .xt.prop 0x000077e8 0x5154 ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o)
- 0x51d8 (size before relaxing)
- .xt.prop 0x0000c93c 0xf0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- .xt.prop 0x0000ca2c 0x24 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o)
- .xt.prop 0x0000ca50 0x24 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_writeback.o)
- .xt.prop 0x0000ca74 0x18 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--get_intenable.o)
- .xt.prop 0x0000ca8c 0x18 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--set_intenable.o)
- .xt.prop 0x0000caa4 0x18 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--restore_extra_nw.o)
- .xt.prop 0x0000cabc 0x18 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--save_extra_nw.o)
- .xt.prop 0x0000cad4 0x24 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- .xt.prop 0x0000caf8 0x18 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- 0x24 (size before relaxing)
- .xt.prop 0x0000cb10 0x24 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(interrupt-table.o)
- .xt.prop 0x0000cb34 0x90 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .xt.prop 0x0000cbc4 0x3c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- .xt.prop 0x0000cc00 0x144 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcpy.o)
- .xt.prop 0x0000cd44 0xc0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memset.o)
- .xt.prop 0x0000ce04 0x3e4 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- 0x3f0 (size before relaxing)
- .xt.prop 0x0000d1e8 0x9c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- 0xa8 (size before relaxing)
- .xt.prop 0x0000d284 0x18 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divsi3.o)
- .xt.prop 0x0000d29c 0x18 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_modsi3.o)
- .xt.prop 0x0000d2b4 0x444 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- .xt.prop 0x0000d6f8 0x264 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- .xt.prop 0x0000d95c 0x27c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- 0x288 (size before relaxing)
- .xt.prop 0x0000dbd8 0x90 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- 0x9c (size before relaxing)
- .xt.prop 0x0000dc68 0xc0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- 0xcc (size before relaxing)
- .xt.prop 0x0000dd28 0x54 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatsidf.o)
- .xt.prop 0x0000dd7c 0x9c /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatdidf.o)
- .xt.prop 0x0000de18 0x150 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- .xt.prop 0x0000df68 0x120 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- .xt.prop 0x0000e088 0x120 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- .xt.prop 0x0000e1a8 0xa8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- 0xb4 (size before relaxing)
- .xt.prop 0x0000e250 0x78 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- 0x84 (size before relaxing)
- .xt.prop 0x0000e2c8 0x1ec /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- .xt.prop 0x0000e4b4 0x3a8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- .xt.prop 0x0000e85c 0x90 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
- 0x9c (size before relaxing)
- *(.xt.prop.*)
- *(.gnu.linkonce.prop.*)
-
-.xt.lit 0x00000000 0x518
- *(.xt.lit)
- .xt.lit 0x00000000 0x18 objs/hikey/cpu_c.o
- 0x40 (size before relaxing)
- .xt.lit 0x00000018 0x20 objs/hikey/dsp_debug.o
- .xt.lit 0x00000038 0x8 objs/hikey/mutex.o
- .xt.lit 0x00000040 0x8 objs/hikey/rbtree.o
- .xt.lit 0x00000048 0x60 objs/hikey/xf-core.o
- 0x68 (size before relaxing)
- .xt.lit 0x000000a8 0x70 objs/hikey/xf-io.o
- 0x98 (size before relaxing)
- .xt.lit 0x00000118 0x18 objs/hikey/xf-mem.o
- 0x28 (size before relaxing)
- .xt.lit 0x00000130 0x20 objs/hikey/xf-msg.o
- .xt.lit 0x00000150 0x18 objs/hikey/xf-sched.o
- 0x28 (size before relaxing)
- .xt.lit 0x00000168 0x10 objs/hikey/xa-factory.o
- .xt.lit 0x00000178 0x20 objs/hikey/xf-shmem.o
- 0x30 (size before relaxing)
- .xt.lit 0x00000198 0x8 objs/hikey/tinyvprintf.o
- .xt.lit 0x000001a0 0x18 objs/hikey/xf-isr.o
- .xt.lit 0x000001b8 0x60 objs/hikey/gdbstub.o
- 0x70 (size before relaxing)
- .xt.lit 0x00000218 0x58 objs/hikey/xa-class-base.o
- .xt.lit 0x00000270 0x70 objs/hikey/xa-class-audio-codec.o
- 0x78 (size before relaxing)
- .xt.lit 0x000002e0 0x78 objs/hikey/xa-class-mixer.o
- 0x80 (size before relaxing)
- .xt.lit 0x00000358 0x18 objs/hikey/xf-main.o
- .xt.lit 0x00000370 0xa8 objs/hikey/xa-pcm.o
- .xt.lit 0x00000418 0x8 objs/hikey/xa-vorbis-decoder.o
- .xt.lit 0x00000420 0x80 objs/hikey/xa-mixer.o
- .xt.lit 0x000004a0 0x8 objs/hikey/reset.o
- .xt.lit 0x000004a8 0x10 objs/hikey/int_vector.o
- 0x40 (size before relaxing)
- .xt.lit 0x000004b8 0x8 objs/hikey/arch_hifi330.o
- .xt.lit 0x000004c0 0x8 objs/hikey/gdbstub-entry.o
- .xt.lit 0x000004c8 0x18 ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o)
- 0x78 (size before relaxing)
- .xt.lit 0x000004e0 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- .xt.lit 0x000004e8 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- .xt.lit 0x000004f0 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- 0x8 (size before relaxing)
- .xt.lit 0x000004f0 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .xt.lit 0x000004f8 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- 0x8 (size before relaxing)
- .xt.lit 0x000004f8 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- .xt.lit 0x00000500 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- .xt.lit 0x00000508 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- 0x8 (size before relaxing)
- .xt.lit 0x00000508 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- 0x8 (size before relaxing)
- .xt.lit 0x00000508 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- 0x8 (size before relaxing)
- .xt.lit 0x00000508 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- 0x8 (size before relaxing)
- .xt.lit 0x00000508 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- 0x8 (size before relaxing)
- .xt.lit 0x00000508 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- .xt.lit 0x00000510 0x8 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- .xt.lit 0x00000518 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
- 0x8 (size before relaxing)
- *(.xt.lit.*)
- *(.gnu.linkonce.p.*)
-
-.comment 0x00000000 0x1351
- .comment 0x00000000 0x59 objs/hikey/cpu_c.o
- 0x5a (size before relaxing)
- .comment 0x00000059 0x5d objs/hikey/dsp_debug.o
- 0x5e (size before relaxing)
- .comment 0x000000b6 0x5c objs/hikey/dsp_comm.o
- 0x5d (size before relaxing)
- .comment 0x00000112 0x50 objs/hikey/mutex.o
- 0x51 (size before relaxing)
- .comment 0x00000162 0x51 objs/hikey/rbtree.o
- 0x52 (size before relaxing)
- .comment 0x000001b3 0x4d objs/hikey/xf-core.o
- 0x4e (size before relaxing)
- .comment 0x00000200 0x4b objs/hikey/xf-io.o
- 0x4c (size before relaxing)
- .comment 0x0000024b 0x4c objs/hikey/xf-mem.o
- 0x4d (size before relaxing)
- .comment 0x00000297 0x4c objs/hikey/xf-msg.o
- 0x4d (size before relaxing)
- .comment 0x000002e3 0x4e objs/hikey/xf-sched.o
- 0x4f (size before relaxing)
- .comment 0x00000331 0x4f objs/hikey/xa-factory.o
- 0x50 (size before relaxing)
- .comment 0x00000380 0x4e objs/hikey/xf-shmem.o
- 0x4f (size before relaxing)
- .comment 0x000003ce 0x56 objs/hikey/tinyvprintf.o
- 0x57 (size before relaxing)
- .comment 0x00000424 0x4c objs/hikey/xf-isr.o
- 0x4d (size before relaxing)
- .comment 0x00000470 0x5a objs/hikey/gdbstub.o
- 0x5b (size before relaxing)
- .comment 0x000004ca 0x54 objs/hikey/xa-class-base.o
- 0x55 (size before relaxing)
- .comment 0x0000051e 0x5b objs/hikey/xa-class-audio-codec.o
- 0x5c (size before relaxing)
- .comment 0x00000579 0x55 objs/hikey/xa-class-mixer.o
- 0x56 (size before relaxing)
- .comment 0x000005ce 0x55 objs/hikey/xf-main.o
- 0x56 (size before relaxing)
- .comment 0x00000623 0x60 objs/hikey/xa-pcm.o
- 0x61 (size before relaxing)
- .comment 0x00000683 0x6d objs/hikey/xa-vorbis-decoder.o
- 0x6e (size before relaxing)
- .comment 0x000006f0 0x5f objs/hikey/xa-mixer.o
- 0x60 (size before relaxing)
- .comment 0x0000074f 0x573 ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o)
- 0x584 (size before relaxing)
- .comment 0x00000cc2 0xa1 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- 0xa2 (size before relaxing)
- .comment 0x00000d63 0xa1 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- 0xa2 (size before relaxing)
- .comment 0x00000e04 0xa0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- 0xa1 (size before relaxing)
- .comment 0x00000ea4 0xa2 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- 0xa3 (size before relaxing)
- .comment 0x00000f46 0xa1 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- 0xa2 (size before relaxing)
- .comment 0x00000000 0xa2 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- .comment 0x00000000 0xa2 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- .comment 0x00000fe7 0xa5 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- 0xa6 (size before relaxing)
- .comment 0x0000108c 0xa5 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- 0xa6 (size before relaxing)
- .comment 0x00001131 0xb5 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- 0xb6 (size before relaxing)
- .comment 0x000011e6 0xb5 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- 0xb6 (size before relaxing)
- .comment 0x0000129b 0xb6 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
- 0xb7 (size before relaxing)
-
-.xtensa.info 0x00000000 0x1d8
- .xtensa.info 0x00000000 0x1d8 objs/hikey/cpu_c.o
- .xtensa.info 0x00000000 0x0 objs/hikey/dsp_debug.o
- .xtensa.info 0x00000000 0x0 objs/hikey/dsp_comm.o
- .xtensa.info 0x00000000 0x0 objs/hikey/mutex.o
- .xtensa.info 0x00000000 0x0 objs/hikey/rbtree.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xf-core.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xf-io.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xf-mem.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xf-msg.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xf-sched.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xa-factory.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xf-shmem.o
- .xtensa.info 0x00000000 0x0 objs/hikey/tinyvprintf.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xf-isr.o
- .xtensa.info 0x00000000 0x0 objs/hikey/gdbstub.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xa-class-base.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xa-class-audio-codec.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xa-class-mixer.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xf-main.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xa-pcm.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xa-vorbis-decoder.o
- .xtensa.info 0x00000000 0x0 objs/hikey/xa-mixer.o
- .xtensa.info 0x00000000 0x0 objs/hikey/reset.o
- .xtensa.info 0x00000000 0x0 objs/hikey/int_vector.o
- .xtensa.info 0x00000000 0x0 objs/hikey/arch_hifi330.o
- .xtensa.info 0x00000000 0x0 objs/hikey/gdbstub-entry.o
- .xtensa.info 0x00000000 0x0 ../plugins/cadence/vorbis_dec/lib/hifi3/xa_vorbis_dec.a(xa_vorbis_dec.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(windowspill_asm.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_invalidate.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--dcache_region_writeback.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--hw_configid0.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--hw_configid1.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--release_major.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(cache_asm--release_minor.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--get_intenable.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(int_asm--set_intenable.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--restore_extra_nw.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhal.a(state_asm--save_extra_nw.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-on.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(ints-off.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/arch/lib//libhandlers-board.a(interrupt-table.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memchr.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcmp.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memcpy.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-memset.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-qsort.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib//libc.a(lib_a-strncmp.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divsi3.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_modsi3.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_addsubdf3.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_muldf3.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_cmpdf2.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfsi.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_fixunsdfdi.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatsidf.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_floatdidf.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_divdi3.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_udivdi3.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(_umoddi3.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memcpy.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(vec_memset.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_div_df.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_df.o)
- .xtensa.info 0x00000000 0x0 /scratch/speacial_projects/sof-sdk/xtensa_tools/tools/XtDevTools/install/builds/RG-2017.5-linux/hifi3_hikey960/xtensa-elf/lib/xcc//libgcc.a(softfloat_cmn_div.o)
-
-.debug.xt.callgraph
- *(.debug.xt.callgraph .debug.xt.callgraph.* .gnu.linkonce.xt.callgraph.*)
-OUTPUT(objs/hikey/xa_hikey.o elf32-xtensa-le)
-
-.debug_ranges 0x00000000 0x98
- .debug_ranges 0x00000000 0x20 objs/hikey/reset.o
- .debug_ranges 0x00000020 0x58 objs/hikey/int_vector.o
- .debug_ranges 0x00000078 0x20 objs/hikey/gdbstub-entry.o
diff --git a/hifi/xaf/hifi-dpf/build_hikey/tools/elftobin.sh b/hifi/xaf/hifi-dpf/build_hikey/tools/elftobin.sh
deleted file mode 100755
index cebe6bf..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/tools/elftobin.sh
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/bin/bash
-
-if [ $# != 2 ]
-then
-echo "elftobin.sh <input_elf_file> <output_img_file>"
-exit
-fi
-
-if [ $XTENSA_CORE == "" ]
-then
-echo "XTENSA_CORE is not set"
-exit
-fi
-
-if [ $XTENSA_SYSTEM == "" ]
-then
-echo "XTENSA_SYSTEM is not set"
-exit
-fi
-
-export INPUT_ELF_FILE=$1
-export OUTPUT_BIN_FILE=__hikey_temp.bin
-export OUTPUT_IMG_FILE=$2
-export OP_DIR=./
-
-xt-objdump -h $INPUT_ELF_FILE > __elfdump
-less __elfdump | sed -n '/ALLOC/{g;1!p;};h' > __header
-less __header | awk '{print $2 " " $3 " " $4}' > __proc
-
-sections=`less __proc | cut -f1 -d' ' | tr '\n' ',' | sed 's/\,$//g'`
-SECTION_NUM=`awk 'END {print NR}' __proc`
-echo "Total number of sections are $SECTION_NUM"
-#sections=(".dram0.data" ".ResetVector.text" ".Reset.literal" ".WindowVectors.text" ".Level2InterruptVector.literal" ".Level2InterruptVector.text" ".Level3InterruptVector.literal" ".Level3InterruptVector.text" ".DebugExceptionVector.literal" ".DebugExceptionVector.text" ".NMIExceptionVector.literal" ".NMIExceptionVector.text" ".KernelExceptionVector.literal" ".KernelExceptionVector.text" ".UserExceptionVector.literal" ".UserExceptionVector.text" ".DoubleExceptionVector.literal" ".DoubleExceptionVector.text" ".Reset.text" ".iram0.text" ".rodata" ".text" ".data" ".bss")
-#dst_addr=("0xe8058000" "0xe8080000" "0xe8080300" "0xe8080400" "0xe8080578" "0xe8080580" "0xe80805b8" "0xe80805c0" "0xe8080638" "0xe8080640" "0xe8080678" "0xe80806c0" "0xe80806f8" "0xe8080700" "0xe8080738" "0xe8080740" "0xe8080778" "0xe80807c0" "0xe8080800" "0xe8080a44" "0xc0000000" "0xc0000cc8" "0xc00025c0" "0xc0002a20")
-
-ID_Sec=("0x01010000" "0x01000001" "0x01000002" "0x01000003" "0x01000004" "0x01000005" "0x01000006" "0x01000007" "0x01000008" "0x01000009" "0x0100000A" "0x0100000B" "0x0100000C" "0x0100000D" "0x0100000E" "0x0100000F" "0x01000010" "0x01000011" "0x01000012" "0x01000013" "0x00000014" "0x00000015" "0x00010016" "0x00020017")
-
-head -c "4" /dev/zero > __zero.bin
-
-i=0
-for j in `seq 1 $SECTION_NUM`
-do
- VAR=`less __proc | awk 'FNR == "'"$j"'" {print $1}'`
- VARBIN=`echo "$VAR" | sed 's/^./__/' | sed "s/\..*//" | sed 's/$/.bin/' `
- #echo "section: $VAR $VARBIN"
- xt-objcopy $INPUT_ELF_FILE -O binary --only-section $VAR $VARBIN
-
- size_sec[${i}]=$(cat $VARBIN | wc -c)
- #echo "size : ${size_sec[${i}]}"
- mod0=`expr ${size_sec[${i}]} % 4`
- nbytes=`expr 4 - $mod0`
- if [ "$nbytes" -ne "4" ] ; then
- tail -c $nbytes __zero.bin >> $VARBIN
- size_sec[$i]=`expr ${size_sec[${i}]} + $nbytes`
- fi
- cat $VARBIN >> $OUTPUT_BIN_FILE
- i=`expr $i + 1`;
-done
-cd $OP_DIR
-
-tmp1=$(cat $OUTPUT_BIN_FILE | wc -c)
-total_sections=$SECTION_NUM
-main_header_size=32
-section_header_size=16
-size_total_img=`expr $main_header_size + $tmp1 + $total_sections \* $section_header_size`
-current_date_time=`date "+%Y/%m/%d %H:%M:%S"`
-echo "HIF:$current_date_time" > $OUTPUT_IMG_FILE
-
-printf "0: %.8x" $size_total_img | sed -e 's/0\: \(..\)\(..\)\(..\)\(..\)/0\: \4\3\2\1/' | xxd -r -g0 >> $OUTPUT_IMG_FILE
-printf "0: %.8x" $total_sections | sed -e 's/0\: \(..\)\(..\)\(..\)\(..\)/0\: \4\3\2\1/' | xxd -r -g0 >> $OUTPUT_IMG_FILE
-
-cnt1=`expr $main_header_size + $total_sections \* $section_header_size`
-i=0
-for j in `seq 1 $SECTION_NUM`
-do
- DST_ADDR=`less __proc | awk 'FNR == "'"$j"'" {print $3}'`
- printf "0: %.8x" ${ID_Sec[${i}]} | sed -e 's/0\: \(..\)\(..\)\(..\)\(..\)/0\: \4\3\2\1/' | xxd -r -g0 >> $OUTPUT_IMG_FILE
- printf "0: %.8x" $cnt1 | sed -e 's/0\: \(..\)\(..\)\(..\)\(..\)/0\: \4\3\2\1/' | xxd -r -g0 >> $OUTPUT_IMG_FILE
- printf "0: %.8x" 0x$DST_ADDR | sed -e 's/0\: \(..\)\(..\)\(..\)\(..\)/0\: \4\3\2\1/' | xxd -r -g0 >> $OUTPUT_IMG_FILE
- printf "0: %.8x" ${size_sec[${i}]} | sed -e 's/0\: \(..\)\(..\)\(..\)\(..\)/0\: \4\3\2\1/' | xxd -r -g0 >> $OUTPUT_IMG_FILE
- cnt_prev=$cnt1
- cnt1=`expr ${size_sec[${i}]} + $cnt_prev`
- i=`expr $i + 1`
-done
-
-cat $OUTPUT_BIN_FILE >> $OUTPUT_IMG_FILE
-rm $OUTPUT_BIN_FILE
-rm __*.bin
-rm __proc
-rm __elfdump
-rm __header
-
-echo "elftobin successful!"
-
diff --git a/hifi/xaf/hifi-dpf/build_hikey/xa_hikey.img b/hifi/xaf/hifi-dpf/build_hikey/xa_hikey.img
deleted file mode 100644
index 4c16652..0000000
--- a/hifi/xaf/hifi-dpf/build_hikey/xa_hikey.img
+++ /dev/null
Binary files differ
diff --git a/hifi/xaf/hifi-dpf/core/util/gdbstub/gdbstub-entry.S b/hifi/xaf/hifi-dpf/core/util/gdbstub/gdbstub-entry.S
deleted file mode 100644
index 50a33a9..0000000
--- a/hifi/xaf/hifi-dpf/core/util/gdbstub/gdbstub-entry.S
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-#include "xtensa-defs.h"
-
-.macro SAVE_ reg, loc
- rsr a1, \reg
- s32i a1, a3, \loc * 4
-.endm
-.macro SAVE reg
- SAVE_ \reg, \reg
-.endm
-
-.macro LOAD_ reg, loc
- l32i a1, a3, \loc * 4
- wsr a1, \reg
-.endm
-.macro LOAD reg
- LOAD_ \reg, \reg
-.endm
-
- .section ".DebugExceptionVector.text", "ax"
- .global DebugExceptionVector
-
-DebugExceptionVector:
- j 1f
- .align 4
- .literal_position
-1:
- xsr a2, DEBUG_EXCSAVE
- jx a2
-
- .text
- .global DebugExceptionEntry
- .align 4
-
-DebugExceptionEntry:
- j 1f
- .align 4
- .literal_position
-1:
- movi a2, aregs
- s32i a0, a2, 0
- s32i a1, a2, 4
- rsr a1, DEBUG_EXCSAVE
- s32i a1, a2, 8
- s32i a3, a2, 12
-
- movi a3, sregs
- SAVE LBEG
- SAVE LEND
- SAVE LCOUNT
- SAVE SAR
- SAVE WINDOWBASE
- SAVE WINDOWSTART
-
- rsr a1, DEBUG_PC
- movi a2, initial_breakpoint
- bne a1, a2, 1f
- addi a1, a1, 3
-1:
- s32i a1, a3, DEBUG_PC * 4
-
- SAVE EXCSAVE_1
- SAVE_ DEBUG_PS, PS
- SAVE EXCCAUSE
- SAVE DEBUGCAUSE
- SAVE EXCVADDR
-
- movi a1, XCHAL_NUM_AREGS / 4 - 1
- movi a2, aregs
-1:
- s32i a4, a2, 16
- s32i a5, a2, 20
- s32i a6, a2, 24
- s32i a7, a2, 28
-
- addi a6, a2, 16
- addi a5, a1, -1
- rotw 1
- bnez a1, 1b
-
- movi a1, 1
- wsr a1, windowstart
- movi a0, 0
- wsr a0, windowbase
- rsync
-
- movi a0, 0
- movi a1, stack + STACK_SIZE - 20
- rsr a2, ps
- addi a2, a2, -PS_EXCM_MASK
- wsr a2, ps
- rsync
-
- movi a4, handle_exception
- callx4 a4
-
-DebugExceptionExit:
- movi a2, DebugExceptionEntry
- wsr a2, DEBUG_EXCSAVE
-
- rsr a2, ps
- addi a2, a2, PS_EXCM_MASK
- wsr a2, ps
- rsync
-
- movi a3, sregs
- LOAD LBEG
- LOAD LEND
- LOAD LCOUNT
- /* TODO: handle unlikely return-to-lend case */
- LOAD SAR
- LOAD WINDOWBASE
- rsync
- movi a3, sregs
- LOAD WINDOWSTART
- LOAD DEBUG_PC
- LOAD EXCSAVE_1
- LOAD_ DEBUG_PS, PS
- LOAD EXCCAUSE
- LOAD EXCVADDR
-
- movi a6, aregs
- movi a5, XCHAL_NUM_AREGS / 4 - 2
-1:
- l32i a0, a6, 0
- l32i a1, a6, 4
- l32i a2, a6, 8
- l32i a3, a6, 12
-
- beqz a5, 2f
- addi a10, a6, 16
- addi a9, a5, -1
- rotw 1
- j 1b
-2:
- l32i a4, a6, 16
- l32i a5, a6, 20
- l32i a7, a6, 28
- l32i a6, a6, 24
- rotw 2
-
- rfi XCHAL_DEBUGLEVEL
-
-
-#ifdef LIBC_LEVEL1_HANDLER
- .global fault_handler
- .align 4
-fault_handler:
- rsr a2, epc1
- addi a2, a2, 3
- wsr a2, epc1
- rsync
- movi a2, mem_err
- s32i a2, a2, 0
-
- l32i a2, a1, 16
- l32i a3, a1, 20
- addi a1, a1, 256
- rfe
-#endif
-
-
- .global init_debug_entry
- .align 4
-init_debug_entry:
- entry a1, 16
- movi a2, DebugExceptionEntry
- wsr a2, DEBUG_EXCSAVE
- isync
- retw
-
- .global breakpoint
- .align 4
-breakpoint:
- entry a1, 16
-initial_breakpoint:
- _break 0, 0
- retw
diff --git a/hifi/xaf/hifi-dpf/core/util/gdbstub/gdbstub.c b/hifi/xaf/hifi-dpf/core/util/gdbstub/gdbstub.c
deleted file mode 100644
index e125b94..0000000
--- a/hifi/xaf/hifi-dpf/core/util/gdbstub/gdbstub.c
+++ /dev/null
@@ -1,756 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/****************************************************************************
-
- THIS SOFTWARE IS NOT COPYRIGHTED
-
- HP offers the following for use in the public domain. HP makes no
- warranty with regard to the software or it's performance and the
- user accepts the software "AS IS" with all faults.
-
- HP DISCLAIMS ANY WARRANTIES, EXPRESS OR IMPLIED, WITH REGARD
- TO THIS SOFTWARE INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-
-****************************************************************************/
-
-/****************************************************************************
- * Header: remcom.c,v 1.34 91/03/09 12:29:49 glenne Exp $
- *
- * Module name: remcom.c $
- * Revision: 1.34 $
- * Date: 91/03/09 12:29:49 $
- * Contributor: Lake Stevens Instrument Division$
- *
- * Description: low level support for gdb debugger. $
- *
- * Considerations: only works on target hardware $
- *
- * Written by: Glenn Engel $
- * ModuleState: Experimental $
- *
- * NOTES: See Below $
- *
- * Modified for SPARC by Stu Grossman, Cygnus Support.
- *
- * This code has been extensively tested on the Fujitsu SPARClite demo board.
- *
- * To enable debugger support, two things need to happen. One, a
- * call to set_debug_traps() is necessary in order to allow any breakpoints
- * or error conditions to be properly intercepted and reported to gdb.
- * Two, a breakpoint needs to be generated to begin communication. This
- * is most easily accomplished by a call to breakpoint(). Breakpoint()
- * simulates a breakpoint by executing a trap #1.
- *
- *************
- *
- * The following gdb commands are supported:
- *
- * command function Return value
- *
- * g return the value of the CPU registers hex data or ENN
- * G set the value of the CPU registers OK or ENN
- *
- * mAA..AA,LLLL Read LLLL bytes at address AA..AA hex data or ENN
- * MAA..AA,LLLL: Write LLLL bytes at address AA.AA OK or ENN
- *
- * c Resume at current address SNN ( signal NN)
- * cAA..AA Continue at address AA..AA SNN
- *
- * s Step one instruction SNN
- * sAA..AA Step one instruction from AA..AA SNN
- *
- * k kill
- *
- * ? What was the last sigval ? SNN (signal NN)
- *
- * All commands and responses are sent with a packet which includes a
- * checksum. A packet consists of
- *
- * $<packet info>#<checksum>.
- *
- * where
- * <packet info> :: <characters representing the command or response>
- * <checksum> :: < two hex digits computed as modulo 256 sum of <packetinfo>>
- *
- * When a packet is received, it is first acknowledged with either '+' or '-'.
- * '+' indicates a successful transfer. '-' indicates a failed transfer.
- *
- * Example:
- *
- * Host: Reply:
- * $m0,10#2a +$00010203040506070809101112131415#42
- *
- ****************************************************************************/
-#ifdef XAF_ENABLE_NON_HIKEY
-#include "xf.h"
-#else
-#include <string.h>
-#include <signal.h>
-#include <stdint.h>
-#include <xtensa/xtruntime.h>
-#endif
-#include "xtensa-defs.h"
-
-/*******************************************************************************
- * Ring-buffer definition
- ******************************************************************************/
-
-#define RING_SIZE 256
-
-struct ring {
- unsigned char head;
- unsigned char fill1[63];
- unsigned char tail;
- unsigned char fill2[63];
- unsigned char data[RING_SIZE];
-};
-
-#define GDB_INVALIDATE(p) \
- xthal_dcache_region_invalidate((void *)(p), sizeof(*p))
-
-#define GDB_FLUSH(p) \
- xthal_dcache_region_writeback((void *)(p), sizeof(*p))
-
-static inline unsigned int ring_next_head(const volatile struct ring *ring)
-{
- return (ring->head + 1) & (RING_SIZE - 1);
-}
-
-static inline unsigned int ring_next_tail(const volatile struct ring *ring)
-{
- return (ring->tail + 1) & (RING_SIZE - 1);
-}
-
-static inline int ring_have_space(const volatile struct ring *ring)
-{
- /* ...invalidate tail pointer of tx-ring (updated by host) */
- GDB_INVALIDATE(&ring->tail);
-
- return ring_next_head(ring) != ring->tail;
-}
-
-static inline int ring_have_data(const volatile struct ring *ring)
-{
- /* ...invalidate head pointer of rx-ring (updated by host) */
- GDB_INVALIDATE(&ring->head);
-
- return ring->head != ring->tail;
-}
-#ifdef XAF_ENABLE_NON_HIKEY
-#define DEBUG_RX_BASE XF_CFG_GDB_RING_RX
-#define DEBUG_TX_BASE XF_CFG_GDB_RING_TX
-#else
-//#define DEBUG_RX_BASE (0x72000000)
-//#define DEBUG_TX_BASE (0x72000800)
-#define DEBUG_RX_BASE (0x6FFFF000)
-#define DEBUG_TX_BASE (0x6FFFF800)
-#endif
-
-volatile struct ring * const rx = (void *)DEBUG_RX_BASE;
-volatile struct ring * const tx = (void *)DEBUG_TX_BASE;
-
-void init_debug_comm(void)
-{
- rx->head = rx->tail = 0;
- tx->head = tx->tail = 0;
- GDB_FLUSH(&rx->head);
- GDB_FLUSH(&rx->tail);
- GDB_FLUSH(&tx->head);
- GDB_FLUSH(&tx->tail);
-}
-
-/* ...functions defined in asm code */
-extern void breakpoint(void);
-extern void init_debug_entry(void);
-
-void poll_debug_ring(void)
-{
- if (ring_have_data(rx)) {
- breakpoint();
- }
-}
-
-static void putDebugChar(char c)
-{
- while (!ring_have_space(tx))
- ;
-
- tx->data[tx->head] = c;
-
- /* ...flush data buffer to main memory */
- GDB_FLUSH(&tx->data[tx->head]);
-
- tx->head = ring_next_head(tx);
-
- /* ...flush head pointer to main memory */
- GDB_FLUSH(&tx->head);
-}
-
-static int getDebugChar(void)
-{
- int v;
- while (!ring_have_data(rx))
- ;
-
- /* ...inavlidate data buffer */
- GDB_INVALIDATE(&rx->data[rx->tail]);
-
- v = rx->data[rx->tail];
- rx->tail = ring_next_tail(rx);
-
- /* ...update tail index */
- GDB_FLUSH(&rx->tail);
-
- return v;
-}
-
-/************************************************************************/
-/* BUFMAX defines the maximum number of characters in inbound/outbound buffers*/
-/* at least NUMREGBYTES*2 are needed for register packets */
-#define BUFMAX 256
-
-#ifdef USE_GDBSTUB
-#define bulk_data __attribute__((section (".ddr0.data")))
-#else
-#define bulk_data
-#endif
-uint32_t stack[STACK_SIZE / sizeof(uint32_t)] bulk_data;
-static uint8_t sregs_read[32] bulk_data;
-static uint8_t sregs_mod[32] bulk_data;
-static uint8_t sregs_late[32] bulk_data;
-uint32_t sregs[256] bulk_data;
-uint32_t aregs[XCHAL_NUM_AREGS] bulk_data;
-static uint8_t remcomInBuffer[BUFMAX] bulk_data;
-static uint8_t remcomOutBuffer[BUFMAX] bulk_data;
-
-static const char hexchars[]="0123456789abcdef";
-
-/* Convert ch from a hex digit to an int */
-
-static int hex(unsigned char ch)
-{
- if (ch >= 'a' && ch <= 'f')
- return ch-'a'+10;
- if (ch >= '0' && ch <= '9')
- return ch-'0';
- if (ch >= 'A' && ch <= 'F')
- return ch-'A'+10;
- return -1;
-}
-
-/* scan for the sequence $<data>#<checksum> */
-
-unsigned char *getpacket(void)
-{
- unsigned char *buffer = &remcomInBuffer[0];
- unsigned char checksum;
- unsigned char xmitcsum;
- int count;
- char ch;
-
- while (1) {
- /* wait around for the start character, ignore all other characters */
- while ((ch = getDebugChar ()) != '$')
- ;
-
-retry:
- checksum = 0;
- xmitcsum = -1;
- count = 0;
-
- /* now, read until a # or end of buffer is found */
- while (count < BUFMAX - 1) {
- ch = getDebugChar ();
- if (ch == '$')
- goto retry;
- if (ch == '#')
- break;
- checksum = checksum + ch;
- buffer[count] = ch;
- count = count + 1;
- }
- buffer[count] = 0;
-
- if (ch == '#') {
- ch = getDebugChar ();
- xmitcsum = hex (ch) << 4;
- ch = getDebugChar ();
- xmitcsum += hex (ch);
-
- if (checksum != xmitcsum) {
- putDebugChar ('-'); /* failed checksum */
- } else {
- putDebugChar ('+'); /* successful transfer */
-
- /* if a sequence char is present, reply the sequence ID */
- if (buffer[2] == ':') {
- putDebugChar (buffer[0]);
- putDebugChar (buffer[1]);
-
- return &buffer[3];
- }
-
- return &buffer[0];
- }
- }
- }
-}
-
-/* send the packet in buffer. */
-
-static void putpacket(uint8_t *buffer)
-{
- unsigned char checksum;
- int count;
- unsigned char ch;
-
- /* $<packet info>#<checksum>. */
- do {
- putDebugChar('$');
- checksum = 0;
- count = 0;
-
- while ((ch = buffer[count]) != 0) {
- putDebugChar(ch);
- checksum += ch;
- count += 1;
- }
-
- putDebugChar('#');
- putDebugChar(hexchars[checksum >> 4]);
- putDebugChar(hexchars[checksum & 0xf]);
-
- } while (getDebugChar() != '+');
-}
-
-/* Indicate to caller of mem2hex or hex2mem that there has been an
- error. */
-volatile int mem_err = 0;
-
-/* Convert the memory pointed to by mem into hex, placing result in buf.
- * Return a pointer to the last char put in buf (null), in case of mem fault,
- * return 0.
- */
-
-static uint8_t * mem2hex(const void *mem_, uint8_t *buf, int count)
-{
- const unsigned char *mem = mem_;
- unsigned char ch;
-
- mem_err = 0;
- while (count-- > 0) {
-#ifdef __XTENSA__
- unsigned long v;
- unsigned long addr = (unsigned long)mem;
- asm volatile ("_l32i %0, %1, 0\n"
- : "=r"(v)
- : "r"(addr & ~3)
- : "memory");
- ch = v >> (addr & 3) * 8;
-#endif
- mem++;
- if (mem_err)
- return NULL;
- *buf++ = hexchars[ch >> 4];
- *buf++ = hexchars[ch & 0xf];
- }
-
- *buf = 0;
-
- return buf;
-}
-
-/* convert the hex array pointed to by buf into binary to be placed in mem
- * return a pointer to the character AFTER the last byte written */
-
-static uint8_t * hex2mem(const uint8_t *buf, void *mem_, int count)
-{
- uint8_t *mem = mem_;
- int i;
- uint8_t ch;
-
- if ((unsigned long)mem >= 0xece80000)
- return NULL;
-
- mem_err = 0;
- for (i=0; i<count; i++) {
- ch = hex(*buf++) << 4;
- ch |= hex(*buf++);
-#ifdef __XTENSA__
- unsigned long tmp;
- unsigned long addr = (unsigned long)mem;
- asm volatile ("_l32i %0, %1, 0\n"
- "and %0, %0, %2\n"
- "or %0, %0, %3\n"
- "_s32i %0, %1, 0\n"
- "dhwb %1, 0\n"
- "ihi %1, 0\n"
- : "=r"(tmp)
- : "r"(addr & ~3), "r"(0xffffffff ^ (0xff << (addr & 3) * 8)), "r"(ch << (addr & 3) * 8)
- : "memory");
-#endif
- mem++;
- if (mem_err)
- return NULL;
- }
-
- return mem;
-}
-
-/*
- * While we find nice hex chars, build an int.
- * Return number of chars processed.
- */
-
-static int hexToInt(uint8_t **ptr, int *intValue)
-{
- int numChars = 0;
- int hexValue;
-
- *intValue = 0;
-
- while (**ptr) {
- hexValue = hex(**ptr);
- if (hexValue < 0)
- break;
-
- *intValue = (*intValue << 4) | hexValue;
- numChars ++;
-
- (*ptr)++;
- }
-
- return (numChars);
-}
-
-static inline int test_bit(const uint8_t *p, int bit)
-{
- return (p[bit / 8] >> (bit & 0x7)) & 1;
-}
-static inline int set_bit(uint8_t *p, int bit)
-{
- return (p[bit / 8] |= 1u << (bit & 0x7));
-}
-
-static inline void mark_read(int sr)
-{
- set_bit(sregs_read, sr);
-}
-static inline int is_read(int sr)
-{
- return test_bit(sregs_read, sr);
-}
-static inline void mark_mod(int sr)
-{
- set_bit(sregs_mod, sr);
-}
-static inline int is_mod(int sr)
-{
- return test_bit(sregs_mod, sr);
-}
-static inline void mark_late(int sr)
-{
- set_bit(sregs_late, sr);
-}
-static inline int is_late(int sr)
-{
- return test_bit(sregs_late, sr);
-}
-
-static void read_sr(int sr)
-{
- if (!is_read(sr)) {
-#ifdef __XTENSA__
- uint32_t val;
- asm volatile ("movi a3, 1f + 1\n"
- "s8i %1, a3, 0\n"
- "dhwb a3, 0\n"
- "ihi a3, 0\n"
- "isync\n"
- "1:\n"
- "rsr %0, lbeg\n"
- : "=r"(val)
- : "r"(sr)
- : "a3", "memory");
- sregs[sr] = val;
-#endif
- mark_read(sr);
- }
-}
-
-static void write_sr(int sr)
-{
-#ifdef __XTENSA__
- asm volatile ("movi a3, 1f + 1\n"
- "s8i %1, a3, 0\n"
- "dhwb a3, 0\n"
- "ihi a3, 0\n"
- "isync\n"
- "1:\n"
- "wsr %0, lbeg\n"
- :
- : "r"(sregs[sr]), "r"(sr)
- : "a3", "memory");
-#endif
-}
-
-static void restore_sr(void)
-{
- int i;
- for (i = 0; i < 256; ++i)
- if (is_mod(i) && !is_late(i))
- write_sr(i);
-}
-
-extern void *_xtos_exc_handler_table[];
-void fault_handler(void);
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a)))
-
-void handle_exception(void)
-{
- int sigval = 0;
- int addr;
- int length;
- uint8_t *ptr;
- unsigned i;
- const unsigned windowbase = 4 * sregs[WINDOWBASE];
- uint8_t stop_status[4] = "Sxx";
-#ifdef LIBC_LEVEL1_HANDLER
- static const int cause[] = {
- EXCCAUSE_LOAD_STORE_ERROR,
- EXCCAUSE_LOAD_STORE_DATA_ERROR,
- EXCCAUSE_LOAD_STORE_ADDR_ERROR,
- EXCCAUSE_DTLB_MISS,
- EXCCAUSE_DTLB_MULTIHIT,
- EXCCAUSE_LOAD_PROHIBITED,
- EXCCAUSE_STORE_PROHIBITED,
- };
- _xtos_handler handler[sizeof(cause) / sizeof(cause[0])];
-
- for (i = 0; i < ARRAY_SIZE(cause); ++i) {
- handler[i] = _xtos_exc_handler_table[cause[i]];
- _xtos_exc_handler_table[cause[i]] = fault_handler;
- }
-#endif
- memcpy(sregs_read, sregs_late, sizeof(sregs_read));
- memset(sregs_mod, 0, sizeof(sregs_mod));
-
- sigval = 5;
- stop_status[1] = hexchars[sigval >> 4];
- stop_status[2] = hexchars[sigval & 0xf];
-
- if (sregs[DEBUGCAUSE] & DEBUGCAUSE_ICOUNT_MASK) {
- sregs[ICOUNTLEVEL] = 0;
- mark_mod(ICOUNTLEVEL);
- }
- putpacket(stop_status);
-
- while (1) {
- remcomOutBuffer[0] = 0;
-
- ptr = getpacket();
- switch (*ptr++) {
- case '?':
- memcpy(remcomOutBuffer, stop_status, sizeof(stop_status));
- break;
-
- case 'c': /* cAA..AA Continue at address AA..AA(optional) */
- /* try to read optional parameter, pc unchanged if no parm */
-
- if (hexToInt(&ptr, &addr))
- sregs[DEBUG_PC] = addr;
- goto out;
-
- case 'm': /* mAA..AA,LLLL Read LLLL bytes at address AA..AA */
- /* Try to read %x,%x. */
-
- if (hexToInt(&ptr, &addr) && *ptr++ == ',' &&
- hexToInt(&ptr, &length)) {
- if (mem2hex((void *)addr, remcomOutBuffer, length))
- break;
-
- strcpy((char *)remcomOutBuffer, "E03");
- } else {
- strcpy((char *)remcomOutBuffer, "E01");
- }
- break;
-
- case 'M': /* MAA..AA,LLLL: Write LLLL bytes at address AA.AA return OK */
- /* Try to read '%x,%x:'. */
-
- if (hexToInt(&ptr, &addr) && *ptr++ == ',' &&
- hexToInt(&ptr, &length) && *ptr++ == ':') {
- if (hex2mem(ptr, (void *)addr, length))
- strcpy((char *)remcomOutBuffer, "OK");
- else
- strcpy((char *)remcomOutBuffer, "E03");
- } else {
- strcpy((char *)remcomOutBuffer, "E02");
- }
- break;
-
- case 'p': /* pAA..AA read register number AA..AA */
- if (hexToInt(&ptr, &addr)) {
- if (addr < 0x10) { /* read address register in the current window */
- mem2hex(aregs + addr, remcomOutBuffer, 4);
- } else if (addr == 0x20) { /* read PC */
- mem2hex(sregs + DEBUG_PC, remcomOutBuffer, 4);
- } else if (addr >= 0x100 && addr < 0x100 + XCHAL_NUM_AREGS) { /* read address register by absolute index */
- mem2hex(aregs + ((addr - windowbase) & 0xff), remcomOutBuffer, 4);
- } else if (addr >= 0x200 && addr < 0x300) { /* read special register */
- addr &= 0xff;
- read_sr(addr);
- mem2hex(sregs + addr, remcomOutBuffer, 4);
- } else if (addr >= 0x300 && addr < 0x400) { /* TODO read user register */
- strcpy((char *)remcomOutBuffer, "deadbabe");
- } else { /* unexpected register number */
- strcpy((char *)remcomOutBuffer, "E00");
- }
- }
- break;
-
- case 'P': /* PAA..AA=VV..VV Set register number AA..AA to a value VV..VV */
- if (hexToInt(&ptr, &addr) && *(ptr++) == '=') {
- int ok = 1;
-
- if (addr < 0x10) {
- hex2mem(ptr, aregs + addr, 4);
- } else if (addr == 0x20) {
- hex2mem(ptr, sregs + DEBUG_PC, 4);
- } else if (addr >= 0x100 && addr < 0x100 + XCHAL_NUM_AREGS) {
- hex2mem(ptr, aregs + ((addr - windowbase) & 0xff), 4);
- } else if (addr >= 0x200 && addr < 0x300) {
- addr &= 0xff;
- hex2mem(ptr, sregs + addr, 4);
- mark_read(addr);
- mark_mod(addr);
- } else {
- ok = 0;
- strcpy((char *)remcomOutBuffer, "E00");
- }
- if (ok)
- strcpy((char *)remcomOutBuffer, "OK");
- }
- break;
-
- case 'q': /* generic query */
- if (strncmp((char *)ptr, "Supported", 9) == 0)
- strcpy((char *)remcomOutBuffer, "PacketSize=100"); /* must match BUFMAX */
- break;
-
- case 's': /* s[AA..AA] Single step */
- if (hexToInt(&ptr, &addr))
- sregs[DEBUG_PC] = addr;
- sregs[ICOUNT] = 0xfffffffe;
- mark_mod(ICOUNT);
- sregs[ICOUNTLEVEL] = XCHAL_DEBUGLEVEL;
- mark_mod(ICOUNTLEVEL);
- goto out;
-
- case 'Z': /* insert HW breakpoint*/
- switch (*ptr++) {
- case '1':
- read_sr(IBREAKENABLE);
- if (*ptr++ == ',' && hexToInt(&ptr, &addr) &&
- *ptr++ == ',' && hexToInt(&ptr, &length) &&
- *ptr == 0) {
- for (i = 0; i < XCHAL_NUM_IBREAK; ++i) {
- if (!(sregs[IBREAKENABLE] & (1 << i)) ||
- sregs[IBREAKA + i] == addr) {
- sregs[IBREAKA + i] = addr;
- mark_mod(IBREAKA + i);
- sregs[IBREAKENABLE] |= (1 << i);
- mark_mod(IBREAKENABLE);
- break;
- }
- }
- if (i == XCHAL_NUM_IBREAK)
- strcpy((char *)remcomOutBuffer, "E02");
- else
- strcpy((char *)remcomOutBuffer, "OK");
- } else {
- strcpy((char *)remcomOutBuffer, "E01");
- }
- break;
- }
- break;
-
- case 'z': /* remove HW breakpoint */
- switch (*ptr++) {
- case '1':
- read_sr(IBREAKENABLE);
- if (*ptr++ == ',' && hexToInt(&ptr, &addr) &&
- *ptr++ == ',' && hexToInt(&ptr, &length)) {
- for (i = 0; i < XCHAL_NUM_IBREAK; ++i) {
- read_sr(IBREAKA + i);
- if (sregs[IBREAKENABLE] & (1 << i) &&
- sregs[IBREAKA + i] == addr) {
- sregs[IBREAKENABLE] &= ~(1 << i);
- mark_mod(IBREAKENABLE);
- break;
- }
- }
- if (i == XCHAL_NUM_IBREAK)
- strcpy((char *)remcomOutBuffer, "E02");
- else
- strcpy((char *)remcomOutBuffer, "OK");
- } else {
- strcpy((char *)remcomOutBuffer, "E01");
- }
- break;
- }
- break;
- }
-
- /* reply to the request */
- putpacket(remcomOutBuffer);
- }
-out:
-#ifdef LIBC_LEVEL1_HANDLER
- for (i = 0; i < ARRAY_SIZE(cause); ++i) {
- _xtos_exc_handler_table[cause[i]] = handler[i];
- }
-#endif
- restore_sr();
-}
-
-void init_gdbstub(void)
-{
- mark_late(LBEG);
- mark_late(LEND);
- mark_late(LCOUNT);
- mark_late(SAR);
- mark_late(WINDOWBASE);
- mark_late(WINDOWSTART);
- mark_late(DEBUG_PC);
- mark_late(EXCSAVE_1);
- mark_late(PS);
- mark_late(EXCCAUSE);
- mark_late(DEBUGCAUSE);
- mark_late(EXCVADDR);
-#ifdef __XTENSA__
- init_debug_comm();
- init_debug_entry();
-#endif
-}
diff --git a/hifi/xaf/hifi-dpf/core/util/gdbstub/xtensa-defs.h b/hifi/xaf/hifi-dpf/core/util/gdbstub/xtensa-defs.h
deleted file mode 100644
index 6ba485f..0000000
--- a/hifi/xaf/hifi-dpf/core/util/gdbstub/xtensa-defs.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-#ifndef XTENSA_DEFS_H
-#define XTENSA_DEFS_H
-
-#include <xtensa/specreg.h>
-#include <xtensa/config/core-isa.h>
-#include <xtensa/corebits.h>
-
-#define _AREG0 256
-
-#define STACK_SIZE 1024
-#define DEBUG_PC (EPC + XCHAL_DEBUGLEVEL)
-#define DEBUG_EXCSAVE (EXCSAVE + XCHAL_DEBUGLEVEL)
-#define DEBUG_PS (EPS + XCHAL_DEBUGLEVEL)
-
-#endif /* XTENSA_DEFS_H */
diff --git a/hifi/xaf/hifi-dpf/core/util/mutex.c b/hifi/xaf/hifi-dpf/core/util/mutex.c
deleted file mode 100644
index d62a6a1..0000000
--- a/hifi/xaf/hifi-dpf/core/util/mutex.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * mutex.c
- *
- * Implementation of non-robust Szymanski linear-waiting algorithm. Types of
- * failures tolerated by Szymanski's "robust" algorithm are not specific for
- * Xtensa DSP cluster and therefore more lightweight version of the algorithm
- * is used. FIFO servicing property is of low importance, and faster/smaller
- * version with linear-wait property is preferable.
- ******************************************************************************/
-
-#include "xf.h"
-
-/*******************************************************************************
- * Local constants definitions
- ******************************************************************************/
-
-/* ...communication variables */
-#define __M_A (1 << 0)
-#define __M_W (1 << 1)
-#define __M_S (1 << 2)
-
-/* ...process states (updated atomically) */
-#define M_PASSIVE (0)
-#define M_ENTRY (__M_A)
-#define M_INSIDE (__M_W)
-#define M_TRANSIENT (__M_S | __M_W)
-#define M_EXIT (__M_S)
-
-/* ...total number of cores */
-#define M_N XF_CFG_CORES_NUM
-
-/* ...do not compile the code if there is just a single core */
-#if M_N > 1
-/*******************************************************************************
- * Entry points
- ******************************************************************************/
-
-void mutex_lock(u32 i)
-{
- u32 j;
-
- /* ...p1: i-th core goes into "entry" state (aws = true,false,false) */
- MUTEX_SHARED_WRITE(i, M_ENTRY);
-
- /* ...p2: wait all processes have sj=false (waiting room door is open) */
- for (j = 0; j < M_N; j++)
- {
- /* ...wait until sj = false */
- while (MUTEX_SHARED_READ(j) & __M_S) (void) 0;
- }
-
- /* ...p3: i-th core enters "inside" state (aws = false,true,false) */
- MUTEX_SHARED_WRITE(i, M_INSIDE);
-
-p4:
- /* ...p4: wait in "inside" state */
- for (j = 0; j < M_N; j++)
- {
- /* ...p5: check if any of the cores appears is in "entry" state (aj=true) */
- if (MUTEX_SHARED_READ(j) & __M_A)
- {
- /* ...p5: found core in "entry" state (j < n); wait until it enters waiting room */
- goto p7;
- }
- }
-
- /* ...p6: j == n; enter into "transient" state (ai=false, wi=true, si=true) */
- MUTEX_SHARED_WRITE(i, M_TRANSIENT);
-
- /* ...p6.1: check for any core appearing in "entry" room */
- for (j = 0; j < M_N; j++)
- {
- if (MUTEX_SHARED_READ(j) & __M_A)
- {
- /* ...p6.2: found core in "entry" state (j < n) */
- MUTEX_SHARED_WRITE(i, M_INSIDE);
-
- /* ...back of to the "inside" state */
- goto p7;
- }
- }
-
- /* ...p6.3: no cores in "entry" room (j == n); go to "exit" state (ai=false, wi=false, si=true) */
- MUTEX_SHARED_WRITE(i, M_EXIT);
-
- /* ...p6.4: allow all cores to leave "transient" state (i.e. switch to "exit") */
- for (j = 0; j < M_N; j++)
- {
- while (MUTEX_SHARED_READ(j) & __M_W) (void) 0;
- }
-
- goto p9;
-
-p7:
- /* ...j < n condition is met; find any cores in "inside" state (wj = true, sj = false) */
- for (j = 0; j < M_N; j++)
- {
- /* ...check if the core is in "exit" state */
- if (MUTEX_SHARED_READ(j) == M_EXIT)
- {
- /* ...p8.1: different core is a leader; go to "exit" state (ai=false, wi=false, si=true) */
- MUTEX_SHARED_WRITE(i, M_EXIT);
-
- goto p9;
- }
- }
-
- /* ...wait in "inside" state while all transients settle */
- goto p4;
-
-p9:
- /* ...p9: i-th core is in "exit" state; enter critical section in accordance with numbering */
- for (j = 0; j < i; j++)
- {
- /* ...wait until core with lower number in "inside"/"transient"/"exit" states leaves */
- while (MUTEX_SHARED_READ(j) & (__M_W | __M_S)) (void) 0;
- }
-
- /* ...critical section entered */
-}
-
-/*******************************************************************************
- * mutex_unlock
- *
- * Release multi-core mutex
- ******************************************************************************/
-
-void mutex_unlock(u32 i)
-{
- /* ...enter into "passive" state (ai=false, wi=false, si=false) */
- MUTEX_SHARED_WRITE(i, M_PASSIVE);
-}
-
-#endif /* M_N > 1 */
diff --git a/hifi/xaf/hifi-dpf/core/util/rbtree.c b/hifi/xaf/hifi-dpf/core/util/rbtree.c
deleted file mode 100644
index 740e025..0000000
--- a/hifi/xaf/hifi-dpf/core/util/rbtree.c
+++ /dev/null
@@ -1,842 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * rbtree.c
- *
- * Red-black tree library
- ******************************************************************************/
-
-#include "xf.h"
-
-/*******************************************************************************
- * Macros definitions
- ******************************************************************************/
-
-/* ...node color */
-#define RB_RED (1)
-#define RB_BLK (0)
-
-/* ...pointer to parent node */
-#define RB_PARENT(tree, node) ((node)->parent)
-
-/* ...pointer to left child node */
-#define RB_LEFT(tree, node) ((node)->left)
-
-/* ...pointer to right child node */
-#define RB_RIGHT(tree, node) ((node)->right)
-
-/* ...pointer to right child node */
-#define RB_COLOR(tree, node) ((node)->color & 1)
-
-/* ...check if node is black */
-#define RB_IS_BLACK(tree, node) (!((node)->color & RB_RED))
-
-/* ...root node index of the tree - can be simplified? */
-#define RB_ROOT(tree) RB_LEFT((tree), &(tree)->root)
-
-/* ...empty node */
-#define RB_NULL(tree) (&(tree)->root)
-
-/*******************************************************************************
- * Helpers
- ******************************************************************************/
-
-#define RB_SET_P(t, n, p) \
- ({ (n)->parent = (p); })
-
-#define RB_SET_L(t, n, l) \
- ({ (n)->left = (l); })
-
-#define RB_SET_R(t, n, r) \
- ({ (n)->right = (r); })
-
-#define RB_SET_C(t, n, c) \
- RB_SET_C_##c((t), (n))
-
-#define RB_SET_C_RB_BLK(t, n) \
- ({ (n)->color &= ~1; })
-
-#define RB_SET_C_RB_RED(t, n) \
- ({ (n)->color |= 1; })
-
-#define RB_SET_P_C(t, n, p, c) \
- ({ (n)->parent = (p); RB_SET_C_##c(t, n); })
-
-#define RB_SET_P_L(t, n, p, l) \
- ({ (n)->parent = (p); (n)->left = (l); })
-
-#define RB_SET_P_L_C(t, n, p, l, c) \
- ({ (n)->parent = (p); (n)->left = (l); RB_SET_C_##c(t, n); })
-
-#define RB_SET_P_R(t, n, p, r) \
- ({ (n)->parent = (p); (n)->right = (r); })
-
-#define RB_SET_P_R_C(t, n, p, r, c) \
- ({ (n)->parent = (p); (n)->right = (r); RB_SET_C_##c(t, n); })
-
-#define RB_SET_P_L_R(t, n, p, l, r) \
- ({ (n)->parent = (p); (n)->left = (l); (n)->right = (r); })
-
-#define RB_SET_P_L_R_C(t, n, p, l, r, c)\
- ({ (n)->parent = (p); (n)->left = (l); (n)->right = (r); RB_SET_C_##c(t, n); })
-
-#define RB_SET_ROOT(t, n) \
- RB_SET_L((t), &(t)->root, (n))
-
-/*******************************************************************************
- * RB-tree functions
- ******************************************************************************/
-
-/*******************************************************************************
- * rb_first, rb_last
- *
- * Return pointer to first/last item in the tree
- ******************************************************************************/
-
-rb_idx_t rb_first(rb_tree_t *tree)
-{
- rb_idx_t p_idx, t_idx;
-
- if ((p_idx = RB_ROOT(tree)) != RB_NULL(tree))
- {
- /* ...find left-most item in non-empty tree */
- while ((t_idx = RB_LEFT(tree, p_idx)) != RB_NULL(tree))
- p_idx = t_idx;
- }
-
- return p_idx;
-}
-
-rb_idx_t rb_last(rb_tree_t *tree)
-{
- rb_idx_t p_idx, t_idx;
-
- if ((p_idx = RB_ROOT(tree)) != RB_NULL(tree))
- {
- /* ...find right-most item in non-empty tree */
- while ((t_idx = RB_RIGHT(tree, p_idx)) != RB_NULL(tree))
- p_idx = t_idx;
- }
-
- return p_idx;
-}
-
-/*******************************************************************************
- * rb_next, rb_prev
- *
- * Return next / previous in-order item in the tree
- ******************************************************************************/
-
-rb_idx_t rb_next(rb_tree_t *tree, rb_idx_t n_idx)
-{
- rb_idx_t p_idx, c_idx, t_idx;
-
- /* ...if we have any right children, process them */
- if ((c_idx = RB_RIGHT(tree, n_idx)) != RB_NULL(tree))
- {
- /* ...descent to the left-most node starting from right child */
- while ((t_idx = RB_LEFT(tree, c_idx)) != RB_NULL(tree))
- c_idx = t_idx;
- return c_idx;
- }
-
- /* ...no right children; ascend to our parent while we are right child */
- while ((p_idx = RB_PARENT(tree, n_idx)) != RB_NULL(tree))
- {
- /* ...as soon as "n" is a left child, return "p" */
- if (n_idx == RB_RIGHT(tree, p_idx))
- n_idx = p_idx;
- else
- return p_idx;
- }
-
- /* ...we were right-most child */
- return p_idx;
-}
-
-rb_idx_t rb_prev(rb_tree_t *tree, rb_idx_t n_idx)
-{
- rb_idx_t p_idx, c_idx, t_idx;
-
- /* ...if we have any left children, process them */
- if ((c_idx = RB_LEFT(tree, n_idx)) != RB_NULL(tree))
- {
- /* ...descent to the right-most node starting from left child */
- while ((t_idx = RB_RIGHT(tree, c_idx)) != RB_NULL(tree))
- c_idx = t_idx;
- return c_idx;
- }
-
- /* ...no left children; ascend to our parent while we are left child */
- while ((p_idx = RB_PARENT(tree, n_idx)) != RB_NULL(tree))
- {
- /* ...as soon as "n" is a right child, return "p" */
- if (n_idx == RB_LEFT(tree, p_idx))
- n_idx = p_idx;
- else
- return p_idx;
- }
-
- /* ...we were left-most child */
- return p_idx;
-}
-
-/*******************************************************************************
- * rb_init
- *
- * Initialize rb-tree structure
- ******************************************************************************/
-
-void rb_init(rb_tree_t *tree)
-{
- /* ...initialize sentinel node of the empty tree */
- RB_SET_P_L_R_C(tree, &tree->root, RB_NULL(tree), RB_NULL(tree), RB_NULL(tree), RB_BLK);
-}
-
-/*******************************************************************************
- * rb_insert
- *
- * Insert new item into RB-tree. Returns non-zero node index on success
- ******************************************************************************/
-
-/* ...internal tree balancing function */
-static void __rb_insert_balance(rb_tree_t *tree, rb_idx_t n_idx, rb_idx_t p_idx)
-{
- rb_idx_t u_idx, g_idx, t_idx, cl_idx, cr_idx;
-
-rebalance:
-
- /***************************************************************************
- * Trivial case #1 - N (red) is a root
- **************************************************************************/
-
- if (p_idx == RB_NULL(tree))
- {
- RB_SET_C(tree, n_idx, RB_BLK);
- goto root;
- }
-
- /***************************************************************************
- * Trivial case #2 - P is black
- **************************************************************************/
-
- if (RB_IS_BLACK(tree, p_idx))
- goto done;
-
- /***************************************************************************
- * Complex cases - P is red, N is red
- **************************************************************************/
-
- /* ...grandparent must exist and be black */
- g_idx = RB_PARENT(tree, p_idx);
- if (p_idx == RB_LEFT(tree, g_idx))
- {
- /* ...we are left grandchild; get uncle (if it exists) */
- u_idx = RB_RIGHT(tree, g_idx);
-
- /* ...if U is read, we have conditions of case #3 */
- if (!RB_IS_BLACK(tree, u_idx))
- goto case3;
-
- /* ...we will need grand-grand-parent later */
- t_idx = RB_PARENT(tree, g_idx);
-
- /* ...U is black/null; if we are LL grandchild, we have case #5 */
- if (n_idx == RB_LEFT(tree, p_idx))
- goto case5_ll;
-
- /* ...N is RL grandchild of G; case #4 */
- goto case4_rl;
- }
- else
- {
- /* ...we are right grandchild; get uncle (if it exists) */
- u_idx = RB_LEFT(tree, g_idx);
-
- /* ...if U is read, we have conditions of case #3 */
- if (!RB_IS_BLACK(tree, u_idx))
- goto case3;
-
- /* ...we will need grand-grand-parent later */
- t_idx = RB_PARENT(tree, g_idx);
-
- /* ...U is black/null; if we are RR grandchild, we have case #5 */
- if (n_idx == RB_RIGHT(tree, p_idx))
- goto case5_rr;
-
- /* ...N is LR grandchild of G; case #4 */
- goto case4_lr;
- }
-
-case4_rl:
-
- /***************************************************************************
- * Case #4 - P is red, U is black, N is red RL grandchild of G. We will do
- * two tree rotations - first the one described in case #4, second is the
- * one described in case #5 (as have conditions for case #5(LL) with P and
- * N changing roles
- **************************************************************************/
-
- cl_idx = RB_LEFT(tree, n_idx), cr_idx = RB_RIGHT(tree, n_idx);
- RB_SET_P_L_R_C(tree, n_idx, t_idx, p_idx, g_idx, RB_BLK);
- RB_SET_P_R(tree, p_idx, n_idx, cl_idx);
- RB_SET_P(tree, cl_idx, p_idx);
- RB_SET_P_L_C(tree, g_idx, n_idx, cr_idx, RB_RED);
- RB_SET_P(tree, cr_idx, g_idx);
-
- /* ...new root of subtree is N; adjust T pointer */
- goto case5_xx;
-
-case4_lr:
-
- /***************************************************************************
- * Case #4 - P is red, U is black, N is red LR grandchild of G. We will do
- * two tree rotations - first the one described in case #4, second is the
- * one described in case #5 (as have conditions for case #5(RR) with P and
- * N changing roles
- **************************************************************************/
-
- cl_idx = RB_LEFT(tree, n_idx), cr_idx = RB_RIGHT(tree, n_idx);
- RB_SET_P_L_R_C(tree, n_idx, t_idx, g_idx, p_idx, RB_BLK);
- RB_SET_P_L(tree, p_idx, n_idx, cr_idx);
- RB_SET_P(tree, cr_idx, p_idx);
- RB_SET_P_R_C(tree, g_idx, n_idx, cl_idx, RB_RED);
- RB_SET_P(tree, cl_idx, g_idx);
-
- /* ...new root of the subtree is N; adjust T pointer */
- goto case5_xx;
-
-case5_ll:
-
- /***************************************************************************
- * Case #5: N is LL grandchild of P; N and P red, G and U black
- **************************************************************************/
-
- cr_idx = RB_RIGHT(tree, p_idx);
- RB_SET_P_L_C(tree, g_idx, p_idx, cr_idx, RB_RED);
- RB_SET_P(tree, cr_idx, g_idx);
- RB_SET_P_R_C(tree, p_idx, t_idx, g_idx, RB_BLK);
-
- /* ...new root of the subtree is P; relabel and adjust T pointer */
- n_idx = p_idx;
- goto case5_xx;
-
-case5_rr:
-
- /***************************************************************************
- * Case #5: N is RR grandchild of P; N and P red, G and U black
- **************************************************************************/
-
- cl_idx = RB_LEFT(tree, p_idx);
- RB_SET_P_R_C(tree, g_idx, p_idx, cl_idx, RB_RED);
- RB_SET_P(tree, cl_idx, g_idx);
- RB_SET_P_L_C(tree, p_idx, t_idx, g_idx, RB_BLK);
-
- /* ...new root of the subtree is P; relabel and adjust T pointer */
- n_idx = p_idx;
- goto case5_xx;
-
-case5_xx:
-
- /* ...N is a (black) root of subtree; check if it is a root of tree as well */
- if (t_idx == RB_NULL(tree))
- goto root;
- else if (g_idx == RB_LEFT(tree, t_idx))
- RB_SET_L(tree, t_idx, n_idx);
- else
- RB_SET_R(tree, t_idx, n_idx);
-
- goto done;
-
-case3:
-
- /***************************************************************************
- * Case #3 - P and U are red, G is black
- **************************************************************************/
-
- RB_SET_C(tree, p_idx, RB_BLK);
- RB_SET_C(tree, u_idx, RB_BLK);
- RB_SET_C(tree, g_idx, RB_RED);
-
- /* ...rebalance the tree for a G */
- n_idx = g_idx, p_idx = RB_PARENT(tree, g_idx);
- goto rebalance;
-
-root:
- /* ...adjust root pointer of the tree */
- RB_SET_ROOT(tree, n_idx);
-
-done:
- /* ...tree is balanced */
- return;
-}
-
-/* ...high-level API function */
-void rb_insert(rb_tree_t *tree, rb_idx_t n_idx, rb_idx_t p_idx)
-{
- if (p_idx == RB_NULL(tree))
- {
- /* ...set black root node */
- RB_SET_P_L_R_C(tree, n_idx, p_idx, p_idx, p_idx, RB_BLK);
-
- /* ...tree consists of the only root node; is balanced */
- RB_SET_ROOT(tree, n_idx);
- }
- else
- {
- /* ...create new node - set parent pointer and paint red */
- RB_SET_P_L_R_C(tree, n_idx, p_idx, RB_NULL(tree), RB_NULL(tree), RB_RED);
-
- /* ...and rebalance the tree */
- __rb_insert_balance(tree, n_idx, p_idx);
- }
-}
-
-/*******************************************************************************
- * rb_delete
- *
- * Remove item from RB-key (by key). Returns zero on success
- ******************************************************************************/
-
-/* ...internal tree balancing function */
-static void __rb_delete_rebalance(rb_tree_t *tree, rb_idx_t p_idx)
-{
- rb_idx_t n_idx, s_idx, sl_idx, sr_idx, g_idx, c_idx, cl_idx, cr_idx;
-
- /* ...initialize rebalancing procedure with null-child of P */
- n_idx = RB_NULL(tree);
-
-rebalance:
-
- /* ...save grand-parent pointer (may be null) */
- g_idx = RB_PARENT(tree, p_idx);
-
- /***************************************************************************
- * Check for complex cases
- **************************************************************************/
-
- if (n_idx == RB_LEFT(tree, p_idx))
- {
- /* ...N is left child; get sibling (must exist) and its children */
- s_idx = RB_RIGHT(tree, p_idx);
- sl_idx = RB_LEFT(tree, s_idx);
- sr_idx = RB_RIGHT(tree, s_idx);
-
- /* ...if S is black, test for conditions 3,4,5,6; otherwise - case 2 */
- if (RB_IS_BLACK(tree, s_idx))
- goto test3_l;
- else
- goto case2_l;
- }
- else
- {
- /* ...N is right child; get sibling (must exist) and its children */
- s_idx = RB_LEFT(tree, p_idx);
- sl_idx = RB_LEFT(tree, s_idx);
- sr_idx = RB_RIGHT(tree, s_idx);
-
- /* ...if S is black, test for conditions 3,4,5,6; otherwise - case 2 */
- if (RB_IS_BLACK(tree, s_idx))
- goto test3_r;
- else
- goto case2_r;
- }
-
-case2_l:
-
- /***************************************************************************
- * Case #2: N is a left child of P; S is red
- **************************************************************************/
-
- c_idx = sl_idx;
- RB_SET_P_L_C(tree, s_idx, g_idx, p_idx, RB_BLK);
- RB_SET_P_R_C(tree, p_idx, s_idx, c_idx, RB_RED);
- RB_SET_P(tree, c_idx, p_idx);
-
- /* ...S is new root of subtree, Sl(C) is new sibling of N; update G */
- goto case2_x;
-
-case2_r:
-
- /***************************************************************************
- * Case #2: N is a right child of P; S is red
- **************************************************************************/
-
- c_idx = sr_idx;
- RB_SET_P_R_C(tree, s_idx, g_idx, p_idx, RB_BLK);
- RB_SET_P_L_C(tree, p_idx, s_idx, c_idx, RB_RED);
- RB_SET_P(tree, c_idx, p_idx);
-
- /* ...S is new root of subtree, Sr(C) is new sibling of N; update G */
- goto case2_x;
-
-case2_x:
-
- /* ...check if S is becoming new (black) root of the tree */
- if (g_idx == RB_NULL(tree))
- RB_SET_ROOT(tree, s_idx);
- else if (p_idx == RB_LEFT(tree, g_idx))
- RB_SET_L(tree, g_idx, s_idx);
- else
- RB_SET_R(tree, g_idx, s_idx);
-
- /* ...relabel new N's grandparent (now S) as G and new sibling (now C) as S */
- g_idx = s_idx, s_idx = c_idx;
- sl_idx = RB_LEFT(tree, s_idx);
- sr_idx = RB_RIGHT(tree, s_idx);
-
- /* ...N is still one of P's children; select proper side */
- if (n_idx == RB_LEFT(tree, p_idx))
- goto test3_l;
- else
- goto test3_r;
-
-test3_l:
-
- /***************************************************************************
- * Test for cases 3,4,5,6; P is any, S is black. N is left child of P
- **************************************************************************/
-
- if (!RB_IS_BLACK(tree, sr_idx))
- /* ...Sr is red, Sl of any color; conditions for case #6 are met */
- goto case6_l;
- else if (!RB_IS_BLACK(tree, sl_idx))
- /* ...Sr is black and Sl is red; conditions for case #5 are met */
- goto case5_l;
- else if (RB_IS_BLACK(tree, p_idx))
- /* ...Sl and Sr are of the same (black) color and P is black */
- goto case3;
- else
- /* ...Sl and Sr are of the same (black) color and P is red */
- goto case4;
-
-test3_r:
-
- /***************************************************************************
- * Test for cases 3,4,5,6; P is any, S is black. N is right child of P
- **************************************************************************/
-
- if (!RB_IS_BLACK(tree, sl_idx))
- /* ...Sl is red, Sr of any color; conditions for case #6 are met */
- goto case6_r;
- else if (!RB_IS_BLACK(tree, sr_idx))
- /* ...Sl is black and Sr is red; conditions for case #5 are met */
- goto case5_r;
- else if (RB_IS_BLACK(tree, p_idx))
- /* ...Sl and Sr are of the same (black) color and P is black */
- goto case3;
- else
- /* ...Sl and Sr are of the same (black) color and P is red */
- goto case4;
-
-case3:
-
- /***************************************************************************
- * Case #3: N, P, S, Sl and Sr are black
- **************************************************************************/
-
- RB_SET_C(tree, s_idx, RB_RED);
-
- /* ...and rebalance the tree for parent */
- n_idx = p_idx, p_idx = RB_PARENT(tree, p_idx);
-
- if (p_idx == RB_NULL(tree))
- goto done;
- else
- goto rebalance;
-
-case4:
-
- /***************************************************************************
- * Case #4: N and S are black, P is red, Sl and Sr are all black
- **************************************************************************/
-
- RB_SET_C(tree, s_idx, RB_RED);
- RB_SET_C(tree, p_idx, RB_BLK);
-
- goto done;
-
-case5_l:
- /***************************************************************************
- * Case #5: S is black, Sl is red, Sr is black; N is left child of P. We
- * have two subsequent transformations (case #5 and case #6) combined
- **************************************************************************/
-
- cl_idx = RB_LEFT(tree, sl_idx);
- cr_idx = RB_RIGHT(tree, sl_idx);
-
- if (RB_IS_BLACK(tree, p_idx))
- RB_SET_P_L_R_C(tree, sl_idx, g_idx, p_idx, s_idx, RB_BLK);
- else
- RB_SET_P_L_R_C(tree, sl_idx, g_idx, p_idx, s_idx, RB_RED);
-
- RB_SET_P_R_C(tree, p_idx, sl_idx, cl_idx, RB_BLK);
- RB_SET_P(tree, cl_idx, p_idx);
- RB_SET_P_L(tree, s_idx, sl_idx, cr_idx);
- RB_SET_P(tree, cr_idx, s_idx);
-
- /* ...relabel new root as S (for common processing in case #6) */
- s_idx = sl_idx;
- goto case6_x;
-
-case5_r:
- /***************************************************************************
- * Case #5: S is black, Sr is red, Sl is black; N is right child of P. We
- * have two subsequent transformations (case #5 and case #6) combined
- **************************************************************************/
-
- cl_idx = RB_LEFT(tree, sr_idx);
- cr_idx = RB_RIGHT(tree, sr_idx);
-
- if (RB_IS_BLACK(tree, p_idx))
- RB_SET_P_L_R_C(tree, sr_idx, g_idx, s_idx, p_idx, RB_BLK);
- else
- RB_SET_P_L_R_C(tree, sr_idx, g_idx, s_idx, p_idx, RB_RED);
-
- RB_SET_P_L_C(tree, p_idx, sr_idx, cr_idx, RB_BLK);
- RB_SET_P(tree, cr_idx, p_idx);
- RB_SET_P_R(tree, s_idx, sr_idx, cl_idx);
- RB_SET_P(tree, cl_idx, s_idx);
-
- /* ...relabel new root as S (for common processing in case #6) */
- s_idx = sr_idx;
- goto case6_x;
-
-case6_l:
-
- /***************************************************************************
- * Case #6: S is black, N is the left child of P, Sr is red
- **************************************************************************/
-
- if (RB_IS_BLACK(tree, p_idx))
- RB_SET_P_L(tree, s_idx, g_idx, p_idx);
- else
- RB_SET_P_L_C(tree, s_idx, g_idx, p_idx, RB_RED);
-
- RB_SET_P_R_C(tree, p_idx, s_idx, sl_idx, RB_BLK);
- RB_SET_P(tree, sl_idx, p_idx);
- RB_SET_C(tree, sr_idx, RB_BLK);
-
- /* ...S is a new root of subtree; update G */
- goto case6_x;
-
-case6_r:
-
- /***************************************************************************
- * Case #6: S is black, N is the right child of P, Sl is red
- **************************************************************************/
-
- if (RB_IS_BLACK(tree, p_idx))
- RB_SET_P_R(tree, s_idx, g_idx, p_idx);
- else
- RB_SET_P_R_C(tree, s_idx, g_idx, p_idx, RB_RED);
-
- RB_SET_P_L_C(tree, p_idx, s_idx, sr_idx, RB_BLK);
- RB_SET_P(tree, sr_idx, p_idx);
- RB_SET_C(tree, sl_idx, RB_BLK);
-
- /* ...S is a new root of subtree; update G */
- goto case6_x;
-
-case6_x:
-
- /* ...S is a new root of subtree; update G's pointer */
- if (g_idx == RB_NULL(tree))
- RB_SET_ROOT(tree, s_idx);
- else if (p_idx == RB_LEFT(tree, g_idx))
- RB_SET_L(tree, g_idx, s_idx);
- else
- RB_SET_R(tree, g_idx, s_idx);
-
- /* ...tree is balanced; pass through */
-
-done:
-
- return;
-}
-
-/* ...high-level API function */
-rb_idx_t rb_delete(rb_tree_t *tree, rb_idx_t n_idx)
-{
- rb_idx_t p_idx, t_idx, m_idx, c_idx, l_idx, r_idx, k_idx;
- u32 color;
-
- /* ...save parent of element N that we are going to remove */
- p_idx = RB_PARENT(tree, n_idx);
-
- /* ...get in-order predecessor/successor of n_idx, if possible */
- if ((m_idx = RB_LEFT(tree, n_idx)) != RB_NULL(tree))
- {
- while ((t_idx = RB_RIGHT(tree, m_idx)) != RB_NULL(tree))
- m_idx = t_idx;
-
- /* ...set the child of in-order predecessor (may be null) */
- c_idx = RB_LEFT(tree, m_idx);
- }
- else if ((m_idx = RB_RIGHT(tree, n_idx)) != RB_NULL(tree))
- {
- while ((t_idx = RB_LEFT(tree, m_idx)) != RB_NULL(tree))
- m_idx = t_idx;
-
- /* ...set the child of in-order successor (may be null) */
- c_idx = RB_RIGHT(tree, m_idx);
- }
- else if (p_idx == RB_NULL(tree))
- {
- /* ...tree consists of the only root node N that we are removing */
- RB_SET_ROOT(tree, m_idx);
-
- /* ..return tree null pointer */
- return m_idx;
- }
- else
- {
- /* ...N is a (non-root) leaf node; M and C are null */
- c_idx = m_idx;
-
- /* ...save the color of the node we are going to delete */
- color = RB_COLOR(tree, n_idx);
-
- /* ...set new parent of C */
- t_idx = p_idx;
-
- /* ...pointer that we return as in-order predecessor/successor */
- k_idx = p_idx;
-
- /* ...adjust only parent of the N */
- goto adjust_parent;
- }
-
- /* ...node that replaces our component is M */
- k_idx = m_idx;
-
- /***************************************************************************
- * Replace node N with M
- **************************************************************************/
-
- /* ...save original color of M (the node that we are deleting) */
- color = RB_COLOR(tree, m_idx);
-
- /* ...put M in place of N; get N's children */
- l_idx = RB_LEFT(tree, n_idx);
- r_idx = RB_RIGHT(tree, n_idx);
-
- /* ...see if M is a child of N */
- if ((t_idx = RB_PARENT(tree, m_idx)) != n_idx)
- {
- /* ...C becomes left or right child of M's original parent T */
- if (c_idx == RB_LEFT(tree, m_idx))
- RB_SET_R(tree, t_idx, c_idx);
- else
- RB_SET_L(tree, t_idx, c_idx);
-
- /* ...adjust C parent pointer (okay if it's null) */
- RB_SET_P(tree, c_idx, t_idx);
-
- /* ...set all pointers of node M (it replaces N) */
- RB_SET_P_L_R(tree, m_idx, p_idx, l_idx, r_idx);
- RB_SET_P(tree, l_idx, m_idx);
- RB_SET_P(tree, r_idx, m_idx);
- }
- else
- {
- /* ...M is a left or right child of N; it gets to N's place, and C remains intact */
- if (m_idx == l_idx)
- {
- RB_SET_P_R(tree, m_idx, p_idx, r_idx);
- RB_SET_P(tree, r_idx, m_idx);
- }
- else
- {
- RB_SET_P_L(tree, m_idx, p_idx, l_idx);
- RB_SET_P(tree, l_idx, m_idx);
- }
-
- /* ...parent of C is still M (we label it as T) */
- t_idx = m_idx;
- }
-
- /* ...paint M in the same color as N which it replaced */
- if (RB_IS_BLACK(tree, n_idx))
- RB_SET_C(tree, m_idx, RB_BLK);
- else
- RB_SET_C(tree, m_idx, RB_RED);
-
-adjust_parent:
-
- /* ...adjust N's parent node to point to M */
- if (p_idx == RB_NULL(tree))
- RB_SET_ROOT(tree, m_idx);
- else if (n_idx == RB_LEFT(tree, p_idx))
- RB_SET_L(tree, p_idx, m_idx);
- else
- RB_SET_R(tree, p_idx, m_idx);
-
- /* ...check for a color of deleted item (M or N in case it is a leaf) */
- if (color == RB_BLK)
- {
- if (c_idx == RB_NULL(tree))
- /* ...rebalance the tree for a T node (it is never a null)*/
- __rb_delete_rebalance(tree, t_idx);
- else
- /* ...C node exists and is necessarily red; repaint it black */
- RB_SET_C(tree, c_idx, RB_BLK);
- }
-
- /* ....return the node K which replaced deleted node N */
- return k_idx;
-}
-
-/*******************************************************************************
- * rb_replace
- *
- * Replace the node with the same-key node - adjust tree pointers
- ******************************************************************************/
-
-void rb_replace(rb_tree_t *tree, rb_idx_t n_idx, rb_idx_t t_idx)
-{
- rb_idx_t p_idx, l_idx, r_idx;
-
- /* ...get node pointers */
- p_idx = RB_PARENT(tree, n_idx), l_idx = RB_LEFT(tree, n_idx), r_idx = RB_RIGHT(tree, n_idx);
-
- /* ...set new node pointers */
- RB_SET_P_L_R(tree, t_idx, p_idx, l_idx, r_idx);
-
- /* ...set node color */
- if (RB_IS_BLACK(tree, n_idx))
- RB_SET_C(tree, t_idx, RB_BLK);
- else
- RB_SET_C(tree, t_idx, RB_RED);
-
- /* ...update parent node */
- if (p_idx == RB_NULL(tree))
- RB_SET_ROOT(tree, t_idx);
- else if (n_idx == RB_LEFT(tree, p_idx))
- RB_SET_L(tree, p_idx, t_idx);
- else
- RB_SET_R(tree, p_idx, t_idx);
-
- /* ...update children's parent node (okay if null) */
- RB_SET_P(tree, l_idx, t_idx), RB_SET_P(tree, r_idx, t_idx);
-}
diff --git a/hifi/xaf/hifi-dpf/core/util/tinyvprintf.c b/hifi/xaf/hifi-dpf/core/util/tinyvprintf.c
deleted file mode 100644
index 25d7e03..0000000
--- a/hifi/xaf/hifi-dpf/core/util/tinyvprintf.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-
-#include <string.h>
-#include "lib/tinyput.h"
-
-
-/*
- * Simple formatted output routine.
- * Designed primarily for small size (and secondarily for efficiency).
- * Only a common subset of printf formats and options are handled:
- *
- * %[-+ ][0][width]i decimal signed integer
- * %[-+ ][0][width]d decimal signed integer
- * %[-][0][width]u decimal unsigned integer
- * %[-][0][width]x hex unsigned integer
- * %[-][0][width]p hex unsigned integer with 0x prefix ("pointer")
- * %[-][width]c single character
- * %[-][width]s string
- *
- * These modifiers are ignored (legally on 32-bit Xtensa):
- * # (alternate format)
- * h (short) expands to int on 32-bit Xtensa
- * l (long) same as int on 32-bit Xtensa
- * j (intmax_t or uintmax_t) same as int on 32-bit Xtensa
- * z (size_t or ssize_t) same as int on 32-bit Xtensa
- * t (ptrdiff_t) same as int on 32-bit Xtensa
- *
- * Does NOT support:
- * width.prec (precision modifier)
- * %X (capitalized hex; handles this as lowercase hex)
- * %o (octal)
- * %[L][feEgG] (floating point formats)
- * %a %A (hex floating point formats, C99)
- * %C (multibyte character)
- * %S (multibyte character string)
- * %n (returning count of character written)
- * ll (long long)
- * q j z t (other size modifiers, eg. see glibc)
- */
-int tiny_vsprintf(char *out, const char *fmt, va_list ap)
-{
- int total = 0;
- char c, space = ' ', buf[11]; /* largest 32-bit integer output (octal) */
-
- while ((c = *(char*)fmt++) != 0) {
- if (c != '%') {
- *out++ = c;
- total++;
- } else {
- int width = 0, len = 1, rightjust = 1;
- unsigned n;
- char *s = buf, *t, pad = ' ', sign = 0;
- while (1) {
- c = *(char*)fmt++;
- switch (c) {
- case 'c': buf[0] = va_arg(ap, int); goto donefmt;
- case 's': s = va_arg(ap, char*);
- if (s == 0)
- len = 0;
- else {
- for (t = s; *t; t++) ;
- len = t - s;
- }
- goto donefmt;
-
- case '#': /* ignore (not supported) */
- case 'h': /* ignore (short; passed as int) */
- case 'l': /* ignore (long; same as int) */
- case 'j': /* ignore (intmax_t or uintmax_t; same as int) */
- case 'z': /* ignore (size_t or ssize_t; same as int) */
- case 't': /* ignore (ptrdiff_t; same as int) */
- break;
-
- case ' ': sign = ' '; break;
- case '+': sign = '+'; break;
- case '-': rightjust = 0; break;
-
- case 'i': /*FALLTHROUGH*/
- case 'd': n = va_arg(ap, int);
- if ((int)n < 0) {
- sign = '-';
- n = -(int)n;
- }
- if (sign) {
- if (rightjust && pad == ' ')
- *s++ = sign;
- else {
- *out++ = sign;
- width--;
- total++;
- }
- }
- goto do_decimal;
- case 'u': n = va_arg(ap, int);
- do_decimal:
- {
- /* (avoids division or multiplication) */
- int digit, i, seen = 0;
- for (digit = 0; n >= 1000000000; digit++)
- n -= 1000000000;
- for (i = 9;;) {
- if (!seen && digit != 0)
- seen = i;
- if (seen)
- *s++ = '0' + digit;
- for (digit = 0; n >= 100000000; digit++)
- n -= 100000000;
- if (--i == 0) {
- *s++ = '0' + digit;
- len = s - buf;
- s = buf;
- goto donefmt;
- }
- n = ((n << 1) + (n << 3));
- }
- }
- /*NOTREACHED*/
-
-#if 0
- case 'o': n = va_arg(ap, unsigned);
- s = buf + 11;
- do {
- *--s = '0' + (n & 7);
- n = (unsigned)n >> 3;
- } while (n);
- len = buf + 11 - s;
- goto donefmt;
-#endif
-
- case 'p': *out++ = '0', *out++ = 'x';
- total += 2;
- /*FALLTHROUGH*/
- case 'X': /*FALLTHROUGH*/
- case 'x': n = va_arg(ap, unsigned);
- s = buf + 8;
- do {
- *--s = "0123456789abcdef"[n & 0xF];
- n = (unsigned)n >> 4;
- } while (n);
- len = buf + 8 - s;
- goto donefmt;
-
- case 0: goto done;
- case '0': if (width == 0) pad = '0'; /*FALLTHROUGH*/
- default: if (c >= '0' && c <= '9')
- width = ((width<<1) + (width<<3)) + (c - '0');
- else {
- buf[0] = c; /* handles case of '%' */
- goto donefmt;
- }
- }
- }
- /*NOTREACHED*/
- donefmt:
- if (len < width) {
- total += width;
- if (rightjust)
- do { *out++ = pad; } while (len < --width);
- } else
- total += len;
- for(n = len; n > 0; n--) *out++ = *s++;
- for (; len < width; len++) *out++ = space;
- }
- }
-done:
- return total;
-}
-
-int tiny_sprintf(char *out, const char *fmt, ...)
-{
- int n = 0;
- va_list ap;
- va_start(ap, fmt);
- n = tiny_vsprintf(out, fmt, ap);
- va_end(ap);
- return n;
-}
diff --git a/hifi/xaf/hifi-dpf/core/xf-core.c b/hifi/xaf/hifi-dpf/core/xf-core.c
deleted file mode 100644
index 95bca12..0000000
--- a/hifi/xaf/hifi-dpf/core/xf-core.c
+++ /dev/null
@@ -1,709 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xf-core.c
- *
- * DSP processing framework core
- *
- ******************************************************************************/
-
-#define MODULE_TAG CORE
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-
-/*******************************************************************************
- * Tracing tags
- ******************************************************************************/
-
-/* ...general initialization sequence */
-TRACE_TAG(INIT, 1);
-
-/* ...message dispatching */
-TRACE_TAG(DISP, 1);
-
-/* ...client registration procedures */
-TRACE_TAG(REG, 1);
-
-/* ...ports routing/unrouting */
-TRACE_TAG(ROUTE, 1);
-
-#ifdef XAF_PROFILE_DSP
-/* ... MCPS/profile info */
-#include "xa_profiler.h"
-#endif
-/*******************************************************************************
- * Internal helpers
- ******************************************************************************/
-
-/* ...translate client-id into component handle */
-static inline xf_component_t * xf_client_lookup(xf_core_data_t *cd, u32 client)
-{
- xf_cmap_link_t *link = &cd->cmap[client];
-
- /* ...if link pointer is less than XF_CFG_MAX_CLIENTS, it is a free descriptor */
- return (link->next > XF_CFG_MAX_CLIENTS ? link->c : NULL);
-}
-
-/* ...allocate client-id */
-static inline u32 xf_client_alloc(xf_core_data_t *cd)
-{
- u32 client = cd->free;
-
- /* ...advance list head to next free id */
- (client < XF_CFG_MAX_CLIENTS ? cd->free = cd->cmap[client].next : 0);
-
- return client;
-}
-
-/* ...recycle client-id */
-static inline void xf_client_free(xf_core_data_t *cd, u32 client)
-{
- /* ...put client into the head of the free id list */
- cd->cmap[client].next = cd->free, cd->free = client;
-}
-
-/*******************************************************************************
- * Process commands to a proxy
- ******************************************************************************/
-
-/* ...register new client */
-static int xf_proxy_register(u32 core, xf_message_t *m)
-{
- xf_core_data_t *cd = XF_CORE_DATA(core);
- u32 src = XF_MSG_SRC(m->id);
- u32 client;
- xf_component_t *component;
-
- /* ...allocate new client-id */
- XF_CHK_ERR((client = xf_client_alloc(cd)) != XF_CFG_MAX_CLIENTS, -EBUSY);
-
- /* ...create component via class factory */
- if ((component = xf_component_factory(core, m->buffer, m->length)) == NULL)
- {
- TRACE(ERROR, _x("Component creation failed"));
-
- /* ...recycle client-id */
- xf_client_free(cd, client);
-
- /* ...return generic out-of-memory code always (tbd) */
- return -ENOMEM;
- }
-
- /* ...register component in a map */
- cd->cmap[client].c = component;
-
- /* ...set component "default" port specification ("destination") */
- component->id = __XF_PORT_SPEC(core, client, 0);
-
- /* ...adjust session-id to include newly created component-id */
- m->id = __XF_MSG_ID(src, component->id);
-
- /* ...do system-specific registration of component within IPC layer */
- xf_ipc_component_addref(m->id);
-
- TRACE(REG, _b("registered client: %u:%u (%s)"), core, client, (xf_id_t)m->buffer);
-
- /* ...and return success to remote proxy (zero-length output) */
- xf_response_ok(m);
-
- return 0;
-}
-
-/* ...shared buffer allocation request */
-static int xf_proxy_alloc(u32 core, xf_message_t *m)
-{
- /* ...command is valid only if shared memory interface for core is specified */
- XF_CHK_ERR(xf_shmem_enabled(core), -EPERM);
-
- /* ...allocate shared memory buffer (system-specific function; may fail) */
- xf_shmem_alloc(core, m);
-
- /* ...pass result to remote proxy (on success buffer is non-null) */
- xf_response(m);
-
- return 0;
-}
-
-/* ...shared buffer freeing request */
-static int xf_proxy_free(u32 core, xf_message_t *m)
-{
- /* ...command is valid only if shared memory interface for core is specified */
- XF_CHK_ERR(xf_shmem_enabled(core), -EPERM);
-
- /* ...pass buffer freeing request to system-specific function */
- xf_shmem_free(core, m);
-
- /* ...return success to remote proxy (function never fails) */
- xf_response(m);
-
- return 0;
-}
-
-#if 0
-/* ...port routing command processing */
-static int xf_proxy_route(u32 core, xf_message_t *m)
-{
- xf_route_port_msg_t *cmd = m->buffer;
- u32 src = cmd->src;
- u32 dst = cmd->dst;
- xf_component_t *component;
- xf_output_port_t *port;
-
- /* ...source component must reside on the local core */
- XF_CHK_ERR(XF_MSG_SRC_CORE(src) == core, -EINVAL);
-
- /* ...make sure the "src" component is valid ("dst" may reside on other core) */
- if ((component = xf_client_lookup(XF_CORE_DATA(core), XF_PORT_CLIENT(src))) == NULL)
- {
- TRACE(ERROR, _x("Source port lookup failed: %x"), src);
- return -ENOENT;
- }
- else if (!component->port || !(port = component->port(component, XF_PORT_ID(src))))
- {
- TRACE(ERROR, _b("Source port doesn't exist: %x"), src);
- return -ENOENT;
- }
- else if (xf_output_port_routed(port))
- {
- TRACE(ERROR, _b("Source port is already routed: %x"), src);
- return -EBUSY;
- }
-
- /* ...route output port with source port set as destination */
- XF_CHK_API(xf_output_port_route(port, __XF_MSG_ID(dst, src), cmd->alloc_number, cmd->alloc_size, cmd->alloc_align));
-
- TRACE(ROUTE, _b("Ports routed: %03x -> %03x"), src, dst);
-
- /* ...invoke component data-processing function directly (ignore errors? - tbd) */
- component->entry(component, NULL);
-
- /* ...return success result code (no output attached) */
- xf_response_ok(m);
-
- return 0;
-}
-
-/* ...disconnect ports */
-static int xf_proxy_unroute(u32 core, xf_message_t *m)
-{
- xf_unroute_port_msg_t *cmd = m->buffer;
- u32 src = cmd->src;
- xf_component_t *component;
- xf_output_port_t *port;
-
- /* ...source component must reside on the local core */
- XF_CHK_ERR(XF_MSG_SRC_CORE(src) == core, -EINVAL);
-
- /* ...lookup source (output) port */
- if ((component = xf_client_lookup(XF_CORE_DATA(core), XF_PORT_CLIENT(src))) == NULL)
- {
- TRACE(ERROR, _b("Source port lookup failed: %x"), src);
- return -ENOENT;
- }
- else if (!component->port || !(port = component->port(component, XF_PORT_ID(src))))
- {
- TRACE(ERROR, _b("Source port doesn't exist: %x"), src);
- return -ENOENT;
- }
- else if (!xf_output_port_routed(port))
- {
- /* ...port is not routed; satisfy immediately */
- goto done;
- }
- else if (!xf_output_port_idle(port))
- {
- TRACE(ERROR, _b("Source port is not idle: %x"), src);
- return -EBUSY;
- }
-
- /* ...unroute port (call must succeed) */
- xf_output_port_unroute(port);
-
- /* ...we cannot satisfy the command now, and need to propagate it to a sink - tbd */
- //return 0;
-
-done:
- /* ...pass success result code to caller */
- xf_response_ok(m);
-
- return 0;
-}
-#endif
-
-/* ...fill-this-buffer command processing */
-static int xf_proxy_output(u32 core, xf_message_t *m)
-{
- /* ...determine destination "client" */
- switch (XF_MSG_SRC_CLIENT(m->id))
- {
-#if XF_TRACE_REMOTE
- case 0:
- /* ...destination is a tracer facility; submit buffer to tracer */
- xf_trace_submit(core, m);
- return 0;
-#endif
-
- default:
- /* ...unrecognized destination; return general failure response */
- return XF_CHK_ERR(0, -EINVAL);
- }
-}
-
-/* ...flush command processing */
-static int xf_proxy_flush(u32 core, xf_message_t *m)
-{
- /* ...determine destination "client" */
- switch (XF_MSG_SRC_CLIENT(m->id))
- {
-#if XF_TRACE_REMOTE
- case 0:
- /* ...destination is a tracer facility; flush current buffer */
- xf_trace_flush(core, m);
- return 0;
-#endif
-
- default:
- /* ...unrecognized destination; return general failure response */
- return XF_CHK_ERR(0, -EINVAL);
- }
-}
-
-/* ...proxy command processing table */
-static int (* const xf_proxy_cmd[])(u32, xf_message_t *) =
-{
- [XF_OPCODE_TYPE(XF_REGISTER)] = xf_proxy_register,
- [XF_OPCODE_TYPE(XF_ALLOC)] = xf_proxy_alloc,
- [XF_OPCODE_TYPE(XF_FREE)] = xf_proxy_free,
-#if 0
- [XF_OPCODE_TYPE(XF_ROUTE)] = xf_proxy_route,
- [XF_OPCODE_TYPE(XF_UNROUTE)] = xf_proxy_unroute,
-#endif
- [XF_OPCODE_TYPE(XF_FILL_THIS_BUFFER)] = xf_proxy_output,
- [XF_OPCODE_TYPE(XF_FLUSH)] = xf_proxy_flush,
-};
-
-/* ...total number of commands supported */
-#define XF_PROXY_CMD_NUM (sizeof(xf_proxy_cmd) / sizeof(xf_proxy_cmd[0]))
-
-/* ...process commands to a proxy */
-static void xf_proxy_command(u32 core, xf_message_t *m)
-{
- u32 opcode = m->opcode;
- int res;
-
- /* ...dispatch command to proper hook */
- if (XF_OPCODE_TYPE(opcode) < XF_PROXY_CMD_NUM)
- {
- if ((res = xf_proxy_cmd[XF_OPCODE_TYPE(opcode)](core, m)) >= 0)
- {
- /* ...command processed successfully; do nothing */
- return;
- }
- }
- else
- {
- TRACE(ERROR, _x("invalid opcode: %x"), opcode);
- }
-
- /* ...command processing failed; return generic failure response */
- xf_response_err(m);
-}
-
-/*******************************************************************************
- * Message completion helper
- ******************************************************************************/
-
-/* ...put message into local IPC command queue on remote core (src != dst) */
-static inline void xf_msg_local_ipc_put(u32 src, u32 dst, xf_message_t *m)
-{
- xf_core_rw_data_t *rw = XF_CORE_RW_DATA(dst);
- int first;
-
- /* ...flush message payload if needed */
- if (XF_LOCAL_IPC_NON_COHERENT)
- {
- /* ...it may be a command with output payload only - tbd */
- XF_PROXY_FLUSH(m->buffer, m->length);
- }
-
- /* ...acquire mutex to target rw-data (running on source core) */
- xf_mutex_lock(src);
-
- /* ...assure memory coherency as needed */
- if (XF_LOCAL_IPC_NON_COHERENT)
- {
- /* ...invalidate local queue data */
- XF_PROXY_INVALIDATE(&rw->local, sizeof(rw->local));
-
- /* ...place message into queue */
- first = xf_msg_enqueue(&rw->local, m);
-
- /* ...flush both queue and message data */
- XF_PROXY_FLUSH(&rw->local, sizeof(rw->local)), XF_PROXY_FLUSH(m, sizeof(*m));
- }
- else
- {
- /* ...just enqueue the message */
- first = xf_msg_enqueue(&rw->local, m);
- }
-
- /* ...release global rw-memory access lock */
- xf_mutex_unlock(src);
-
- /* ...signal IPI interrupt on destination core as needed */
- (first ? xf_ipi_assert(dst), 1 : 0);
-}
-
-/* ...dequeue message from core-specific dispatch queue */
-static inline xf_message_t * xf_msg_local_ipc_get(u32 core)
-{
- xf_core_rw_data_t *rw = XF_CORE_RW_DATA(core);
- xf_message_t *m;
-
- /* ...retrieve message from queue in atomic fashion */
- xf_mutex_lock(core);
-
- /* ...process memory coherency as required */
- if (XF_LOCAL_IPC_NON_COHERENT)
- {
- /* ...inavlidate local rw-data */
- XF_PROXY_INVALIDATE(&rw->local, sizeof(rw->local));
-
- /* ...get message from the queue */
- if ((m = xf_msg_dequeue(&rw->local)) != NULL)
- {
- /* ...flush rw-queue data */
- XF_PROXY_FLUSH(&rw->local, sizeof(rw->local));
- }
- }
- else
- {
- /* ...just dequeue message from the queue */
- m = xf_msg_dequeue(&rw->local);
- }
-
- /* ...release rw-memory access lock */
- xf_mutex_unlock(core);
-
- /* ...invalidate message header and data as needed */
- if (XF_LOCAL_IPC_NON_COHERENT && m != NULL)
- {
- /* ...invalidate message header */
- XF_PROXY_INVALIDATE(m, sizeof(*m));
-
- /* ...and data if needed (it may not be always needed - tbd) */
- (m->length ? XF_PROXY_INVALIDATE(m->buffer, m->length) : 0);
- }
-
- /* ...return message */
- return m;
-}
-
-/* ...retrieve message from local queue (protected from ISR) */
-static inline int xf_msg_local_put(u32 core, xf_message_t *m)
-{
- xf_core_data_t *cd = XF_CORE_DATA(core);
- int first;
- u32 status;
-
- /* ...use interrupt masking protocol to protect message queue */
- status = xf_isr_disable(core);
- first = xf_msg_enqueue(&cd->queue, m);
- xf_isr_restore(core, status);
-
- return first;
-}
-
-/* ...retrieve message from local queue (protected from ISR) */
-static inline xf_message_t * xf_msg_local_get(u32 core)
-{
- xf_core_data_t *cd = XF_CORE_DATA(core);
- xf_message_t *m;
- u32 status;
-
- /* ...use interrupt masking protocol to protect message queue */
- status = xf_isr_disable(core);
- m = xf_msg_dequeue(&cd->queue);
- xf_isr_restore(core, status);
-
- return m;
-}
-
-/* ...retrieve message from local queue (protected from ISR) */
-static inline xf_message_t * xf_msg_local_response_get(u32 core)
-{
- xf_core_data_t *cd = XF_CORE_DATA(core);
- xf_message_t *m;
- u32 status;
-
- /* ...use interrupt masking protocol to protect message queue */
- status = xf_isr_disable(core);
- m = xf_msg_dequeue(&cd->response);
- xf_isr_restore(core, status);
-
- return m;
-}
-
-/* ...call component data processing function */
-static inline void xf_core_process(xf_component_t *component)
-{
- u32 id = component->id;
-
- /* ...client look-up successfull */
- TRACE(DISP, _b("core[%u]::client[%u]::process"), XF_PORT_CORE(id), XF_PORT_CLIENT(id));
-
- /* ...call data-processing interface */
- if (component->entry(component, NULL) < 0)
- {
- TRACE(ERROR, _b("execution error (ignored)"));
- }
-}
-
-/* ...dispatch message queue execution */
-static inline void xf_core_dispatch(xf_core_data_t *cd, u32 core, xf_message_t *m)
-{
- u32 client;
- xf_component_t *component;
-
- /* ...do client-id/component lookup */
- if (XF_MSG_DST_PROXY(m->id))
- {
- TRACE(DISP, _b("core[%u]::proxy-cmd(id=%x, opcode=%x)"), core, m->id, m->opcode);
-
- /* ...process message addressed to proxy */
- xf_proxy_command(core, m);
-
- /* ...do not like this return statement... - tbd */
- return;
- }
-
- /* ...message goes to local component */
- client = XF_MSG_DST_CLIENT(m->id);
-
- /* ...check if client is alive */
- if ((component = xf_client_lookup(cd, client)) != NULL)
- {
- /* ...client look-up successfull */
- TRACE(DISP, _b("core[%u]::client[%u]::cmd(id=%x, opcode=%x)"), core, client, m->id, m->opcode);
-
- /* ...pass message to component entry point */
- if (component->entry(component, m) < 0)
- {
- /* ...call component destructor */
- if (component->exit(component, m) == 0)
- {
- /* ...component cleanup completed; recycle component-id */
- xf_client_free(cd, client);
-
- /* ...do system-specific deregistration of component within IPC layer */
- xf_ipc_component_rmref(__XF_PORT_SPEC(core, client, 0));
- }
- }
- }
- else
- {
- TRACE(DISP, _b("Discard message id=%x - client %u:%u not registered"), m->id, core, client);
-
- /* ...complete message with general failure response */
- xf_response_err(m);
- }
-}
-
-/*******************************************************************************
- * Entry points
- ******************************************************************************/
-
-/* ...submit message for instant execution on some core */
-void xf_msg_submit(xf_message_t *m)
-{
- u32 src = XF_MSG_SRC_CORE(m->id);
- u32 dst = XF_MSG_DST_CORE(m->id);
-
- /* ...check if message shall go through local IPC layer */
- if (src ^ dst)
- {
- /* ...put message into local IPC queue */
- xf_msg_local_ipc_put(src, dst, m);
- }
- else
- {
- /* ...message is addressed to same core */
- xf_msg_local_put(src, m);
- }
-}
-
-/* ...complete message and pass response to a caller */
-void xf_msg_complete(xf_message_t *m)
-{
- u32 src = XF_MSG_SRC(m->id);
- u32 dst = XF_MSG_DST(m->id);
-
- /* ...swap src/dst specifiers */
- m->id = __XF_MSG_ID(dst, src);
-
- /* ...check if message goes to remote IPC layer */
- if (XF_MSG_DST_PROXY(m->id))
- {
- /* ...return message to proxy */
- xf_msg_proxy_complete(m);
- }
- else
- {
- /* ...destination is within DSP cluster; check if that is a data buffer */
- switch (m->opcode)
- {
- case XF_EMPTY_THIS_BUFFER:
- /* ...emptied buffer goes back to the output port */
- m->opcode = XF_FILL_THIS_BUFFER;
- break;
-
- case XF_FILL_THIS_BUFFER:
- /* ...filled buffer is passed to the input port */
- m->opcode = XF_EMPTY_THIS_BUFFER;
- break;
- }
-
- /* ...submit message for execution */
- xf_msg_submit(m);
- }
-}
-
-/* ...initialize per-core framework data */
-int xf_core_init(u32 core)
-{
- xf_core_data_t *cd = XF_CORE_DATA(core);
- xf_cmap_link_t *link;
- u32 i;
-
- /* ...create list of free client descriptors */
- for (link = &cd->cmap[i = 0]; i < XF_CFG_MAX_CLIENTS; i++, link++)
- {
- link->next = i + 1;
- }
-
- /* ...set head of free clients list */
- cd->free = 0;
-
- /* ...initialize local queue scheduler */
- xf_sched_init(&cd->sched);
-
- /* ...initialize IPI subsystem */
- XF_CHK_API(xf_ipi_init(core));
-
- /* ...initialize shared read-write memory */
- XF_CHK_API(xf_shmem_enabled(core) ? xf_shmem_init(core) : 0);
-
- /* ...initialize scratch memory */
- XF_CHK_ERR(cd->scratch = xf_scratch_mem_init(core), -ENOMEM);
-
- /* ...okay... it's all good */
- TRACE(INIT, _b("core-%u initialized"), core);
-
- return 0;
-}
-
-/* ...core executive loop function */
-void xf_core_service(u32 core)
-{
- xf_core_data_t *cd = &xf_core_data[core];
- u32 status;
- xf_message_t *m;
- xf_task_t *t;
-
-#ifdef XAF_PROFILE_DSP
- START_TIME_XA_PROFILER(prof);
-#endif
- do
- {
- /* ...clear local status change */
- status = 0;
-
- /* ...if core is servicing shared memory with AP, do it first - actually, they all need to support it */
- if (xf_shmem_enabled(core))
- {
- /* ...process all commands */
- xf_shmem_process_queues(core);
- }
-
- /* ...check if we have a backlog message placed into interim queue */
- while ((m = xf_msg_local_ipc_get(core)) || (m = xf_msg_local_get(core)))
- {
- /* ...dispatch message execution */
- xf_core_dispatch(cd, core, m);
-
- /* ...set local status change */
- status = 1;
- }
-
- /* ...check if we have pending responses (submitted from ISR) we need to process */
- while ((m = xf_msg_local_response_get(core)) != NULL)
- {
- /* ...call completion handler on current stack */
- xf_msg_complete(m);
-
- /* ...set local status change */
- status = 1;
-
- }
-
- /* ...if scheduler queue is empty, break the loop and pause the core */
- if ((t = xf_sched_get(&cd->sched)) != NULL)
- {
- /* ...data-processing execution (ignore internal errors) */
- xf_core_process((xf_component_t *)t);
-
- /* ...set local status change */
- status = 1;
- }
- }
- while (status);
-
-#ifdef XAF_PROFILE_DSP
- STOP_TIME_XA_PROFILER(prof);
-
- if(prof.g_output_bytes)
- {
- unsigned long output_samples = prof.g_output_bytes;
- output_samples >>= (prof.channels == 2 ? 1 : 0);
- output_samples >>= (prof.pcm_width == 24 ? 2 : 1);
-
- COMPUTE_MHZ_XA_PROFILER(prof, output_samples, prof.sample_rate, 0);
-
- prof.g_output_bytes = prof.cycles = 0; /* reset counters */
- }
-#endif
-
-}
-
-/* ...global data initialization function */
-int xf_global_init(void)
-{
- /* ...what global data we have to initialize? - tbd */
- TRACE(INIT, _b("Global data initialized"));
-
- return 0;
-}
diff --git a/hifi/xaf/hifi-dpf/core/xf-io.c b/hifi/xaf/hifi-dpf/core/xf-io.c
deleted file mode 100644
index 09f8e3e..0000000
--- a/hifi/xaf/hifi-dpf/core/xf-io.c
+++ /dev/null
@@ -1,644 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xf-io.c
- *
- * Generic input/output ports handling
- *
- ******************************************************************************/
-
-#define MODULE_TAG IO
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-
-/*******************************************************************************
- * Tracing configuration
- ******************************************************************************/
-
-TRACE_TAG(INIT, 1);
-TRACE_TAG(INPUT, 1);
-TRACE_TAG(OUTPUT, 1);
-TRACE_TAG(ROUTE, 1);
-
-/*******************************************************************************
- * Input port API
- ******************************************************************************/
-
-/* ...initialize input port structure */
-int xf_input_port_init(xf_input_port_t *port, u32 size, u32 align, u32 core)
-{
- /* ...allocate local internal buffer of particular size and alignment */
- if (size)
- {
- /* ...internal buffer is used */
- XF_CHK_ERR(port->buffer = xf_mem_alloc(size, align, core, 0), -ENOMEM);
- }
- else
- {
- /* ...no internal buffering is used */
- port->buffer = NULL;
- }
-
- /* ...initialize message queue */
- xf_msg_queue_init(&port->queue);
-
- /* ...set buffer size */
- port->length = size;
-
- /* ...enable input by default */
- port->flags = XF_INPUT_FLAG_ENABLED | XF_INPUT_FLAG_CREATED;
-
- /* ...mark buffer is empty */
- port->filled = 0, port->access = NULL;
-
- TRACE(INIT, _b("input-port[%p] created - %p@%u[%u]"), port, port->buffer, align, size);
-
- return 0;
-}
-
-/* ...put message into input port queue; return non-zero if queue was empty */
-int xf_input_port_put(xf_input_port_t *port, xf_message_t *m)
-{
- /* ...check if input is enabled */
- if ((port->flags & XF_INPUT_FLAG_ENABLED) == 0)
- {
- /* ...input disabled; this is an error condition, likely */
- TRACE(INPUT, _b("input-port[%p] disabled"), port);
-
- /* ...release the message instantly */
- xf_response_ok(m);
-
- /* ...buffer has not been accepted - no actions to take */
- return 0;
- }
- else if (m->length == 0)
- {
- /* ...it is forbidden to pass more than one zero-length message */
- BUG(port->flags & XF_INPUT_FLAG_EOS, _x("invalid state: %x"), port->flags);
-
- /* ...received a message with zero-length; mark end-of-stream condition */
- port->flags ^= XF_INPUT_FLAG_ENABLED | XF_INPUT_FLAG_EOS;
-
- /* ...still enqueue that zero-length message; it will be processed afterwards */
- TRACE(INPUT, _b("input-port[%p]: zero-length buffer received"), port);
- }
- else
- {
- TRACE(INPUT, _b("input-port[%p]: buffer received - %u bytes"), port, m->length);
- }
-
- /* ...enqueue message and set access pointer as needed */
- if (xf_msg_enqueue(&port->queue, m))
- {
- /* ...first message put - set access pointer and length */
- port->access = m->buffer, port->remaining = m->length;
-
- /* ...if first message is empty, mark port is done */
- (!port->access ? port->flags ^= XF_INPUT_FLAG_EOS | XF_INPUT_FLAG_DONE : 0);
-
- /* ...return non-zero to indicate the first buffer is placed into port */
- return 1;
- }
- else
- {
- /* ...subsequent message placed into buffer */
- return 0;
- }
-}
-
-/* ...internal helper - input message completion */
-static inline int xf_input_port_complete(xf_input_port_t *port)
-{
- /* ...dequeue message from queue */
- xf_message_t *m = xf_msg_dequeue(&port->queue);
-
- /* ...message cannot be NULL */
- BUG(m == NULL, _x("invalid port state"));
-
- /* ...complete current message (EMPTY-THIS-BUFFER always; no length adjustment) */
- xf_response(m);
-
- /* ...set up next head */
- if ((m = xf_msg_queue_head(&port->queue)) != NULL)
- {
- /* ...set new access pointers */
- port->access = m->buffer, port->remaining = m->length;
-
- /* ...return indication that there is an input message */
- return 1;
- }
- else
- {
- /* ...no more messages; reset access pointer */
- port->access = NULL;
-
- /* ...return indication that input port has no data available */
- return 0;
- }
-}
-
-/* ...fill-in required amount of data into input port buffer */
-int xf_input_port_fill(xf_input_port_t *port)
-{
- u32 filled = port->filled;
- u32 remaining = port->remaining;
- u32 copied = 0;
- s32 n;
-
- /* ...function shall not be called if no internal buffering is used */
- BUG(xf_input_port_bypass(port), _x("Invalid transaction"));
-
- /* ...if there is no message pending, bail out */
- if (!xf_msg_queue_head(&port->queue))
- {
- TRACE(INPUT, _b("No message ready"));
- return 0;
- }
-
- /* ...calculate total amount of bytes we need to copy */
- n = (s32)(port->length - filled);
-
- /* ...get at most "n" bytes from input message(s) buffer(s) */
- while (n > 0)
- {
- u32 k;
-
- /* ...determine the size of the chunk to copy */
- ((k = remaining) > n ? k = n : 0);
-
- /* ...process zero-length input message separately */
- if (k == 0)
- {
- /* ...end-of-stream condition must be set */
- BUG((port->flags & XF_INPUT_FLAG_EOS) == 0, _x("port[%p]: invalid state: %x"), port, port->flags);
-
- /* ...mark stream is completed */
- port->flags ^= XF_INPUT_FLAG_EOS | XF_INPUT_FLAG_DONE;
-
- /* ...reset total amount of bytes to fill */
- n = 0;
-
- /* ...do not release message yet */
- TRACE(INPUT, _b("input-port[%p] done"), port);
-
- /* ...and break the loop */
- break;
- }
-
- /* ...buffer must be set */
- BUG(!port->access, _x("invalid port state"));
-
- /* ...get required amount from input buffer */
- memcpy(port->buffer + filled, port->access, k), port->access += k;
-
- /* ...advance buffer positions */
- filled += k, copied += k, n -= k;
-
- /* ...check if input buffer is processed completely */
- if ((remaining -= k) == 0)
- {
- if (!xf_input_port_complete(port))
- {
- /* ...no more input messages; break the loop */
- break;
- }
- else
- {
- /* ...update remaining counter */
- remaining = port->remaining;
- }
- }
- }
-
- /* ...update buffer positions */
- port->filled = filled, port->remaining = remaining;
-
- /* ...return indicator whether input buffer is prefilled */
- return (n == 0);
-}
-
-/* ...pad input buffer with given pattern */
-void xf_input_port_pad(xf_input_port_t *port, u8 pad)
-{
- u32 filled = port->filled;
- s32 k;
-
- /* ...do padding if port buffer is not filled */
- if ((k = port->length - filled) > 0)
- {
- memset(port->buffer + filled, pad, k);
-
- /* ...indicate port is filled */
- port->filled = port->length;
- }
-}
-
-/* ...consume input buffer data */
-void xf_input_port_consume(xf_input_port_t *port, u32 n)
-{
- /* ...check whether input port is in bypass mode */
- if (xf_input_port_bypass(port))
- {
- /* ...port is in bypass mode; advance access pointer */
- if ((port->remaining -= n) == 0)
- {
- /* ...complete message and try to rearm input port */
- xf_input_port_complete(port);
-
- /* ...check if end-of-stream flag is set */
- if (xf_msg_queue_head(&port->queue) && !port->access)
- {
- BUG((port->flags & XF_INPUT_FLAG_EOS) == 0, _x("port[%p]: invalid state: %x"), port, port->flags);
-
- /* ...mark stream is completed */
- port->flags ^= XF_INPUT_FLAG_EOS | XF_INPUT_FLAG_DONE;
-
- TRACE(INPUT, _b("input-port[%p] done"), port);
- }
- }
- else
- {
- /* ...advance message buffer pointer */
- port->access += n;
- }
- }
- else if (port->filled > n)
- {
- u32 k = port->filled - n;
-
- /* ...move tail of buffer to the head (safe to use memcpy) */
- memcpy(port->buffer, port->buffer + n, k);
-
- /* ...adjust filled position */
- port->filled = k;
- }
- else
- {
- /* ...entire buffer is consumed; reset fill level */
- port->filled = 0;
- }
-}
-
-/* ...purge input port queue */
-void xf_input_port_purge(xf_input_port_t *port)
-{
- xf_message_t *m;
-
- /* ...bail out early if port is not created */
- if (!xf_input_port_created(port)) return;
-
- /* ...free all queued messages with generic "ok" response */
- while ((m = xf_msg_dequeue(&port->queue)) != NULL)
- {
- xf_response_ok(m);
- }
-
- /* ...reset internal buffer position */
- port->filled = 0, port->access = NULL;
-
- /* ...reset port flags */
- port->flags = (port->flags & ~__XF_INPUT_FLAGS(~0)) | XF_INPUT_FLAG_ENABLED | XF_INPUT_FLAG_CREATED;
-
- TRACE(INPUT, _b("input-port[%p] purged"), port);
-}
-
-/* ...save flow-control message for propagated input port purging sequence */
-void xf_input_port_control_save(xf_input_port_t *port, xf_message_t *m)
-{
- /* ...make sure purging sequence is not active */
- BUG(port->flags & XF_INPUT_FLAG_PURGING, _x("invalid state: %x"), port->flags);
-
- /* ...place message into internal queue */
- xf_msg_enqueue(&port->queue, m);
-
- /* ...set port purging flag */
- port->flags ^= XF_INPUT_FLAG_PURGING;
-
- TRACE(INPUT, _b("port[%p] start purge sequence"), port);
-}
-
-/* ...mark flushing sequence is completed */
-void xf_input_port_purge_done(xf_input_port_t *port)
-{
- /* ...make sure flushing sequence is ongoing */
- BUG((port->flags & XF_INPUT_FLAG_PURGING) == 0, _x("invalid state: %x"), port->flags);
-
- /* ...complete saved flow-control message */
- xf_response_ok(xf_msg_dequeue(&port->queue));
-
- /* ...clear port purging flag */
- port->flags ^= XF_INPUT_FLAG_PURGING;
-
- TRACE(INPUT, _b("port[%p] purge sequence completed"), port);
-}
-
-/* ...destroy input port data */
-void xf_input_port_destroy(xf_input_port_t *port, u32 core)
-{
- /* ...bail out earlier if port is not created */
- if (!xf_input_port_created(port)) return;
-
- /* ...deallocate input buffer if needed */
- (port->buffer ? xf_mem_free(port->buffer, port->length, core, 0), port->buffer = NULL : 0);
-
- /* ...reset input port flags */
- port->flags = 0;
-
- TRACE(INIT, _b("input-port[%p] destroyed"), port);
-}
-
-/*******************************************************************************
- * Output port API
- ******************************************************************************/
-
-/* ...initialize output port (structure must be zero-initialized) */
-int xf_output_port_init(xf_output_port_t *port, u32 size)
-{
- /* ...initialize message queue */
- xf_msg_queue_init(&port->queue);
-
- /* ...set output buffer length */
- port->length = size;
-
- /* ...mark port is created */
- port->flags = XF_OUTPUT_FLAG_CREATED;
-
- TRACE(INIT, _b("output-port[%p] initialized"), port);
-
- return 0;
-}
-
-/* ...route output port */
-int xf_output_port_route(xf_output_port_t *port, u32 id, u32 n, u32 length, u32 align)
-{
- u32 core = XF_MSG_DST_CORE(id);
- u32 shared = XF_MSG_SHARED(id);
- xf_message_t *m;
- u32 i;
-
- /* ...allocate message pool for a port; extra message for control */
- XF_CHK_API(xf_msg_pool_init(&port->pool, n + 1, core));
-
- /* ...allocate required amount of buffers */
- for (i = 1; i <= n; i++)
- {
- /* ...get message from pool (directly; bypass that "get" interface) */
- m = xf_msg_pool_item(&port->pool, i);
-
- /* ...wipe out message link pointer (debugging) */
- m->next = NULL;
-
- /* ...set message parameters */
- m->id = id;
- m->opcode = XF_FILL_THIS_BUFFER;
- m->length = length;
- m->buffer = xf_mem_alloc(length, align, core, shared);
-
- /* ...if allocation failed, do a cleanup */
- if (!m->buffer) goto error;
-
- /* ...place message into output port */
- xf_msg_enqueue(&port->queue, m);
- }
-
- /* ...setup flow-control message */
- m = xf_output_port_control_msg(port);
- m->id = id;
- m->length = 0;
- m->buffer = NULL;
-
- /* ...wipe out message link pointer (debugging) */
- m->next = NULL;
-
- /* ...save port length */
- port->length = length;
-
- /* ...mark port is routed */
- port->flags |= XF_OUTPUT_FLAG_ROUTED | XF_OUTPUT_FLAG_IDLE;
-
- TRACE(ROUTE, _b("output-port[%p] routed: %x -> %x"), port, XF_MSG_DST(id), XF_MSG_SRC(id));
-
- return 0;
-
-error:
- /* ...allocation failed; do a cleanup */
- while (--i)
- {
- m = xf_msg_pool_item(&port->pool, i);
-
- /* ...free item */
- xf_mem_free(m->buffer, length, core, shared);
- }
-
- /* ...destroy pool data */
- xf_msg_pool_destroy(&port->pool, core);
-
- return -ENOMEM;
-}
-
-/* ...start output port unrouting sequence */
-void xf_output_port_unroute_start(xf_output_port_t *port, xf_message_t *m)
-{
- /* ...port must be routed */
- BUG(!xf_output_port_routed(port), _x("invalid state: %x"), port->flags);
-
- /* ...save message in the queue */
- port->unroute = m;
-
- /* ...put port unrouting flag */
- port->flags |= XF_OUTPUT_FLAG_UNROUTING;
-}
-
-/* ...complete port unrouting sequence */
-void xf_output_port_unroute_done(xf_output_port_t *port)
-{
- xf_message_t *m;
-
- /* ...make sure we have an outstanding port unrouting sequence */
- BUG(!xf_output_port_unrouting(port), _x("invalid state: %x"), port->flags);
-
- /* ...retrieve enqueued control-flow message */
- m = port->unroute, port->unroute = NULL;
-
- /* ...destroy port buffers */
- xf_output_port_unroute(port);
-
- /* ...and pass response to the caller */
- xf_response_ok(m);
-}
-
-/* ...unroute output port and destroy all memory buffers allocated */
-void xf_output_port_unroute(xf_output_port_t *port)
-{
- xf_message_t *m = xf_output_port_control_msg(port);
- u32 core = XF_MSG_DST_CORE(m->id);
- u32 shared = XF_MSG_SHARED(m->id);
- u32 n = port->pool.n - 1;
- u32 i;
-
- /* ...free all messages (we are running on "dst" core) */
- for (i = 1; i <= n; i++)
- {
- /* ...directly obtain message item */
- m = xf_msg_pool_item(&port->pool, i);
-
- /* ...free message buffer (must exist) */
- xf_mem_free(m->buffer, port->length, core, shared);
- }
-
- /* ...destroy pool data */
- xf_msg_pool_destroy(&port->pool, core);
-
- /* ...reset all flags */
- port->flags = XF_OUTPUT_FLAG_CREATED;
-
- /* ...reset message queue (it is empty again) */
- xf_msg_queue_init(&port->queue);
-
- TRACE(ROUTE, _b("output-port[%p] unrouted"), port);
-}
-
-/* ...put next message to the port */
-int xf_output_port_put(xf_output_port_t *port, xf_message_t *m)
-{
- /* ...in case of port unrouting sequence the flag returned will always be 0 */
- return xf_msg_enqueue(&port->queue, m);
-}
-
-/* ...retrieve next message from the port */
-void * xf_output_port_data(xf_output_port_t *port)
-{
- xf_message_t *m = xf_msg_queue_head(&port->queue);
-
- /* ...bail out if there is nothing enqueued */
- if (m == NULL) return NULL;
-
- /* ...it is not permitted to access port data when port is being unrouted */
- BUG(xf_output_port_unrouting(port), _x("invalid transaction"));
-
- /* ...make sure message length is valid */
- BUG(m->length < port->length, _x("Insufficient buffer length: %u < %u"), m->length, port->length);
-
- /* ...return access buffer pointer */
- return m->buffer;
-}
-
-/* ...produce output message marking amount of bytes produced */
-int xf_output_port_produce(xf_output_port_t *port, u32 n)
-{
- xf_message_t *m = xf_msg_dequeue(&port->queue);
-
- /* ...message cannot be NULL */
- BUG(m == NULL, _x("Invalid transaction"));
-
- /* ...it is not permitted to invoke this when port is being unrouted (or flushed - tbd) */
- BUG(xf_output_port_unrouting(port), _x("invalid transaction"));
-
- /* ...complete message with specified amount of bytes produced */
- xf_response_data(m, n);
-
- /* ...clear port idle flag (technically, not needed for unrouted port) */
- port->flags &= ~XF_OUTPUT_FLAG_IDLE;
-
- /* ...return indication of pending message availability */
- return (xf_msg_queue_head(&port->queue) != NULL);
-}
-
-/* ...flush output port */
-int xf_output_port_flush(xf_output_port_t *port, u32 opcode)
-{
- xf_message_t *m;
-
- /* ...if port is routed, we shall pass flush command to sink port */
- if (xf_output_port_routed(port))
- {
- /* ...if port is idle, satisfy immediately */
- if (port->flags & XF_OUTPUT_FLAG_IDLE) return 1;
-
- /* ...start flushing sequence if not already started */
- if ((port->flags & XF_OUTPUT_FLAG_FLUSHING) == 0)
- {
- /* ...put flushing flag */
- port->flags ^= XF_OUTPUT_FLAG_FLUSHING;
-
- /* ...get control message from associated pool */
- m = xf_output_port_control_msg(port);
-
- /* ...set flow-control operation */
- m->opcode = opcode;
-
- /* ...message is a command, but source and destination are swapped */
- xf_response(m);
- }
-
- /* ...zero-result indicates the flushing is in progress */
- return 0;
- }
- else
- {
- /* ...for non-routed port just complete all queued messages */
- while ((m = xf_msg_dequeue(&port->queue)) != NULL)
- {
- /* ...pass generic zero-length "okay" response - tbd */
- xf_response_ok(m);
- }
-
- /* ...non-zero result indicates the flushing is done */
- return 1;
- }
-}
-
-/* ...mark flushing sequence is completed */
-void xf_output_port_flush_done(xf_output_port_t *port)
-{
- /* ...make sure flushing sequence is ongoing */
- BUG((port->flags & XF_OUTPUT_FLAG_FLUSHING) == 0, _x("invalid state: %x"), port->flags);
-
- /* ...clear flushing flag and set idle flag */
- port->flags ^= XF_OUTPUT_FLAG_IDLE | XF_OUTPUT_FLAG_FLUSHING;
-
- TRACE(OUTPUT, _b("port[%p] flush sequence completed"), port);
-}
-
-/* ...destroy output port */
-void xf_output_port_destroy(xf_output_port_t *port, u32 core)
-{
- /* ...check if port is routed */
- if (xf_output_port_routed(port))
- {
- /* ...port must be in idle state */
- BUG(!xf_output_port_idle(port), _x("destroying non-idle port[%p]"), port);
-
- /* ...unroute port */
- xf_output_port_unroute(port);
- }
-
- /* ...reset port flags */
- port->flags = 0;
-
- TRACE(INIT, _b("output-port[%p] destroyed"), port);
-}
diff --git a/hifi/xaf/hifi-dpf/core/xf-isr.c b/hifi/xaf/hifi-dpf/core/xf-isr.c
deleted file mode 100644
index 4e2add1..0000000
--- a/hifi/xaf/hifi-dpf/core/xf-isr.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xf-isr.c
- *
- * DSP processing framework - code running from interrupt context
- *
- ******************************************************************************/
-
-#define MODULE_TAG ISR
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-
-/*******************************************************************************
- * API functions definitions
- ******************************************************************************/
-
-/* ...submit command message from interrupt context on local core */
-void xf_msg_schedule_isr(xf_message_t *m)
-{
- u32 core = XF_MSG_DST_CORE(m->id);
- xf_core_data_t *cd = XF_CORE_DATA(core);
-
- /* ...interrupt masking protocol is used for protecting local message queue */
- if (xf_msg_enqueue(&cd->queue, m))
- {
- /* ...resume local scheduler if that is the first message */
- xf_ipi_resume(core);
- }
-}
-
-/* ...complete message from interrupt handler */
-void xf_msg_complete_isr(xf_message_t *m)
-{
- u32 core = XF_MSG_DST_CORE(m->id);
- xf_core_data_t *cd = XF_CORE_DATA(core);
-
- /* ...place message into response queue */
- if (xf_msg_enqueue(&cd->response, m))
- {
- /* ...notify local scheduler if that is the first message */
- xf_ipi_resume(core);
- }
-}
diff --git a/hifi/xaf/hifi-dpf/core/xf-mem.c b/hifi/xaf/hifi-dpf/core/xf-mem.c
deleted file mode 100644
index ce5d8a6..0000000
--- a/hifi/xaf/hifi-dpf/core/xf-mem.c
+++ /dev/null
@@ -1,361 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xf-mem.c
- *
- * Dynamic memory allocator implementation (based on rb-tree index)
- *
- ******************************************************************************/
-
-#define MODULE_TAG MM
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-
-/*******************************************************************************
- * Tracing configuration
- ******************************************************************************/
-
-TRACE_TAG(INIT, 1);
-
-/*******************************************************************************
- * Internal helpers
- ******************************************************************************/
-
-/* ...initialize block */
-static inline xf_mm_block_t * xf_mm_block_init(void *addr, u32 size)
-{
- xf_mm_block_t *b = (xf_mm_block_t *)addr;
-
- /* ...use 31 available bits of node color to keep aligned size */
- return b->l_node.color = size, b;
-}
-
-/* ...check if the length of the block is less than given */
-static inline int xf_mm_block_length_less(xf_mm_block_t *b, u32 size)
-{
- /* ...we don't really care about LSB of color */
- return (b->l_node.color < size);
-}
-
-/* ...return exact block length */
-static inline u32 xf_mm_block_length(xf_mm_block_t *b)
-{
- /* ...wipe out least-significant bit from node color */
- return (b->l_node.color & ~1);
-}
-
-/* ...increase block length */
-static inline u32 xf_mm_block_length_add(xf_mm_block_t *b, u32 size)
-{
- /* ...return exact block length after increase */
- return ((b->l_node.color += size) & ~1);
-}
-
-/* ...decrease block length */
-static inline u32 xf_mm_block_length_sub(xf_mm_block_t *b, u32 size)
-{
- /* ...return exact block length after decrease */
- return ((b->l_node.color -= size) & ~1);
-}
-
-/*******************************************************************************
- * Internal functions
- ******************************************************************************/
-
-/* ...find best-match node given requested size */
-static inline xf_mm_block_t * xf_mm_find_by_size(xf_mm_pool_t *pool, u32 size)
-{
- rb_tree_t *tree = &pool->l_map;
- rb_idx_t p_idx, t_idx;
-
- /* ...find first block having length greater than requested */
- for (p_idx = rb_root(tree); p_idx != rb_null(tree); p_idx = rb_right(tree, p_idx))
- {
- xf_mm_block_t *b = container_of(p_idx, xf_mm_block_t, l_node);
-
- /* ...break upon finding first matching candidate */
- if (!xf_mm_block_length_less(b, size))
- break;
- }
-
- /* ...bail out if haven't found a block with sufficient size */
- if (p_idx == rb_null(tree))
- return NULL;
-
- /* ...try to find better match in left subtree */
- for (t_idx = rb_left(tree, p_idx); t_idx != rb_null(tree); )
- {
- xf_mm_block_t *b = container_of(t_idx, xf_mm_block_t, l_node);
-
- /* ...check the size of the block */
- if (!xf_mm_block_length_less(b, size))
- {
- /* ...update best match */
- p_idx = t_idx;
-
- /* ...and check if we have anything better in left sbtree */
- t_idx = rb_left(tree, t_idx);
- }
- else
- {
- /* ...move towards higher block sizes in that subtree */
- t_idx = rb_right(tree, t_idx);
- }
- }
-
- /* ...p_idx is our best choice */
- return container_of(p_idx, xf_mm_block_t, l_node);
-}
-
-/* ...find the neighbours of the block basing on its address */
-static void xf_mm_find_by_addr(xf_mm_pool_t *pool, void *addr, xf_mm_block_t **n)
-{
- rb_tree_t *tree = &pool->a_map;
- rb_idx_t p_idx, l_idx, r_idx;
-
- /* ...it is not possible to have exact match in this map */
- for (p_idx = rb_root(tree), l_idx = r_idx = NULL; p_idx != rb_null(tree); )
- {
- /* ...only "is less than" comparison is valid (as "a_node" pointer is biased) */
- if ((u32)p_idx < (u32)addr)
- {
- /* ...update lower neighbour */
- l_idx = p_idx;
-
- /* ...and move towards higher addresses */
- p_idx = rb_right(tree, p_idx);
- }
- else
- {
- /* ...update higher neighbour */
- r_idx = p_idx;
-
- /* ...and move towards lower addresses */
- p_idx = rb_left(tree, p_idx);
- }
- }
-
- /* ...translate nodes into blocks */
- n[0] = (l_idx ? container_of(l_idx, xf_mm_block_t, a_node) : NULL);
- n[1] = (r_idx ? container_of(r_idx, xf_mm_block_t, a_node) : NULL);
-}
-
-/* ...insert the block into L-map */
-static void xf_mm_insert_size(xf_mm_pool_t *pool, xf_mm_block_t *b, u32 size)
-{
- rb_tree_t *tree = &pool->l_map;
- rb_idx_t p_idx, t_idx;
-
- /* ...find the parent node for the next block */
- for (p_idx = rb_root(tree); p_idx != rb_null(tree); p_idx = t_idx)
- {
- /* ...check for the size */
- if (xf_mm_block_length_less(container_of(p_idx, xf_mm_block_t, l_node), size))
- {
- /* ...move towards higher addresses */
- if ((t_idx = rb_right(tree, p_idx)) == rb_null(tree))
- {
- /* ...node becomes a right child of parent p */
- rb_set_right(tree, p_idx, &b->l_node);
- break;
- }
- }
- else
- {
- /* ...move towards lower addresses (ok if exact size match is found) */
- if ((t_idx = rb_left(tree, p_idx)) == rb_null(tree))
- {
- /* ...node becomes a left child of parent p */
- rb_set_left(tree, p_idx, &b->l_node);
- break;
- }
- }
- }
-
- /* ...insert node into tree */
- rb_insert(tree, &b->l_node, p_idx);
-}
-
-/* ...insert the block into A-map */
-static void xf_mm_insert_addr(xf_mm_pool_t *pool, xf_mm_block_t *b)
-{
- rb_tree_t *tree = &pool->a_map;
- rb_idx_t p_idx, t_idx;
-
- /* ...find the parent node for the next block */
- for (p_idx = rb_root(tree); p_idx != rb_null(tree); p_idx = t_idx)
- {
- /* ...check for the address (only "is less than" comparison is valid) */
- if ((u32)p_idx < (u32)b)
- {
- /* ...move towards higher addresses */
- if ((t_idx = rb_right(tree, p_idx)) == rb_null(tree))
- {
- /* ...node becomes a right child of parent p */
- rb_set_right(tree, p_idx, &b->a_node);
- break;
- }
- }
- else
- {
- /* ...move towards lower addresses (by design there cannot be exact match) */
- if ((t_idx = rb_left(tree, p_idx)) == rb_null(tree))
- {
- /* ...node becomes a left child of parent p */
- rb_set_left(tree, p_idx, &b->a_node);
- break;
- }
- }
- }
-
- /* ...insert node into tree */
- rb_insert(tree, &b->a_node, p_idx);
-}
-
-/*******************************************************************************
- * Entry points
- ******************************************************************************/
-
-/* ...block allocation */
-void * xf_mm_alloc(xf_mm_pool_t *pool, u32 size)
-{
- xf_mm_block_t *b;
-
- /* ...find best-fit free block */
- XF_CHK_ERR(b = xf_mm_find_by_size(pool, size), NULL);
-
- /* ...remove the block from the L-map */
- rb_delete(&pool->l_map, &b->l_node);
-
- /* ...check if the size is exactly the same as requested */
- if ((size = xf_mm_block_length_sub(b, size)) == 0)
- {
- /* ...the block needs to be removed from the A-map as well */
- rb_delete(&pool->a_map, &b->a_node);
-
- /* ...entire block goes to user */
- return (void *) b;
- }
- else
- {
- /* ...insert the block into L-map */
- xf_mm_insert_size(pool, b, size);
-
- /* ...A-map remains intact; tail of the block goes to user */
- return (void *) b + size;
- }
-}
-
-/* ...block deallocation */
-void xf_mm_free(xf_mm_pool_t *pool, void *addr, u32 size)
-{
- xf_mm_block_t *b = xf_mm_block_init(addr, size);
- xf_mm_block_t *n[2];
-
- /* ...find block neighbours in A-map */
- xf_mm_find_by_addr(pool, addr, n);
-
- /* ...check if we can merge block to left neighbour */
- if (n[0])
- {
- if ((void *)n[0] + xf_mm_block_length(n[0]) == addr)
- {
- /* ...merge free block with left neighbour; delete it from L-map */
- rb_delete(&pool->l_map, &n[0]->l_node);
-
- /* ...adjust block length (block remains in A-map) */
- addr = (void *)(b = n[0]), size = xf_mm_block_length_add(b, size);
- }
- else
- {
- /* ...mark there is no left-merge */
- n[0] = NULL;
- }
- }
-
- /* ...check if we can merge block to right neighbour */
- if (n[1])
- {
- if ((void *)n[1] == addr + size)
- {
- /* ...merge free block with right neighbour; delete it from L-map */
- rb_delete(&pool->l_map, &n[1]->l_node);
-
- /* ...adjust block length */
- size = xf_mm_block_length_add(b, xf_mm_block_length(n[1]));
-
- /* ...check if left merge took place as well */
- if (n[0])
- {
- /* ...left neighbour covers now all three blocks; drop record from A-map */
- rb_delete(&pool->a_map, &n[1]->a_node);
- }
- else
- {
- /* ...fixup tree pointers (equivalent to remove/reinsert the same key) */
- rb_replace(&pool->a_map, &n[1]->a_node, &b->a_node);
- }
- }
- else
- {
- n[1] = NULL;
- }
- }
-
- /* ...if any merge has occured, A-map is updated */
- if (n[0] == NULL && n[1] == NULL)
- {
- /* ...add new block into A-map */
- xf_mm_insert_addr(pool, b);
- }
-
- /* ...add (new or adjusted) block into L-map */
- xf_mm_insert_size(pool, b, size);
-}
-
-/* ...initialize memory allocator */
-int xf_mm_init(xf_mm_pool_t *pool, void *addr, u32 size)
-{
- /* ...check pool alignment validity */
- XF_CHK_ERR(((u32)addr & (sizeof(xf_mm_block_t) - 1)) == 0, -EINVAL);
-
- /* ...check pool size validity */
- XF_CHK_ERR(((size) & (sizeof(xf_mm_block_t) - 1)) == 0, -EINVAL);
-
- /* ...set pool parameters (need that stuff at all? - tbd) */
- pool->addr = addr, pool->size = size;
-
- /* ...initialize rb-trees */
- rb_init(&pool->l_map), rb_init(&pool->a_map);
-
- /* ..."free" the entire block */
- xf_mm_free(pool, addr, size);
-
- TRACE(INIT, _b("memory allocator initialized: [%p..%p)"), addr, addr + size);
-
- return 0;
-}
diff --git a/hifi/xaf/hifi-dpf/core/xf-msg.c b/hifi/xaf/hifi-dpf/core/xf-msg.c
deleted file mode 100644
index 4253e1e..0000000
--- a/hifi/xaf/hifi-dpf/core/xf-msg.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xf-msg.c
- *
- * Message/message pool handling
- *
- ******************************************************************************/
-
-#define MODULE_TAG MSG
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-
-/*******************************************************************************
- * Entry points
- ******************************************************************************/
-
-/* ...allocate message pool */
-int xf_msg_pool_init(xf_msg_pool_t *pool, u32 n, u32 core)
-{
- u32 i;
-
- /* ...allocate shared memory from global pool */
- XF_CHK_ERR(pool->p = xf_mem_alloc(XF_MM(sizeof(*pool->p) * n), XF_PROXY_ALIGNMENT, core, 1), -ENOMEM);
-
- /* ...place all messages into single-liked list */
- for (pool->head = &pool->p[i = 0]; i < n - 1; i++)
- {
- /* ...set message pointer to next message in the pool */
- xf_msg_pool_item(pool, i)->next = xf_msg_pool_item(pool, i + 1);
- }
-
- /* ...set tail of the list */
- xf_msg_pool_item(pool, i)->next = NULL;
-
- /* ...save pool size */
- pool->n = n;
-
- return 0;
-}
-
-/* ...destroy memory pool */
-void xf_msg_pool_destroy(xf_msg_pool_t *pool, u32 core)
-{
- /* ...release pool memory (from shared local-IPC memory) */
- xf_mem_free(pool->p, XF_MM(sizeof(*pool->p) * pool->n), core, 1);
-}
-
-/* ...allocate message from a pool (no concurrent access from other cores) */
-xf_message_t * xf_msg_pool_get(xf_msg_pool_t *pool)
-{
- __xf_message_t *_m;
-
- /* ...pop message from the head of the pool */
- XF_CHK_ERR(_m = pool->head, NULL);
-
- /* ...advance list head */
- pool->head = (__xf_message_t *)(((xf_message_t *) _m)->next);
-
- /* ...debug - wipe out message "next" pointer */
- ((xf_message_t *) _m)->next = NULL;
-
- /* ...return properly aligned message pointer */
- return (xf_message_t *) _m;
-}
-
-/* ...return message back to the pool (no concurrent access from other cores) */
-void xf_msg_pool_put(xf_msg_pool_t *pool, xf_message_t *m)
-{
- __xf_message_t *_m = (__xf_message_t *) m;
-
- /* ...make sure the message is properly aligned object */
- BUG(!XF_IS_ALIGNED(_m), _x("Corrupted message pointer: %p"), _m);
-
- /* ...make sure it is returned to the same pool (need a length for that - tbd) */
- BUG(!xf_msg_from_pool(pool, m) < 0, _x("Bad pool/message: %p/%p"), pool->p, _m);
-
- /* ...place message into the head */
- m->next = (xf_message_t *) pool->head;
-
- /* ...advance pool head */
- pool->head = _m;
-}
diff --git a/hifi/xaf/hifi-dpf/core/xf-sched.c b/hifi/xaf/hifi-dpf/core/xf-sched.c
deleted file mode 100644
index cc1b4e8..0000000
--- a/hifi/xaf/hifi-dpf/core/xf-sched.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xf-sched.c
- *
- * Non-preemptive earliest-deadline-first scheduler
- *
- ******************************************************************************/
-
-#define MODULE_TAG SCHED
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-
-/*******************************************************************************
- * Tracing configuration
- ******************************************************************************/
-
-TRACE_TAG(DEBUG, 1);
-
-/*******************************************************************************
- * Global functions definitions
- ******************************************************************************/
-
-/* ...place task into scheduler queue */
-void xf_sched_put(xf_sched_t *sched, xf_task_t *t, u32 ts)
-{
- rb_tree_t *tree = (rb_tree_t *)sched;
- rb_node_t *node = (rb_node_t *)t;
- rb_idx_t p_idx, t_idx;
- u32 _ts;
-
- /* ...set scheduling timestamp */
- xf_task_timestamp_set(t, ts);
-
- /* ...find a place in the tree where the message should be inserted */
- for (p_idx = rb_root(tree); p_idx != rb_null(tree); p_idx = t_idx)
- {
- /* ...get timestamp of the p_idx */
- _ts = xf_task_timestamp((xf_task_t *)p_idx);
-
- /* ...ordering respects FIFO order of messages with same timestamp */
- if (xf_timestamp_before(ts, _ts))
- {
- if ((t_idx = rb_left(tree, p_idx)) == rb_null(tree))
- {
- /* ...p_idx is a direct successor of the message */
- rb_set_left(tree, p_idx, node);
-
- /* ...adjust head of the tree if needed */
- if (p_idx == rb_cache(tree)) goto insert_head;
- else goto insert;
- }
- }
- else
- {
- if ((t_idx = rb_right(tree, p_idx)) == rb_null(tree))
- {
- /* ...p_idx is a direct predeccessor of the message */
- rb_set_right(tree, p_idx, node);
-
- goto insert;
- }
- }
- }
-
-insert_head:
- /* ...adjust scheduler head element */
- rb_set_cache(tree, node);
-
-insert:
- /* ...insert item and rebalance the tree */
- rb_insert(tree, node, p_idx);
-
- /* ...head cannot be NULL */
- BUG(rb_cache(tree) == rb_null(tree), _x("Invalid scheduler state"));
-
- TRACE(DEBUG, _b("in: %x:[%p] (ts:%x)"), ts, node, xf_sched_timestamp(sched));
-}
-
-/* ...get first item from the scheduler */
-xf_task_t * xf_sched_get(xf_sched_t *sched)
-{
- rb_tree_t *tree = (rb_tree_t *)sched;
- rb_idx_t n_idx, t_idx;
- u32 ts;
-
- /* ...head of the tree is cached; replace it with its parent (direct successor) */
- if ((n_idx = rb_cache(tree)) == rb_null(tree))
- {
- /* ...tree is empty; bail out */
- return NULL;
- }
- else
- {
- /* ...delete current node and rebalance the tree */
- t_idx = rb_delete(tree, n_idx), rb_set_cache(tree, t_idx);
-
- /* ...get task timestamp */
- ts = xf_task_timestamp((xf_task_t *)n_idx);
-
- /* ...advance scheduler timestamp */
- xf_sched_timestamp_set(sched, ts);
-
- TRACE(DEBUG, _b("out: %x:[%p]"), ts, n_idx);
-
- /* ...return task */
- return (xf_task_t *)n_idx;
- }
-}
-
-/* ...cancel specified task execution (must be scheduled!) */
-void xf_sched_cancel(xf_sched_t *sched, xf_task_t *t)
-{
- rb_tree_t *tree = (rb_tree_t *)sched;
- rb_idx_t n_idx = t;
- rb_idx_t t_idx;
-
- /* ...delete message from tree */
- t_idx = rb_delete(tree, n_idx);
-
- /* ...adjust head if that was the first message */
- (n_idx == rb_cache(tree) ? rb_set_cache(tree, t_idx), 1 : 0);
-}
-
-/* ...initialize scheduler data */
-void xf_sched_init(xf_sched_t *sched)
-{
- rb_init((rb_tree_t *)sched);
-}
diff --git a/hifi/xaf/hifi-dpf/core/xf-shmem.c b/hifi/xaf/hifi-dpf/core/xf-shmem.c
deleted file mode 100644
index 15d3b1d..0000000
--- a/hifi/xaf/hifi-dpf/core/xf-shmem.c
+++ /dev/null
@@ -1,350 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xf-shmem.c
- *
- * DSP shared memory interface implementation
- *
- ******************************************************************************/
-
-#define MODULE_TAG SHMEM
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xf.h"
-
-/*******************************************************************************
- * Tracing tags
- ******************************************************************************/
-
-/* ...general initialization sequence */
-TRACE_TAG(INIT, 1);
-
-/* ...interface status change */
-TRACE_TAG(EXEC, 0);
-
-/* ...command reception */
-TRACE_TAG(CMD, 1);
-
-/* ...response generation */
-TRACE_TAG(RSP, 1);
-
-#ifdef XAF_PROFILE_DSP
-#include "xa_profiler.h"
-#endif
-/*******************************************************************************
- * Local constants definitions
- ******************************************************************************/
-
-/* ...local interface status change flag */
-#define XF_PROXY_STATUS_LOCAL (1 << 0)
-
-/* ...remote status change notification flag */
-#define XF_PROXY_STATUS_REMOTE (1 << 1)
-
-/*******************************************************************************
- * Internal helpers
- ******************************************************************************/
-
-/* ...put message into proxy queue */
-static inline void xf_msg_proxy_put(xf_message_t *m)
-{
- u32 dst = XF_MSG_DST_CORE(m->id);
- u32 src = XF_MSG_SRC_CORE(m->id);
- xf_core_rw_data_t *rw = XF_CORE_RW_DATA(dst);
- int first;
-
- /* ...get an access to shared rw-memory (we are running on "source" core) */
- xf_mutex_lock(src);
-
- /* ...assure memory coherency if needed */
- if (XF_REMOTE_IPC_NON_COHERENT)
- {
- /* ...invalidate rw-shared memory region */
- XF_PROXY_INVALIDATE(rw, sizeof(*rw));
-
- /* ...put message into shared queue */
- first = xf_msg_enqueue(&rw->remote, m);
-
- /* ...flush both message and shared queue data */
- XF_PROXY_FLUSH(rw, sizeof(*rw)), XF_PROXY_FLUSH(m, sizeof(*m));
- }
- else
- {
- /* ...no memory coherency concerns; just place a message in the queue */
- first = xf_msg_enqueue(&rw->remote, m);
- }
-
- /* ...release rw-memory region lock */
- xf_mutex_unlock(src);
-
- /* ...assert IPI interrupt on target ("destination") core if needed */
- if (first && (dst ^ src))
- {
- xf_ipi_assert(dst);
- }
-}
-
-/* ...retrieve message from proxy queue */
-static inline xf_message_t * xf_msg_proxy_get(u32 core)
-{
- xf_core_rw_data_t *rw = XF_CORE_RW_DATA(core);
- xf_message_t *m;
-
- /* ...retrieve message from queue in atomic fashion */
- xf_mutex_lock(core);
-
- /* ...assure memory coherency if needed */
- if (XF_REMOTE_IPC_NON_COHERENT)
- {
- /* ...invalidate rw-memory */
- XF_PROXY_INVALIDATE(rw, sizeof(*rw));
-
- /* ...dequeue message from response queue */
- m = xf_msg_dequeue(&rw->remote);
-
- /* ...flush rw memory */
- XF_PROXY_FLUSH(rw, sizeof(*rw));
-
- /* ...invalidate message data if found */
- (m ? XF_PROXY_INVALIDATE(m, sizeof(*m)) : 0);
- }
- else
- {
- /* ...just dequeue message from response queue */
- m = xf_msg_dequeue(&rw->remote);
- }
-
- /* ...release the rw-lock */
- xf_mutex_unlock(core);
-
- return m;
-}
-
-/*******************************************************************************
- * Internal functions definitions
- ******************************************************************************/
-
-/* ...retrieve all incoming commands from shared memory ring-buffer */
-static u32 xf_shmem_process_input(u32 core)
-{
- xf_message_t *m;
- u32 read_idx;
- u32 write_idx;
- u32 status = 0;
-
- /* ...get current value of write pointer */
- read_idx = XF_PROXY_READ(core, cmd_read_idx);
- write_idx = XF_PROXY_READ(core, cmd_write_idx);
-
- TRACE(EXEC, _b("Command queue: write = %x / read = %x"), write_idx, read_idx);
-
- /* ...process all committed commands */
- while (!XF_QUEUE_EMPTY(read_idx, write_idx))
- {
- xf_proxy_message_t *command;
-
- /* ...allocate message; the call should not fail */
- if ((m = xf_msg_pool_get(&XF_CORE_RO_DATA(core)->pool)) == NULL)
- break;
-
- /* ...if queue was full, set global proxy update flag */
- if (XF_QUEUE_FULL(read_idx, write_idx))
- status |= XF_PROXY_STATUS_REMOTE | XF_PROXY_STATUS_LOCAL;
- else
- status |= XF_PROXY_STATUS_LOCAL;
-
- /* ...get oldest not processed command */
- command = XF_PROXY_COMMAND(core, XF_QUEUE_IDX(read_idx));
-
- /* ...synchronize memory contents */
- XF_PROXY_INVALIDATE(command, sizeof(*command));
-
- /* ...fill message parameters */
- m->id = command->session_id;
- m->opcode = command->opcode;
- m->length = command->length;
- m->buffer = xf_ipc_a2b(core, command->address);
- TRACE(CMD, _b("C[%x]:(%x,%u,%p)"), m->id, m->opcode, m->length, m->buffer);
-
- /* ...invalidate message buffer contents as required - not here - tbd */
- (XF_OPCODE_CDATA(m->opcode) ? XF_PROXY_INVALIDATE(m->buffer, m->length) : 0);
-
- /* ...advance local reading index copy */
- read_idx = XF_QUEUE_ADVANCE_IDX(read_idx);
-
- /* ...update shadow copy of reading index */
- XF_PROXY_WRITE(core, cmd_read_idx, read_idx);
-
- /* ...and schedule message execution on proper core */
- xf_msg_submit(m);
- }
-
- return status;
-}
-
-/* ...send out all pending outgoing responses to the shared memory ring-buffer */
-static u32 xf_shmem_process_output(u32 core)
-{
- xf_message_t *m;
- u32 read_idx;
- u32 write_idx;
- u32 status = 0;
-
- /* ...get current value of peer read pointer */
- write_idx = XF_PROXY_READ(core, rsp_write_idx);
- read_idx = XF_PROXY_READ(core, rsp_read_idx);
-
- TRACE(EXEC, _b("Response queue: write = %08X / read = %08X"), write_idx, read_idx);
-
- /* ...while we have response messages and there's space to write out one */
- while (!XF_QUEUE_FULL(read_idx, write_idx))
- {
- xf_proxy_message_t *response;
-
- /* ...remove message from internal queue */
- if ((m = xf_msg_proxy_get(core)) == NULL)
- break;
-
- /* ...notify remote interface each time we send it a message (only if it was empty?) */
- status = XF_PROXY_STATUS_REMOTE | XF_PROXY_STATUS_LOCAL;
-
-#if 0
- /* ...need to decide on best strategy - tbd */
- if (XF_QUEUE_EMPTY(read_idx, write_idx))
- status |= XF_PROXY_STATUS_REMOTE | XF_PROXY_STATUS_LOCAL;
- else
- status |= XF_PROXY_STATUS_LOCAL;
-#endif
-
- /* ...flush message buffer contents to main memory as required - too late - different core - tbd */
- (XF_OPCODE_RDATA(m->opcode) ? XF_PROXY_FLUSH(m->buffer, m->length) : 0);
-
- /* ...find place in a queue for next response */
- response = XF_PROXY_RESPONSE(core, XF_QUEUE_IDX(write_idx));
-
- /* ...put the response message fields */
- response->session_id = m->id;
- response->opcode = m->opcode;
- response->length = m->length;
- response->address = xf_ipc_b2a(core, m->buffer);
- /* ...flush the content of the caches to main memory */
- XF_PROXY_FLUSH(response, sizeof(*response));
-
-#ifdef XAF_PROFILE_DSP
- if((m->opcode == XF_FILL_THIS_BUFFER))
- {
- if((m->length != 0) && (m->length != 20))
- {
- prof.g_output_bytes += (unsigned long)m->length;
- }
- else if (m->length == 20)
- {
- /* Profiler re-initialization */
- INIT_XA_PROFILER(prof,"DSP core");
-
- /* update stream params on re-init */
- xf_start_msg_t *sm = (xf_start_msg_t *)m->buffer;
- prof.sample_rate = sm->sample_rate;
- prof.channels = sm->channels;
- prof.pcm_width = sm->pcm_width;
- }
- }
-#endif
- TRACE(RSP, _b("R[%x]:(%x,%u,%p)"), m->id, m->opcode, m->length, m->buffer);
-
- /* ...return message back to the pool */
- xf_msg_pool_put(&XF_CORE_RO_DATA(core)->pool, m);
-
- /* ...advance local writing index copy */
- write_idx = XF_QUEUE_ADVANCE_IDX(write_idx);
-
- /* ...update shared copy of queue write pointer */
- XF_PROXY_WRITE(core, rsp_write_idx, write_idx);
- }
-
- /* ...return interface status change flags */
- return status;
-}
-
-/*******************************************************************************
- * Entry points
- ******************************************************************************/
-
-/* ...process local/remote shared memory interface status change */
-void xf_shmem_process_queues(u32 core)
-{
- u32 status;
-
- do
- {
- /* ...acknowledge/clear any pending incoming interrupt */
- XF_PROXY_SYNC_PEER(core);
-
- /* ...send out pending response messages (frees message buffers, so do it first) */
- status = xf_shmem_process_output(core);
-
- /* ...receive and forward incoming command messages (allocates message buffers) */
- status |= xf_shmem_process_input(core);
-
- /* ...assert remote mailbox interrupt if global update bit is set */
- if (status & XF_PROXY_STATUS_REMOTE)
- {
- XF_PROXY_NOTIFY_PEER(core);
- }
- }
- while (status);
-}
-
-/* ...completion callback for message originating from remote proxy */
-void xf_msg_proxy_complete(xf_message_t *m)
-{
- /* ...place message into proxy response queue */
- xf_msg_proxy_put(m);
-}
-
-/* ...initialize shared memory interface (DSP side) */
-int xf_shmem_init(u32 core)
-{
- xf_core_rw_data_t *rw = XF_CORE_RW_DATA(core);
- xf_core_ro_data_t *ro = XF_CORE_RO_DATA(core);
-
- /* ...initialize local/remote message queues */
- xf_msg_queue_init(&rw->local);
- xf_msg_queue_init(&rw->remote);
-
- /* ...initialize global message list */
- XF_CHK_API(xf_msg_pool_init(&ro->pool, XF_CFG_MESSAGE_POOL_SIZE, core));
-
- /* ...flush memory content as needed */
- (XF_REMOTE_IPC_NON_COHERENT ? XF_PROXY_FLUSH(rw, sizeof(*rw)) : 0);
-
- /* ...system-specific initialization of IPC layer */
- XF_CHK_API(xf_ipc_init(core));
-
- TRACE(INIT, _b("SHMEM-%u subsystem initialized"), core);
-
- return 0;
-}
diff --git a/hifi/xaf/hifi-dpf/include/audio/xa-audio-decoder-api.h b/hifi/xaf/hifi-dpf/include/audio/xa-audio-decoder-api.h
deleted file mode 100644
index 797bf23..0000000
--- a/hifi/xaf/hifi-dpf/include/audio/xa-audio-decoder-api.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xa-audio-decoder-api.h
- *
- * Generic audio decoder API
- *
- ******************************************************************************/
-
-#ifndef __XA_ADEC_API_H__
-#define __XA_ADEC_API_H__
-
-/* ...includes */
-#include "xa_type_def.h"
-#include "xa_error_standards.h"
-#include "xa_apicmd_standards.h"
-#include "xa_memory_standards.h"
-
-/* ...generic audio-decoder configuration parameters */
-enum xa_config_param_codec {
- XA_CODEC_CONFIG_PARAM_CHANNELS = 0x10000 + 0,
- XA_CODEC_CONFIG_PARAM_SAMPLE_RATE = 0x10000 + 1,
- XA_CODEC_CONFIG_PARAM_PCM_WIDTH = 0x10000 + 2,
- XA_CODEC_CONFIG_PARAM_PRODUCED = 0x10000 + 3
-};
-
-/* ...ports indices */
-enum xa_codec_ports {
- XA_CODEC_INPUT_PORT = 0,
- XA_CODEC_OUTPUT_PORT = 1
-};
-
-/* ...non-fatal execution errors */
-enum
-{
- XA_CODEC_EXEC_NO_DATA = XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_GENERIC, 0)
-};
-
-/* ...fatal execution errors */
-enum
-{
- XA_CODEC_EXEC_SEQUENCE = XA_ERROR_CODE(xa_severity_fatal, xa_class_execute, XA_CODEC_GENERIC, 0),
- XA_CODEC_EXEC_MISBEHAVING = XA_ERROR_CODE(xa_severity_fatal, xa_class_execute, XA_CODEC_GENERIC, 1),
-};
-
-#endif
diff --git a/hifi/xaf/hifi-dpf/include/audio/xa-mixer-api.h b/hifi/xaf/hifi-dpf/include/audio/xa-mixer-api.h
deleted file mode 100644
index 0de1745..0000000
--- a/hifi/xaf/hifi-dpf/include/audio/xa-mixer-api.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * xa-mixer-api.h
- *
- * Mixer component API
- *
- ******************************************************************************/
-
-#ifndef __XA_MIXER_API_H__
-#define __XA_MIXER_API_H__
-
-/*******************************************************************************
- * Includes
- ******************************************************************************/
-
-#include "xa_type_def.h"
-#include "xa_error_standards.h"
-#include "xa_apicmd_standards.h"
-#include "xa_memory_standards.h"
-
-/*******************************************************************************
- * Constants definitions
- ******************************************************************************/
-
-/* ...mixer-specific configuration parameters */
-enum xa_config_param_mixer {
- XA_MIXER_CONFIG_PARAM_INPUT_TRACKS = 0,
- XA_MIXER_CONFIG_PARAM_PCM_WIDTH = 1,
- XA_MIXER_CONFIG_PARAM_CHANNELS = 2,
- XA_MIXER_CONFIG_PARAM_SAMPLE_RATE = 4,
- XA_MIXER_CONFIG_PARAM_FRAME_SIZE = 5,
- XA_MIXER_CONFIG_PARAM_BUFFER_SIZE = 6,
- XA_MIXER_CONFIG_PARAM_VOLUME = 7,
- XA_MIXER_CONFIG_PARAM_NUM = 8
-};
-
-/* ...component identifier (informative) */
-#define XA_CODEC_MIXER 1
-
-/* ...global limitation - maximal mixer track number */
-#define XA_MIXER_MAX_TRACK_NUMBER 4
-
-/* ...volume representation */
-#define __XA_MIXER_VOLUME(v) \
- ({ u32 __v = (u32)((v) * (1 << 12)); (__v > 0xFFFF ? __v = 0xFFFF : 0); (u16)__v; })
-
-/* ...mixer volume setting command encoding */
-#define XA_MIXER_VOLUME(track, channel, volume) \
- (__XA_MIXER_VOLUME(volume) | ((track) << 16) | ((channel) << 20))
-
-/*******************************************************************************
- * Class 0: API Errors
- ******************************************************************************/
-
-#define XA_MIXER_API_NONFATAL(e) \
- XA_ERROR_CODE(xa_severity_nonfatal, xa_class_api, XA_CODEC_MIXER, (e))
-
-#define XA_MIXER_API_FATAL(e) \
- XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_MIXER, (e))
-
-enum xa_error_nonfatal_api_mixer {
- XA_MIXER_API_NONFATAL_MAX = XA_MIXER_API_NONFATAL(0)
-};
-
-enum xa_error_fatal_api_mixer {
- XA_MIXER_API_FATAL_MAX = XA_MIXER_API_FATAL(0)
-};
-
-/*******************************************************************************
- * Class 1: Configuration Errors
- ******************************************************************************/
-
-#define XA_MIXER_CONFIG_NONFATAL(e) \
- XA_ERROR_CODE(xa_severity_nonfatal, xa_class_config, XA_CODEC_MIXER, (e))
-
-#define XA_MIXER_CONFIG_FATAL(e) \
- XA_ERROR_CODE(xa_severity_fatal, xa_class_config, XA_CODEC_MIXER, (e))
-
-enum xa_error_nonfatal_config_mixer {
- XA_MIXER_CONFIG_NONFATAL_RANGE = XA_MIXER_CONFIG_NONFATAL(0),
- XA_MIXER_CONFIG_NONFATAL_STATE = XA_MIXER_CONFIG_NONFATAL(1),
- XA_MIXER_CONFIG_NONFATAL_MAX = XA_MIXER_CONFIG_NONFATAL(2)
-};
-
-enum xa_error_fatal_config_mixer {
- XA_MIXER_CONFIG_FATAL_RANGE = XA_MIXER_CONFIG_FATAL(0),
- XA_MIXER_CONFIG_FATAL_TRACK_STATE = XA_MIXER_CONFIG_FATAL(0 + XA_MIXER_CONFIG_NONFATAL_MAX),
- XA_MIXER_CONFIG_FATAL_MAX = XA_MIXER_CONFIG_FATAL(1)
-};
-
-/*******************************************************************************
- * Class 2: Execution Class Errors
- ******************************************************************************/
-
-#define XA_MIXER_EXEC_NONFATAL(e) \
- XA_ERROR_CODE(xa_severity_nonfatal, xa_class_execute, XA_CODEC_MIXER, (e))
-
-#define XA_MIXER_EXEC_FATAL(e) \
- XA_ERROR_CODE(xa_severity_fatal, xa_class_execute, XA_CODEC_MIXER, (e))
-
-enum xa_error_nonfatal_execute_mixer {
- XA_MIXER_EXEC_NONFATAL_STATE = XA_MIXER_EXEC_NONFATAL(0),
- XA_MIXER_EXEC_NONFATAL_NO_DATA = XA_MIXER_EXEC_NONFATAL(1),
- XA_MIXER_EXEC_NONFATAL_INPUT = XA_MIXER_EXEC_NONFATAL(2),
- XA_MIXER_EXEC_NONFATAL_OUTPUT = XA_MIXER_EXEC_NONFATAL(3),
- XA_MIXER_EXEC_NONFATAL_MAX = XA_MIXER_EXEC_NONFATAL(4)
-};
-
-enum xa_error_fatal_execute_mixer {
- XA_MIXER_EXEC_FATAL_STATE = XA_MIXER_EXEC_FATAL(0),
- XA_MIXER_EXEC_FATAL_INPUT = XA_MIXER_EXEC_FATAL(1),
- XA_MIXER_EXEC_FATAL_OUTPUT = XA_MIXER_EXEC_FATAL(2),
- XA_MIXER_EXEC_FATAL_MAX = XA_MIXER_EXEC_FATAL(3)
-};
-
-/*******************************************************************************
- * API function definition (tbd)
- ******************************************************************************/
-
-#if defined(USE_DLL) && defined(_WIN32)
-#define DLL_SHARED __declspec(dllimport)
-#elif defined (_WINDLL)
-#define DLL_SHARED __declspec(dllexport)
-#else
-#define DLL_SHARED
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif /* __cplusplus */
-DLL_SHARED xa_codec_func_t xa_mixer;
-#if defined(__cplusplus)
-}
-#endif /* __cplusplus */
-
-#endif /* __XA_MIXER_API_H__ */
diff --git a/hifi/xaf/hifi-dpf/include/audio/xa_apicmd_standards.h b/hifi/xaf/hifi-dpf/include/audio/xa_apicmd_standards.h
deleted file mode 100644
index eb1b78e..0000000
--- a/hifi/xaf/hifi-dpf/include/audio/xa_apicmd_standards.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-/*******************************************************************************
-*
-* NOTE, ANY CHANGES TO THIS FILE MAY AFFECT UNDERLYING AUDIO / SPEECH CODEC
-* LIBRARY COMPONENT FROM CADENCE DESIGN SYSTEMS, INC.
-*
-******************************************************************************/
-
-
-#ifndef __XA_API_CMD_STANDARDS_H__
-#define __XA_API_CMD_STANDARDS_H__
-
-/*****************************************************************************/
-/* Standard API commands */
-/*****************************************************************************/
-
-enum xa_api_cmd_generic {
- XA_API_CMD_GET_LIB_ID_STRINGS = 0x0001,
-
- XA_API_CMD_GET_API_SIZE = 0x0002,
- XA_API_CMD_INIT = 0x0003,
-
- XA_API_CMD_SET_CONFIG_PARAM = 0x0004,
- XA_API_CMD_GET_CONFIG_PARAM = 0x0005,
-
- XA_API_CMD_GET_MEMTABS_SIZE = 0x0006,
- XA_API_CMD_SET_MEMTABS_PTR = 0x0007,
- XA_API_CMD_GET_N_MEMTABS = 0x0008,
-
- XA_API_CMD_EXECUTE = 0x0009,
-
- XA_API_CMD_PUT_INPUT_QUERY = 0x000A,
- XA_API_CMD_GET_CURIDX_INPUT_BUF = 0x000B,
- XA_API_CMD_SET_INPUT_BYTES = 0x000C,
- XA_API_CMD_GET_OUTPUT_BYTES = 0x000D,
- XA_API_CMD_INPUT_OVER = 0x000E,
-
- XA_API_CMD_GET_MEM_INFO_SIZE = 0x0010,
- XA_API_CMD_GET_MEM_INFO_ALIGNMENT = 0x0011,
- XA_API_CMD_GET_MEM_INFO_TYPE = 0x0012,
- XA_API_CMD_GET_MEM_INFO_PLACEMENT = 0x0013,
- XA_API_CMD_GET_MEM_INFO_PRIORITY = 0x0014,
- XA_API_CMD_SET_MEM_PTR = 0x0015,
- XA_API_CMD_SET_MEM_INFO_SIZE = 0x0016,
- XA_API_CMD_SET_MEM_PLACEMENT = 0x0017,
-
- XA_API_CMD_GET_N_TABLES = 0x0018,
- XA_API_CMD_GET_TABLE_INFO_SIZE = 0x0019,
- XA_API_CMD_GET_TABLE_INFO_ALIGNMENT = 0x001A,
- XA_API_CMD_GET_TABLE_INFO_PRIORITY = 0x001B,
- XA_API_CMD_SET_TABLE_PTR = 0x001C,
- XA_API_CMD_GET_TABLE_PTR = 0x001D
-};
-
-/*****************************************************************************/
-/* Standard API command indices */
-/*****************************************************************************/
-
-enum xa_cmd_type_generic {
- /* XA_API_CMD_GET_LIB_ID_STRINGS indices */
- XA_CMD_TYPE_LIB_NAME = 0x0100,
- XA_CMD_TYPE_LIB_VERSION = 0x0200,
- XA_CMD_TYPE_API_VERSION = 0x0300,
-
- /* XA_API_CMD_INIT indices */
- XA_CMD_TYPE_INIT_API_PRE_CONFIG_PARAMS = 0x0100,
- XA_CMD_TYPE_INIT_API_POST_CONFIG_PARAMS = 0x0200,
- XA_CMD_TYPE_INIT_PROCESS = 0x0300,
- XA_CMD_TYPE_INIT_DONE_QUERY = 0x0400,
-
- /* XA_API_CMD_EXECUTE indices */
- XA_CMD_TYPE_DO_EXECUTE = 0x0100,
- XA_CMD_TYPE_DONE_QUERY = 0x0200,
- XA_CMD_TYPE_DO_RUNTIME_INIT = 0x0300
-};
-
-
-/*****************************************************************************/
-/* Standard API configuration parameters */
-/*****************************************************************************/
-
-enum xa_config_param_generic {
- XA_CONFIG_PARAM_CUR_INPUT_STREAM_POS = 0x0100,
- XA_CONFIG_PARAM_GEN_INPUT_STREAM_POS = 0x0200,
-};
-
-#endif /* __XA_API_CMD_STANDARDS_H__ */
diff --git a/hifi/xaf/hifi-dpf/include/audio/xa_error_standards.h b/hifi/xaf/hifi-dpf/include/audio/xa_error_standards.h
deleted file mode 100644
index 1b67b52..0000000
--- a/hifi/xaf/hifi-dpf/include/audio/xa_error_standards.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-/*******************************************************************************
-*
-* NOTE, ANY CHANGES TO THIS FILE MAY AFFECT UNDERLYING AUDIO / SPEECH CODEC
-* LIBRARY COMPONENT FROM CADENCE DESIGN SYSTEMS, INC.
-*
-******************************************************************************/
-
-
-#ifndef __XA_ERROR_STANDARDS_H__
-#define __XA_ERROR_STANDARDS_H__
-
-/*****************************************************************************/
-/* File includes */
-/* xa_type_def.h */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* Constant hash defines */
-/*****************************************************************************/
-#define XA_NO_ERROR 0
-#define XA_FATAL_ERROR 0x80000000
-
-enum xa_error_severity {
- xa_severity_nonfatal = 0,
- xa_severity_fatal = 0xffffffff
-};
-
-enum xa_error_class {
- xa_class_api = 0,
- xa_class_config = 1,
- xa_class_execute = 2,
- xa_class_proxy = 3
-};
-
-#define XA_CODEC_GENERIC 0
-
-#define XA_ERROR_CODE(severity, class, codec, index) ((severity << 15) | (class << 11) | (codec << 6) | index)
-#define XA_ERROR_SEVERITY(code) (((code) & XA_FATAL_ERROR) != 0)
-#define XA_ERROR_CLASS(code) (((code) >> 11) & 0x0f)
-#define XA_ERROR_CODEC(code) (((code) >> 6) & 0x1f)
-#define XA_ERROR_SUBCODE(code) (((code) >> 0) & 0x3f)
-
-/* Our convention is that only api-class errors can be generic ones. */
-
-/*****************************************************************************/
-/* Class 0: API Errors */
-/*****************************************************************************/
-/* Non Fatal Errors */
-/* (none) */
-/* Fatal Errors */
-enum xa_error_fatal_api_generic {
- XA_API_FATAL_MEM_ALLOC = XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_GENERIC, 0),
- XA_API_FATAL_MEM_ALIGN = XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_GENERIC, 1),
- XA_API_FATAL_INVALID_CMD = XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_GENERIC, 2),
- XA_API_FATAL_INVALID_CMD_TYPE = XA_ERROR_CODE(xa_severity_fatal, xa_class_api, XA_CODEC_GENERIC, 3)
-};
-
-#endif /* __XA_ERROR_STANDARDS_H__ */
diff --git a/hifi/xaf/hifi-dpf/include/audio/xa_memory_standards.h b/hifi/xaf/hifi-dpf/include/audio/xa_memory_standards.h
deleted file mode 100644
index 27ec455..0000000
--- a/hifi/xaf/hifi-dpf/include/audio/xa_memory_standards.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-/*******************************************************************************
-*
-* NOTE, ANY CHANGES TO THIS FILE MAY AFFECT UNDERLYING AUDIO / SPEECH CODEC
-* LIBRARY COMPONENT FROM CADENCE DESIGN SYSTEMS, INC.
-*
-******************************************************************************/
-
-
-#ifndef __XA_MEMORY_STANDARDS_H__
-#define __XA_MEMORY_STANDARDS_H__
-
-/*****************************************************************************/
-/* Constant hash defines */
-/*****************************************************************************/
-/* when you don't need alignment, pass this to memory library */
-#define XA_MEM_NO_ALIGN 0x01
-
-/* standard memory types */
-/* to be used inter frames */
-#define XA_MEMTYPE_PERSIST 0x00
-/* read write, to be used intra frames */
-#define XA_MEMTYPE_SCRATCH 0x01
-/* read only memory, intra frame */
-#define XA_MEMTYPE_INPUT 0x02
-/* read-write memory, for usable output, intra frame */
-#define XA_MEMTYPE_OUTPUT 0x03
-/* readonly memory, inter frame */
-#define XA_MEMTYPE_TABLE 0x04
-/* input buffer before mem tabs allocation */
-#define XA_MEMTYPE_PRE_FRAME_INPUT 0x05
-/* input buffer before mem tabs allocation */
-#define XA_MEMTYPE_PRE_FRAME_SCRATCH 0x06
-/* for local variables */
-#define XA_MEMTYPE_AUTO_VAR 0x80
-
-/* standard memory priorities */
-#define XA_MEMPRIORITY_ANYWHERE 0x00
-#define XA_MEMPRIORITY_LOWEST 0x01
-#define XA_MEMPRIORITY_LOW 0x02
-#define XA_MEMPRIORITY_NORM 0x03
-#define XA_MEMPRIORITY_ABOVE_NORM 0x04
-#define XA_MEMPRIORITY_HIGH 0x05
-#define XA_MEMPRIORITY_HIGHER 0x06
-#define XA_MEMPRIORITY_CRITICAL 0x07
-
-/* standard memory placements */
-/* placement is defined by 64 bits */
-
-#define XA_MEMPLACE_FAST_RAM_0 0x000001
-#define XA_MEMPLACE_FAST_RAM_1 0x000002
-#define XA_MEMPLACE_FAST_RAM_2 0x000004
-#define XA_MEMPLACE_FAST_RAM_3 0x000008
-#define XA_MEMPLACE_FAST_RAM_4 0x000010
-#define XA_MEMPLACE_FAST_RAM_5 0x000020
-#define XA_MEMPLACE_FAST_RAM_6 0x000040
-#define XA_MEMPLACE_FAST_RAM_7 0x000080
-
-#define XA_MEMPLACE_INT_RAM_0 0x000100
-#define XA_MEMPLACE_INT_RAM_1 0x000200
-#define XA_MEMPLACE_INT_RAM_2 0x000400
-#define XA_MEMPLACE_INT_RAM_3 0x000800
-#define XA_MEMPLACE_INT_RAM_4 0x001000
-#define XA_MEMPLACE_INT_RAM_5 0x002000
-#define XA_MEMPLACE_INT_RAM_6 0x004000
-#define XA_MEMPLACE_INT_RAM_7 0x008000
-
-#define XA_MEMPLACE_EXT_RAM_0 0x010000
-#define XA_MEMPLACE_EXT_RAM_1 0x020000
-#define XA_MEMPLACE_EXT_RAM_2 0x040000
-#define XA_MEMPLACE_EXT_RAM_3 0x080000
-#define XA_MEMPLACE_EXT_RAM_4 0x100000
-#define XA_MEMPLACE_EXT_RAM_5 0x200000
-#define XA_MEMPLACE_EXT_RAM_6 0x400000
-#define XA_MEMPLACE_EXT_RAM_7 0x800000
-
-#define XA_MEMPLACE_DONTCARE_H 0xFFFFFFFF
-#define XA_MEMPLACE_DONTCARE_L 0xFFFFFFFF
-
-/* the simple common PC RAM */
-#define XA_PC_RAM_H 0x00000000
-#define XA_PC_RAM_L XA_MEMPLACE_EXT_RAM_0
-
-#endif /* __XA_MEMORY_STANDARDS_H__ */
diff --git a/hifi/xaf/hifi-dpf/include/audio/xa_type_def.h b/hifi/xaf/hifi-dpf/include/audio/xa_type_def.h
deleted file mode 100644
index e83cdd3..0000000
--- a/hifi/xaf/hifi-dpf/include/audio/xa_type_def.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-/*******************************************************************************
-*
-* NOTE, ANY CHANGES TO THIS FILE MAY AFFECT UNDERLYING AUDIO / SPEECH CODEC
-* LIBRARY COMPONENT FROM CADENCE DESIGN SYSTEMS, INC.
-*
-******************************************************************************/
-
-
-#ifndef __XA_TYPE_DEF_H__
-#define __XA_TYPE_DEF_H__
-
-/****************************************************************************/
-/* types type define prefix examples bytes */
-/************************ *********** ****** **************** ***** */
-typedef signed char WORD8 ;/* b WORD8 b_name 1 */
-typedef signed char * pWORD8 ;/* pb pWORD8 pb_nmae 1 */
-typedef unsigned char UWORD8 ;/* ub UWORD8 ub_count 1 */
-typedef unsigned char * pUWORD8 ;/* pub pUWORD8 pub_count 1 */
-
-typedef signed short WORD16 ;/* s WORD16 s_count 2 */
-typedef signed short * pWORD16 ;/* ps pWORD16 ps_count 2 */
-typedef unsigned short UWORD16 ;/* us UWORD16 us_count 2 */
-typedef unsigned short * pUWORD16;/* pus pUWORD16 pus_count 2 */
-
-typedef signed int WORD24 ;/* k WORD24 k_count 3 */
-typedef signed int * pWORD24 ;/* pk pWORD24 pk_count 3 */
-typedef unsigned int UWORD24 ;/* uk UWORD24 uk_count 3 */
-typedef unsigned int * pUWORD24;/* puk pUWORD24 puk_count 3 */
-
-typedef signed int WORD32 ;/* i WORD32 i_count 4 */
-typedef signed int * pWORD32 ;/* pi pWORD32 pi_count 4 */
-typedef unsigned int UWORD32 ;/* ui UWORD32 ui_count 4 */
-typedef unsigned int * pUWORD32;/* pui pUWORD32 pui_count 4 */
-
-typedef signed long long WORD40 ;/* m WORD40 m_count 5 */
-typedef signed long long * pWORD40 ;/* pm pWORD40 pm_count 5 */
-typedef unsigned long long UWORD40 ;/* um UWORD40 um_count 5 */
-typedef unsigned long long * pUWORD40;/* pum pUWORD40 pum_count 5 */
-
-typedef signed long long WORD64 ;/* h WORD64 h_count 8 */
-typedef signed long long * pWORD64 ;/* ph pWORD64 ph_count 8 */
-typedef unsigned long long UWORD64 ;/* uh UWORD64 uh_count 8 */
-typedef unsigned long long * pUWORD64;/* puh pUWORD64 puh_count 8 */
-
-typedef float FLOAT32 ;/* f FLOAT32 f_count 4 */
-typedef float * pFLOAT32;/* pf pFLOAT32 pf_count 4 */
-typedef double FLOAT64 ;/* d UFLOAT64 d_count 8 */
-typedef double * pFlOAT64;/* pd pFLOAT64 pd_count 8 */
-
-typedef void VOID ;/* v VOID v_flag 4 */
-typedef void * pVOID ;/* pv pVOID pv_flag 4 */
-
-/* variable size types: platform optimized implementation */
-//typedef signed int BOOL ;/* bool BOOL bool_true */
-//typedef unsigned int UBOOL ;/* ubool BOOL ubool_true */
-typedef signed int FLAG ;/* flag FLAG flag_false */
-typedef unsigned int UFLAG ;/* uflag FLAG uflag_false */
-typedef signed int LOOPIDX ;/* lp LOOPIDX lp_index */
-typedef unsigned int ULOOPIDX;/* ulp SLOOPIDX ulp_index */
-typedef signed int WORD ;/* lp LOOPIDX lp_index */
-typedef unsigned int UWORD ;/* ulp SLOOPIDX ulp_index */
-
-typedef LOOPIDX LOOPINDEX; /* lp LOOPIDX lp_index */
-typedef ULOOPIDX ULOOPINDEX;/* ulp SLOOPIDX ulp_index */
-
-#define PLATFORM_INLINE __inline
-
-typedef struct xa_codec_opaque { WORD32 _; } *xa_codec_handle_t;
-
-typedef int XA_ERRORCODE;
-
-typedef XA_ERRORCODE xa_codec_func_t(xa_codec_handle_t p_xa_module_obj,
- WORD32 i_cmd,
- WORD32 i_idx,
- pVOID pv_value);
-
-#endif /* __XA_TYPE_DEF_H__ */
diff --git a/hifi/xaf/hifi-dpf/include/lib/mutex.h b/hifi/xaf/hifi-dpf/include/lib/mutex.h
deleted file mode 100644
index 2aef0f6..0000000
--- a/hifi/xaf/hifi-dpf/include/lib/mutex.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * mutex.h
- *
- *
- * Implementation of "non-robust" Szymanski linear-waiting algorithm. Types of
- * failures tolerated by Szymanski's "robust" algorithm are not specific for
- * Xtensa DSP cluster and therefore more lightweight version of the algorithm
- * is used. FIFO servicing property is of low importance, and faster/smaller
- * version with linear-wait property is preferable.
- *
- * We assume there is just a single mutex in the system, and all communication
- * variables are defined somewhere in board-specific headers and imported here
- * by means of macros MUTEX_SHARED_READ/WRITE.
- ******************************************************************************/
-
-#ifndef __MUTEX_H
-#define __MUTEX_H
-
-/*******************************************************************************
- * Imported macros
- ******************************************************************************/
-
-#if !defined(MUTEX_SHARED_READ) || !defined(MUTEX_SHARED_WRITE)
-#error "Macros MUTEX_SHARED_READ and/or MUTEX_SHARED_WRITE not defined"
-#endif
-
-/*******************************************************************************
- * Entry points
- ******************************************************************************/
-
-/* ...acquire global mutex from i-th core */
-extern void mutex_lock(u32 i);
-
-/* ...release global mutex from i-th core */
-extern void mutex_unlock(u32 i);
-
-#endif /* __MUTEX_H */
diff --git a/hifi/xaf/hifi-dpf/include/lib/rbtree.h b/hifi/xaf/hifi-dpf/include/lib/rbtree.h
deleted file mode 100644
index 7f02cdf..0000000
--- a/hifi/xaf/hifi-dpf/include/lib/rbtree.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/*******************************************************************************
- * rbtree.h
- *
- * Generic implmentation of red-black trees
- *
- *******************************************************************************/
-
-#ifndef __RBTREE_H
-#define __RBTREE_H
-
-/*******************************************************************************
- * Red-black tree node definition
- ******************************************************************************/
-
-/* ...reference to rb-tree node */
-typedef struct rb_node *rb_idx_t;
-
-/* ...rb-tree node */
-typedef struct rb_node
-{
- /* ...pointers to parent and two children */
- rb_idx_t parent, left, right;
-
- /* ...node color (least-significant-bit only) */
- u32 color;
-
-} rb_node_t;
-
-/* ...rb-tree data */
-typedef struct rb_tree_t
-{
- /* ...tree sentinel node */
- rb_node_t root;
-
-} rb_tree_t;
-
-/*******************************************************************************
- * Helpers
- ******************************************************************************/
-
-/* ...left child accessor */
-static inline rb_idx_t rb_left(rb_tree_t *tree, rb_idx_t n_idx)
-{
- return n_idx->left;
-}
-
-/* ...right child accessor */
-static inline rb_idx_t rb_right(rb_tree_t *tree, rb_idx_t n_idx)
-{
- return n_idx->right;
-}
-
-/* ...parent node accessor */
-static inline rb_idx_t rb_parent(rb_tree_t *tree, rb_idx_t n_idx)
-{
- return n_idx->parent;
-}
-
-/* ...tree root node accessor */
-static inline rb_idx_t rb_root(rb_tree_t *tree)
-{
- return rb_left(tree, &tree->root);
-}
-
-/* ...tree data pointer accessor */
-static inline rb_idx_t rb_cache(rb_tree_t *tree)
-{
- return rb_right(tree, &tree->root);
-}
-
-/* ...tree null node */
-static inline rb_idx_t rb_null(rb_tree_t *tree)
-{
- return &tree->root;
-}
-
-/* ...get user-bits stored in node color */
-static inline u32 rb_node_data(rb_tree_t *tree, rb_idx_t n_idx)
-{
- return (n_idx->color >> 1);
-}
-
-/* ...left child assignment */
-static inline void rb_set_left(rb_tree_t *tree, rb_idx_t n_idx, rb_node_t *child)
-{
- n_idx->left = child;
-}
-
-/* ...right child assignment */
-static inline void rb_set_right(rb_tree_t *tree, rb_idx_t n_idx, rb_node_t *child)
-{
- n_idx->right = child;
-}
-
-/* ...cache tree client index */
-static inline void rb_set_cache(rb_tree_t *tree, rb_idx_t c_idx)
-{
- tree->root.right = c_idx;
-}
-
-/* ...get user-bits stored in node color */
-static inline void rb_set_node_data(rb_tree_t *tree, rb_idx_t n_idx, u32 data)
-{
- n_idx->color = (n_idx->color & 0x1) | (data << 1);
-}
-
-/*******************************************************************************
- * API functions
- ******************************************************************************/
-
-/* ...initialize rb-tree */
-extern void rb_init(rb_tree_t *tree);
-
-/* ...insert node into tree as a child of p */
-extern void rb_insert(rb_tree_t *tree, rb_idx_t n_idx, rb_idx_t p_idx);
-
-/* ...replace the node with same-key value and fixup tree pointers */
-extern void rb_replace(rb_tree_t *tree, rb_idx_t n_idx, rb_idx_t t_idx);
-
-/* ...delete node from the tree and return its in-order predecessor/successor */
-extern rb_idx_t rb_delete(rb_tree_t *tree, rb_idx_t n_idx);
-
-/* ...first in-order item in the tree */
-extern rb_idx_t rb_first(rb_tree_t *tree);
-
-/* ...last in-order item in the tree */
-extern rb_idx_t rb_last(rb_tree_t *tree);
-
-/* ...forward tree iterator */
-extern rb_idx_t rb_next(rb_tree_t *tree, rb_idx_t n_idx);
-
-/* ...backward tree iterator */
-extern rb_idx_t rb_prev(rb_tree_t *tree, rb_idx_t n_idx);
-
-#endif /* __RBTREE_H */
diff --git a/hifi/xaf/hifi-dpf/include/lib/tinyput.h b/hifi/xaf/hifi-dpf/include/lib/tinyput.h
deleted file mode 100644
index dadd088..0000000
--- a/hifi/xaf/hifi-dpf/include/lib/tinyput.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-/* $Id: //depot/dev/Cottonwood/Xtensa/OS/mpg2/tinyput.h#2 $ */
-
-#include <stdarg.h>
-
-extern void tiny_putc(char c);
-extern int tiny_puts(const char *s);
-extern int tiny_atoi(const char *s);
-extern int tiny_vsprintf(char *out, const char *fmt, va_list ap);
-extern int tiny_sprintf(char *out, const char *fmt, ...);
diff --git a/hifi/xaf/hifi-dpf/include/sys/xt-shmem/board-hikey/arch_hifi330.h b/hifi/xaf/hifi-dpf/include/sys/xt-shmem/board-hikey/arch_hifi330.h
deleted file mode 100644
index 74b1222..0000000
--- a/hifi/xaf/hifi-dpf/include/sys/xt-shmem/board-hikey/arch_hifi330.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
-* Copyright (C) 2018 Cadence Design Systems, Inc.
-*
-* Permission is hereby granted, free of charge, to any person obtaining
-* a copy of this software and associated documentation files (the
-* "Software"), to use this Software with Cadence processor cores only and
-* not with any other processors and platforms, subject to
-* the following conditions:
-*
-* The above copyright notice and this permission notice shall be included
-* in all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-******************************************************************************/
-
-#include <xtensa/simcall.h>
-#include <xtensa/corebits.h>
-#include <xtensa/config/system.h>
-#include <xtensa/config/core.h>
-
-#ifndef __ARCH_HIFI330_H__
-#define __ARCH_HIFI330_H__
-
-#ifdef __ASSEMBLER__
-#include <xtensa/coreasm.h>
-#endif
-
-#include <xtensa/corebits.h>
-#include <xtensa/config/system.h>
-
-/*
-Align a value up to nearest n-byte boundary, where n is a power of 2.
-*/
-#define ALIGNUP(n, val) (((val) + (n)-1) & -(n))
-
-
-/*******************************************************************************
-INTERRUPT STACK FRAME FOR A THREAD OR NESTED INTERRUPT
-*******************************************************************************/
-#define XT_STK_EXIT 0x00 /* (offset 0) exit point for dispatch */
-#define XT_STK_PC 0x04 /* return address */
-#define XT_STK_PS 0x08 /* at level 1 PS.EXCM is set here */
-#define XT_STK_A0 0x0C
-#define XT_STK_A1 0x10 /* stack ptr before interrupt */
-#define XT_STK_A2 0x14
-#define XT_STK_A3 0x18
-#define XT_STK_A4 0x1C
-#define XT_STK_A5 0x20
-#define XT_STK_A6 0x24
-#define XT_STK_A7 0x28
-#define XT_STK_A8 0x2C
-#define XT_STK_A9 0x30
-#define XT_STK_A10 0x34
-#define XT_STK_A11 0x38
-#define XT_STK_A12 0x3C /* Call0 callee-save */
-#define XT_STK_A13 0x40 /* Call0 callee-save */
-#define XT_STK_A14 0x44 /* Call0 callee-save */
-#define XT_STK_A15 0x48 /* Call0 callee-save */
-#define XT_STK_SAR 0x4C
-
-#define XT_STK_LBEG 0x50
-#define XT_STK_LEND 0x54
-#define XT_STK_LCOUNT 0x58
-#define XT_STK_NEXT1 0x5C /* next unused offset */
-
-#define XT_STK_EXTRA ALIGNUP(XCHAL_EXTRA_SA_ALIGN, XT_STK_NEXT1)
-
-#define XT_STK_NEXT2 (XT_STK_EXTRA + XCHAL_EXTRA_SA_SIZE)
-
-#define XT_STK_N_TMP 3 /* # of 4-byte temp. slots */
-#define XT_STK_TMP XT_STK_NEXT2
-#define XT_STK_NEXT3 XT_STK_TMP + (4 * XT_STK_N_TMP)
-#define XT_STK_FRMSZ (ALIGNUP(0x10, XT_STK_NEXT3) + 0x20)
-
-
-/*******************************************************************************
-SIMPLE STACK FRAME FOR A THREAD
-*******************************************************************************/
-#define XT_SOL_EXIT XT_STK_EXIT /* code indicates solicited frame */
-#define XT_SOL_PC 0x04 /* return address (b30-31=callinc) */
-#define XT_SOL_PS 0x08
-#define XT_SOL_NEXT 0x0c /* next unused offset */
- /* there may be some unused space here */
-#define XT_SOL_A0 ALIGNUP(0x10, XT_SOL_NEXT)
-#define XT_SOL_A1 XT_SOL_A0 + 4
-#define XT_SOL_A2 XT_SOL_A1 + 4
-#define XT_SOL_A3 XT_SOL_A2 + 4
-#define XT_SOL_FRMSZ ALIGNUP(0x10, XT_SOL_A3)
-
-
-/*******************************************************************************
-CO-PROCESSOR STATE SAVE AREA FOR A THREAD
-*******************************************************************************/