In my previous email, I only had the "write" operations associated with controlling the watchdog timer. I have edited my code to include the "read" operations too, but still it's not working. Here's my new code: /* R */ retval = ioread32(base + 4u); // This should be 0x0 /* R */ retval = ioread32(base + 4u); // This should be 0x0 /* W */ iowrite32(0x20000, base + 4u); /* R */ retval = ioread32(base + 8u); // This should be 0x1800 /* R */ retval = ioread32(base + 8u); // This should be 0x1800 /* W */ iowrite32(0x1000, base + 8u); /* R */ retval = ioread32(base + 0u); // This should be 0x4 /* W */ iowrite32(0x4, base + 0u); /* R */ retval = ioread32(base + 10u); // This should be 0x40000 /* W */ iowrite32(0x640000, base + 10u); /* R */ retval = ioread32(base + 0u); // This should be 0x2 /* W */ iowrite32(0x4, base + 0u); // This is a kick /* R */ retval = ioread32(base + 0u); // This should be 0x34 /* W */ iowrite32(0x4, base + 0u); // This is a kick The first two read operations should both return 0x0, however I'm getting what looks like a random number. Also it consitently reads the value 0x4 from "base + 0u". Anyone got an idea? _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox