863cf0b72cFix confusions between host and target long types. Fix start_data computation. Fix auxiliary infos setup.
j_mayer
2007-10-07 15:59:45 +00:00
f2e63a42c9Reorganize the CPUPPCState structure to group features. Add #ifdef to avoid compiling not relevant resources: - MMU related stuff for user-mode only targets - PowerPC 64 only resources for PowerPC 32 targets - embedded PowerPC extensions for non-ppcemb targets.
j_mayer
2007-10-07 15:43:50 +00:00
d26bfc9a1bAdd MSR bits signification per PowerPC implementation flags (to be continued). As a side effect, single step and branch step are available again. Remove irrelevant MSR bits definitions.
j_mayer
2007-10-07 14:41:00 +00:00
7875ed20d7Share devices that may be useful for all PowerPC 40x and 440 implementations.
j_mayer
2007-10-07 14:25:11 +00:00
008ff9d756Share devices that might be useful for all PowerPC 40x & 440 implementations (mostly CPU registration and UIC, for now).
j_mayer
2007-10-07 14:21:26 +00:00
115646b648More user timer fixes (Robert Reif)
blueswir1
2007-10-07 10:00:55 +00:00
81732d1926Implement user mode for timers
blueswir1
2007-10-06 11:25:43 +00:00
aa6ad6fee2Support for loading a real BIOS image (Robert Reif)
blueswir1
2007-10-06 11:24:18 +00:00
12de9a396aFull implementation of PowerPC 64 MMU, just missing support for 1 TB memory segments. Remove the PowerPC 64 "bridge" MMU model and implement segment registers emulation using SLB entries instead. Make SLB area size implementation dependant. Improve TLB & SLB search debug traces. Temporary hack to make PowerPC 970 boot from ROM instead of RAM.
j_mayer
2007-10-05 22:06:02 +00:00
65f9ee8d67Rename PowerPC MMUCSR0 and MMUCFG SPRs: those are not BookE specific.
j_mayer
2007-10-05 13:11:25 +00:00
1c27f8fbfePowerPC hardware reset vector is now considered as part of the exception model. Use it at CPU initialisation time.
j_mayer
2007-10-05 13:09:54 +00:00
1192dad879New '-bios' option, used to select an alternate BIOS image from bios_dir.
j_mayer
2007-10-05 13:08:35 +00:00
e9c05b42e3Implement PL110 byte order config bit (original patch by Richard Purdie).
balrog
2007-10-04 23:45:31 +00:00
4d043a0900Quiet warnings introduced with the USB iso support.
balrog
2007-10-04 22:55:53 +00:00
b9dc033c0dUSB iso transfers support for the linux redirector and for UHCI, by Arnon Gilboa.
balrog
2007-10-04 22:47:34 +00:00
80f515e636sh775x interrupt controller by Magnus Damm.
balrog
2007-10-04 21:53:55 +00:00
30d6eaca96Remove redundant qemu_rearm_alarm_timer() in qemu_del_timer, patch by Dan Kenigsberg.
balrog
2007-10-04 19:59:04 +00:00
49a9b72568(int64_t)UINT64_MAX is -1 and should not be assigned to nearest_delta_us, patch by Dan Kenigsberg.
balrog
2007-10-04 19:47:09 +00:00
2b76bdc965Several corrections in the spitzkbd keymap (patch by Juergen Lock). Don't abort on illegal GPSR reads, instead only warn.
balrog
2007-10-04 19:41:17 +00:00
1cc8e6f067We must reset the PowerPC CPU _after_ registering it, as hardware reset effect is implementation dependant.
j_mayer
2007-10-04 01:54:44 +00:00
e57448f11cMore cache tuning fixes: * fix the tunable cache line size probe for PowerPC 970. * initialize HID5 so cache line is 32 bytes long when running in user-mode only
j_mayer
2007-10-04 01:50:03 +00:00
d63001d114Make PowerPC cache line size implementation dependant. Implement dcbz tunable cache line size for PowerPC 970. Make hardware reset vector implementation dependant.
j_mayer
2007-10-04 00:51:58 +00:00
064034211aHID0 is a write-clear register on 970 (DBSR).
j_mayer
2007-10-03 20:27:44 +00:00
8f793433afEnable PowerPC 64 MMU model and exceptions. Cleanups in MMU exceptions generation.
j_mayer
2007-10-03 20:19:40 +00:00
0387d92875Fix Sparc64 ldfa/stfa and float ops with fpr >= 32
blueswir1
2007-10-03 17:46:29 +00:00
fe33cc7103Fix PowerPC initialisation and first reset: reset must occur after we defined the CPU features.
j_mayer
2007-10-03 01:06:57 +00:00
00af685fc9We never have to export ppc_set_irq. Protect PowerPC 64 only features with #ifdef (TARGET_PPC64)
j_mayer
2007-10-03 01:05:39 +00:00
217fae2d6bFix PowerPC 405 BIOS instanciation: is a 32 bits only target.
j_mayer
2007-10-03 01:04:20 +00:00
55aa45dddeQuickly hack PowerPC BIOS able to boot on CDROM again.
j_mayer
2007-10-01 06:44:33 +00:00
30032c940aFix missing nip updates for instructions that potentially generate exceptions from op helpers.
j_mayer
2007-10-01 05:22:17 +00:00
7dbe11acd8Handle all MMU models in switches, even if it's just to abort because of lack of supporting code. Implement 74xx software TLB model. Keep 74xx with software TLB disabled, as Linux is not able to handle TLB miss on those processors.
j_mayer
2007-10-01 05:16:57 +00:00
578bb25230More comments about unimplemented SPRs. Tag unused functions with unused attribute instead of using #ifdef (TODO) to ease tests: just have to enable the implementation in the cpu_defs table.
j_mayer
2007-10-01 04:48:45 +00:00
056b05f8d2Optimisations: avoid generation of duplicated micro-ops.
j_mayer
2007-10-01 03:03:51 +00:00
5356c7b5a6Remove definitions for deprecated SLB & TLB related op helpers.
j_mayer
2007-10-01 01:59:12 +00:00
daf4f96eceAvoid op helpers that would just call helpers for TLB & SLB management: call the helpers directly from the micro-ops. Avoid duplicated code for tlbsx. implementation.
j_mayer
2007-10-01 01:51:12 +00:00
035feb8857Share more SPR instanciations between all PowerPC 401 incarnations. Add comments about some unimplemented storage control dedicated SPRs.
j_mayer
2007-10-01 01:38:03 +00:00
1e6784f960Fix PowerPC TLB miss dump code.
j_mayer
2007-09-30 15:19:48 +00:00
56ba31ff0bFix missing case in the new PowerPC exception model.
j_mayer
2007-09-30 15:15:18 +00:00
068abdc8a5Fix inconsistent end conditions in ppc_find_xxx functions. (crash reported by Andreas Farber when using default CPU).
j_mayer
2007-09-30 14:52:08 +00:00
8a84de23b8Fix compilation on Darwin platform, avoiding the use of gcc function attributes (problem reported by Andreas Farber). : ----------------------------------------------------------------------
j_mayer
2007-09-30 14:44:52 +00:00
a5b85f7959Fix mmap to handle differing host/target page sizes, by Edgar E. Iglesias.
ths
2007-09-30 14:32:45 +00:00
be147d0879* Update OEA environment, following the PowerPC 2.04 specification: - New mtmsr/mtmsrd form that just update RI and EE bits - New hrfid, lq and stq instructions - Add support for supervisor and hypervisor modes process priority update - Code provision for hypervisor SPR accesses * Actually implement the wait instruction * Bugfixes (missing RETURN in micro-op / missing #ifdef)
j_mayer
2007-09-30 13:03:23 +00:00
b0566f4f45Support UltraVNC clients, by Eduardo Felipe.
ths
2007-09-30 13:01:15 +00:00
0db1b20e47Synchronize with latest PowerPC ISA VEA: * fix invalid instructions bits masks * new wait instruction * more comments about effect of cache instructions on the MMU
j_mayer
2007-09-30 03:46:38 +00:00
540635ba65Code provision for n32/n64 mips userland emulation. Not functional yet.
ths
2007-09-30 01:58:33 +00:00
868d585aceAvoid crash on NULL timers. This is a rework of Stefan Weil proposed patch.
j_mayer
2007-09-30 01:29:07 +00:00
c80f84e3c0Implement Process Priority Register as defined in the PowerPC 2.04 spec.
j_mayer
2007-09-30 01:18:26 +00:00
d7e4b87e53Implement new floating-point instructions (fre, frin, friz, frip, frim) as defined in the PowerPC 2.04 specification.
j_mayer
2007-09-30 01:11:48 +00:00
477023a603Improve single-precision floats load & stores: as the PowerPC registers only store double-precision floats, use float64_to_float32 & float32_to_float64 to do the appropriate conversion. Implement stfiwx.
j_mayer
2007-09-30 01:01:08 +00:00
bfa1e5cf0aXER is to be treated as a 64 bits register on 64 bits implementations, according to the PowerPC 2.04 specification.
j_mayer
2007-09-30 00:50:23 +00:00
a062e36c58Implement the PowerPC alternate time-base, following the 2.04 specification. Share most code with the time-base management routines. Remove time-base write routines from user-mode emulation environments.
j_mayer
2007-09-30 00:38:38 +00:00
4887d78b01Don't hardcode the host architecture name.
ths
2007-09-29 21:22:33 +00:00