Root/
Source at commit 293 created 12 years 10 months ago. By ifabio, Update file and script for the latest chameleon trunk... no more boot0hfs | |
---|---|
1 | TODO List for Chameleon Boot Loader␊ |
2 | ====================================␊ |
3 | - Setup makefile to use module config for determining which modules to compile in and which to compile as modules␊ |
4 | - Fix the module system when booting chameleon with multiboot. Cleanup the xcode 4 fix.␊ |
5 | ␊ |
6 | - Integrate Prasys current work on options and quick shortcut modified version of 18seven␊ |
7 | ␊ |
8 | - Add auto detection of efistring algorithm to enable graphics enabler to be enabled by default while not␊ |
9 | conflicting with other efi string overriden content␊ |
10 | (original idea of Galaxy)␊ |
11 | ␊ |
12 | - Add a more sophisticated acpi loading mechanism to enable loading custom acpi tables when dsdtdrop=y␊ |
13 | Here's a specification to think about:␊ |
14 | First we must care about if a forced DSDT full path has been specified (was the pb smith had in␊ |
15 | his first tries) and take it for the DSDT path as is.␊ |
16 | Then we have the case where no DSDT path was set where we run our usual DSDT search algorithm to find this file.␊ |
17 | In the latter case, the file has to be named DSDT.aml and be in one of the / /Extra or bt(0,0)/Extra directory.␊ |
18 | ␊ |
19 | Now a first idea to implement correctly the acpi tables loading would be:␊ |
20 | ␊ |
21 | Whatever the path was hardcoded in the DSDT option or was automatically found, we extract the path part of ␊ |
22 | the DSDT file that has been successfully found and we run a loop to enumerate all other acpi files in the same directory.␊ |
23 | Now for each acpi file found, we should compare the name with an existing acpi table found in the system that␊ |
24 | we would normally load and replace this usual injection by the content of the file.␊ |
25 | ␊ |
26 | Once DropDSDT=y is set, no other acpi table than dsdt is loaded, then it is the responsibility of user␊ |
27 | to provide any other acpi table.␊ |
28 | ␊ |
29 | - Add a new module capable of writing proprietary Chameleon data to ioreg:␊ |
30 | Using the DT__xxx() API, we will create a set of functions to write␊ |
31 | to log info, chameleon boot info to be retrieved by helper applications...␊ |
32 | the only public function for log info purpose of this module would be:␊ |
33 | logMessageToIOREG(...); // var args printf style format␊ |
34 | flushLogToIOREG(); // store a unique log info property to the ioreg␊ |
35 | ␊ |
36 | The preferred internal behavior of the log info ioreg buffer␊ |
37 | would be to store the messages in a consolidated buffer then only write once,␊ |
38 | this buffer (i.e just before call the kernel) with flushLogToIOREG();␊ |
39 | The other public function for writing chameleon boot info data would be:␊ |
40 | ␊ |
41 | verbose() should incorporate a call to logMessageToIOREG() ␊ |
42 | to permit helper applications to extract␊ |
43 | this log info (i.e: the chameleon system pref pane)␊ |
44 | ␊ |
45 | - Add API for displaying and logging messages like:␊ |
46 | ␊ |
47 | void verbose(...)␊ |
48 | {␊ |
49 | ...␊ |
50 | logMessageToIOREG("%s: %sn", title, s);␊ |
51 | ␊ |
52 | }␊ |
53 | ␊ |
54 | void display_and_log( const char* title, const char* msg) ␊ |
55 | {␊ |
56 | printf("%s: %sn", title, s);␊ |
57 | logMessageToIOREG(title,s);␊ |
58 | }␊ |
59 | ␊ |
60 | void deprecated(const char * s)␊ |
61 | {␊ |
62 | display_and_log("WARNING: Deprecated option",s); ␊ |
63 | sleep(1); ␊ |
64 | }␊ |
65 | ␊ |
66 | void error_message(const char * s)␊ |
67 | {␊ |
68 | display_and_log("ERROR",s); ␊ |
69 | getc();␊ |
70 | }␊ |
71 | ␊ |
72 | - Case unsensitive parsing for the bootConfig options:␊ |
73 | should help the common/novice user to setup more easily.␊ |
74 |