Index: sys/powerpc/ofw/ofw_machdep.c =================================================================== --- sys/powerpc/ofw/ofw_machdep.c +++ sys/powerpc/ofw/ofw_machdep.c @@ -302,10 +302,24 @@ size = OF_getprop(chosen, "linux,initrd-start", &start, sizeof(start)); if (size <= 0) return (asz); + /* if OF_getprop returns 32-bit values, we need to adjust */ + if (size == 4) +#if BYTE_ORDER == LITTLE_ENDIAN + start &= 0xffffffff; +#else + start >>= 32; +#endif size = OF_getprop(chosen, "linux,initrd-end", &end, sizeof(end)); if (size <= 0) return (asz); + /* if OF_getprop returns 32-bit values, we need to adjust */ + if (size == 4) +#if BYTE_ORDER == LITTLE_ENDIAN + end &= 0xffffffff; +#else + end >>= 32; +#endif initrdmap[0].mr_start = start; initrdmap[0].mr_size = end - start;