-
Notifications
You must be signed in to change notification settings - Fork 325
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
debug: tester: add simple DRAM execution test
Add new type of test: TESTER_MODULE_CASE_SIMPLE_DRAM_TEST This will allow to test simple dram execution scenario Signed-off-by: Adrian Bonislawski <[email protected]>
- Loading branch information
1 parent
67ebb10
commit bceb8f3
Showing
6 changed files
with
108 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
add_local_sources(tester.c) | ||
add_local_sources(tester_dummy_test.c) | ||
add_local_sources(tester_simple_dram_test.c) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,4 +4,5 @@ | |
sof_llext_build("tester" | ||
SOURCES ../tester.c | ||
../tester_dummy_test.c | ||
../tester_simple_dram_test.c | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
// SPDX-License-Identifier: BSD-3-Clause | ||
// | ||
// Copyright(c) 2025 Intel Corporation. All rights reserved. | ||
// | ||
// Author: Adrian Bonislawski <[email protected]> | ||
|
||
#include "tester_simple_dram_test.h" | ||
#include <sof/audio/component.h> | ||
#include <sof/audio/module_adapter/module/generic.h> | ||
#include <sof/lib/memory.h> | ||
|
||
/* | ||
* This is a simple test case for DRAM execution | ||
* The test case will copy every 2nd frame of data | ||
* by setting do_copy flag to true/false | ||
*/ | ||
|
||
struct tester_module_simple_dram_test_data { | ||
bool do_copy_data; | ||
}; | ||
|
||
static int validate_l3_memory(void *ptr) | ||
{ | ||
if (!((POINTER_TO_UINT(ptr) >= L3_MEM_BASE_ADDR) && | ||
(POINTER_TO_UINT(ptr) < L3_MEM_BASE_ADDR + L3_MEM_SIZE))) | ||
return -EINVAL; | ||
|
||
return 0; | ||
} | ||
|
||
__cold static int simple_dram_test_case_init(struct processing_module *mod, void **ctx) | ||
{ | ||
#if !CONFIG_L3_HEAP | ||
return -EINVAL; | ||
#endif | ||
struct tester_module_simple_dram_test_data *data = | ||
rzalloc(0, 0, SOF_MEM_CAPS_L3, sizeof(*data)); | ||
|
||
if (!data) | ||
return -ENOMEM; | ||
|
||
if (validate_l3_memory(data) != 0) { | ||
rfree(data); | ||
return -EINVAL; | ||
} | ||
|
||
if (validate_l3_memory(tester_interface_simple_dram_test.init) != 0 || | ||
validate_l3_memory(tester_interface_simple_dram_test.process) != 0 || | ||
validate_l3_memory(tester_interface_simple_dram_test.free) != 0) { | ||
rfree(data); | ||
return -EINVAL; | ||
} | ||
|
||
data->do_copy_data = false; | ||
*ctx = data; | ||
return 0; | ||
} | ||
|
||
__cold static int simple_dram_test_case_process(void *ctx, struct processing_module *mod, | ||
struct sof_source **sources, int num_of_sources, | ||
struct sof_sink **sinks, int num_of_sinks, | ||
bool *do_copy) | ||
{ | ||
struct tester_module_simple_dram_test_data *data = ctx; | ||
|
||
/* copy every second cycle */ | ||
*do_copy = data->do_copy_data; | ||
data->do_copy_data = !data->do_copy_data; | ||
|
||
return 0; | ||
} | ||
|
||
__cold static int simple_dram_test_free(void *ctx, struct processing_module *mod) | ||
{ | ||
rfree(ctx); | ||
return 0; | ||
} | ||
|
||
const struct tester_test_case_interface tester_interface_simple_dram_test = { | ||
.init = simple_dram_test_case_init, | ||
.process = simple_dram_test_case_process, | ||
.free = simple_dram_test_free | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
/* SPDX-License-Identifier: BSD-3-Clause | ||
* | ||
* Copyright(c) 2025 Intel Corporation. | ||
* | ||
* Author: Adrian Bonislawski <[email protected]> | ||
*/ | ||
|
||
#ifndef TESTER_SIMPLE_DRAM_TEST | ||
#define TESTER_SIMPLE_DRAM_TEST | ||
|
||
#include <stddef.h> | ||
#include <stdint.h> | ||
|
||
#include "tester.h" | ||
|
||
extern const struct tester_test_case_interface tester_interface_simple_dram_test; | ||
|
||
#endif /* TESTER_DUMMY_TEST */ |