Chameleon

Chameleon Svn Source Tree

Root/branches/Bungo/TODO

1TODO List for Chameleon Boot Loader
2====================================
3- Fix boot prompt parsing.
4
5- Bring code closer to coding_standards.txt.
6
7- Fix the module system when booting chameleon with multiboot. Cleanup the xcode 4 fix.
8
9- Integrate Prasys current work on options and quick shortcut modified version of 18seven
10
11- Add auto detection of efi string algorithm, so graphics enabler can be enabled by default while not
12 conflicting with other efi string overridden content
13 (original idea of Galaxy)
14
15 - Case insensitive parsing for the bootConfig options:
16 should help the common/novice user to setup more easily.
17
18- Find out how we can avoid section overlap with the xcode4.4 LD version (we must first reduce the size of the bootloader but it's not enought, maybe we should use a thing comparable to the gnu ld.script, QUESTION: is the xcode4.4 linker still suitable to build standalone app ? )
19====================================
20
21DONE
22
23- Create a dummy module for any modules that are compiled in. This is needed for linking modules with
24 dependencies that are not compiled in.
25
26- Add a more sophisticated acpi loading mechanism to enable loading custom acpi tables when dsdtdrop=y
27 Here's a specification to think about:
28 First we must care about if a forced DSDT full path has been specified
29 (was what pb smith had in his first tries) and take it for the DSDT path as is.
30 Then we have the case where no DSDT path was set where we run our usual DSDT search algorithm to
31 find this file.
32 In the latter case, the file has to be named DSDT.aml and be in one of the / /Extra or bt(0,0)/Extra
33 directory.
34
35 Now a first idea to implement correctly the acpi tables loading would be:
36
37 Whether the path was hardcoded in the DSDT option or was automatically found, we extract the path part
38 of the DSDT file that has been successfully found and we run a loop to enumerate all other acpi
39 files in the same directory.
40 Now for each acpi file found, we should compare the name with an existing acpi table found in
41 the system that we would normally load and replace this usual injection by the content of the file.
42
43 Once DropDSDT=y is set, no other acpi table than dsdt is loaded, then it is the responsibility of the
44 user to provide any other acpi table.
45
46- Add a new module capable of writing proprietary Chameleon data to ioreg:
47 Using the DT__xxx() API, we will create a set of functions to write
48 to log info, chameleon boot info to be retrieved by helper applications...
49 the only public function for log info purpose of this module would be:
50 logMessageToIOREG(...); // var args printf style format
51 flushLogToIOREG(); // store a unique log info property to the ioreg
52
53 The preferred internal behavior of the log info ioreg buffer
54 would be to store the messages in a consolidated buffer then only write once,
55 this buffer (i.e just before call the kernel) with flushLogToIOREG();
56 The other public function for writing chameleon boot info data would be:
57
58 verbose() should incorporate a call to logMessageToIOREG()
59 to permit helper applications to extract
60 this log info (i.e: the chameleon system pref pane)
61
62- Add API for displaying and logging messages like:
63
64 void verbose(...)
65 {
66 ...
67 logMessageToIOREG("%s: %sn", title, s);
68
69 }
70
71 void display_and_log( const char* title, const char* msg)
72 {
73 printf("%s: %sn", title, s);
74 logMessageToIOREG(title,s);
75 }
76
77 void deprecated(const char * s)
78 {
79 display_and_log("WARNING: Deprecated option",s);
80 sleep(1);
81 }
82
83 void error_message(const char * s)
84 {
85 display_and_log("ERROR",s);
86 getc();
87 }
88

Archive Download this file

Revision: 2706