blob: 19d9a4c97b6891152ef4935888d478f2dbbc2359 [file] [log] [blame]
/*
* Copyright (c) 2019-2023 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_SOC_INTEL_ADSP_COMMON_UTIL_H_
#define ZEPHYR_SOC_INTEL_ADSP_COMMON_UTIL_H_
#include <zephyr/cache.h>
/* memcopy used by boot loader */
static ALWAYS_INLINE void bmemcpy(void *dest, void *src, size_t bytes)
{
volatile uint32_t *d = (uint32_t *)dest;
volatile uint32_t *s = (uint32_t *)src;
sys_cache_data_invd_range(src, bytes);
for (size_t i = 0; i < (bytes >> 2); i++)
d[i] = s[i];
sys_cache_data_flush_range(dest, bytes);
}
/* bzero used by bootloader */
static ALWAYS_INLINE void bbzero(void *dest, size_t bytes)
{
volatile uint32_t *d = (uint32_t *)dest;
for (size_t i = 0; i < (bytes >> 2); i++)
d[i] = 0;
sys_cache_data_flush_range(dest, bytes);
}
#endif /* ZEPHYR_SOC_INTEL_ADSP_COMMON_UTIL_H_ */