diff --git a/ubb-patgen/ubb-patgen.c b/ubb-patgen/ubb-patgen.c index 6309119..b730948 100644 --- a/ubb-patgen/ubb-patgen.c +++ b/ubb-patgen/ubb-patgen.c @@ -483,15 +483,24 @@ static void send_buffer(const struct mmcclk *clk, const char *trigger, int debounce, const struct timespec *debounce_ns, const struct timespec *wait_ns) { - unsigned long phys; + struct physmem_vec vec; + int n; if (physmem_flush(buf, nibbles)) { perror("physmem_flush"); exit(1); } - phys = physmem_xlat((void *) buf); - mmc_buffer(clk, buf[0] >> 4, phys, nibbles, mask, + n = physmem_xlat_vec((void *) buf, nibbles >> 1, &vec, 1); + if (n < 0) { + perror("physmem_xlat_vec"); + exit(1); + } + if (n != 1) { + fprintf(stderr, "physmem_xlat_vec: expected 1, got %d\n", n); + exit(1); + } + mmc_buffer(clk, buf[0] >> 4, vec.addr, nibbles, mask, trigger, debounce, debounce_ns, wait_ns); }