root / target-mips / TODO @ c7890fc2
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". |