Revision b584726d
b/hw/cirrus_vga.c | ||
---|---|---|
3289 | 3289 |
* |
3290 | 3290 |
***************************************/ |
3291 | 3291 |
|
3292 |
void isa_cirrus_vga_init(uint8_t *vga_ram_base, |
|
3293 |
ram_addr_t vga_ram_offset, int vga_ram_size) |
|
3292 |
void isa_cirrus_vga_init(int vga_ram_size) |
|
3294 | 3293 |
{ |
3295 | 3294 |
CirrusVGAState *s; |
3296 | 3295 |
|
3297 | 3296 |
s = qemu_mallocz(sizeof(CirrusVGAState)); |
3298 | 3297 |
|
3299 |
vga_common_init((VGAState *)s, |
|
3300 |
vga_ram_base, vga_ram_offset, vga_ram_size); |
|
3298 |
vga_common_init((VGAState *)s, vga_ram_size); |
|
3301 | 3299 |
cirrus_init_common(s, CIRRUS_ID_CLGD5430, 0); |
3302 | 3300 |
s->ds = graphic_console_init(s->update, s->invalidate, |
3303 | 3301 |
s->screen_dump, s->text_update, s); |
... | ... | |
3358 | 3356 |
vga_dirty_log_start((VGAState *)s); |
3359 | 3357 |
} |
3360 | 3358 |
|
3361 |
void pci_cirrus_vga_init(PCIBus *bus, uint8_t *vga_ram_base, |
|
3362 |
ram_addr_t vga_ram_offset, int vga_ram_size) |
|
3359 |
void pci_cirrus_vga_init(PCIBus *bus, int vga_ram_size) |
|
3363 | 3360 |
{ |
3364 | 3361 |
PCICirrusVGAState *d; |
3365 | 3362 |
uint8_t *pci_conf; |
... | ... | |
3381 | 3378 |
|
3382 | 3379 |
/* setup VGA */ |
3383 | 3380 |
s = &d->cirrus_vga; |
3384 |
vga_common_init((VGAState *)s, |
|
3385 |
vga_ram_base, vga_ram_offset, vga_ram_size); |
|
3381 |
vga_common_init((VGAState *)s, vga_ram_size); |
|
3386 | 3382 |
cirrus_init_common(s, device_id, 1); |
3387 | 3383 |
|
3388 | 3384 |
s->ds = graphic_console_init(s->update, s->invalidate, |
b/hw/g364fb.c | ||
---|---|---|
584 | 584 |
qemu_put_be32(f, s->height); |
585 | 585 |
} |
586 | 586 |
|
587 |
int g364fb_mm_init(uint8_t *vram, ram_addr_t vram_offset, |
|
588 |
int vram_size, target_phys_addr_t vram_base, |
|
587 |
int g364fb_mm_init(int vram_size, target_phys_addr_t vram_base, |
|
589 | 588 |
target_phys_addr_t ctrl_base, int it_shift, |
590 | 589 |
qemu_irq irq) |
591 | 590 |
{ |
... | ... | |
594 | 593 |
|
595 | 594 |
s = qemu_mallocz(sizeof(G364State)); |
596 | 595 |
|
597 |
s->vram = vram;
|
|
598 |
s->vram_offset = vram_offset;
|
|
596 |
s->vram_offset = qemu_ram_alloc(vram_size);
|
|
597 |
s->vram = qemu_get_ram_ptr(s->vram_offset);
|
|
599 | 598 |
s->vram_size = vram_size; |
600 | 599 |
s->irq = irq; |
601 | 600 |
|
b/hw/mips.h | ||
---|---|---|
10 | 10 |
void ds1225y_set_protection(void *opaque, int protection); |
11 | 11 |
|
12 | 12 |
/* g364fb.c */ |
13 |
int g364fb_mm_init(uint8_t *vram, ram_addr_t vram_offset, |
|
14 |
int vram_size, target_phys_addr_t vram_base, |
|
13 |
int g364fb_mm_init(int vram_size, target_phys_addr_t vram_base, |
|
15 | 14 |
target_phys_addr_t ctrl_base, int it_shift, |
16 | 15 |
qemu_irq irq); |
17 | 16 |
|
b/hw/mips_jazz.c | ||
---|---|---|
142 | 142 |
qemu_irq esp_reset; |
143 | 143 |
ram_addr_t ram_offset; |
144 | 144 |
ram_addr_t bios_offset; |
145 |
ram_addr_t vga_ram_offset; |
|
146 | 145 |
|
147 | 146 |
/* init CPUs */ |
148 | 147 |
if (cpu_model == NULL) { |
... | ... | |
164 | 163 |
ram_offset = qemu_ram_alloc(ram_size); |
165 | 164 |
cpu_register_physical_memory(0, ram_size, ram_offset | IO_MEM_RAM); |
166 | 165 |
|
167 |
vga_ram_offset = qemu_ram_alloc(vga_ram_size); |
|
168 | 166 |
bios_offset = qemu_ram_alloc(MAGNUM_BIOS_SIZE); |
169 | 167 |
cpu_register_physical_memory(0x1fc00000LL, |
170 | 168 |
MAGNUM_BIOS_SIZE, bios_offset | IO_MEM_ROM); |
... | ... | |
205 | 203 |
/* Video card */ |
206 | 204 |
switch (jazz_model) { |
207 | 205 |
case JAZZ_MAGNUM: |
208 |
g364fb_mm_init(phys_ram_base + vga_ram_offset, ram_size, vga_ram_size, |
|
209 |
0x40000000, 0x60000000, 0, rc4030[3]); |
|
206 |
g364fb_mm_init(vga_ram_size, 0x40000000, 0x60000000, 0, rc4030[3]); |
|
210 | 207 |
break; |
211 | 208 |
case JAZZ_PICA61: |
212 |
isa_vga_mm_init(phys_ram_base + vga_ram_offset, ram_size, vga_ram_size, |
|
213 |
0x40000000, 0x60000000, 0); |
|
209 |
isa_vga_mm_init(vga_ram_size, 0x40000000, 0x60000000, 0); |
|
214 | 210 |
break; |
215 | 211 |
default: |
216 | 212 |
break; |
b/hw/mips_malta.c | ||
---|---|---|
769 | 769 |
{ |
770 | 770 |
char buf[1024]; |
771 | 771 |
ram_addr_t ram_offset; |
772 |
ram_addr_t vga_ram_offset; |
|
773 | 772 |
ram_addr_t bios_offset; |
774 | 773 |
target_long bios_size; |
775 | 774 |
int64_t kernel_entry; |
... | ... | |
812 | 811 |
exit(1); |
813 | 812 |
} |
814 | 813 |
ram_offset = qemu_ram_alloc(ram_size); |
815 |
vga_ram_offset = qemu_ram_alloc(vga_ram_size); |
|
816 | 814 |
bios_offset = qemu_ram_alloc(BIOS_SIZE); |
817 | 815 |
|
818 | 816 |
|
... | ... | |
949 | 947 |
|
950 | 948 |
/* Optional PCI video card */ |
951 | 949 |
if (cirrus_vga_enabled) { |
952 |
pci_cirrus_vga_init(pci_bus, phys_ram_base + vga_ram_offset, |
|
953 |
ram_size, vga_ram_size); |
|
950 |
pci_cirrus_vga_init(pci_bus, vga_ram_size); |
|
954 | 951 |
} else if (vmsvga_enabled) { |
955 |
pci_vmsvga_init(pci_bus, phys_ram_base + vga_ram_offset, |
|
956 |
ram_size, vga_ram_size); |
|
952 |
pci_vmsvga_init(pci_bus, vga_ram_size); |
|
957 | 953 |
} else if (std_vga_enabled) { |
958 |
pci_vga_init(pci_bus, phys_ram_base + vga_ram_offset, |
|
959 |
ram_size, vga_ram_size, 0, 0); |
|
954 |
pci_vga_init(pci_bus, vga_ram_size, 0, 0); |
|
960 | 955 |
} |
961 | 956 |
} |
962 | 957 |
|
b/hw/mips_r4k.c | ||
---|---|---|
155 | 155 |
{ |
156 | 156 |
char buf[1024]; |
157 | 157 |
ram_addr_t ram_offset; |
158 |
ram_addr_t vga_ram_offset; |
|
159 | 158 |
ram_addr_t bios_offset; |
160 | 159 |
int bios_size; |
161 | 160 |
CPUState *env; |
... | ... | |
188 | 187 |
exit(1); |
189 | 188 |
} |
190 | 189 |
ram_offset = qemu_ram_alloc(ram_size); |
191 |
vga_ram_offset = qemu_ram_alloc(vga_ram_size); |
|
192 | 190 |
|
193 | 191 |
cpu_register_physical_memory(0, ram_size, ram_offset | IO_MEM_RAM); |
194 | 192 |
|
... | ... | |
257 | 255 |
} |
258 | 256 |
} |
259 | 257 |
|
260 |
isa_vga_init(phys_ram_base + vga_ram_offset, ram_size, |
|
261 |
vga_ram_size); |
|
258 |
isa_vga_init(vga_ram_size); |
|
262 | 259 |
|
263 | 260 |
if (nd_table[0].vlan) |
264 | 261 |
isa_ne2000_init(0x300, i8259[9], &nd_table[0]); |
b/hw/pc.c | ||
---|---|---|
784 | 784 |
{ |
785 | 785 |
char buf[1024]; |
786 | 786 |
int ret, linux_boot, i; |
787 |
ram_addr_t ram_addr, vga_ram_addr, bios_offset, option_rom_offset;
|
|
787 |
ram_addr_t ram_addr, bios_offset, option_rom_offset; |
|
788 | 788 |
ram_addr_t below_4g_mem_size, above_4g_mem_size = 0; |
789 | 789 |
int bios_size, isa_bios_size, oprom_area_size; |
790 | 790 |
PCIBus *pci_bus; |
... | ... | |
858 | 858 |
} |
859 | 859 |
|
860 | 860 |
|
861 |
/* allocate VGA RAM */ |
|
862 |
vga_ram_addr = qemu_ram_alloc(vga_ram_size); |
|
863 |
|
|
864 | 861 |
/* BIOS load */ |
865 | 862 |
if (bios_name == NULL) |
866 | 863 |
bios_name = BIOS_FILENAME; |
... | ... | |
943 | 940 |
|
944 | 941 |
if (cirrus_vga_enabled) { |
945 | 942 |
if (pci_enabled) { |
946 |
pci_cirrus_vga_init(pci_bus, |
|
947 |
phys_ram_base + vga_ram_addr, |
|
948 |
vga_ram_addr, vga_ram_size); |
|
943 |
pci_cirrus_vga_init(pci_bus, vga_ram_size); |
|
949 | 944 |
} else { |
950 |
isa_cirrus_vga_init(phys_ram_base + vga_ram_addr, |
|
951 |
vga_ram_addr, vga_ram_size); |
|
945 |
isa_cirrus_vga_init(vga_ram_size); |
|
952 | 946 |
} |
953 | 947 |
} else if (vmsvga_enabled) { |
954 | 948 |
if (pci_enabled) |
955 |
pci_vmsvga_init(pci_bus, phys_ram_base + vga_ram_addr, |
|
956 |
vga_ram_addr, vga_ram_size); |
|
949 |
pci_vmsvga_init(pci_bus, vga_ram_size); |
|
957 | 950 |
else |
958 | 951 |
fprintf(stderr, "%s: vmware_vga: no PCI bus\n", __FUNCTION__); |
959 | 952 |
} else if (std_vga_enabled) { |
960 | 953 |
if (pci_enabled) { |
961 |
pci_vga_init(pci_bus, phys_ram_base + vga_ram_addr, |
|
962 |
vga_ram_addr, vga_ram_size, 0, 0); |
|
954 |
pci_vga_init(pci_bus, vga_ram_size, 0, 0); |
|
963 | 955 |
} else { |
964 |
isa_vga_init(phys_ram_base + vga_ram_addr, |
|
965 |
vga_ram_addr, vga_ram_size); |
|
956 |
isa_vga_init(vga_ram_size); |
|
966 | 957 |
} |
967 | 958 |
} |
968 | 959 |
|
b/hw/pc.h | ||
---|---|---|
144 | 144 |
#define VGA_RAM_SIZE (9 * 1024 * 1024) |
145 | 145 |
#endif |
146 | 146 |
|
147 |
int isa_vga_init(uint8_t *vga_ram_base, |
|
148 |
unsigned long vga_ram_offset, int vga_ram_size); |
|
149 |
int pci_vga_init(PCIBus *bus, uint8_t *vga_ram_base, |
|
150 |
unsigned long vga_ram_offset, int vga_ram_size, |
|
147 |
int isa_vga_init(int vga_ram_size); |
|
148 |
int pci_vga_init(PCIBus *bus, int vga_ram_size, |
|
151 | 149 |
unsigned long vga_bios_offset, int vga_bios_size); |
152 |
int isa_vga_mm_init(uint8_t *vga_ram_base, |
|
153 |
unsigned long vga_ram_offset, int vga_ram_size, |
|
154 |
target_phys_addr_t vram_base, target_phys_addr_t ctrl_base, |
|
155 |
int it_shift); |
|
150 |
int isa_vga_mm_init(int vga_ram_size, target_phys_addr_t vram_base, |
|
151 |
target_phys_addr_t ctrl_base, int it_shift); |
|
156 | 152 |
|
157 | 153 |
/* cirrus_vga.c */ |
158 |
void pci_cirrus_vga_init(PCIBus *bus, uint8_t *vga_ram_base, |
|
159 |
ram_addr_t vga_ram_offset, int vga_ram_size); |
|
160 |
void isa_cirrus_vga_init(uint8_t *vga_ram_base, |
|
161 |
ram_addr_t vga_ram_offset, int vga_ram_size); |
|
154 |
void pci_cirrus_vga_init(PCIBus *bus, int vga_ram_size); |
|
155 |
void isa_cirrus_vga_init(int vga_ram_size); |
|
162 | 156 |
|
163 | 157 |
/* ide.c */ |
164 | 158 |
void isa_ide_init(int iobase, int iobase2, qemu_irq irq, |
b/hw/pci.h | ||
---|---|---|
219 | 219 |
void *lsi_scsi_init(PCIBus *bus, int devfn); |
220 | 220 |
|
221 | 221 |
/* vmware_vga.c */ |
222 |
void pci_vmsvga_init(PCIBus *bus, uint8_t *vga_ram_base, |
|
223 |
unsigned long vga_ram_offset, int vga_ram_size); |
|
222 |
void pci_vmsvga_init(PCIBus *bus, int vga_ram_size); |
|
224 | 223 |
|
225 | 224 |
/* usb-uhci.c */ |
226 | 225 |
void usb_uhci_piix3_init(PCIBus *bus, int devfn); |
b/hw/ppc_newworld.c | ||
---|---|---|
97 | 97 |
qemu_irq *pic, **openpic_irqs; |
98 | 98 |
int unin_memory; |
99 | 99 |
int linux_boot, i; |
100 |
ram_addr_t ram_offset, vga_ram_offset, bios_offset, vga_bios_offset;
|
|
100 |
ram_addr_t ram_offset, bios_offset, vga_bios_offset; |
|
101 | 101 |
uint32_t kernel_base, kernel_size, initrd_base, initrd_size; |
102 | 102 |
PCIBus *pci_bus; |
103 | 103 |
MacIONVRAMState *nvr; |
... | ... | |
136 | 136 |
ram_offset = qemu_ram_alloc(ram_size); |
137 | 137 |
cpu_register_physical_memory(0, ram_size, ram_offset); |
138 | 138 |
|
139 |
/* allocate VGA RAM */ |
|
140 |
vga_ram_offset = qemu_ram_alloc(vga_ram_size); |
|
141 |
|
|
142 | 139 |
/* allocate and load BIOS */ |
143 | 140 |
bios_offset = qemu_ram_alloc(BIOS_SIZE); |
144 | 141 |
if (bios_name == NULL) |
... | ... | |
288 | 285 |
pic = openpic_init(NULL, &pic_mem_index, smp_cpus, openpic_irqs, NULL); |
289 | 286 |
pci_bus = pci_pmac_init(pic); |
290 | 287 |
/* init basic PC hardware */ |
291 |
pci_vga_init(pci_bus, phys_ram_base + vga_ram_offset, |
|
292 |
vga_ram_offset, vga_ram_size, |
|
288 |
pci_vga_init(pci_bus, vga_ram_size, |
|
293 | 289 |
vga_bios_offset, vga_bios_size); |
294 | 290 |
|
295 | 291 |
/* XXX: suppress that */ |
b/hw/ppc_oldworld.c | ||
---|---|---|
125 | 125 |
char buf[1024]; |
126 | 126 |
qemu_irq *pic, **heathrow_irqs; |
127 | 127 |
int linux_boot, i; |
128 |
ram_addr_t ram_offset, vga_ram_offset, bios_offset, vga_bios_offset;
|
|
128 |
ram_addr_t ram_offset, bios_offset, vga_bios_offset; |
|
129 | 129 |
uint32_t kernel_base, initrd_base; |
130 | 130 |
int32_t kernel_size, initrd_size; |
131 | 131 |
PCIBus *pci_bus; |
... | ... | |
169 | 169 |
ram_offset = qemu_ram_alloc(ram_size); |
170 | 170 |
cpu_register_physical_memory(0, ram_size, ram_offset); |
171 | 171 |
|
172 |
/* allocate VGA RAM */ |
|
173 |
vga_ram_offset = qemu_ram_alloc(vga_ram_size); |
|
174 |
|
|
175 | 172 |
/* allocate and load BIOS */ |
176 | 173 |
bios_offset = qemu_ram_alloc(BIOS_SIZE); |
177 | 174 |
if (bios_name == NULL) |
... | ... | |
303 | 300 |
} |
304 | 301 |
pic = heathrow_pic_init(&pic_mem_index, 1, heathrow_irqs); |
305 | 302 |
pci_bus = pci_grackle_init(0xfec00000, pic); |
306 |
pci_vga_init(pci_bus, phys_ram_base + vga_ram_offset, |
|
307 |
vga_ram_offset, vga_ram_size, |
|
303 |
pci_vga_init(pci_bus, vga_ram_size, |
|
308 | 304 |
vga_bios_offset, vga_bios_size); |
309 | 305 |
|
310 | 306 |
escc_mem_index = escc_init(0x80013000, pic[0x0f], pic[0x10], serial_hds[0], |
b/hw/ppc_prep.c | ||
---|---|---|
543 | 543 |
m48t59_t *m48t59; |
544 | 544 |
int PPC_io_memory; |
545 | 545 |
int linux_boot, i, nb_nics1, bios_size; |
546 |
ram_addr_t ram_offset, vga_ram_offset, bios_offset;
|
|
546 |
ram_addr_t ram_offset, bios_offset; |
|
547 | 547 |
uint32_t kernel_base, kernel_size, initrd_base, initrd_size; |
548 | 548 |
PCIBus *pci_bus; |
549 | 549 |
qemu_irq *i8259; |
... | ... | |
580 | 580 |
ram_offset = qemu_ram_alloc(ram_size); |
581 | 581 |
cpu_register_physical_memory(0, ram_size, ram_offset); |
582 | 582 |
|
583 |
/* allocate VGA RAM */ |
|
584 |
vga_ram_offset = qemu_ram_alloc(vga_ram_size); |
|
585 |
|
|
586 | 583 |
/* allocate and load BIOS */ |
587 | 584 |
bios_offset = qemu_ram_alloc(BIOS_SIZE); |
588 | 585 |
if (bios_name == NULL) |
... | ... | |
663 | 660 |
cpu_register_physical_memory(0x80000000, 0x00800000, PPC_io_memory); |
664 | 661 |
|
665 | 662 |
/* init basic PC hardware */ |
666 |
pci_vga_init(pci_bus, phys_ram_base + vga_ram_offset, |
|
667 |
vga_ram_offset, vga_ram_size, 0, 0); |
|
663 |
pci_vga_init(pci_bus, vga_ram_size, 0, 0); |
|
668 | 664 |
// openpic = openpic_init(0x00000000, 0xF0000000, 1); |
669 | 665 |
// pit = pit_init(0x40, i8259[0]); |
670 | 666 |
rtc_init(0x70, i8259[8], 2000); |
b/hw/sun4u.c | ||
---|---|---|
337 | 337 |
m48t59_t *nvram; |
338 | 338 |
int ret, linux_boot; |
339 | 339 |
unsigned int i; |
340 |
ram_addr_t ram_offset, prom_offset, vga_ram_offset;
|
|
340 |
ram_addr_t ram_offset, prom_offset; |
|
341 | 341 |
long initrd_size, kernel_size; |
342 | 342 |
PCIBus *pci_bus, *pci_bus2, *pci_bus3; |
343 | 343 |
QEMUBH *bh; |
... | ... | |
447 | 447 |
pci_bus = pci_apb_init(APB_SPECIAL_BASE, APB_MEM_BASE, NULL, &pci_bus2, |
448 | 448 |
&pci_bus3); |
449 | 449 |
isa_mem_base = VGA_BASE; |
450 |
vga_ram_offset = qemu_ram_alloc(vga_ram_size); |
|
451 |
pci_vga_init(pci_bus, phys_ram_base + vga_ram_offset, |
|
452 |
vga_ram_offset, vga_ram_size, |
|
453 |
0, 0); |
|
450 |
pci_vga_init(pci_bus, vga_ram_size, 0, 0); |
|
454 | 451 |
|
455 | 452 |
// XXX Should be pci_bus3 |
456 | 453 |
pci_ebus_init(pci_bus, -1); |
b/hw/vga.c | ||
---|---|---|
2266 | 2266 |
vga_dirty_log_start(s); |
2267 | 2267 |
} |
2268 | 2268 |
|
2269 |
void vga_common_init(VGAState *s, uint8_t *vga_ram_base, |
|
2270 |
ram_addr_t vga_ram_offset, int vga_ram_size) |
|
2269 |
void vga_common_init(VGAState *s, int vga_ram_size) |
|
2271 | 2270 |
{ |
2272 | 2271 |
int i, j, v, b; |
2273 | 2272 |
|
... | ... | |
2294 | 2293 |
expand4to8[i] = v; |
2295 | 2294 |
} |
2296 | 2295 |
|
2297 |
s->vram_ptr = vga_ram_base;
|
|
2298 |
s->vram_offset = vga_ram_offset;
|
|
2296 |
s->vram_offset = qemu_ram_alloc(vga_ram_size);
|
|
2297 |
s->vram_ptr = qemu_get_ram_ptr(s->vram_offset);
|
|
2299 | 2298 |
s->vram_size = vga_ram_size; |
2300 | 2299 |
s->get_bpp = vga_get_bpp; |
2301 | 2300 |
s->get_offsets = vga_get_offsets; |
... | ... | |
2445 | 2444 |
qemu_register_coalesced_mmio(vram_base + 0x000a0000, 0x20000); |
2446 | 2445 |
} |
2447 | 2446 |
|
2448 |
int isa_vga_init(uint8_t *vga_ram_base, |
|
2449 |
unsigned long vga_ram_offset, int vga_ram_size) |
|
2447 |
int isa_vga_init(int vga_ram_size) |
|
2450 | 2448 |
{ |
2451 | 2449 |
VGAState *s; |
2452 | 2450 |
|
2453 | 2451 |
s = qemu_mallocz(sizeof(VGAState)); |
2454 | 2452 |
|
2455 |
vga_common_init(s, vga_ram_base, vga_ram_offset, vga_ram_size);
|
|
2453 |
vga_common_init(s, vga_ram_size); |
|
2456 | 2454 |
vga_init(s); |
2457 | 2455 |
|
2458 | 2456 |
s->ds = graphic_console_init(s->update, s->invalidate, |
... | ... | |
2461 | 2459 |
#ifdef CONFIG_BOCHS_VBE |
2462 | 2460 |
/* XXX: use optimized standard vga accesses */ |
2463 | 2461 |
cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS, |
2464 |
vga_ram_size, vga_ram_offset);
|
|
2462 |
vga_ram_size, s->vram_offset);
|
|
2465 | 2463 |
#endif |
2466 | 2464 |
return 0; |
2467 | 2465 |
} |
2468 | 2466 |
|
2469 |
int isa_vga_mm_init(uint8_t *vga_ram_base, |
|
2470 |
unsigned long vga_ram_offset, int vga_ram_size, |
|
2471 |
target_phys_addr_t vram_base, target_phys_addr_t ctrl_base, |
|
2472 |
int it_shift) |
|
2467 |
int isa_vga_mm_init(int vga_ram_size, target_phys_addr_t vram_base, |
|
2468 |
target_phys_addr_t ctrl_base, int it_shift) |
|
2473 | 2469 |
{ |
2474 | 2470 |
VGAState *s; |
2475 | 2471 |
|
2476 | 2472 |
s = qemu_mallocz(sizeof(VGAState)); |
2477 | 2473 |
|
2478 |
vga_common_init(s, vga_ram_base, vga_ram_offset, vga_ram_size);
|
|
2474 |
vga_common_init(s, vga_ram_size); |
|
2479 | 2475 |
vga_mm_init(s, vram_base, ctrl_base, it_shift); |
2480 | 2476 |
|
2481 | 2477 |
s->ds = graphic_console_init(s->update, s->invalidate, |
... | ... | |
2484 | 2480 |
#ifdef CONFIG_BOCHS_VBE |
2485 | 2481 |
/* XXX: use optimized standard vga accesses */ |
2486 | 2482 |
cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS, |
2487 |
vga_ram_size, vga_ram_offset);
|
|
2483 |
vga_ram_size, s->vram_offset);
|
|
2488 | 2484 |
#endif |
2489 | 2485 |
return 0; |
2490 | 2486 |
} |
... | ... | |
2500 | 2496 |
vga_dirty_log_start(s); |
2501 | 2497 |
} |
2502 | 2498 |
|
2503 |
int pci_vga_init(PCIBus *bus, uint8_t *vga_ram_base, |
|
2504 |
unsigned long vga_ram_offset, int vga_ram_size, |
|
2499 |
int pci_vga_init(PCIBus *bus, int vga_ram_size, |
|
2505 | 2500 |
unsigned long vga_bios_offset, int vga_bios_size) |
2506 | 2501 |
{ |
2507 | 2502 |
PCIVGAState *d; |
... | ... | |
2515 | 2510 |
return -1; |
2516 | 2511 |
s = &d->vga_state; |
2517 | 2512 |
|
2518 |
vga_common_init(s, vga_ram_base, vga_ram_offset, vga_ram_size);
|
|
2513 |
vga_common_init(s, vga_ram_size); |
|
2519 | 2514 |
vga_init(s); |
2520 | 2515 |
|
2521 | 2516 |
s->ds = graphic_console_init(s->update, s->invalidate, |
b/hw/vga_int.h | ||
---|---|---|
191 | 191 |
return (v << 2) | (b << 1) | b; |
192 | 192 |
} |
193 | 193 |
|
194 |
void vga_common_init(VGAState *s, uint8_t *vga_ram_base, |
|
195 |
ram_addr_t vga_ram_offset, int vga_ram_size); |
|
194 |
void vga_common_init(VGAState *s, int vga_ram_size); |
|
196 | 195 |
void vga_init(VGAState *s); |
197 | 196 |
void vga_reset(void *s); |
198 | 197 |
|
b/hw/vmware_vga.c | ||
---|---|---|
59 | 59 |
DisplayState *ds; |
60 | 60 |
int vram_size; |
61 | 61 |
ram_addr_t vram_offset; |
62 |
uint8_t *vram_ptr; |
|
62 | 63 |
#endif |
63 |
uint8_t *vram; |
|
64 | 64 |
target_phys_addr_t vram_base; |
65 | 65 |
|
66 | 66 |
int index; |
... | ... | |
326 | 326 |
bypl = s->bypp * s->width; |
327 | 327 |
width = s->bypp * w; |
328 | 328 |
start = s->bypp * x + bypl * y; |
329 |
src = s->vram + start; |
|
329 |
src = s->vram_ptr + start;
|
|
330 | 330 |
dst = ds_get_data(s->ds) + start; |
331 | 331 |
|
332 | 332 |
for (; line > 0; line --, src += bypl, dst += bypl) |
... | ... | |
339 | 339 |
static inline void vmsvga_update_screen(struct vmsvga_state_s *s) |
340 | 340 |
{ |
341 | 341 |
#ifndef DIRECT_VRAM |
342 |
memcpy(ds_get_data(s->ds), s->vram, s->bypp * s->width * s->height); |
|
342 |
memcpy(ds_get_data(s->ds), s->vram_ptr, s->bypp * s->width * s->height);
|
|
343 | 343 |
#endif |
344 | 344 |
|
345 | 345 |
dpy_update(s->ds, 0, 0, s->width, s->height); |
... | ... | |
383 | 383 |
# ifdef DIRECT_VRAM |
384 | 384 |
uint8_t *vram = ds_get_data(s->ds); |
385 | 385 |
# else |
386 |
uint8_t *vram = s->vram; |
|
386 |
uint8_t *vram = s->vram_ptr;
|
|
387 | 387 |
# endif |
388 | 388 |
int bypl = s->bypp * s->width; |
389 | 389 |
int width = s->bypp * w; |
... | ... | |
420 | 420 |
# ifdef DIRECT_VRAM |
421 | 421 |
uint8_t *vram = ds_get_data(s->ds); |
422 | 422 |
# else |
423 |
uint8_t *vram = s->vram; |
|
423 |
uint8_t *vram = s->vram_ptr;
|
|
424 | 424 |
# endif |
425 | 425 |
int bypp = s->bypp; |
426 | 426 |
int bypl = bypp * s->width; |
... | ... | |
801 | 801 |
|
802 | 802 |
case SVGA_REG_CONFIG_DONE: |
803 | 803 |
if (value) { |
804 |
s->fifo = (uint32_t *) &s->vram[s->vram_size - SVGA_FIFO_SIZE]; |
|
804 |
s->fifo = (uint32_t *) &s->vram_ptr[s->vram_size - SVGA_FIFO_SIZE];
|
|
805 | 805 |
/* Check range and alignment. */ |
806 | 806 |
if ((CMD(min) | CMD(max) | |
807 | 807 |
CMD(next_cmd) | CMD(stop)) & 3) |
... | ... | |
985 | 985 |
|
986 | 986 |
if (s->depth == 32) { |
987 | 987 |
DisplaySurface *ds = qemu_create_displaysurface_from(s->width, |
988 |
s->height, 32, ds_get_linesize(s->ds), s->vram); |
|
988 |
s->height, 32, ds_get_linesize(s->ds), s->vram_ptr);
|
|
989 | 989 |
ppm_save(filename, ds); |
990 | 990 |
qemu_free(ds); |
991 | 991 |
} |
... | ... | |
1006 | 1006 |
if (addr < s->fb_size) |
1007 | 1007 |
return *(uint8_t *) (ds_get_data(s->ds) + addr); |
1008 | 1008 |
else |
1009 |
return *(uint8_t *) (s->vram + addr); |
|
1009 |
return *(uint8_t *) (s->vram_ptr + addr);
|
|
1010 | 1010 |
} |
1011 | 1011 |
|
1012 | 1012 |
static uint32_t vmsvga_vram_readw(void *opaque, target_phys_addr_t addr) |
... | ... | |
1015 | 1015 |
if (addr < s->fb_size) |
1016 | 1016 |
return *(uint16_t *) (ds_get_data(s->ds) + addr); |
1017 | 1017 |
else |
1018 |
return *(uint16_t *) (s->vram + addr); |
|
1018 |
return *(uint16_t *) (s->vram_ptr + addr);
|
|
1019 | 1019 |
} |
1020 | 1020 |
|
1021 | 1021 |
static uint32_t vmsvga_vram_readl(void *opaque, target_phys_addr_t addr) |
... | ... | |
1024 | 1024 |
if (addr < s->fb_size) |
1025 | 1025 |
return *(uint32_t *) (ds_get_data(s->ds) + addr); |
1026 | 1026 |
else |
1027 |
return *(uint32_t *) (s->vram + addr); |
|
1027 |
return *(uint32_t *) (s->vram_ptr + addr);
|
|
1028 | 1028 |
} |
1029 | 1029 |
|
1030 | 1030 |
static void vmsvga_vram_writeb(void *opaque, target_phys_addr_t addr, |
... | ... | |
1034 | 1034 |
if (addr < s->fb_size) |
1035 | 1035 |
*(uint8_t *) (ds_get_data(s->ds) + addr) = value; |
1036 | 1036 |
else |
1037 |
*(uint8_t *) (s->vram + addr) = value; |
|
1037 |
*(uint8_t *) (s->vram_ptr + addr) = value;
|
|
1038 | 1038 |
} |
1039 | 1039 |
|
1040 | 1040 |
static void vmsvga_vram_writew(void *opaque, target_phys_addr_t addr, |
... | ... | |
1044 | 1044 |
if (addr < s->fb_size) |
1045 | 1045 |
*(uint16_t *) (ds_get_data(s->ds) + addr) = value; |
1046 | 1046 |
else |
1047 |
*(uint16_t *) (s->vram + addr) = value; |
|
1047 |
*(uint16_t *) (s->vram_ptr + addr) = value;
|
|
1048 | 1048 |
} |
1049 | 1049 |
|
1050 | 1050 |
static void vmsvga_vram_writel(void *opaque, target_phys_addr_t addr, |
... | ... | |
1054 | 1054 |
if (addr < s->fb_size) |
1055 | 1055 |
*(uint32_t *) (ds_get_data(s->ds) + addr) = value; |
1056 | 1056 |
else |
1057 |
*(uint32_t *) (s->vram + addr) = value; |
|
1057 |
*(uint32_t *) (s->vram_ptr + addr) = value;
|
|
1058 | 1058 |
} |
1059 | 1059 |
|
1060 | 1060 |
static CPUReadMemoryFunc *vmsvga_vram_read[] = { |
... | ... | |
1116 | 1116 |
|
1117 | 1117 |
s->invalidated = 1; |
1118 | 1118 |
if (s->config) |
1119 |
s->fifo = (uint32_t *) &s->vram[s->vram_size - SVGA_FIFO_SIZE]; |
|
1119 |
s->fifo = (uint32_t *) &s->vram_ptr[s->vram_size - SVGA_FIFO_SIZE];
|
|
1120 | 1120 |
|
1121 | 1121 |
return 0; |
1122 | 1122 |
} |
1123 | 1123 |
|
1124 |
static void vmsvga_init(struct vmsvga_state_s *s, |
|
1125 |
uint8_t *vga_ram_base, unsigned long vga_ram_offset, |
|
1126 |
int vga_ram_size) |
|
1124 |
static void vmsvga_init(struct vmsvga_state_s *s, int vga_ram_size) |
|
1127 | 1125 |
{ |
1128 |
s->vram = vga_ram_base; |
|
1129 |
s->vram_size = vga_ram_size; |
|
1130 |
s->vram_offset = vga_ram_offset; |
|
1131 |
|
|
1132 | 1126 |
s->scratch_size = SVGA_SCRATCH_SIZE; |
1133 | 1127 |
s->scratch = (uint32_t *) qemu_malloc(s->scratch_size * 4); |
1134 | 1128 |
|
1135 | 1129 |
vmsvga_reset(s); |
1136 | 1130 |
|
1137 | 1131 |
#ifdef EMBED_STDVGA |
1138 |
vga_common_init((VGAState *) s, |
|
1139 |
vga_ram_base, vga_ram_offset, vga_ram_size); |
|
1132 |
vga_common_init((VGAState *) s, vga_ram_size); |
|
1140 | 1133 |
vga_init((VGAState *) s); |
1134 |
#else |
|
1135 |
s->vram_size = vga_ram_size; |
|
1136 |
s->vram_offset = qemu_ram_alloc(vga_ram_size); |
|
1137 |
s->vram_ptr = qemu_get_ram_ptr(s->vram_offset); |
|
1141 | 1138 |
#endif |
1142 | 1139 |
|
1143 | 1140 |
s->ds = graphic_console_init(vmsvga_update_display, |
... | ... | |
1148 | 1145 |
#ifdef CONFIG_BOCHS_VBE |
1149 | 1146 |
/* XXX: use optimized standard vga accesses */ |
1150 | 1147 |
cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS, |
1151 |
vga_ram_size, vga_ram_offset);
|
|
1148 |
vga_ram_size, s->vram_offset);
|
|
1152 | 1149 |
#endif |
1153 | 1150 |
} |
1154 | 1151 |
|
... | ... | |
1215 | 1212 |
|
1216 | 1213 |
#define PCI_CLASS_HEADERTYPE_00h 0x00 |
1217 | 1214 |
|
1218 |
void pci_vmsvga_init(PCIBus *bus, uint8_t *vga_ram_base, |
|
1219 |
unsigned long vga_ram_offset, int vga_ram_size) |
|
1215 |
void pci_vmsvga_init(PCIBus *bus, int vga_ram_size) |
|
1220 | 1216 |
{ |
1221 | 1217 |
struct pci_vmsvga_state_s *s; |
1222 | 1218 |
|
... | ... | |
1242 | 1238 |
pci_register_io_region(&s->card, 1, vga_ram_size, |
1243 | 1239 |
PCI_ADDRESS_SPACE_MEM_PREFETCH, pci_vmsvga_map_mem); |
1244 | 1240 |
|
1245 |
vmsvga_init(&s->chip, vga_ram_base, vga_ram_offset, vga_ram_size);
|
|
1241 |
vmsvga_init(&s->chip, vga_ram_size); |
|
1246 | 1242 |
|
1247 | 1243 |
register_savevm("vmware_vga", 0, 0, pci_vmsvga_save, pci_vmsvga_load, s); |
1248 | 1244 |
} |
Also available in: Unified diff