Commit Graph

57 Commits

Author SHA1 Message Date
aliguori
492c30af25 Make DMA bottom-half driven (v2)
The current DMA routines are driven by a call in main_loop_wait() after every
select.

This patch converts the DMA code to be driven by a constantly rescheduled
bottom half.  The advantage of using a scheduled bottom half is that we can
stop scheduling the bottom half when there no DMA channels are runnable.  This
means we can potentially detect this case and sleep longer in the main loop.

The only two architectures implementing DMA_run() are cris and i386.  For cris,
I converted it to a simple repeating bottom half.  I've only compile tested
this as cris does not seem to work on a 64-bit host.  It should be functionally
identical to the previous implementation so I expect it to work.

For x86, I've made sure to only fire the DMA bottom half if there is a DMA
channel that is runnable.  The effect of this is that unless you're using sb16
or a floppy disk, the DMA bottom half never fires.

You probably should test this malc.  My own benchmarks actually show slight
improvement by it's possible the change in timing could affect your demos.

Since v1, I've changed the code to use a BH instead of a timer.  cris at least
seems to depend on faster than 10ms polling.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5573 c046a42c-6fe2-441c-8c8c-71466251a162
2008-10-31 17:25:56 +00:00
aliguori
b2097003ec machine struct - specify max_cpus at the per machine level (Jes Sorensen)
Introduce a max_cpus per-machine variable, allowing individual boards
to limit it's number of CPUs. Check requested number of CPUs in setup
code and exit if it exceeds the supported number for the machine.
This also renders the static MAX_CPUS check obsolete, so remove this
from vl.c.

Signed-off-by: Jes Sorensen <jes@sgi.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5443 c046a42c-6fe2-441c-8c8c-71466251a162
2008-10-07 20:39:39 +00:00
blueswir1
2bfdab638a Move nographic export to sysemu.h
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5414 c046a42c-6fe2-441c-8c8c-71466251a162
2008-10-04 07:22:29 +00:00
blueswir1
f4b1a842d7 Rearrange tick functions
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5408 c046a42c-6fe2-441c-8c8c-71466251a162
2008-10-03 19:04:42 +00:00
blueswir1
e87231d426 Add a generic Niagara machine
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5329 c046a42c-6fe2-441c-8c8c-71466251a162
2008-09-26 19:48:58 +00:00
blueswir1
9d92659858 Add software and timer interrupt support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5299 c046a42c-6fe2-441c-8c8c-71466251a162
2008-09-22 19:50:28 +00:00
blueswir1
905fdcb526 Add common keys to firmware configuration
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5260 c046a42c-6fe2-441c-8c8c-71466251a162
2008-09-18 18:33:18 +00:00
blueswir1
3cce62435c Key/value based qemu<->guest firmware communication mechanism (Gleb Natapov)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5256 c046a42c-6fe2-441c-8c8c-71466251a162
2008-09-18 18:27:29 +00:00
blueswir1
363a37d520 Fix OpenBSD linker warnings
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5044 c046a42c-6fe2-441c-8c8c-71466251a162
2008-08-21 17:58:08 +00:00
blueswir1
f88e4b91be Allow boot without a drive on Sparc machines (partly extracted from Xen)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4997 c046a42c-6fe2-441c-8c8c-71466251a162
2008-08-12 15:58:35 +00:00
blueswir1
66de733bdb Use C99 initializers
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4996 c046a42c-6fe2-441c-8c8c-71466251a162
2008-08-12 15:51:09 +00:00
blueswir1
c7ba218da1 Add T1 and T2 CPUs, add a Sun4v machine
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4923 c046a42c-6fe2-441c-8c8c-71466251a162
2008-07-22 07:07:34 +00:00
blueswir1
0d31cb9954 Add idprom
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4870 c046a42c-6fe2-441c-8c8c-71466251a162
2008-07-15 14:54:01 +00:00
pbrook
b3c7724cbc Move CPU save/load registration to common code.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4808 c046a42c-6fe2-441c-8c8c-71466251a162
2008-06-30 16:31:04 +00:00
blueswir1
e7fb1406b0 Fix some compiler signed/unsigned char warnings
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4782 c046a42c-6fe2-441c-8c8c-71466251a162
2008-06-23 17:52:43 +00:00
blueswir1
81864572e6 Add support for boot_set command
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4764 c046a42c-6fe2-441c-8c8c-71466251a162
2008-06-20 16:25:56 +00:00
blueswir1
1a14026e11 Allow NWINDOWS selection (CPU feature with model specific defaults)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4690 c046a42c-6fe2-441c-8c8c-71466251a162
2008-06-07 08:07:37 +00:00
blueswir1
293f78bc1b Remove most uses of phys_ram_base (initial patch by Ian Jackson)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4442 c046a42c-6fe2-441c-8c8c-71466251a162
2008-05-12 17:22:13 +00:00
blueswir1
77f193daa8 Wrap long lines
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4440 c046a42c-6fe2-441c-8c8c-71466251a162
2008-05-12 16:13:33 +00:00
blueswir1
22548760ca Fix compiler warnings
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4404 c046a42c-6fe2-441c-8c8c-71466251a162
2008-05-10 10:12:00 +00:00
blueswir1
cbf5c748e2 Fix Sparc64 serial device breakage
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4339 c046a42c-6fe2-441c-8c8c-71466251a162
2008-05-05 17:37:44 +00:00
blueswir1
6ef05b9546 Improved large memory support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4292 c046a42c-6fe2-441c-8c8c-71466251a162
2008-05-01 18:21:46 +00:00
aurel32
00f82b8a31 Use correct types to enable > 2G support, based on a patch from
Anthony Liguori.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4265 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-27 21:12:55 +00:00
blueswir1
ac2e9d66b2 Fix broken TCX vram, restore Sun4u PROM_SIZE_MAX
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4263 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-27 15:29:18 +00:00
balrog
7fb4fdcffe RAM usage information in machine definition.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4246 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-24 17:59:27 +00:00
aurel32
03875444d9 Revert "Use correct types to enable > 2G support" (r4238), it is
not yet ready.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4240 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-22 20:45:18 +00:00
aurel32
967032c3d5 Use correct types to enable > 2G support, based on a patch from
Anthony Liguori.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4238 c046a42c-6fe2-441c-8c8c-71466251a162
2008-04-22 20:37:34 +00:00
ths
e4bcb14c79 Add -drive parameter, by Laurent Vivier.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3759 c046a42c-6fe2-441c-8c8c-71466251a162
2007-12-02 04:51:10 +00:00
blueswir1
b881c2c6e7 Remove unused parameters from QEMUMachineInitFunc (Laurent Vivier)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3687 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-18 08:46:58 +00:00
pbrook
87ecb68bdf Break up vl.h.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3674 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-17 17:14:51 +00:00
blueswir1
d2c63fc185 Update OHW interface to version 3.
Use common ABI description file with OpenBIOS.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3648 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-14 19:35:16 +00:00
blueswir1
0fe5ea89cc Fix Sun4u compile
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3594 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-11 16:51:04 +00:00
bellard
aaed909a49 added cpu_model parameter to cpu_init()
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3562 c046a42c-6fe2-441c-8c8c-71466251a162
2007-11-10 15:15:54 +00:00
balrog
6ac0e82da1 Set boot sequence from command line (Dan Kenigsberg).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3497 c046a42c-6fe2-441c-8c8c-71466251a162
2007-10-31 01:54:04 +00:00
blueswir1
952a328ff5 SuperSparc MXCC support (Robert Reif)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3397 c046a42c-6fe2-441c-8c8c-71466251a162
2007-10-14 16:29:21 +00:00
blueswir1
f930d07eda More detabification
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3338 c046a42c-6fe2-441c-8c8c-71466251a162
2007-10-06 11:28:21 +00:00
j_mayer
1192dad879 New '-bios' option, used to select an alternate BIOS image from bios_dir.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3331 c046a42c-6fe2-441c-8c8c-71466251a162
2007-10-05 13:08:35 +00:00
ths
5fafdf24ef find -type f | xargs sed -i 's/[\t ]$//g' # on most files
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3173 c046a42c-6fe2-441c-8c8c-71466251a162
2007-09-16 21:08:06 +00:00
blueswir1
f19e918d70 Sparc64 update
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3062 c046a42c-6fe2-441c-8c8c-71466251a162
2007-07-11 19:51:37 +00:00
blueswir1
20c9f095c4 Implement Sparc64 CPU timers using ptimers
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2860 c046a42c-6fe2-441c-8c8c-71466251a162
2007-05-25 18:50:28 +00:00
blueswir1
66508601ad Set OpenBIOS variables in NVRAM
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2764 c046a42c-6fe2-441c-8c8c-71466251a162
2007-05-01 14:16:52 +00:00
pbrook
d537cf6c86 Unify IRQ handling.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2635 c046a42c-6fe2-441c-8c8c-71466251a162
2007-04-07 18:14:41 +00:00
ths
74287114c9 Improved initrd support for mips.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2574 c046a42c-6fe2-441c-8c8c-71466251a162
2007-04-01 17:56:37 +00:00
blueswir1
62724a3773 Sparc32/64 CPU selection
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2534 c046a42c-6fe2-441c-8c8c-71466251a162
2007-03-25 07:55:52 +00:00
j_mayer
94fc95cdb2 New -cpu options: choose CPU model for emulated target.
Only relevant on PowerPC targets, for now.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2468 c046a42c-6fe2-441c-8c8c-71466251a162
2007-03-05 19:44:02 +00:00
ths
abcebc7e80 Devfn number for network PCI cards, by Aurelien Jarno.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2314 c046a42c-6fe2-441c-8c8c-71466251a162
2007-01-10 16:17:21 +00:00
pbrook
75956cf032 Sun4u vga+bios tweaks (Blue Swirl).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1994 c046a42c-6fe2-441c-8c8c-71466251a162
2006-06-18 19:41:28 +00:00
bellard
0986ac3be2 use OpenBIOS instead of Proll on sparc (Blue Swirl)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1960 c046a42c-6fe2-441c-8c8c-71466251a162
2006-06-14 12:36:32 +00:00
pbrook
502a53952d Rearrange PCI host emulation code.
Add ARM PCI emulation.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1916 c046a42c-6fe2-441c-8c8c-71466251a162
2006-05-13 16:11:23 +00:00
bellard
9ee3c02942 added entry parameter to ELF loader
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1859 c046a42c-6fe2-441c-8c8c-71466251a162
2006-04-26 22:05:26 +00:00