if (*size == nand->size)
                puts("whole chip\n");
        else
-               printf("offset 0x%lx, size 0x%x\n", *off, *size);
+               printf("offset 0x%lx, size 0x%zx\n", *off, *size);
        return 0;
 }
 
                        return 1;
                }
 
-               printf(" %d bytes %s: %s\n", size,
+               printf(" %zu bytes %s: %s\n", size,
                       read ? "read" : "written", ret ? "ERROR" : "OK");
 
                return ret == 0 ? 0 : 1;
 
        if (len_incl_bad == *length) {
                rval = nand_write (nand, offset, length, buffer);
                if (rval != 0)
-                       printf ("NAND write to offset %x failed %d\n",
+                       printf ("NAND write to offset %zx failed %d\n",
                                offset, rval);
 
                return rval;
                size_t write_size;
 
                if (nand_block_isbad (nand, offset & ~(nand->erasesize - 1))) {
-                       printf ("Skip bad block 0x%08x\n",
+                       printf ("Skip bad block 0x%08zx\n",
                                offset & ~(nand->erasesize - 1));
                        offset += nand->erasesize - block_offset;
                        continue;
 
                rval = nand_write (nand, offset, &write_size, p_buffer);
                if (rval != 0) {
-                       printf ("NAND write to offset %x failed %d\n",
+                       printf ("NAND write to offset %zx failed %d\n",
                                offset, rval);
                        *length -= left_to_write;
                        return rval;
        if (len_incl_bad == *length) {
                rval = nand_read (nand, offset, length, buffer);
                if (rval != 0)
-                       printf ("NAND read from offset %x failed %d\n",
+                       printf ("NAND read from offset %zx failed %d\n",
                                offset, rval);
 
                return rval;
                size_t read_length;
 
                if (nand_block_isbad (nand, offset & ~(nand->erasesize - 1))) {
-                       printf ("Skipping bad block 0x%08x\n",
+                       printf ("Skipping bad block 0x%08zx\n",
                                offset & ~(nand->erasesize - 1));
                        offset += nand->erasesize - block_offset;
                        continue;
 
                rval = nand_read (nand, offset, &read_length, p_buffer);
                if (rval != 0) {
-                       printf ("NAND read from offset %x failed %d\n",
+                       printf ("NAND read from offset %zx failed %d\n",
                                offset, rval);
                        *length -= left_to_read;
                        return rval;