1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (C) 2023 Sean Anderson <seanga2@gmail.com>
4 */
5
6#include <dm.h>
7#include <spl.h>
8#include <asm/io.h>
9#include <test/spl.h>
10#include <test/ut.h>
11
12static void *spl_test_nor_base;
13
14unsigned long spl_nor_get_uboot_base(void)
15{
16	return virt_to_phys(spl_test_nor_base);
17}
18
19static int spl_test_nor_write_image(struct unit_test_state *uts, void *img,
20				    size_t img_size)
21{
22	spl_test_nor_base = img;
23	return 0;
24}
25
26static int spl_test_nor(struct unit_test_state *uts, const char *test_name,
27			enum spl_test_image type)
28{
29	return do_spl_test_load(uts, test_name, type,
30				SPL_LOAD_IMAGE_GET(0, BOOT_DEVICE_NOR,
31						   spl_nor_load_image),
32				spl_test_nor_write_image);
33}
34SPL_IMG_TEST(spl_test_nor, LEGACY, 0);
35SPL_IMG_TEST(spl_test_nor, LEGACY_LZMA, 0);
36SPL_IMG_TEST(spl_test_nor, IMX8, 0);
37SPL_IMG_TEST(spl_test_nor, FIT_INTERNAL, 0);
38#if !IS_ENABLED(CONFIG_SPL_LOAD_FIT_FULL)
39SPL_IMG_TEST(spl_test_nor, FIT_EXTERNAL, 0);
40#endif
41