Hi Peter,
>> +
>> +static uint64_t clock_read(void *opaque, hwaddr addr, unsigned int size)
>> +{
>> +    qemu_log_mask(LOG_UNIMP, "%s: 0x%" HWADDR_PRIx " [%u]\n",
>> +                  __func__, addr, size);
>> +    return 1;
>> +}
>> +
>> +static void clock_write(void *opaque, hwaddr addr, uint64_t data,
>> +                        unsigned int size)
>> +{
>> +    qemu_log_mask(LOG_UNIMP, "%s: 0x%" HWADDR_PRIx " <- 0x%" PRIx64 " 
>> [%u]\n",
>> +                  __func__, addr, data, size);
>> +}
>> +
>> +static const MemoryRegionOps clock_ops = {
>> +    .read = clock_read,
>> +    .write = clock_write
>> +};
> 
> You don't need to roll your own "do nothing but log" device:
> you can use the TYPE_UNIMPLEMENTED_DEVICE to do this.
> 
Until we have a more proper STUB for POWER/CLOCK/MPU peripherals we actually 
need this,
because the unimplemented device will return 0 on reads which will cause guest 
code to stall.

Agree to and regarded the rest of your remarks.

Steffen

Reply via email to