--- /dev/null
+#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 = ¶m0;
+ 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);
+}