Revision 8da3ff18 hw/g364fb.c

b/hw/g364fb.c
26 26
//#define DEBUG_G364
27 27

  
28 28
typedef struct G364State {
29
    target_phys_addr_t vram_base;
30 29
    unsigned int vram_size;
31 30
    uint8_t *vram_buffer;
32 31
    uint32_t ctla;
......
300 299
static uint32_t g364fb_mem_readb(void *opaque, target_phys_addr_t addr)
301 300
{
302 301
    G364State *s = opaque;
303
    target_phys_addr_t relative_addr = addr - s->vram_base;
304 302

  
305
    return s->vram_buffer[relative_addr];
303
    return s->vram_buffer[addr];
306 304
}
307 305

  
308 306
static uint32_t g364fb_mem_readw(void *opaque, target_phys_addr_t addr)
......
326 324
static void g364fb_mem_writeb(void *opaque, target_phys_addr_t addr, uint32_t val)
327 325
{
328 326
    G364State *s = opaque;
329
    target_phys_addr_t relative_addr = addr - s->vram_base;
330 327

  
331
    s->vram_buffer[relative_addr] = val;
328
    s->vram_buffer[addr] = val;
332 329
}
333 330

  
334 331
static void g364fb_mem_writew(void *opaque, target_phys_addr_t addr, uint32_t val)
......
375 372
    g364fb_reset(s);
376 373

  
377 374
    s->ds = ds;
378
    s->vram_base = vram_base;
379 375

  
380 376
    s->console = graphic_console_init(ds, g364fb_update_display,
381 377
                                      g364fb_invalidate_display,
382 378
                                      g364fb_screen_dump, NULL, s);
383 379

  
384 380
    io_vram = cpu_register_io_memory(0, g364fb_mem_read, g364fb_mem_write, s);
385
    cpu_register_physical_memory(s->vram_base, vram_size, io_vram);
381
    cpu_register_physical_memory(vram_base, vram_size, io_vram);
386 382

  
387 383
    io_ctrl = cpu_register_io_memory(0, g364fb_ctrl_read, g364fb_ctrl_write, s);
388 384
    cpu_register_physical_memory(ctrl_base, 0x10000, io_ctrl);

Also available in: Unified diff