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