hikey960: HiFi3 DSP firmware and documentation
HiFi3 DSP firmware source code, documentation to build and understand DSP
Change-Id: I752416536cc2165868c56d2a2ba2d60b71c2b9a4
Signed-off-by: Niranjan Yadla <nyadla@cadence.com>
diff --git a/hifi/xaf/hifi-dpf/build_hikey/Makefile b/hifi/xaf/hifi-dpf/build_hikey/Makefile
new file mode 100644
index 0000000..e1980a0
--- /dev/null
+++ b/hifi/xaf/hifi-dpf/build_hikey/Makefile
@@ -0,0 +1,135 @@
+#
+# 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