- Update romcc to version 0.37
[coreboot.git] / util / romcc / tests / linux_test8.c
diff --git a/util/romcc/tests/linux_test8.c b/util/romcc/tests/linux_test8.c
new file mode 100644 (file)
index 0000000..adee3c1
--- /dev/null
@@ -0,0 +1,39 @@
+#include "linux_syscall.h"
+#include "linux_console.h"
+
+struct mem_param {
+       unsigned char cycle_time;
+       unsigned char divisor;
+       unsigned char tRC;
+       unsigned char tRFC;
+       unsigned dch_memclk;
+       unsigned short dch_tref4k, dch_tref8k;
+       unsigned char dtl_twr;
+       char name[9];
+};
+
+static void test(void)
+{
+       static const struct mem_param param0 = {
+               .name = "166Mhz\r\n",
+               .cycle_time = 0x60,
+               .divisor = (6<<1),
+               .tRC = 0x3C,
+               .tRFC = 0x48,
+               .dch_memclk = 5 << 20,
+               .dch_tref4k = 0x02,
+               .dch_tref8k = 0x0A,
+               .dtl_twr = 3,
+       };
+       int value;
+       unsigned clocks;
+       const struct mem_param *param;
+       param = &param0;
+       value = 0x48;
+       /* This used to generate 32bit loads instead of 8 bit loads */
+       clocks = (value + (param->divisor << 1) - 1)/(param->divisor << 1);
+       print_debug("clocks: ");
+       print_debug_hex32(clocks);
+       print_debug("\r\n");
+       _exit(0);
+}