a01ee36288
Add method for converting DDR4 speed in MHz to MT/s. Checks that MHz is within a speed grade range. BUG=b:167155849 TEST=ddr4-test unit test BRANCH=Zork Change-Id: I1433f028afb794fe3e397b03f5bd0565494c8130 Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/45343 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
41 lines
1.3 KiB
C
41 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
#include <device/dram/ddr4.h>
|
|
#include <tests/test.h>
|
|
|
|
static void ddr4_speed_mhz_to_mts_test(void **state)
|
|
{
|
|
assert_int_equal(0, ddr4_speed_mhz_to_reported_mts(0));
|
|
assert_int_equal(0, ddr4_speed_mhz_to_reported_mts(667));
|
|
|
|
assert_int_equal(1600, ddr4_speed_mhz_to_reported_mts(668));
|
|
assert_int_equal(1600, ddr4_speed_mhz_to_reported_mts(800));
|
|
|
|
assert_int_equal(1866, ddr4_speed_mhz_to_reported_mts(801));
|
|
assert_int_equal(1866, ddr4_speed_mhz_to_reported_mts(933));
|
|
assert_int_equal(1866, ddr4_speed_mhz_to_reported_mts(934));
|
|
|
|
assert_int_equal(2133, ddr4_speed_mhz_to_reported_mts(1066));
|
|
assert_int_equal(2133, ddr4_speed_mhz_to_reported_mts(1067));
|
|
|
|
assert_int_equal(2400, ddr4_speed_mhz_to_reported_mts(1200));
|
|
|
|
assert_int_equal(2666, ddr4_speed_mhz_to_reported_mts(1333));
|
|
|
|
assert_int_equal(2933, ddr4_speed_mhz_to_reported_mts(1466));
|
|
|
|
assert_int_equal(3200, ddr4_speed_mhz_to_reported_mts(1467));
|
|
assert_int_equal(3200, ddr4_speed_mhz_to_reported_mts(1600));
|
|
|
|
assert_int_equal(0, ddr4_speed_mhz_to_reported_mts(1601));
|
|
assert_int_equal(0, ddr4_speed_mhz_to_reported_mts(INT16_MAX));
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
const struct CMUnitTest tests[] = {
|
|
cmocka_unit_test(ddr4_speed_mhz_to_mts_test)
|
|
};
|
|
|
|
return cmocka_run_group_tests(tests, NULL, NULL);
|
|
}
|