else
                return 0;
 
-       /*
-        * According to config2 it would be 5-ways, but that is contradicted
-        * by all documentation.
-        */
-       if (current_cpu_type() == CPU_XBURST &&
-                               mips_machtype == MACH_INGENIC_JZ4770)
-               c->scache.ways = 4;
+       if (current_cpu_type() == CPU_XBURST) {
+               switch (mips_machtype) {
+               /*
+                * According to config2 it would be 5-ways, but that is
+                * contradicted by all documentation.
+                */
+               case MACH_INGENIC_JZ4770:
+                       c->scache.ways = 4;
+                       break;
+
+               /*
+                * According to config2 it would be 5-ways and 512-sets,
+                * but that is contradicted by all documentation.
+                */
+               case MACH_INGENIC_X1000:
+                       c->scache.sets = 256;
+                       c->scache.ways = 4;
+                       break;
+               }
+       }
 
        c->scache.waysize = c->scache.sets * c->scache.linesz;
        c->scache.waybit = __ffs(c->scache.waysize);