static void order_dimms(void) { unsigned long tom; tom = 0; for(;;) { unsigned csbase, csmask; unsigned size; unsigned index; csbase = 0; for(index = 0; index < 1; index++) { csbase = __builtin_inl(0x40); } if (csbase == 0) { break; } size = csbase; csbase = (tom << 21); tom += size; csmask = size; csmask |= 0xfe00; __builtin_outl(csbase, 0xCFC); __builtin_outl(0xc260, 0xCF8); __builtin_outl(csmask, 0xCFC); } tom &= ~0xff000000; __builtin_outl(tom, 0x1234); }