- O2, enums, and switch statements work in romcc
[coreboot.git] / util / romcc / tests / simple_test61.c
diff --git a/util/romcc/tests/simple_test61.c b/util/romcc/tests/simple_test61.c
new file mode 100644 (file)
index 0000000..583a9db
--- /dev/null
@@ -0,0 +1,26 @@
+static void spd_set_nbxcfg(void)
+{
+       /*
+        * Effects:     Uses serial presence detect to set the
+        *              ECC support flags in the NBXCFG register
+        * FIXME:       Check for illegal/unsupported ram configurations and abort
+        */
+       unsigned device;
+
+       for(device = 0x50; device <= 0x53; device += 1) {
+               int byte;
+
+               byte = 0; /* Disable ECC */
+               /* 0 == None, 1 == Parity, 2 == ECC */
+               if (byte != 2) continue;
+
+               /* set the device I'm talking too */
+               __builtin_outb(device, 0x1004);
+               
+               /* poll for transaction completion */
+               byte = __builtin_inb(0x10);
+               while(byte == 0) {
+                       byte = __builtin_inb(0x10);
+               }
+       }
+}