forked from haret/haret
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathTODO
113 lines (76 loc) · 4.11 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
New features:
* Port commands from gnu-haret to mainline haret.
* Gpio watching infrastructure. Monitoring of gpios is a critical
part of machine discovery. The current code only supports old PXA
gpios.
Misc cleanups:
* Define linux "mach-type" boot code for wizard.
* Don't export ScriptLine from script.cpp - instead export a wrapper
around Output that prepends the script line.
* Scan all L1 based 1meg virtual->physical mappings at startup. This
will make memPhysMap_section available even in critical sections
where the code can't call into wince.
* It might be useful to make memPhysMap_section the default and
implement a new memPhysMap_temp that can call the wince
VirtualCopy function when there is no l1 mapping available. Many
places in the code assume a reference from memPhysMap has a long
lifespan, and if the VirtualCopy method is invoked these places
may fail mysteriously.
* It may also be useful to implement an optional "window size"
parameter to memPhysMap - some code assumes it can access large
areas from a memPhysMap reference, and this may not be true on all
machines.
* Implement a "redirect" command that can run a command and forward
its output to a file.
* Remove pdump/vdump in favor of pd/vd
* Remove "dump" based commands and re-implement them as regular
commands. It isn't clear why "dump mmu" isn't implemented as
"mmudump".
* Move ac97 dump from cpu.c to its own (pxa specific) file.
* Port s3c24xx based code into standard machine detection hierarchy.
* Remove old Microsoft based build code.
* Submit nled.h, pkfuncs.h, and pwinuser.h to cegcc.
* Get "bwmem" command working or remove it.
* Get linux penguin logo working or remove it.
* Generalize architecture ->detect() calls so that each new platform
doesn't need to modify machines.cpp.
* Possibly go back to the coprocessor accessor code that did
code-modification. The current code can't set opcode_1 and opcode_2
which is useful in some situations.
* Possibly change get_token to parse filenames that contain slashes
and periods without requiring the user place quotes around them.
Possible features for "wi":
* Show windows time on each trace report. This is useful because the
PXA clock (where available) can be misleading when the clock
frequency changes.
* Support hooking of interrupts on non-pxa based processors. There is
nothing PXA specific about hooking the wince interrupt vector - the
code can be refactored to pull out the PXA specific stuff.
* It should also be possible to have each machine define its own
interrupt additions. This will allow the egpio and asic3
interrupts to be monitored as easily as the builtin interrupts.
* It should be possible to implement a portable instruction breakpoint
system by overwriting code in memory with an interrupt or "undefined
instruction" code. (It may also be possible to just jump to a
special handler.) This would allow breakpoints on machines other
than the PXA.
* It may be possible to implement a portable memory tracing capability
by fiddling with the MMU table. This may permit basic memory
tracing features on non PXA processors.
* Find out why AllocPhysMem is needed - it is unclear why the
interrupt vector can't jump to an address in normal Haret exe space.
* See if it is possible to monitor memory accesses immediately after a
resume. Early attempts at this failed because the MMU wasn't on and
the fault handlers couldn't run. As a result, the current code just
re-enables traces on the first irq.
Possible features for Linux booting:
* Verify linux booting from resume code.
* Possibly add fonts to write to framebuffer during linux boot.
* Possibly do crc checks before and after kernel load to check for DMA
corruption.
* Determine if arm-920t needs its own cpuFlushCache, and if so define
a Mach->cpuFlushCache() call that implements the necessary code.
* Possibly allow PHYSOFFSET_KERNEL (et al.) be set via commands. It
may also be necessary to handle the "overwriting memory" case -
possibly by just allocating additional pages and discarding pages
that are too low.