OK, thanks to the great suggestions and help I found on this list I am now lighting up the display, i.e. clock recovery and so on work, the display is trained, and it seems I am getting data from memory to the display. Now I'm trying to understand some other things. I can set the GTT entries, and as an experiment I set them to start at physical 0. i.e. [0] = 1, [1] = 4097, and so on. The low order bits are the same as the BIOS settings: Valid is set but no other bits. Now, as I change the GTT entries to point at different windows of low memory, what is on the display changes -- I'm essentially looking at kernel memory. But what surprised me a bit was I was hoping to get a pretty dynamic display as the contents of kernel memory changed. Such is not the case -- the display is static. So I think I'm missing something else, any ideas? I think the display hardware is kind of running as each time I change the gtt the image on the screen changes in a very consistent way, e.g. if I increase the value of all gtt's by 1 MiB then the screen scrolls up. Next, the GSM on this system is at ADA00000. If I leave the entries set to what the bios sets, e..g [0] = 0xada0001 [1] - 0xada1001 etc. then I would expect I can mmap bar[2] and store into that region. But what happens instead, is that nothing changes when I write to the mmap'ed region. Is there some other issue I am getting wrong here? Finally, if I dump what the data I mmap at bar[2], then change the gtt, then dump it again, it does change. I think I have the bar values right, but ... Thanks again for your help. ron