| /* Copyright(c) 2021 Intel Corporation. All rights reserved. |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #include <stddef.h> |
| #include <stdint.h> |
| |
| #include <zephyr/devicetree.h> |
| #include <soc_util.h> |
| #include <zephyr/cache.h> |
| #include <adsp_shim.h> |
| #include <adsp_memory.h> |
| #include <cpu_init.h> |
| #include "manifest.h" |
| |
| #define DELAY_COUNT 256 |
| |
| __imr void hp_sram_init(uint32_t memory_size) |
| { |
| ARG_UNUSED(memory_size); |
| |
| uint32_t hpsram_ebb_quantity = ace_hpsram_get_bank_count(); |
| volatile uint32_t *l2hsbpmptr = (volatile uint32_t *)ACE_L2MM->l2hsbpmptr; |
| volatile uint8_t *status = (volatile uint8_t *)l2hsbpmptr + 4; |
| uint32_t idx; |
| |
| for (idx = 0; idx < hpsram_ebb_quantity; ++idx) { |
| *(l2hsbpmptr + idx * 2) = 0; |
| } |
| for (idx = 0; idx < hpsram_ebb_quantity; ++idx) { |
| while (*(status + idx * 8) != 0) { |
| } |
| } |
| |
| bbzero((void *)L2_SRAM_BASE, L2_SRAM_SIZE); |
| } |
| |
| __imr void lp_sram_init(void) |
| { |
| uint32_t lpsram_ebb_quantity = ace_lpsram_get_bank_count(); |
| volatile uint32_t *l2usbpmptr = (volatile uint32_t *)ACE_L2MM->l2usbpmptr; |
| volatile uint8_t *status = (volatile uint8_t *)l2usbpmptr + 4; |
| uint32_t idx; |
| |
| for (idx = 0; idx < lpsram_ebb_quantity; ++idx) { |
| *(l2usbpmptr + idx * 2) = 0; |
| } |
| for (idx = 0; idx < lpsram_ebb_quantity; ++idx) { |
| while (*(status + idx * 8) != 0) { |
| } |
| } |
| |
| bbzero((void *)LP_SRAM_BASE, LP_SRAM_SIZE); |
| } |