197917e9eSGerd Hoffmann #include "qemu/osdep.h" 2*8be545baSRichard Henderson #include "system/memory.h" 397917e9eSGerd Hoffmann #include "hw/display/edid.h" 497917e9eSGerd Hoffmann 597917e9eSGerd Hoffmann static uint64_t edid_region_read(void *ptr, hwaddr addr, unsigned size) 697917e9eSGerd Hoffmann { 797917e9eSGerd Hoffmann uint8_t *edid = ptr; 897917e9eSGerd Hoffmann 997917e9eSGerd Hoffmann return edid[addr]; 1097917e9eSGerd Hoffmann } 1197917e9eSGerd Hoffmann 1297917e9eSGerd Hoffmann static void edid_region_write(void *ptr, hwaddr addr, 1397917e9eSGerd Hoffmann uint64_t val, unsigned size) 1497917e9eSGerd Hoffmann { 1597917e9eSGerd Hoffmann /* read only */ 1697917e9eSGerd Hoffmann } 1797917e9eSGerd Hoffmann 1897917e9eSGerd Hoffmann static const MemoryRegionOps edid_region_ops = { 1997917e9eSGerd Hoffmann .read = edid_region_read, 2097917e9eSGerd Hoffmann .write = edid_region_write, 2197917e9eSGerd Hoffmann .valid.min_access_size = 1, 2297917e9eSGerd Hoffmann .valid.max_access_size = 4, 2397917e9eSGerd Hoffmann .impl.min_access_size = 1, 2497917e9eSGerd Hoffmann .impl.max_access_size = 1, 2597917e9eSGerd Hoffmann .endianness = DEVICE_LITTLE_ENDIAN, 2697917e9eSGerd Hoffmann }; 2797917e9eSGerd Hoffmann 2897917e9eSGerd Hoffmann void qemu_edid_region_io(MemoryRegion *region, Object *owner, 2997917e9eSGerd Hoffmann uint8_t *edid, size_t size) 3097917e9eSGerd Hoffmann { 3197917e9eSGerd Hoffmann memory_region_init_io(region, owner, &edid_region_ops, 3297917e9eSGerd Hoffmann edid, "edid", size); 3397917e9eSGerd Hoffmann } 34