cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sdhci-of-aspeed-test.c (3874B)


      1// SPDX-License-Identifier: GPL-2.0-or-later
      2/* Copyright (C) 2020 IBM Corp. */
      3
      4#include <kunit/test.h>
      5
      6static void aspeed_sdhci_phase_ddr52(struct kunit *test)
      7{
      8	int rate = 52000000;
      9
     10	KUNIT_EXPECT_EQ(test, 0,
     11			aspeed_sdhci_phase_to_tap(NULL, rate, 0));
     12	KUNIT_EXPECT_EQ(test, 0,
     13			aspeed_sdhci_phase_to_tap(NULL, rate, 1));
     14	KUNIT_EXPECT_EQ(test, 1,
     15			aspeed_sdhci_phase_to_tap(NULL, rate, 2));
     16	KUNIT_EXPECT_EQ(test, 1,
     17			aspeed_sdhci_phase_to_tap(NULL, rate, 3));
     18	KUNIT_EXPECT_EQ(test, 2,
     19			aspeed_sdhci_phase_to_tap(NULL, rate, 4));
     20	KUNIT_EXPECT_EQ(test, 3,
     21			aspeed_sdhci_phase_to_tap(NULL, rate, 5));
     22	KUNIT_EXPECT_EQ(test, 14,
     23			aspeed_sdhci_phase_to_tap(NULL, rate, 23));
     24	KUNIT_EXPECT_EQ(test, 15,
     25			aspeed_sdhci_phase_to_tap(NULL, rate, 24));
     26	KUNIT_EXPECT_EQ(test, 15,
     27			aspeed_sdhci_phase_to_tap(NULL, rate, 25));
     28
     29	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 0,
     30			aspeed_sdhci_phase_to_tap(NULL, rate, 180));
     31	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 0,
     32			aspeed_sdhci_phase_to_tap(NULL, rate, 181));
     33	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,
     34			aspeed_sdhci_phase_to_tap(NULL, rate, 182));
     35	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,
     36			aspeed_sdhci_phase_to_tap(NULL, rate, 183));
     37	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 2,
     38			aspeed_sdhci_phase_to_tap(NULL, rate, 184));
     39	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 3,
     40			aspeed_sdhci_phase_to_tap(NULL, rate, 185));
     41	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 14,
     42			aspeed_sdhci_phase_to_tap(NULL, rate, 203));
     43	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,
     44			aspeed_sdhci_phase_to_tap(NULL, rate, 204));
     45	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,
     46			aspeed_sdhci_phase_to_tap(NULL, rate, 205));
     47}
     48
     49static void aspeed_sdhci_phase_hs200(struct kunit *test)
     50{
     51	int rate = 200000000;
     52
     53	KUNIT_EXPECT_EQ(test, 0,
     54			aspeed_sdhci_phase_to_tap(NULL, rate, 0));
     55	KUNIT_EXPECT_EQ(test, 0,
     56			aspeed_sdhci_phase_to_tap(NULL, rate, 5));
     57	KUNIT_EXPECT_EQ(test, 1,
     58			aspeed_sdhci_phase_to_tap(NULL, rate, 6));
     59	KUNIT_EXPECT_EQ(test, 1,
     60			aspeed_sdhci_phase_to_tap(NULL, rate, 7));
     61	KUNIT_EXPECT_EQ(test, 14,
     62			aspeed_sdhci_phase_to_tap(NULL, rate, 89));
     63	KUNIT_EXPECT_EQ(test, 15,
     64			aspeed_sdhci_phase_to_tap(NULL, rate, 90));
     65	KUNIT_EXPECT_EQ(test, 15,
     66			aspeed_sdhci_phase_to_tap(NULL, rate, 91));
     67	KUNIT_EXPECT_EQ(test, 15,
     68			aspeed_sdhci_phase_to_tap(NULL, rate, 96));
     69
     70	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK,
     71			aspeed_sdhci_phase_to_tap(NULL, rate, 180));
     72	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK,
     73			aspeed_sdhci_phase_to_tap(NULL, rate, 185));
     74	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,
     75			aspeed_sdhci_phase_to_tap(NULL, rate, 186));
     76	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 1,
     77			aspeed_sdhci_phase_to_tap(NULL, rate, 187));
     78	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 14,
     79			aspeed_sdhci_phase_to_tap(NULL, rate, 269));
     80	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,
     81			aspeed_sdhci_phase_to_tap(NULL, rate, 270));
     82	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,
     83			aspeed_sdhci_phase_to_tap(NULL, rate, 271));
     84	KUNIT_EXPECT_EQ(test, ASPEED_SDHCI_TAP_PARAM_INVERT_CLK | 15,
     85			aspeed_sdhci_phase_to_tap(NULL, rate, 276));
     86}
     87
     88static struct kunit_case aspeed_sdhci_test_cases[] = {
     89	KUNIT_CASE(aspeed_sdhci_phase_ddr52),
     90	KUNIT_CASE(aspeed_sdhci_phase_hs200),
     91	{}
     92};
     93
     94static struct kunit_suite aspeed_sdhci_test_suite = {
     95	.name = "sdhci-of-aspeed",
     96	.test_cases = aspeed_sdhci_test_cases,
     97};
     98
     99static struct kunit_suite *aspeed_sdc_test_suite_array[] = {
    100	&aspeed_sdhci_test_suite,
    101	NULL,
    102};
    103
    104static struct kunit_suite **aspeed_sdc_test_suites
    105	__used __section(".kunit_test_suites") = aspeed_sdc_test_suite_array;