initcall: add postconsole_initcall
[barebox-mini2440.git] / TODO
blob6350799e67cce31b875312137552eaf58c419389
1 TODO
2 ----
4 [ ] ask jbe about:
5     ./commands/Makefile:40:obj-$(CONFIG_SIMPLE_PARSER)      += setenv.o
6 [ ] bark on partition not ending on flash sector boundaries
7 [ ] distclean doesn't work without a config
8 [ ] Every driver should have a remove function.
9     (It must have. Currently there is no provision to given to remove my
10     interrupt handlers and to reset all hardware in use, before the target
11     OS is called. csc 21.03.2008 19:50:34)
12 [ ] Global shutdown_drivers() function is needed to carefully clean up all
13     interrupt handlers and reset hardware to initial post reset or otherwise
14     save state.
15     (Ideally the hardware is set back to post-reset state after this call.
16     Run-up and run-down should be reentrant, so if bootm is failing the system
17     can re-initialize devices. csc 21.03.2008 19:48:49)
18 [ ] Clean up make system. Currently I think there are many things from the
19     Linux make system which are not needed for barebox.
20     (Please retain definitions and related for module loading and relocation, so
21     that special barebox modules containing an ELF object can be linked to the
22     running barebox. csc 21.03.2008 19:52:49)
23 [ ] get/set for nonextisting parameters crashes
24 [ ] There is a xmalloc function which panics when out of memory. Use this
25     function where we don't want to check for oom. Same applies to
26     strdup/xstrdup.
27 [ ] cleanup common.h. There are far too many things in it where we better have
28     a seperate header file.
29     (Use doxygen to track header file hierarchy)
30 [ ] Rewrite network stack. The one-loop-for-all-protocols stack is just too
31     ugly and big and uses thousands of global variables. Identify common
32     functions and make a loop per network protocol
33 [-] Cleanup cpu/*. Many functions there are not cpu specific. For example the
34     cache functions for arm are common for most arm processors. (done for ARM)
35     (I will check this for m68k arch - csc 21.03.2008 19:56:24)
36 [ ] Move SoC specific header files from include/ to include/asm/arch/
37 [ ] Several .c/.h files do not have GNU/copyright headers.
38 [ ] The cramfs driver currently uses direct memory accesses instead of read().
39     This disqualifies it for real block devices.
40 [ ] Add documentation for:
41         [ ] driver model
42         [ ] device parameter
43         [ ] big picture
44 [ ] Add example driver and filesystem for reference purposes. Or denote a driver
45     and a filesystem to be the reference.
46 [ ] realloc seems to crash without further notice when out of memory.
47 [ ] implement a mmap() function. Of course we cannot really mmap without mmu,
48     but for memory mapped devices like nor flash we could provide a pointer to
49     it. With this we would not have to copy uimages to memory.
50 [ ] command line editing is somewhat broken
51 [ ] how to select a ethernet channel for tftp when more than one interface
52     of this type exists in the system?
53 [ ] Cleanup headers. I propose to rearrange the files in a way to reflect the
54     organisation of the source tree. This requires changing the include paths
55     in nearly all files, therefore a merge window for this change must be
56     opened and merge in of all other topic branches must happen before.
57     Week 23 or 42 issue? csc, 21.03.2008 19:36:06
58 [ ] Merge similiar information into a single common and a single arch dependant
59     file. E.g. all those general typedefs should be located in include types.h
60     and arch/asm/types.h. csc 21.03.2008 19:38:57
61 [ ] Get rid of the current linux include dir. It should only contain information
62     required to boot linux. csc 21.03.2008 19:39:02
63 [ ] Unify source headers to show up the GPL lic stuff followed by a doxygen file
64     description.
65 [ ] Enhance and complete doxygen comments.
66 [ ] Eliminate all #ifdef CONFIG_??? in C code. Disabled APIs should be defined
67     as empty macros, so that code is removed by the compiler, not the
68     preprocessor.
69     The #ifdefs should be located in their related header files only.
70 [ ] Create an example board, which implements all functions stubs required
71     to compile a full barebox build. Functions are just stubs containing a
72     panic() call - Real code must be filled in accordingly.
73     Can be copied as starting point for a new target board.
74 [ ] Add generic PCI bios code and a PCI bus driver model. The driver should
75     be configured by an appropriate platformconfig. Detected PCI buses and
76     devices should be represented as a hierarchical tree in /dev
77 [ ] Work out, how to mount driver on PCI devices. The mechanism should be
78     transparent to the driver code.
80 DONE
81 ----
83 [x] Rename vmlinux -> barebox
84 [x] Implement current work directory
85 [x] ARCH=linux should catch ctrl-c
86 [x] Implement 'rm'
87 [x] the mount command currently does not accept a full path (i.e. /dev/nor0) but
88     only a device id string (nor0). This sucks.
89 [x] FS support is not optional eventhough the Kconfig system claims it.
90 [x] barebox used to have support for different consoles. The old code was huge and
91     ineffective, so I removed it. Reimplement it using the driver model.
92 [x] Mount without options should show mounted filesystems
93 [x] Add/fix help texts for commands
94 [x] mw is broken. Add common option parsing for mm/md
95 [x] Implement a info command for malloced space. Use it to find memory holes.
96 [x] patch hush.c so that you can get/set device parameters with dev.param= and remove
97     get/set applets
98 [x] rsc: switching on CONFIG_AUTO_COMPLETE fails, because env_complete()
99     isn't there
100 [x] The header files in include/asm-linux/ are i386 specific. Make it work on
101     your i-Book (bigendian...)
102 [x] Globbing support? Might be too expensive, but on the other hand, if you
103     have the space, why not?
104 [x] Implement protect/unprotect support for cfi devices.
105 [x] Implement a command 'countdown' or similar. It should delay the boot
106     process and interrupt it if a certain string is received. The string could
107     be any key, ctrl-c or a certain string. Maybe like this:
108     countdown -m msg -t timeout -x [ctrl-c|anykey|string]
109     If done, remove the corresponding stuff from common/main.c
110 [X] Board support should go to arch/*/boards/*