Index: branches/Chimera/released/TODO =================================================================== --- branches/Chimera/released/TODO (revision 1960) +++ branches/Chimera/released/TODO (revision 1961) @@ -1,87 +0,0 @@ -TODO List for Chameleon Boot Loader -==================================== -- Fix boot prompt parsing. - -- Bring code closer to coding_standards.txt. - -- Fix the module system when booting chameleon with multiboot. Cleanup the xcode 4 fix. - -- Integrate Prasys current work on options and quick shortcut modified version of 18seven - -- Add auto detection of efi string algorithm, so graphics enabler can be enabled by default while not - conflicting with other efi string overridden content - (original idea of Galaxy) - - - Case insensitive parsing for the bootConfig options: - should help the common/novice user to setup more easily. - - -==================================== - -DONE - -- Create a dummy module for any modules that are compiled in. This is needed for linking modules with - dependencies that are not compiled in. - -- Add a more sophisticated acpi loading mechanism to enable loading custom acpi tables when dsdtdrop=y - Here's a specification to think about: - First we must care about if a forced DSDT full path has been specified - (was what pb smith had in his first tries) and take it for the DSDT path as is. - Then we have the case where no DSDT path was set where we run our usual DSDT search algorithm to - find this file. - 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. - - Now a first idea to implement correctly the acpi tables loading would be: - - Whether the path was hardcoded in the DSDT option or was automatically found, we extract the path part - of the DSDT file that has been successfully found and we run a loop to enumerate all other acpi - files in the same directory. - Now for each acpi file found, we should compare the name with an existing acpi table found in - the system that we would normally load and replace this usual injection by the content of the file. - - Once DropDSDT=y is set, no other acpi table than dsdt is loaded, then it is the responsibility of the - user to provide any other acpi table. - -- Add a new module capable of writing proprietary Chameleon data to ioreg: - Using the DT__xxx() API, we will create a set of functions to write - to log info, chameleon boot info to be retrieved by helper applications... - the only public function for log info purpose of this module would be: - logMessageToIOREG(...); // var args printf style format - flushLogToIOREG(); // store a unique log info property to the ioreg - - The preferred internal behavior of the log info ioreg buffer - would be to store the messages in a consolidated buffer then only write once, - this buffer (i.e just before call the kernel) with flushLogToIOREG(); - The other public function for writing chameleon boot info data would be: - - verbose() should incorporate a call to logMessageToIOREG() - to permit helper applications to extract - this log info (i.e: the chameleon system pref pane) - -- Add API for displaying and logging messages like: - - void verbose(...) - { - ... - logMessageToIOREG("%s: %sn", title, s); - - } - - void display_and_log( const char* title, const char* msg) - { - printf("%s: %sn", title, s); - logMessageToIOREG(title,s); - } - - void deprecated(const char * s) - { - display_and_log("WARNING: Deprecated option",s); - sleep(1); - } - - void error_message(const char * s) - { - display_and_log("ERROR",s); - getc(); - } Index: branches/Chimera/TODO =================================================================== --- branches/Chimera/TODO (revision 0) +++ branches/Chimera/TODO (revision 1961) @@ -0,0 +1,87 @@ +TODO List for Chameleon Boot Loader +==================================== +- Fix boot prompt parsing. + +- Bring code closer to coding_standards.txt. + +- Fix the module system when booting chameleon with multiboot. Cleanup the xcode 4 fix. + +- Integrate Prasys current work on options and quick shortcut modified version of 18seven + +- Add auto detection of efi string algorithm, so graphics enabler can be enabled by default while not + conflicting with other efi string overridden content + (original idea of Galaxy) + + - Case insensitive parsing for the bootConfig options: + should help the common/novice user to setup more easily. + + +==================================== + +DONE + +- Create a dummy module for any modules that are compiled in. This is needed for linking modules with + dependencies that are not compiled in. + +- Add a more sophisticated acpi loading mechanism to enable loading custom acpi tables when dsdtdrop=y + Here's a specification to think about: + First we must care about if a forced DSDT full path has been specified + (was what pb smith had in his first tries) and take it for the DSDT path as is. + Then we have the case where no DSDT path was set where we run our usual DSDT search algorithm to + find this file. + 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. + + Now a first idea to implement correctly the acpi tables loading would be: + + Whether the path was hardcoded in the DSDT option or was automatically found, we extract the path part + of the DSDT file that has been successfully found and we run a loop to enumerate all other acpi + files in the same directory. + Now for each acpi file found, we should compare the name with an existing acpi table found in + the system that we would normally load and replace this usual injection by the content of the file. + + Once DropDSDT=y is set, no other acpi table than dsdt is loaded, then it is the responsibility of the + user to provide any other acpi table. + +- Add a new module capable of writing proprietary Chameleon data to ioreg: + Using the DT__xxx() API, we will create a set of functions to write + to log info, chameleon boot info to be retrieved by helper applications... + the only public function for log info purpose of this module would be: + logMessageToIOREG(...); // var args printf style format + flushLogToIOREG(); // store a unique log info property to the ioreg + + The preferred internal behavior of the log info ioreg buffer + would be to store the messages in a consolidated buffer then only write once, + this buffer (i.e just before call the kernel) with flushLogToIOREG(); + The other public function for writing chameleon boot info data would be: + + verbose() should incorporate a call to logMessageToIOREG() + to permit helper applications to extract + this log info (i.e: the chameleon system pref pane) + +- Add API for displaying and logging messages like: + + void verbose(...) + { + ... + logMessageToIOREG("%s: %sn", title, s); + + } + + void display_and_log( const char* title, const char* msg) + { + printf("%s: %sn", title, s); + logMessageToIOREG(title,s); + } + + void deprecated(const char * s) + { + display_and_log("WARNING: Deprecated option",s); + sleep(1); + } + + void error_message(const char * s) + { + display_and_log("ERROR",s); + getc(); + }