1251139Sluigi// SPDX-License-Identifier: GPL-2.0+ 2262151Sluigi/* 3251139Sluigi * Test for loadm command 4251139Sluigi * 5251139Sluigi * Copyright 2022 ARM Limited 6251139Sluigi * Copyright 2022 Linaro 7251139Sluigi * 8251139Sluigi * Authors: 9251139Sluigi * Rui Miguel Silva <rui.silva@linaro.org> 10251139Sluigi */ 11251139Sluigi 12251139Sluigi#include <common.h> 13251139Sluigi#include <console.h> 14251139Sluigi#include <mapmem.h> 15251139Sluigi#include <asm/global_data.h> 16251139Sluigi#include <dm/test.h> 17251139Sluigi#include <test/suites.h> 18251139Sluigi#include <test/test.h> 19251139Sluigi#include <test/ut.h> 20251139Sluigi 21251139Sluigi#define BUF_SIZE 0x100 22251139Sluigi 23251139Sluigi#define LOADM_TEST(_name, _flags) UNIT_TEST(_name, _flags, loadm_test) 24251139Sluigi 25251139Sluigistatic int loadm_test_params(struct unit_test_state *uts) 26251139Sluigi{ 27251139Sluigi ut_assertok(console_record_reset_enable()); 28251139Sluigi run_command("loadm", 0); 29251139Sluigi ut_assert_nextline("loadm - load binary blob from source address to destination address"); 30251139Sluigi 31251139Sluigi ut_assertok(console_record_reset_enable()); 32251139Sluigi run_command("loadm 0x12345678", 0); 33251139Sluigi ut_assert_nextline("loadm - load binary blob from source address to destination address"); 34251139Sluigi 35251139Sluigi ut_assertok(console_record_reset_enable()); 36262151Sluigi run_command("loadm 0x12345678 0x12345678", 0); 37251139Sluigi ut_assert_nextline("loadm - load binary blob from source address to destination address"); 38251139Sluigi 39251139Sluigi ut_assertok(console_record_reset_enable()); 40251139Sluigi run_command("loadm 0x12345678 0x12345678 0", 0); 41270252Sluigi ut_assert_nextline("loadm: can not load zero bytes"); 42251139Sluigi 43251139Sluigi return 0; 44251139Sluigi} 45251139SluigiLOADM_TEST(loadm_test_params, UT_TESTF_CONSOLE_REC); 46251139Sluigi 47251139Sluigistatic int loadm_test_load (struct unit_test_state *uts) 48251139Sluigi{ 49270252Sluigi char *buf; 50270252Sluigi 51270252Sluigi buf = map_sysmem(0, BUF_SIZE); 52270252Sluigi memset(buf, '\0', BUF_SIZE); 53270252Sluigi memset(buf, 0xaa, BUF_SIZE / 2); 54270252Sluigi 55270252Sluigi ut_assertok(console_record_reset_enable()); 56270252Sluigi run_command("loadm 0x0 0x80 0x80", 0); 57270252Sluigi ut_assert_nextline("loaded bin to memory: size: 128"); 58270252Sluigi 59270252Sluigi unmap_sysmem(buf); 60270252Sluigi 61270252Sluigi return 0; 62270252Sluigi} 63270252SluigiLOADM_TEST(loadm_test_load, UT_TESTF_CONSOLE_REC); 64270252Sluigi 65270252Sluigiint do_ut_loadm(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) 66270252Sluigi{ 67270252Sluigi struct unit_test *tests = UNIT_TEST_SUITE_START(loadm_test); 68270252Sluigi const int n_ents = UNIT_TEST_SUITE_COUNT(loadm_test); 69270252Sluigi 70270252Sluigi return cmd_ut_category("loadm", "loadm_test_", tests, n_ents, argc, 71270252Sluigi argv); 72270252Sluigi} 73270252Sluigi