Statistics
| Branch: | Revision:

root / target-mips / TODO @ 9f77c1cd

History | View | Annotate | Download (1.9 kB)

1 2c52c816 ths
Unsolved issues/bugs in the mips/mipsel backend
2 2c52c816 ths
-----------------------------------------------
3 2c52c816 ths
4 15dcf5aa ths
General
5 15dcf5aa ths
-------
6 d0f48074 ths
- Unimplemented ASEs:
7 d0f48074 ths
  - MIPS16
8 d0f48074 ths
  - MDMX
9 d0f48074 ths
  - SmartMIPS
10 d0f48074 ths
  - DSP r1
11 d0f48074 ths
  - DSP r2
12 d0f48074 ths
- MT ASE only partially implemented and not functional
13 d0f48074 ths
- Shadow register support only partially implemented,
14 d0f48074 ths
  lacks set switching on interrupt/exception.
15 d0f48074 ths
- 34K ITC not implemented.
16 d0f48074 ths
- A general lack of documentation, especially for technical internals.
17 d0f48074 ths
  Existing documentation is x86-centric.
18 d0f48074 ths
- Reverse endianness bit not implemented
19 d0f48074 ths
- The TLB emulation is very inefficient:
20 d0f48074 ths
  Qemu's softmmu implements a x86-style MMU, with separate entries
21 d0f48074 ths
  for read/write/execute, a TLB index which is just a modulo of the
22 d0f48074 ths
  virtual address, and a set of TLBs for each user/kernel/supervisor
23 d0f48074 ths
  MMU mode.
24 d0f48074 ths
  MIPS has a single entry for read/write/execute and only one MMU mode.
25 d0f48074 ths
  But it is fully associative with randomized entry indices, and uses
26 d0f48074 ths
  up to 256 ASID tags as additional matching criterion (which roughly
27 d0f48074 ths
  equates to 256 MMU modes). It also has a global flag which causes
28 d0f48074 ths
  entries to match regardless of ASID.
29 d0f48074 ths
  To cope with these differences, Qemu currently flushes the TLB at
30 d0f48074 ths
  each ASID change. Using the MMU modes to implement ASIDs hinges on
31 d0f48074 ths
  implementing the global bit efficiently.
32 2c52c816 ths
33 15dcf5aa ths
MIPS64
34 15dcf5aa ths
------
35 540635ba ths
- Userland emulation (both n32 and n64) not functional.
36 15dcf5aa ths
37 15dcf5aa ths
"Generic" 4Kc system emulation
38 15dcf5aa ths
------------------------------
39 15dcf5aa ths
- Doesn't correspond to any real hardware.
40 15dcf5aa ths
41 509b8ab2 ths
PICA 61 system emulation
42 509b8ab2 ths
------------------------
43 509b8ab2 ths
- No framebuffer support yet.
44 509b8ab2 ths
45 15dcf5aa ths
MALTA system emulation
46 15dcf5aa ths
----------------------
47 2c52c816 ths
- We fake firmware support instead of doing the real thing
48 4a109bfb ths
- Real firmware falls over when trying to init RAM, presumably due
49 7246bb21 ths
  to lacking system controller emulation.
50 c7890fc2 ths
51 c7890fc2 ths
mipssim system emulation
52 c7890fc2 ths
------------------------
53 c7890fc2 ths
- The mipsnet.c has a glitch: Booting from NFS root works up until
54 c7890fc2 ths
  starting /sbin/init, then it Linux hangs with "NFS server not
55 c7890fc2 ths
  responding".