Hello @LBlackStar
Did you follow the instructions of readme.md in the example?
To run the low_power_wakeword you must tu use other external board called 8MIC (that has microphones):
1. wm8960 codec is used for audio playback and PDM microphones from "8MIC" add-on board are used for audio recording through imx8MM MICFIL hardware.
2. Make sure the FDT file is correctly set before booting the linux kernel. The following command can be used to set FDT file in uboot console:
u-boot=>setenv fdtfile imx8mp-evk-rpmsg-lpv.dtb
Set the "snd_pcm.max_alloc_per_card" in bootargs, use the following command to print default mmcargs and add "snd_pcm.max_alloc_per_card=134217728" to the end.
u-boot=>printenv mmcargs
For example, "mmcargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot}" is printed, then set the mmcargs using the following command.
u-boot=>setenv mmcargs 'setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot} snd_pcm.max_alloc_per_card=134217728'
u-boot=>saveenv
u-boot=>run prepare_mcore
3. After M core running, please boot the linux kernel to create the rpmsg channel between A core and M core.
******************
Audio record command (no specific audio processing on Linux)
******************
Note:
1. Please use the command "cat /proc/asound/cards" to check the wm8960 sound card number.
E.g: Type command:
~# cat /proc/asound/cards
0 [btscoaudio ]: simple-card - bt-sco-audio
bt-sco-audio
1 [imxaudioxcvr ]: imx-audio-xcvr - imx-audio-xcvr
imx-audio-xcvr
2 [audiohdmi ]: audio-hdmi - audio-hdmi
audio-hdmi
3 [wm8960audio ]: wm8960-audio - wm8960-audio
wm8960-audio
4 [micfilaudio ]: micfil-audio - micfil-audio
micfil-audio
2. micfil has ID: 4. Then start audio recording with command (-c option can be tuned to select number of microphones):
"arecord -Dhw:4,0 -r16000 --buffer-time=10000000 -fS32_LE -c2 test.wav &"
3. Make Linux on A core enter suspend:
"echo mem > /sys/power/state"
4. When a wakeword ("Hey NXP") is detected by M core, Linux will resume and audio record will continue on Linux.
5. Following command can be used to playback an audio file:
"aplay -Dplughw:3,0 xxx.wav"
Note that playback will be automatically paused when Linux suspends and restarted after Linux has resumed.
******************
usage with NXP-AFE and advanced audio processing on Linux
******************
See NXP-AFE documentation (https://source.codeaurora.org/external/imx/nxp-afe/) to properly configure Linux ALSA paths and enable advanced audio processing applications.
Then Linux can be suspended by "echo mem > /sys/power/state"
It will be resumed when Cortex-M detects the wakeword.
You can find that information on readme.md.
About the device tree, you can take a look to the imx8mp-evk-rpmsg-lpv.dts and imx8mp-evk-rpmsg.dts.
Bees regards,
Salas.