Index: branches/slice/i386/libsaio/bootstruct.h =================================================================== --- branches/slice/i386/libsaio/bootstruct.h (revision 692) +++ branches/slice/i386/libsaio/bootstruct.h (revision 693) @@ -38,7 +38,11 @@ extern void *new_dsdt; #define VGA_TEXT_MODE 0 +//defined in /usr/../boot.h +//#define GRAPHICS_MODE 1 +//#define FB_TEXT_MODE 2 + /* * Maximum number of boot drivers that can be loaded. */ Index: branches/slice/i386/libsaio/pci.h =================================================================== --- branches/slice/i386/libsaio/pci.h (revision 692) +++ branches/slice/i386/libsaio/pci.h (revision 693) @@ -7,7 +7,55 @@ #ifndef __LIBSAIO_PCI_H #define __LIBSAIO_PCI_H +/* Option ROM header */ typedef struct { + uint16_t signature; // 0xAA55 + uint8_t rom_size; + uint32_t entry_point; + uint8_t reserved[15]; + uint16_t pci_header_offset; + uint16_t expansion_header_offset; +} option_rom_header_t; + +/* Option ROM PCI Data Structure */ +typedef struct { + uint32_t signature; // 0x52494350 'PCIR' + uint16_t vendor_id; + uint16_t device_id; + uint16_t vital_product_data_offset; + uint16_t structure_length; + uint8_t structure_revision; + uint8_t class_code[3]; + uint16_t image_length; + uint16_t image_revision; + uint8_t code_type; + uint8_t indicator; + uint16_t reserved; +} option_rom_pci_header_t; + +//----------------------------------------------------------------------------- +// added by iNDi + +typedef struct { + uint32_t signature; // 0x24506E50 '$PnP' + uint8_t revision; // 1 + uint8_t length; // + uint16_t offset; + uint8_t checksum; + uint32_t identifier; + uint16_t manufacturer; + uint16_t product; + uint8_t class[3]; + uint8_t indicators; + uint16_t boot_vector; + uint16_t disconnect_vector; + uint16_t bootstrap_vector; + uint16_t reserved; + uint16_t resource_vector; +} option_rom_pnp_header_t; + + +typedef struct { uint32_t :2; uint32_t reg :6; uint32_t func:3; Index: branches/slice/i386/libsaio/md5c.c =================================================================== --- branches/slice/i386/libsaio/md5c.c (revision 692) +++ branches/slice/i386/libsaio/md5c.c (revision 693) @@ -28,14 +28,8 @@ * edited for clarity and style only. */ -#include +#include "libsaio.h" -#ifdef KERNEL -#include -#else -#include -#endif - #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 # include #else @@ -43,57 +37,9 @@ #endif -#ifdef KERNEL -#define memset(x,y,z) bzero(x,z); -#define memcpy(x,y,z) bcopy(y, x, z) -#endif - -#if defined(__i386__) || defined(__alpha__) #define Encode memcpy #define Decode memcpy -#else /* __i386__ */ -/* - * Encodes input (u_int32_t) into output (unsigned char). Assumes len is - * a multiple of 4. - */ - -/* XXX not prototyped, and not compatible with memcpy(). */ -static void -Encode (output, input, len) - unsigned char *output; - u_int32_t *input; - unsigned int len; -{ - unsigned int i, j; - - for (i = 0, j = 0; j < len; i++, j += 4) { - output[j] = (unsigned char)(input[i] & 0xff); - output[j+1] = (unsigned char)((input[i] >> 8) & 0xff); - output[j+2] = (unsigned char)((input[i] >> 16) & 0xff); - output[j+3] = (unsigned char)((input[i] >> 24) & 0xff); - } -} - -/* - * Decodes input (unsigned char) into output (u_int32_t). Assumes len is - * a multiple of 4. - */ - -static void -Decode (output, input, len) - u_int32_t *output; - const unsigned char *input; - unsigned int len; -{ - unsigned int i, j; - - for (i = 0, j = 0; j < len; i++, j += 4) - output[i] = ((u_int32_t)input[j]) | (((u_int32_t)input[j+1]) << 8) | - (((u_int32_t)input[j+2]) << 16) | (((u_int32_t)input[j+3]) << 24); -} -#endif /* i386 */ - static unsigned char PADDING[64] = { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Index: branches/slice/i386/boot0/Makefile =================================================================== --- branches/slice/i386/boot0/Makefile (revision 692) +++ branches/slice/i386/boot0/Makefile (revision 693) @@ -2,7 +2,8 @@ DIR = boot0 include ../MakePaths.dir -NASM = /Developer/usr/bin/nasm +NASM = $(shell which nasm) +#/Developer/usr/bin/nasm INSTALLDIR = $(DSTROOT)/usr/standalone/i386 DIRS_NEEDED = $(SYMROOT) Index: branches/slice/i386/boot1/Makefile =================================================================== --- branches/slice/i386/boot1/Makefile (revision 692) +++ branches/slice/i386/boot1/Makefile (revision 693) @@ -5,7 +5,8 @@ INSTALLDIR = $(DSTROOT)/usr/standalone/i386 DIRS_NEEDED = $(OBJROOT) $(SYMROOT) -NASM = /Developer/usr/bin/nasm +NASM = $(shell which nasm) +#/Developer/usr/bin/nasm VERSIONED_FILES = boot1h Index: branches/slice/i386/boot2/graphics.c =================================================================== --- branches/slice/i386/boot2/graphics.c (revision 692) +++ branches/slice/i386/boot2/graphics.c (revision 693) @@ -540,6 +540,7 @@ } } } + void updateProgressBar(uint8_t * saveunder, int32_t firstBlob, int32_t select) { uint8_t * screen; @@ -722,10 +723,13 @@ if (gVerboseMode) { // Tell the kernel to use text mode on a linear frame buffer display bootArgs->Video.v_display = FB_TEXT_MODE; + //video_mode(2); } else { bootArgs->Video.v_display = GRAPHICS_MODE; + //video_mode(1); } } + else video_mode(1); } if ( (mode == VGA_TEXT_MODE) || (err != errSuccess) ) Index: branches/slice/i386/boot2/boot.c =================================================================== --- branches/slice/i386/boot2/boot.c (revision 692) +++ branches/slice/i386/boot2/boot.c (revision 693) @@ -75,6 +75,7 @@ void *gRootPCIDev; void *gPlatform; void *gSMBIOS; +int gDualLink; #ifndef OPTION_ROM bool gEnableCDROMRescan; bool gScanSingleDrive; @@ -108,9 +109,9 @@ * Default path to kernel cache file */ //Slice - first one for Leopard -#define kDefaultCachePath "/System/Library/Caches/com.apple.kernelcaches/kernelcache" -#define kDefaultCachePathSnow "/System/Library/Caches/com.apple.kext.caches/Startup/kernelcache" -#define kDefaultCachePathTiger "/System/Library/Extensions.kextcache" +#define kDefaultCachePath "/System/Library/Caches/com.apple.kernelcaches/" +#define kDefaultCachePathSnow "/System/Library/Caches/com.apple.kext.caches/Startup/" +//#define kDefaultCachePathTiger "/System/Library/Extensions.kextcache" //file://localhost/System/Library/Extensions.kextcache @@ -209,7 +210,7 @@ setVideoMode( GRAPHICS_MODE, 0 ); // Draw gray screen. NOTE: no boot image, that's in the gui module #ifndef OPTION_ROM - if(!gVerboseMode) drawColorRectangle(0, 0, DEFAULT_SCREEN_WIDTH, DEFAULT_SCREEN_HEIGHT, 0x01); + if(!gVerboseMode) drawColorRectangle(0, 0, DEFAULT_SCREEN_WIDTH, DEFAULT_SCREEN_HEIGHT, 0x01); //Slice -??? #endif } @@ -283,42 +284,27 @@ // Setup VGA text mode. // Not sure if it is safe to call setVideoMode() before the // config table has been loaded. Call video_mode() instead. -#if DEBUG - printf("before video_mode\n"); -#endif video_mode( 2 ); // 80x25 mono text mode. -#if DEBUG - printf("after video_mode\n"); -#endif // Scan and record the system's hardware information. scan_platform(); - + // First get info for boot volume. scanBootVolumes(gBIOSDev, 0); bvChain = getBVChainForBIOSDev(gBIOSDev); - -#if 0 - BVRef next; /* list linkage pointer */ - int biosdev; /* BIOS device number */ - int type; /* device type (floppy, hd, network) */ - unsigned int flags; /* attribute flags */ - BVGetDescription description; /* BVGetDescription function */ - int part_no; /* partition number (1 based) */ -#endif + #if DEBUG - verbose("get bvChain dev=%02x type=%02x part_no=%d\n", bvChain->biosdev, bvChain->type, bvChain->part_no); //dev=0x80 - flash-stick + printf("get bvChain dev=%02x type=%02x part_no=%d\n", bvChain->biosdev, bvChain->type, bvChain->part_no); //dev=0x80 - flash-stick + getc(); #endif setBootGlobals(bvChain); // Load boot.plist config file status = loadSystemConfig(&bootInfo->bootConfig); - if (getBoolForKey(kQuietBootKey, &quiet, &bootInfo->bootConfig) && quiet) { gBootMode |= kBootModeQuiet; } - // Override firstRun to get to the boot menu instantly by setting "Instant Menu"=y in system config if (getBoolForKey(kInsantMenuKey, &instantMenu, &bootInfo->bootConfig) && instantMenu) { firstRun = false; @@ -346,7 +332,7 @@ gBootVolume = selectBootVolume(bvChain); #if DEBUG - verbose("separated bvChain dev=%02x type=%02x part_no=%d\n", bvChain->biosdev, bvChain->type, bvChain->part_no); //dev=0x81 - HDD + printf("separated bvChain dev=%02x type=%02x part_no=%d\n", bvChain->biosdev, bvChain->type, bvChain->part_no); //dev=0x81 - HDD pause(); #endif @@ -354,7 +340,7 @@ if(init_module_system()) { #if DEBUG - verbose("begin load_all_modules\n"); + printf("begin load_all_modules\n"); pause(); #endif @@ -363,7 +349,7 @@ execute_hook("ModulesLoaded", NULL, NULL, NULL, NULL); #if DEBUG - verbose("ModulesLoaded\n"); + printf("ModulesLoaded\n"); pause(); #endif @@ -388,16 +374,9 @@ #endif #if DEBUG - verbose("After rescan\n"); - pause(); -#endif - - - -#if DEBUG - verbose(" Default: %x, ->biosdev: %x, ->part_no: %d ->flags: %x\n", gBootVolume, gBootVolume->biosdev, gBootVolume->part_no, gBootVolume->flags); - verbose(" bt(0,0): %x, ->biosdev: %x, ->part_no: %d ->flags: %x\n", gBIOSBootVolume, gBIOSBootVolume->biosdev, gBIOSBootVolume->part_no, gBIOSBootVolume->flags); - // getc(); + printf(" Default: %x, ->biosdev: %x, ->part_no: %d ->flags: %x\n", gBootVolume, gBootVolume->biosdev, gBootVolume->part_no, gBootVolume->flags); + printf(" bt(0,0): %x, ->biosdev: %x, ->part_no: %d ->flags: %x\n", gBIOSBootVolume, gBIOSBootVolume->biosdev, gBIOSBootVolume->part_no, gBIOSBootVolume->flags); + getc(); /* Results Rescan found 1 HDD and bvCount=4 bvr: 836bc10, dev: 80, part: 4, flags: 4a, vis: 1 @@ -470,21 +449,6 @@ } - - // Other status (e.g. 0) means that we should proceed with boot. -/* - // Turn off any GUI elements - if( bootArgs->Video.v_display == GRAPHICS_MODE ) - { - gui.devicelist.draw = false; - gui.bootprompt.draw = false; - gui.menu.draw = false; - gui.infobox.draw = false; - gui.logo.draw = false; - drawBackground(); - updateVRAM(); - } -*/ // Find out which version mac os we're booting. getOSVersion(gMacOSVersion); @@ -556,21 +520,39 @@ if (getValueForKey(kKernelCacheKey, &val, &len, &bootInfo->bootConfig) == true) { strlcpy(gBootKernelCacheFile, val, len+1); } else { - if(gMacOSVersion[3] == '6') - sprintf(gBootKernelCacheFile, "%s_%s.%08lX", kDefaultCachePathSnow, (archCpuType == CPU_TYPE_I386) ? "i386" : "x86_64", adler32); + if(gMacOSVersion[3] == '6') { + sprintf(gBootKernelCacheFile, "%skernelcache_%s", kDefaultCachePathSnow, (archCpuType == CPU_TYPE_I386) ? "i386" : "x86_64"); //, adler32); + //Slice - TODO + /* + - but the name is longer .adler32 and more... + kernelcache_i386.E102928C.qSs0 + so will opendir and scan for some file + + char* name; + long flagsC; + long timeC; + struct dirstuff* cacheDir = opendir(kDefaultCachePathSnow); + while(readdir(cacheDir, (const char**)&name, &flagsC, &timeC) >= 0) + { + if(strcmp(&name[0], gBootKernelCacheFile) == 0) //? + { + //char* tmp = malloc(strlen(name) + 1); + //strcpy(tmp, name); + } + } + */ + } else //if(gMacOSVersion[3] == '5') - sprintf(gBootKernelCacheFile, "%s", kDefaultCachePath); -// else -// sprintf(gBootKernelCacheFile, "%s", kDefaultCachePathTiger); + sprintf(gBootKernelCacheFile, "%skernelcache", kDefaultCachePath); } - msglog("Try cache %s\n", gBootKernelCacheFile); // Check for cache file. trycache = (((gBootMode & kBootModeSafe) == 0) && !gOverrideKernel && (gBootFileType == kBlockDeviceType) && (gMKextName[0] == '\0') && - (gBootKernelCacheFile[0] != '\0') && - (gMacOSVersion[3] != '4')); + (gBootKernelCacheFile[0] != '\0')); // && +// (gMacOSVersion[3] != '4')); + verbose("Try cache %s %s\n", gBootKernelCacheFile, trycache?"YES":"NO"); verbose("Loading Darwin %s\n", gMacOSVersion); @@ -586,6 +568,7 @@ if ((ret != 0) || ((flags & kFileTypeMask) != kFileTypeFlat) || (cachetime < kerneltime)) { trycache = 0; + verbose("Try cache failed\n"); break; } ret = GetFileInfo("/System/Library/", "Extensions", &flags, &exttime); Index: branches/slice/i386/boot2/graphics.h =================================================================== --- branches/slice/i386/boot2/graphics.h (revision 692) +++ branches/slice/i386/boot2/graphics.h (revision 693) @@ -17,7 +17,7 @@ #define DEFAULT_SCREEN_WIDTH 1024 #define DEFAULT_SCREEN_HEIGHT 768 - +extern int gDualLink;; unsigned long lookUpCLUTIndex( unsigned char index, unsigned char depth ); void drawColorRectangle( unsigned short x, unsigned short y, unsigned short width, unsigned short height, unsigned char colorIndex ); @@ -36,7 +36,7 @@ char *getVBEInfoString(); char *getVBEModeInfoString(); -void getGraphicModeParams(unsigned long params[]); +unsigned short getGraphicModeParams(unsigned long params[]); int setVESAGraphicsMode( unsigned short width, unsigned short height, unsigned char bitsPerPixel, unsigned short refreshRate ); Index: branches/slice/i386/boot2/modules.c =================================================================== --- branches/slice/i386/boot2/modules.c (revision 692) +++ branches/slice/i386/boot2/modules.c (revision 693) @@ -14,9 +14,9 @@ #endif #if DEBUG_MODULES -#define DBG(x...) verbose(x); //getc() +#define DBG(x...) verbose(x) //;getc() #else -#define DBG(x...) +#define DBG(x...) //msglog(x) #endif // NOTE: Global so that modules can link with this @@ -38,12 +38,12 @@ #if DEBUG_MODULES void print_hook_list() { - msglog("---Hook Table---\n"); + DBG("---Hook Table---\n"); moduleHook_t* hooks = moduleCallbacks; while(hooks) { - msglog("Hook: %s\n", hooks->name); + DBG("Hook: %s\n", hooks->name); hooks = hooks->next; } } @@ -162,7 +162,7 @@ fh = open(modString, 0); if(fh < 0) { - verbose("Unable to locate module %s\n", modString); + DBG("Unable to locate module %s\n", modString); getc(); return 0; } @@ -182,7 +182,7 @@ // Notify the system that it was laoded module_loaded(module/*moduleName, moduleVersion, moduleCompat*/); (*module_start)(); // Start the module - verbose("Module %s Loaded.\n", module); + DBG("Module %s Loaded.\n", module); } else { // The module does not have a valid start function @@ -840,7 +840,7 @@ case BIND_OPCODE_SET_DYLIB_SPECIAL_IMM: // NOTE: this is wrong, fortunately we don't use it - libraryOrdinal = -immediate; + libraryOrdinal = immediate ? (SInt8)(BIND_OPCODE_MASK | immediate) : immediate; //DBG("BIND_OPCODE_SET_DYLIB_SPECIAL_IMM: %d\n", libraryOrdinal); break; @@ -935,7 +935,7 @@ } else //if(strcmp(symbolName, SYMBOL_DYLD_STUB_BINDER) != 0) { - verbose("Unable to bind symbol %s\n", symbolName); + verbose("Unable to bind symbol %s, libraryOrdinal = %d, symboFlags = %d, type = %d\n", symbolName, libraryOrdinal, symboFlags, type); getc(); } @@ -1030,9 +1030,9 @@ segmentAddress += tmp2 + sizeof(void*); } } - else //if(strcmp(symbolName, SYMBOL_DYLD_STUB_BINDER) != 0) + else { - verbose("Unable to bind symbol %s\n", symbolName); + printf("Unable to bind symbol %s\n", symbolName); getc(); } @@ -1198,11 +1198,8 @@ } #if DEBUG_MODULES -// if(strcmp(name, SYMBOL_DYLD_STUB_BINDER) != 0) -// { verbose("Unable to locate symbol %s\n", name); getc(); -// } #endif return 0xFFFFFFFF; } @@ -1305,40 +1302,4 @@ { // TODO: actualy impliment this function (asm) stop("ERROR: dyld_stub_binder was called, should have been take care of by the linker.\n"); -} - -/* Nedded to divide 64bit numbers correctly. TODO: look into why modules need this - * And why it isn't needed when compiled into boot2 - */ - -uint64_t __udivdi3(uint64_t numerator, uint64_t denominator) -{ - uint64_t quotient = 0, qbit = 1; - - if (denominator) - { - while ((int64_t) denominator >= 0) - { - denominator <<= 1; - qbit <<= 1; - } - - while (denominator) - { - if (denominator <= numerator) - { - numerator -= denominator; - quotient += qbit; - } - denominator >>= 1; - qbit >>= 1; - } - - return quotient; - } - else { - stop("Divide by 0"); - return 0; - } - -} +} \ No newline at end of file Index: branches/slice/i386/boot2/Makefile =================================================================== --- branches/slice/i386/boot2/Makefile (revision 692) +++ branches/slice/i386/boot2/Makefile (revision 693) @@ -83,6 +83,17 @@ -Wl,-sectcreate,__DATA,__Symbols,$(SYMROOT)/Symbols.dylib \ -o $(SYMROOT)/boot_embeded.sys $(filter %.o,$^) $(LIBS) -lcc_kext +# @ld -arch i386 \ +# -undefined dynamic_lookup \ +# -dylib -read_only_relocs suppress \ +# -S -x -Z -dead_strip_dylibs \ +# -no_uuid \ +# -final_output Symbols.dylib \ +# $(filter %.o,$^) $(LIBS) \ +# -o $(OBJROOT)/Symbols_LINKER_ONLY.dylib + + + @make embed_symbols # this is done in a sub process after boot.sys exists so the strings are populated correctly @##${RM} $(SYMROOT)/${SYMBOLS_MODULE} Index: branches/slice/i386/modules/NVRAM/NVRAM.c =================================================================== --- branches/slice/i386/modules/NVRAM/NVRAM.c (revision 692) +++ branches/slice/i386/modules/NVRAM/NVRAM.c (revision 693) @@ -13,7 +13,7 @@ #include "smbios_patcher.h" #ifndef DEBUG_NVRAM -#define DEBUG_NVRAM 1 +#define DEBUG_NVRAM 0 #endif #if DEBUG_NVRAM @@ -85,7 +85,7 @@ // return; - msglog("NVRAM started with ModulesLoaded\n"); + DBG("NVRAM started with ModulesLoaded\n"); //Slice create /options node -> /fakenvram // I need to use fakenvram until I know what is happen @@ -156,11 +156,11 @@ "Guid" -> "2B0585EB-D8B8-49A9-8B8C-E21B01AEF2B7" */ - //end Slice + // int i,j; for (i=0; i<32; i++) { + DBG("NVRAM get a name %s\n", var[i].Name); if (var[i].Name[0]) { - msglog("NVRAM get a name %s\n", var[i].Name); if (isdigit(var[i].Name[0])) { msglog(" ...it is digit...\n"); continue; @@ -168,8 +168,8 @@ j=0; while (var[i].Value[j++]); DT__AddProperty(optionsNode, var[i].Name, j,&var[i].Value); -#if DEBUG_NVRAM - msglog("NVRAM add name=%s value=%s length=%d\n", var[i].Name, var[i].Value, j); +#if 1 //DEBUG_NVRAM + DBG("NVRAM add name=%s value=%s length=%d\n", var[i].Name, var[i].Value, j); #endif } else { return; @@ -183,30 +183,30 @@ { int fd, fsize; char* nvr = 0; - msglog("Start NVRAM reading\n"); + DBG("Start NVRAM reading\n"); if ((fd = open(NVRAM_INF, 0)) < 0) { - msglog("[ERROR] open NVRAM failed\n"); + DBG("[ERROR] open NVRAM failed\n"); return -1; } fsize = file_size(fd); if (!fsize) { - msglog(" zero NVRAM file\n"); + DBG(" zero NVRAM file\n"); close (fd); return -1; } if ((nvr = malloc(fsize)) == NULL) { - verbose("[ERROR] alloc NVRAM memory failed\n"); + DBG("[ERROR] alloc NVRAM memory failed\n"); close (fd); return -1; } if (read (fd, nvr, fsize) != fsize) { - verbose("[ERROR] read %s failed\n", NVRAM_INF); + DBG("[ERROR] read %s failed\n", NVRAM_INF); close (fd); return -1; } close (fd); if ((var = malloc(fsize)) == NULL) { - verbose("[ERROR] alloc VAR memory failed\n"); + DBG("[ERROR] alloc VAR memory failed\n"); return -1; } int i = 0; Index: branches/slice/i386/modules/klibc/strxspn.c =================================================================== --- branches/slice/i386/modules/klibc/strxspn.c (revision 692) +++ branches/slice/i386/modules/klibc/strxspn.c (revision 693) @@ -2,9 +2,6 @@ * strpbrk */ -#include -#include -#include #include #include "strxspn.h" Index: branches/slice/i386/modules/klibc/strxspn.h =================================================================== --- branches/slice/i386/modules/klibc/strxspn.h (revision 692) +++ branches/slice/i386/modules/klibc/strxspn.h (revision 693) @@ -6,6 +6,7 @@ #define STRXSPN_H #include +#include extern size_t __strxspn(const char *s, const char *map, int parity); Index: branches/slice/i386/modules/GUI/gui.c =================================================================== --- branches/slice/i386/modules/GUI/gui.c (revision 692) +++ branches/slice/i386/modules/GUI/gui.c (revision 693) @@ -159,6 +159,7 @@ { .text = "Boot" }, { .text = "Boot Verbose" }, { .text = "Boot Ignore Caches" }, +// { .text = "Boot Safe Mode" }, { .text = "Boot Single User" }, { .text = "Memory Info" }, { .text = "Video Info" }, @@ -713,10 +714,11 @@ if(is_module_loaded("Resolution.dylib")) { getResolution(&screen_params[0], &screen_params[1], &screen_params[2]); + gDualLink =((screen_params[0] * screen_params[1]) > (1<<20))?1:0; msglog("GUI module screen width=%d height=%d\n",(int)screen_params[0], (int)screen_params[1]); } - if (((int)screen_params[0]<800) || ((int)screen_params[1]<600)) - { +// if (((int)screen_params[0]<800) || ((int)screen_params[1]<600)) +// { if (getIntForKey("screen_width", &val, &bootInfo->themeConfig) && val > 0) { screen_params[0] = val; @@ -726,20 +728,26 @@ screen_params[1] = val; } msglog("GUI theme screen width=%d height=%d\n",screen_params[0], screen_params[1]); - } +// } if (((int)screen_params[0]<800) || ((int)screen_params[1]<600)) { screen_params[0] = DEFAULT_SCREEN_WIDTH; screen_params[1] = DEFAULT_SCREEN_HEIGHT; msglog("GUI default screen width=%d height=%d\n",screen_params[0], screen_params[1]); } - - +/* if (((int)screen_params[0]>1280) || ((int)screen_params[1]>1024)) + { + screen_params[0] = 1280; + screen_params[1] = 1024; + verbose("GUI MAX VESA screen width=%d height=%d\n",screen_params[0], screen_params[1]); + }*/ + screen_params[2] = 32; // Initalizing GUI structure. bzero(&gui, sizeof(gui_t)); // find best matching vesa mode for our requested width & height - getGraphicModeParams(screen_params); + int modeV = getGraphicModeParams(screen_params); + verbose("GUI: set mode %d: %dx%dx%d\n", modeV, screen_params[0], screen_params[1], screen_params[2]); // set our screen structure with the mode width & height gui.screen.width = screen_params[0]; Index: branches/slice/i386/modules/GUI/GUI_module.c =================================================================== --- branches/slice/i386/modules/GUI/GUI_module.c (revision 692) +++ branches/slice/i386/modules/GUI/GUI_module.c (revision 693) @@ -74,7 +74,7 @@ } else { - setVideoMode( GRAPHICS_MODE, 0 ); + setVideoMode( GRAPHICS_MODE, 0 ); //Slice - Why GRAPHICS_MODE if gVerboseMode? } } Index: branches/slice/i386/modules/GUI/graphic_utils.c =================================================================== --- branches/slice/i386/modules/GUI/graphic_utils.c (revision 692) +++ branches/slice/i386/modules/GUI/graphic_utils.c (revision 693) @@ -304,7 +304,7 @@ -void getGraphicModeParams(unsigned long params[]) { +unsigned short getGraphicModeParams(unsigned long params[]) { params[3] = 0; @@ -326,6 +326,7 @@ params[0] = minfo.XResolution; params[1] = minfo.YResolution; params[2] = 32; + return mode; } Index: branches/slice/i386/modules/MakeInc.dir =================================================================== --- branches/slice/i386/modules/MakeInc.dir (revision 692) +++ branches/slice/i386/modules/MakeInc.dir (revision 693) @@ -42,6 +42,8 @@ -weak_library $(SYMROOT)/*.dylib \ -o $(SYMROOT)/$(MODULE_NAME).dylib +# @cp -rf include/* ../module_includes/ &> /dev/null || true + @if [ -f "$(SYMROOT)/../uClibc++.dylib" ]; then if [ x"$(shell nm $(OBJROOT)/*.o 2>/dev/null | grep " __Z")" == x"" ]; then mv $(SYMROOT)/../uClibc++.dylib $(SYMROOT)/uClibc++.dylib; fi; fi; else Index: branches/slice/i386/modules/GraphicsEnabler/gma.c =================================================================== --- branches/slice/i386/modules/GraphicsEnabler/gma.c (revision 692) +++ branches/slice/i386/modules/GraphicsEnabler/gma.c (revision 693) @@ -7,6 +7,7 @@ #include "platform.h" #include "device_inject.h" #include "gma.h" +#include "graphics.h" #ifndef DEBUG_GMA #define DEBUG_GMA 0 @@ -17,29 +18,31 @@ #else #define DBG(x...) #endif - -uint8_t GMAX3100_vals[22][4] = { - { 0x01,0x00,0x00,0x00 }, - { 0x01,0x00,0x00,0x00 }, - { 0x01,0x00,0x00,0x00 }, - { 0x00,0x00,0x00,0x08 }, - { 0x64,0x00,0x00,0x00 }, - { 0x00,0x00,0x00,0x08 }, - { 0x01,0x00,0x00,0x00 }, - { 0x20,0x00,0x00,0x00 }, - { 0x00,0x00,0x00,0x00 }, - { 0x01,0x00,0x00,0x00 }, - { 0x20,0x03,0x00,0x00 }, - { 0x00,0x00,0x00,0x00 }, - { 0x00,0x00,0x00,0x00 }, - { 0x00,0x00,0x00,0x00 }, - { 0x08,0x52,0x00,0x00 }, - { 0x00,0x00,0x00,0x00 }, - { 0x00,0x00,0x00,0x00 }, - { 0x01,0x00,0x00,0x00 }, - { 0x01,0x00,0x00,0x00 }, - { 0x3B,0x00,0x00,0x00 }, - { 0x00,0x00,0x00,0x00 } +//Slice - correct all values, still not sure +uint8_t GMAX3100_vals[23][4] = { + { 0x01,0x00,0x00,0x00 }, //0 "AAPL,HasPanel" + { 0x01,0x00,0x00,0x00 }, //1 "AAPL,SelfRefreshSupported" + { 0x01,0x00,0x00,0x00 }, //2 "AAPL,aux-power-connected" + { 0x01,0x00,0x00,0x08 }, //3 "AAPL,backlight-control" + { 0x00,0x00,0x00,0x00 }, //4 "AAPL00,blackscreen-preferences" + { 0x56,0x00,0x00,0x08 }, //5 "AAPL01,BacklightIntensity" + { 0x00,0x00,0x00,0x00 }, //6 "AAPL01,blackscreen-preferences" + { 0x01,0x00,0x00,0x00 }, //7 "AAPL01,DataJustify" + { 0x20,0x00,0x00,0x00 }, //8 "AAPL01,Depth" + { 0x01,0x00,0x00,0x00 }, //9 "AAPL01,Dither" + { 0x20,0x03,0x00,0x00 }, //10 "AAPL01,Height" + { 0x00,0x00,0x00,0x00 }, //11 "AAPL01,Interlace" + { 0x00,0x00,0x00,0x00 }, //12 "AAPL01,Inverter" + { 0x08,0x52,0x00,0x00 }, //13 "AAPL01,InverterCurrent" + { 0x00,0x00,0x00,0x00 }, //14 "AAPL01,LinkFormat" + { 0x00,0x00,0x00,0x00 }, //15 "AAPL01,LinkType" + { 0x01,0x00,0x00,0x00 }, //16 "AAPL01,Pipe" + { 0x01,0x00,0x00,0x00 }, //17 "AAPL01,PixelFormat" + { 0x01,0x00,0x00,0x00 }, //18 "AAPL01,Refresh" + { 0x3B,0x00,0x00,0x00 }, //19 "AAPL01,Stretch" + { 0xc8,0x95,0x00,0x00 }, //20 "AAPL01,InverterFrequency" + { 0x6B,0x10,0x00,0x00 }, //21 "subsystem-vendor-id" + { 0xA2,0x00,0x00,0x00 } //22 "subsystem-id" }; uint8_t reg_TRUE[] = { 0x01 ,0x00 ,0x00 ,0x00 }; uint8_t reg_FALSE[] = { 0x00,0x00,0x00,0x00 }; @@ -124,6 +127,7 @@ } else if (model == (char *)"GMAX3100") { + BuiltIn = gDualLink; devprop_add_value(device, "AAPL,HasPanel",GMAX3100_vals[0], 4); devprop_add_value(device, "AAPL,SelfRefreshSupported",GMAX3100_vals[1], 4); devprop_add_value(device, "AAPL,aux-power-connected",GMAX3100_vals[2], 4); @@ -134,25 +138,28 @@ devprop_add_value(device, "AAPL01,DataJustify",GMAX3100_vals[7], 4); devprop_add_value(device, "AAPL01,Depth",GMAX3100_vals[8], 4); devprop_add_value(device, "AAPL01,Dither",GMAX3100_vals[9], 4); - devprop_add_value(device, "AAPL01,DualLink",GMAX3100_vals[10], 4); - devprop_add_value(device, "AAPL01,Height",GMAX3100_vals[11], 4); - devprop_add_value(device, "AAPL01,Interlace",GMAX3100_vals[12], 4); - devprop_add_value(device, "AAPL01,Inverter",GMAX3100_vals[13], 4); - devprop_add_value(device, "AAPL01,InverterCurrent",GMAX3100_vals[14], 4); - devprop_add_value(device, "AAPL01,InverterCurrency",GMAX3100_vals[15], 4); - devprop_add_value(device, "AAPL01,LinkFormat",GMAX3100_vals[16], 4); - devprop_add_value(device, "AAPL01,LinkType",GMAX3100_vals[17], 4); - devprop_add_value(device, "AAPL01,Pipe",GMAX3100_vals[18], 4); - devprop_add_value(device, "AAPL01,PixelFormat",GMAX3100_vals[19], 4); - devprop_add_value(device, "AAPL01,Refresh",GMAX3100_vals[20], 4); - devprop_add_value(device, "AAPL01,Stretch",GMAX3100_vals[21], 4); + devprop_add_value(device, "AAPL01,DualLink", &BuiltIn, 1); //GMAX3100_vals[10] + devprop_add_value(device, "AAPL01,Height",GMAX3100_vals[10], 4); + devprop_add_value(device, "AAPL01,Interlace",GMAX3100_vals[11], 4); + devprop_add_value(device, "AAPL01,Inverter",GMAX3100_vals[12], 4); + devprop_add_value(device, "AAPL01,InverterCurrent",GMAX3100_vals[13], 4); +// devprop_add_value(device, "AAPL01,InverterCurrency",GMAX3100_vals[15], 4); + devprop_add_value(device, "AAPL01,LinkFormat",GMAX3100_vals[14], 4); + devprop_add_value(device, "AAPL01,LinkType",GMAX3100_vals[15], 4); + devprop_add_value(device, "AAPL01,Pipe",GMAX3100_vals[16], 4); + devprop_add_value(device, "AAPL01,PixelFormat",GMAX3100_vals[17], 4); + devprop_add_value(device, "AAPL01,Refresh",GMAX3100_vals[18], 4); + devprop_add_value(device, "AAPL01,Stretch",GMAX3100_vals[19], 4); + devprop_add_value(device, "AAPL01,InverterFrequency",GMAX3100_vals[20], 4); devprop_add_value(device, "class-code", ClassFix, 4); + devprop_add_value(device, "subsystem-vendor-id", GMAX3100_vals[21], 4); + devprop_add_value(device, "subsystem-id", GMAX3100_vals[22], 4); } - + stringdata = malloc(sizeof(uint8_t) * string->length); if(!stringdata) { - verbose("no stringdata press a key...\n"); + verbose("no GMA stringdata press a key...\n"); getc(); return false; } Index: branches/slice/i386/modules/GraphicsEnabler/ati.c =================================================================== --- branches/slice/i386/modules/GraphicsEnabler/ati.c (revision 692) +++ branches/slice/i386/modules/GraphicsEnabler/ati.c (revision 693) @@ -73,12 +73,12 @@ const char *ati_efi_version[] = { "ATY,EFIVersion", "01.00.318" }; const char *ati_efi_versionB[] = { "ATY,EFIVersionB", "113-SBSJ1G04-00R-02" }; const char *ati_efi_versionE[] = { "ATY,EFIVersionE", "113-B7710A-318" }; -struct ati_data_key ati_mclk = { 0x04, "ATY,MCLK", {0x70, 0x2e, 0x11, 0x00} }; +struct ati_data_key ati_mclk = { 0x04, "ATY,MCLK", {0x70, 0x2e, 0x11, 0x00} }; //"ATY,MCLK" = 0x186a0 struct ati_data_key ati_mem_rev_id = { 0x02, "ATY,MemRevisionID", {0x03, 0x00} }; struct ati_data_key ati_mem_vend_id = { 0x02, "ATY,MemVendorID", {0x02, 0x00} }; const char *ati_mrt[] = { "ATY,MRT", " " }; const char *ati_romno[] = { "ATY,Rom#", "113-B7710C-176" }; -struct ati_data_key ati_sclk = { 0x04, "ATY,SCLK", {0x28, 0xdb, 0x0b, 0x00} }; +struct ati_data_key ati_sclk = { 0x04, "ATY,SCLK", {0x28, 0xdb, 0x0b, 0x00} }; //"ATY,SCLK" = 0x11b33 struct ati_data_key ati_vendor_id = { 0x02, "ATY,VendorID", {0x02, 0x10} }; struct ati_data_key ati_platform_info = { 0x80, "ATY,PlatformInfo", {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }; struct ati_data_key ati_mvad = { 0x40, "MVAD", {0x3f, 0x5c, 0x82, 0x02, 0xff, 0x90, 0x00, 0x54, 0x60, 0x00, 0xac, 0x10, 0xa0, 0x17, 0x00, 0x03, 0xb0, 0x68, 0x00, 0x0a, 0xa0, 0x0a, 0x30, 0x00, 0x20, 0x00, 0x40, 0x06, 0x6e, 0x06, 0x03, 0x00, 0x06, 0x00, 0x40, 0x06, 0x00, 0x0a, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x10, 0x06, 0x92, 0x20, 0x00, 0x03} }; @@ -91,8 +91,8 @@ struct ati_data_key ati_fb_offset_n4 = { 0x08, "ATY,FrameBufferOffset", {0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00} }; struct ati_data_key ati_hwgpio_n4 = { 0x04, "ATY,HWGPIO", {0x23, 0xa8, 0x48, 0x00} }; struct ati_data_key ati_iospace_offset_n4 = { 0x08, "ATY,IOSpaceOffset", {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00} }; -struct ati_data_key ati_mclk_n4 = { 0x04, "ATY,MCLK", {0x00, 0x35, 0x0c, 0x00} }; -struct ati_data_key ati_sclk_n4 = { 0x04, "ATY,SCLK", {0x60, 0xae, 0x0a, 0x00} }; +struct ati_data_key ati_mclk_n4 = { 0x04, "ATY,MCLK", {0x00, 0x35, 0x0c, 0x00} }; //"ATY,MCLK" = 0x186a0 +struct ati_data_key ati_sclk_n4 = { 0x04, "ATY,SCLK", {0x60, 0xae, 0x0a, 0x00} }; //"ATY,SCLK" = 0x11b33 (HD5850) struct ati_data_key ati_refclk_n4 = { 0x04, "ATY,RefCLK", {0x8c, 0x0a, 0x00, 0x00} }; struct ati_data_key ati_regspace_offset_n4 = { 0x08, "ATY,RegisterSpaceOffset", {0x00, 0x00, 0x00, 0x00, 0x90, 0xa2, 0x00, 0x00} }; struct ati_data_key ati_vram_memsize_0 = { 0x08, "@0,VRAM,memsize", {0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00} }; @@ -678,7 +678,7 @@ } model = get_ati_model((ati_dev->vendor_id << 16) | ati_dev->device_id); - framebuffer = getStringForKey(kAtiConfig, &bootInfo->bootConfig); + framebuffer = (char*)getStringForKey(kAtiConfig, &bootInfo->bootConfig); if (!framebuffer) { framebuffer = get_ati_fb((ati_dev->vendor_id << 16) | ati_dev->device_id); } Index: branches/slice/i386/modules/USBFix/usb.c =================================================================== --- branches/slice/i386/modules/USBFix/usb.c (revision 692) +++ branches/slice/i386/modules/USBFix/usb.c (revision 693) @@ -330,7 +330,7 @@ base = pci_config_read32(pci_dev->dev.addr, 0x20); port_base = (base >> 5) & 0x07ff; - msglog("UHCI controller [%04x:%04x] at %02x:%2x.%x base %x(%x)\n", + msglog("UHCI controller [%04x:%04x] at %02x:%2x.%x base %x(%x) reset\n", pci_dev->vendor_id, pci_dev->device_id, pci_dev->dev.bits.bus, pci_dev->dev.bits.dev, pci_dev->dev.bits.func, port_base, base); Index: branches/slice/i386/modules/Resolution/915resolution.c =================================================================== --- branches/slice/i386/modules/Resolution/915resolution.c (revision 692) +++ branches/slice/i386/modules/Resolution/915resolution.c (revision 693) @@ -21,8 +21,8 @@ UInt32 x = 0, y = 0, bp = 0; getResolution(&x, &y, &bp); + verbose("getResolution: %dx%dx%d\n", (int)x, (int)y, (int)bp); - if (x != 0 && y != 0 && bp != 0) @@ -30,6 +30,7 @@ vbios_map * map; map = open_vbios(CT_UNKWN); + // verbose("open_vbios\n"); if(map) { unlock_vbios(map); @@ -319,7 +320,7 @@ int i = 0; while (i < 512) - { // we don't need to look through the whole bios, just the firs 512 bytes + { // we don't need to look through the whole bios, just the first 512 bytes if (( map->bios_ptr[i] == 'N') && (map->bios_ptr[i+1] == 'V') && (map->bios_ptr[i+2] == 'I') @@ -381,6 +382,28 @@ close_vbios(map); return 0; }*/ + //Slice - Intel = 49 6E 74 65 6C located @ 0xBE6 + /* + PCIptr @0x18 = 0x0040 + version @0x20 = 0x0AE0 + */ + int i = 0; + while (i < 4096) + { // we don't need to look through the whole bios, just the first 0x1000 bytes + if (( map->bios_ptr[i] == 0x49) + && (map->bios_ptr[i+1] == 0x6E) + && (map->bios_ptr[i+2] == 0x74) + && (map->bios_ptr[i+3] == 0x65) + && (map->bios_ptr[i+4] == 0x6C)) + { + verbose( "Intel VideoBIOS detected. \n"); + map->bios = BT_INTEL; + close_vbios(map); + return 0; + //break; + } + i++; + } /* * check for others @@ -578,9 +601,14 @@ { char* edidInfo = readEDID(); - if(!edidInfo) return 1; - - mode->pixel_clock = (edidInfo[55] << 8) | edidInfo[54]; + if(edidInfo == 0) return 1; +//Slice + if(fb_parse_edid((struct EDID *)edidInfo, mode) == 0) + { + free( edidInfo ); + return 1; + } +/* mode->pixel_clock = (edidInfo[55] << 8) | edidInfo[54]; mode->h_active = edidInfo[56] | ((edidInfo[58] & 0xF0) << 4); mode->h_blanking = ((edidInfo[58] & 0x0F) << 8) | edidInfo[57]; mode->v_active = edidInfo[59] | ((edidInfo[61] & 0xF0) << 4); @@ -589,8 +617,8 @@ mode->h_sync_width = (edidInfo[65] & 0x30) | edidInfo[63]; mode->v_sync_offset = (edidInfo[65] & 0x0C) | ((edidInfo[64] & 0x0C) >> 2); mode->v_sync_width = ((edidInfo[65] & 0x3) << 2) | (edidInfo[64] & 0x03); +*/ - free( edidInfo ); if(!mode->h_active) return 1; @@ -629,6 +657,9 @@ // for (i=0; i < map->mode_table_size; i++) { // if (map->mode_table[0].mode == mode) { switch(map->bios) { + case BT_INTEL: + return; + case BT_1: { vbios_resolution_type1 * res = map_type1_resolution(map, map->mode_table[i].resolution); Index: branches/slice/i386/modules/Resolution/Resolution.c =================================================================== --- branches/slice/i386/modules/Resolution/Resolution.c (revision 692) +++ branches/slice/i386/modules/Resolution/Resolution.c (revision 693) @@ -9,6 +9,7 @@ void Resolution_start() { + //verbose("Resolution_start\n"); patchVideoBios(); } Index: branches/slice/i386/modules/Resolution/edid.c =================================================================== --- branches/slice/i386/modules/Resolution/edid.c (revision 692) +++ branches/slice/i386/modules/Resolution/edid.c (revision 693) @@ -187,7 +187,7 @@ } //---------------------------------------------------------------------------------- -int fb_parse_edid(struct EDID *edid, UInt32* x, UInt32* y) +int fb_parse_edid(struct EDID *edid, edid_mode* var) //(struct EDID *edid, UInt32* x, UInt32* y) { int i; unsigned char *block; @@ -198,8 +198,15 @@ for (i = 0; i < 4; i++, block += DETAILED_TIMING_DESCRIPTION_SIZE) { if (edid_is_timing_block(block)) { - *x = H_ACTIVE; - *y = V_ACTIVE; + var->h_active = H_ACTIVE; + var->v_active = V_ACTIVE; + var->h_sync_offset = H_SYNC_OFFSET; + var->h_sync_width = H_SYNC_WIDTH; + var->h_blanking = H_BLANKING; + var->v_blanking = V_BLANKING; + var->pixel_clock = PIXEL_CLOCK; + var->h_sync_width = H_SYNC_WIDTH; + var->v_sync_width = V_SYNC_WIDTH; /* var->xres = var->xres_virtual = H_ACTIVE; var->yres = var->yres_virtual = V_ACTIVE; @@ -221,10 +228,10 @@ if (VSYNC_POSITIVE) var->sync |= FB_SYNC_VERT_HIGH_ACT; */ - return 0; + return 1; } } - return 1; + return 0; } void getResolution(UInt32* x, UInt32* y, UInt32* bp) @@ -251,15 +258,22 @@ char* edidInfo = readEDID(); if(!edidInfo) return; - + edid_mode mode; // TODO: check *all* resolutions reported and either use the highest, or the native resolution (if there is a flag for that) //xResolution = edidInfo[56] | ((edidInfo[58] & 0xF0) << 4); //yResolution = edidInfo[59] | ((edidInfo[61] & 0xF0) << 4); - if(fb_parse_edid(edidInfo, &xResolution, &yResolution)) + //Slice - done here + + if(fb_parse_edid((struct EDID *)edidInfo, &mode) == 0) { xResolution = DEFAULT_SCREEN_WIDTH; yResolution = DEFAULT_SCREEN_HEIGHT; } + else { + xResolution = mode.h_active; + yResolution = mode.v_active; + } + /* 0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0x00 0x32 0x0C 0x00 0xDF 0x00 0x00 0x00 0x00 0xFF 0xFF 0xFF 0x00 @@ -303,7 +317,7 @@ SInt16 status; UInt16 blocks_left = 1; - msglog("readEDID\n"); +// msglog("readEDID\n"); do { // TODO: This currently only retrieves the *last* block, make the block buffer expand as needed / calculated from the first block Index: branches/slice/i386/modules/Resolution/915resolution.h =================================================================== --- branches/slice/i386/modules/Resolution/915resolution.h (revision 692) +++ branches/slice/i386/modules/Resolution/915resolution.h (revision 693) @@ -14,20 +14,7 @@ #include "shortatombios.h" #include "edid.h" -typedef struct _edid_mode { - unsigned short pixel_clock; - unsigned short h_active; - unsigned short h_blanking; - unsigned short v_active; - unsigned short v_blanking; - unsigned short h_sync_offset; - unsigned short h_sync_width; - unsigned short v_sync_offset; - unsigned short v_sync_width; -} edid_mode; - - void patchVideoBios(); @@ -116,7 +103,7 @@ typedef enum { - BT_UNKWN, BT_1, BT_2, BT_3, BT_ATI_1, BT_ATI_2, BT_NVDA + BT_UNKWN, BT_1, BT_2, BT_3, BT_ATI_1, BT_ATI_2, BT_NVDA, BT_INTEL } bios_type; Index: branches/slice/i386/modules/Resolution/edid.h =================================================================== --- branches/slice/i386/modules/Resolution/edid.h (revision 692) +++ branches/slice/i386/modules/Resolution/edid.h (revision 693) @@ -5,6 +5,7 @@ * Created by Evan Lojewski on 12/1/09. * Copyright 2009. All rights reserved. * + * Slice 2010 */ //#ifndef __EDID_H__ //#define __EDID_H__ @@ -14,7 +15,7 @@ #define EDID_BLOCK_SIZE 128 #define EDID_V1_BLOCKS_TO_GO_OFFSET 126 -//Slice - some more info aabout EDID +//Slice - some more info about EDID #define EDID_LENGTH 0x80 #define EDID_HEADER 0x00 #define EDID_HEADER_END 0x07 @@ -150,7 +151,22 @@ UInt8 checksum; //127 }; + +typedef struct _edid_mode { + unsigned short pixel_clock; + unsigned short h_active; + unsigned short h_blanking; + unsigned short v_active; + unsigned short v_blanking; + unsigned short h_sync_offset; + unsigned short h_sync_width; + unsigned short v_sync_offset; + unsigned short v_sync_width; +} edid_mode; + + char* readEDID(); void getResolution(UInt32* x, UInt32* y, UInt32* bp); +int fb_parse_edid(struct EDID *edid, edid_mode* var); //#endif \ No newline at end of file Index: branches/slice/i386/modules/Makefile =================================================================== --- branches/slice/i386/modules/Makefile (revision 692) +++ branches/slice/i386/modules/Makefile (revision 693) @@ -26,7 +26,7 @@ VPATH = $(OBJROOT):$(SYMROOT) # The order of building is important. -SUBDIRS = klibc uClibc++ Resolution KernelPatcher GUI KextPatcher GraphicsEnabler HPET USBFix Memory Networking NetbookInstaller ACPIPatcher NVRAM HelloWorld +SUBDIRS = klibc uClibc++ Resolution KernelPatcher GUI KextPatcher GraphicsEnabler HPET USBFix Memory Networking NetbookInstaller ACPIPatcher NVRAM ATI5000Enabler HelloWorld #SUBDIRS = HelloWorld all embedtheme optionrom tags debug install installhdrs: objroot_dirs lazydylib1.o Index: branches/slice/i386/cdboot/Makefile =================================================================== --- branches/slice/i386/cdboot/Makefile (revision 692) +++ branches/slice/i386/cdboot/Makefile (revision 693) @@ -2,7 +2,8 @@ DIR = cdboot include ../MakePaths.dir -NASM = /Developer/usr/bin/nasm +NASM = $(shell which nasm) +#/Developer/usr/bin/nasm INSTALLDIR = $(DSTROOT)/usr/standalone/i386 DIRS_NEEDED = $(SYMROOT) Index: branches/slice/revision =================================================================== --- branches/slice/revision (revision 692) +++ branches/slice/revision (revision 693) @@ -1 +1 @@ -676:689 \ No newline at end of file +676:691 \ No newline at end of file Index: branches/slice/ChamMek/ChamMek.xcodeproj/slice.pbxuser =================================================================== --- branches/slice/ChamMek/ChamMek.xcodeproj/slice.pbxuser (revision 692) +++ branches/slice/ChamMek/ChamMek.xcodeproj/slice.pbxuser (revision 693) @@ -76,8 +76,8 @@ PBXSymbolsDataSource_ReferenceNameID, ); }; - PBXPerProjectTemplateStateSaveDate = 314916942; - PBXWorkspaceStateSaveDate = 314916942; + PBXPerProjectTemplateStateSaveDate = 315140248; + PBXWorkspaceStateSaveDate = 315140248; }; perUserProjectItems = { 120DFB1712BA3A4D00C7EAC8 /* PBXTextBookmark */ = 120DFB1712BA3A4D00C7EAC8 /* PBXTextBookmark */; @@ -86,16 +86,19 @@ 12121ED112B261EA00207E55 /* PBXTextBookmark */ = 12121ED112B261EA00207E55 /* PBXTextBookmark */; 1216139E12B65BB50019961E /* PBXTextBookmark */ = 1216139E12B65BB50019961E /* PBXTextBookmark */; 121613FF12B65D970019961E /* PBXTextBookmark */ = 121613FF12B65D970019961E /* PBXTextBookmark */; - 1236A82312BD6023003F1DA9 /* PBXTextBookmark */ = 1236A82312BD6023003F1DA9 /* PBXTextBookmark */; + 123C5F8D12C8AB2C00DFC2D4 /* PBXTextBookmark */ = 123C5F8D12C8AB2C00DFC2D4 /* PBXTextBookmark */; + 123C5F8E12C8AB2C00DFC2D4 /* PBXTextBookmark */ = 123C5F8E12C8AB2C00DFC2D4 /* PBXTextBookmark */; + 123C5F9012C8AB2C00DFC2D4 /* PBXTextBookmark */ = 123C5F9012C8AB2C00DFC2D4 /* PBXTextBookmark */; 124C493212B8D846005AA276 /* PBXTextBookmark */ = 124C493212B8D846005AA276 /* PBXTextBookmark */; 124C493712B8D846005AA276 /* PBXTextBookmark */ = 124C493712B8D846005AA276 /* PBXTextBookmark */; 124C494212B8E8C2005AA276 /* PBXTextBookmark */ = 124C494212B8E8C2005AA276 /* PBXTextBookmark */; 124C494312B8E8C2005AA276 /* PBXTextBookmark */ = 124C494312B8E8C2005AA276 /* PBXTextBookmark */; 124C494512B8E8C2005AA276 /* PBXTextBookmark */ = 124C494512B8E8C2005AA276 /* PBXTextBookmark */; 124C494B12B8EA5D005AA276 /* PBXTextBookmark */ = 124C494B12B8EA5D005AA276 /* PBXTextBookmark */; + 1265C97612C7554E0050D02E /* PBXTextBookmark */ = 1265C97612C7554E0050D02E /* PBXTextBookmark */; + 1265C97712C7554E0050D02E /* PBXTextBookmark */ = 1265C97712C7554E0050D02E /* PBXTextBookmark */; 1267813012B7B13E00A25CED /* PBXTextBookmark */ = 1267813012B7B13E00A25CED /* PBXTextBookmark */; 12679BA312BE822E00E3637F /* PBXTextBookmark */ = 12679BA312BE822E00E3637F /* PBXTextBookmark */; - 1279BD7112BF4D8700612F62 /* PBXTextBookmark */ = 1279BD7112BF4D8700612F62 /* PBXTextBookmark */; 1288318212C3608100EA4CB2 /* PBXTextBookmark */ = 1288318212C3608100EA4CB2 /* PBXTextBookmark */; 128835DC12C366AB00EA4CB2 /* PBXTextBookmark */ = 128835DC12C366AB00EA4CB2 /* PBXTextBookmark */; 128A97B712C2336000600556 /* PBXTextBookmark */ = 128A97B712C2336000600556 /* PBXTextBookmark */; @@ -103,8 +106,10 @@ 128A9AF412C233CE00600556 /* PBXTextBookmark */ = 128A9AF412C233CE00600556 /* PBXTextBookmark */; 1299A51F12B3C328007ED516 /* PBXTextBookmark */ = 1299A51F12B3C328007ED516 /* PBXTextBookmark */; 1299A55612B3C4DF007ED516 /* PBXTextBookmark */ = 1299A55612B3C4DF007ED516 /* PBXTextBookmark */; + 12A7376E12C854A600769789 /* PBXTextBookmark */ = 12A7376E12C854A600769789 /* PBXTextBookmark */; 12AB04BD12B663F5005A745F /* PBXTextBookmark */ = 12AB04BD12B663F5005A745F /* PBXTextBookmark */; 12AB04EC12B665EA005A745F /* PBXTextBookmark */ = 12AB04EC12B665EA005A745F /* PBXTextBookmark */; + 12AD499312C7ADAB0082CD39 /* PBXTextBookmark */ = 12AD499312C7ADAB0082CD39 /* PBXTextBookmark */; 12AF764312BA614B003BBFD3 /* PBXTextBookmark */ = 12AF764312BA614B003BBFD3 /* PBXTextBookmark */; 12B46E6612B75631006C2B9C /* PBXTextBookmark */ = 12B46E6612B75631006C2B9C /* PBXTextBookmark */; 12B46E6812B75631006C2B9C /* PBXTextBookmark */ = 12B46E6812B75631006C2B9C /* PBXTextBookmark */; @@ -117,6 +122,10 @@ 12B90A5212B2AE1300FE287A /* PBXTextBookmark */ = 12B90A5212B2AE1300FE287A /* PBXTextBookmark */; 12B9F42612B29A4A00FE287A /* PBXTextBookmark */ = 12B9F42612B29A4A00FE287A /* PBXTextBookmark */; 12BF14DA12B3CF8E00D798FE /* PBXTextBookmark */ = 12BF14DA12B3CF8E00D798FE /* PBXTextBookmark */; + 12C246F412C87C7C007E8339 /* PBXTextBookmark */ = 12C246F412C87C7C007E8339 /* PBXTextBookmark */; + 12C2907612C8962900984F8F /* PBXTextBookmark */ = 12C2907612C8962900984F8F /* PBXTextBookmark */; + 12C672F312C7C6BE0058B09B /* PBXTextBookmark */ = 12C672F312C7C6BE0058B09B /* PBXTextBookmark */; + 12C672F512C7C6BE0058B09B /* PBXTextBookmark */ = 12C672F512C7C6BE0058B09B /* PBXTextBookmark */; 12C7009812B7BCE7006BD382 /* PBXTextBookmark */ = 12C7009812B7BCE7006BD382 /* PBXTextBookmark */; 12C7009912B7BCE7006BD382 /* PBXTextBookmark */ = 12C7009912B7BCE7006BD382 /* PBXTextBookmark */; 12C704E512B7BD3E006BD382 /* PBXTextBookmark */ = 12C704E512B7BD3E006BD382 /* PBXTextBookmark */; @@ -124,23 +133,36 @@ 12C7FC4E12B7BCD3006BD382 /* PlistBookmark */ = 12C7FC4E12B7BCD3006BD382 /* PlistBookmark */; 12C8CB6812B5529D003DA1E4 /* PBXTextBookmark */ = 12C8CB6812B5529D003DA1E4 /* PBXTextBookmark */; 12CC44C812B3947B007E0C76 /* PBXTextBookmark */ = 12CC44C812B3947B007E0C76 /* PBXTextBookmark */; + 12D2040912C890B700CE318D /* PBXTextBookmark */ = 12D2040912C890B700CE318D /* PBXTextBookmark */; + 12D331A312C61E950093EEDB /* PBXTextBookmark */ = 12D331A312C61E950093EEDB /* PBXTextBookmark */; + 12D331BE12C621050093EEDB /* PBXTextBookmark */ = 12D331BE12C621050093EEDB /* PBXTextBookmark */; + 12D331CC12C622FE0093EEDB /* PBXTextBookmark */ = 12D331CC12C622FE0093EEDB /* PBXTextBookmark */; + 12D3321612C63DF20093EEDB /* PBXTextBookmark */ = 12D3321612C63DF20093EEDB /* PBXTextBookmark */; + 12D3324112C63EB70093EEDB /* PBXTextBookmark */ = 12D3324112C63EB70093EEDB /* PBXTextBookmark */; + 12D3329E12C669090093EEDB /* PBXTextBookmark */ = 12D3329E12C669090093EEDB /* PBXTextBookmark */; + 12D332A512C669090093EEDB /* PBXTextBookmark */ = 12D332A512C669090093EEDB /* PBXTextBookmark */; + 12D332AA12C669090093EEDB /* PBXTextBookmark */ = 12D332AA12C669090093EEDB /* PBXTextBookmark */; + 12D378BF12C7F8F8000F1C6A /* PBXTextBookmark */ = 12D378BF12C7F8F8000F1C6A /* PBXTextBookmark */; + 12D378C012C7F8F8000F1C6A /* PBXTextBookmark */ = 12D378C012C7F8F8000F1C6A /* PBXTextBookmark */; + 12D37D3212C7FAB8000F1C6A /* PBXTextBookmark */ = 12D37D3212C7FAB8000F1C6A /* PBXTextBookmark */; 12D6232512BA5F380032F367 /* PBXTextBookmark */ = 12D6232512BA5F380032F367 /* PBXTextBookmark */; 12D6232612BA5F380032F367 /* PBXTextBookmark */ = 12D6232612BA5F380032F367 /* PBXTextBookmark */; - 12DA422E12C52DAC009281B3 /* PBXTextBookmark */ = 12DA422E12C52DAC009281B3 /* PBXTextBookmark */; 12DA422F12C52DAC009281B3 /* PBXTextBookmark */ = 12DA422F12C52DAC009281B3 /* PBXTextBookmark */; - 12DA42D612C54017009281B3 /* PBXTextBookmark */ = 12DA42D612C54017009281B3 /* PBXTextBookmark */; - 12DA42E912C54134009281B3 /* PBXTextBookmark */ = 12DA42E912C54134009281B3 /* PBXTextBookmark */; 12DCD38E12BBA5D600A20635 /* PBXTextBookmark */ = 12DCD38E12BBA5D600A20635 /* PBXTextBookmark */; - 12DF661812C4DD28006DBA03 /* PBXTextBookmark */ = 12DF661812C4DD28006DBA03 /* PBXTextBookmark */; 12E17AE612B2BA9B00607D8E /* PBXTextBookmark */ = 12E17AE612B2BA9B00607D8E /* PBXTextBookmark */; 12E6FB5712BB458400C2A021 /* PBXTextBookmark */ = 12E6FB5712BB458400C2A021 /* PBXTextBookmark */; 12EFD98A12B510D9002A1712 /* PBXTextBookmark */ = 12EFD98A12B510D9002A1712 /* PBXTextBookmark */; 12EFE2FD12B51ED5002A1712 /* PBXTextBookmark */ = 12EFE2FD12B51ED5002A1712 /* PBXTextBookmark */; 12EFE65A12B547A7002A1712 /* PBXTextBookmark */ = 12EFE65A12B547A7002A1712 /* PBXTextBookmark */; 12EFE95E12B549B6002A1712 /* PBXTextBookmark */ = 12EFE95E12B549B6002A1712 /* PBXTextBookmark */; + 12F1147112C7A41D0064D7EE /* PBXTextBookmark */ = 12F1147112C7A41D0064D7EE /* PBXTextBookmark */; 12F7FF0012BB9F3200949DEC /* PBXTextBookmark */ = 12F7FF0012BB9F3200949DEC /* PBXTextBookmark */; 12FC0E7512BB4B5200E9CFA8 /* PBXTextBookmark */ = 12FC0E7512BB4B5200E9CFA8 /* PBXTextBookmark */; 12FC0E9412BB65A800E9CFA8 /* PBXTextBookmark */ = 12FC0E9412BB65A800E9CFA8 /* PBXTextBookmark */; + 12FE983612C7CEEB001B1702 /* PBXTextBookmark */ = 12FE983612C7CEEB001B1702 /* PBXTextBookmark */; + 12FE984A12C7E11C001B1702 /* PBXTextBookmark */ = 12FE984A12C7E11C001B1702 /* PBXTextBookmark */; + 12FE987912C7E281001B1702 /* PBXTextBookmark */ = 12FE987912C7E281001B1702 /* PBXTextBookmark */; + 12FE987A12C7E281001B1702 /* PBXTextBookmark */ = 12FE987A12C7E281001B1702 /* PBXTextBookmark */; }; sourceControlManager = 12C26D3712B0DDFC00AF7F4B /* Source Control */; userBuildSettings = { @@ -248,6 +270,13 @@ vrLen = 895; vrLoc = 563; }; + 121E9E4112C6A6F9000B6ED3 /* gma.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = gma.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/GraphicsEnabler/gma.c; + sourceTree = ""; + }; 121EA43012B7B9DD002449B3 /* smbios_patcher.c */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; @@ -255,23 +284,46 @@ path = /Users/slice/Projects/fakesmc/Chameleon/RC5m/i386/libsaio/smbios_patcher.c; sourceTree = ""; }; - 1236A82312BD6023003F1DA9 /* PBXTextBookmark */ = { + 123C5F8D12C8AB2C00DFC2D4 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 1269260B12BC9B1B004D09F1 /* acpi_patcher.c */; - name = "acpi_patcher.c: 137"; - rLen = 6; - rLoc = 3329; + fRef = 12C2907A12C8962900984F8F /* gui.c */; + name = "gui.c: 1957"; + rLen = 16; + rLoc = 52932; rType = 0; - vrLen = 588; - vrLoc = 2933; + vrLen = 882; + vrLoc = 52522; }; - 123FA2D012C4E34C000DF4A6 /* gui.c */ = { + 123C5F8E12C8AB2C00DFC2D4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 123C5F8F12C8AB2C00DFC2D4 /* edid.h */; + rLen = 13; + rLoc = 5294; + rType = 0; + }; + 123C5F8F12C8AB2C00DFC2D4 /* edid.h */ = { isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = gui.c; - path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/GUI/gui.c; + lastKnownFileType = sourcecode.c.h; + name = edid.h; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Resolution/edid.h; sourceTree = ""; }; + 123C5F9012C8AB2C00DFC2D4 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 123C5F9112C8AB2C00DFC2D4 /* edid.h */; + name = "edid.h: 170"; + rLen = 13; + rLoc = 5294; + rType = 0; + vrLen = 691; + vrLoc = 4662; + }; + 123C5F9112C8AB2C00DFC2D4 /* edid.h */ = { + isa = PBXFileReference; + name = edid.h; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Resolution/edid.h; + sourceTree = ""; + }; 124C492812B8C915005AA276 /* Memory.c */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; @@ -374,6 +426,40 @@ vrLen = 554; vrLoc = 5486; }; + 1265C97612C7554E0050D02E /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 121E9E4112C6A6F9000B6ED3 /* gma.c */; + name = "gma.c: 21"; + rLen = 0; + rLoc = 423; + rType = 0; + vrLen = 1355; + vrLoc = 348; + }; + 1265C97712C7554E0050D02E /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1265C97812C7554E0050D02E /* basic_definitions */; + name = "basic_definitions: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 366; + vrLoc = 1283; + }; + 1265C97812C7554E0050D02E /* basic_definitions */ = { + isa = PBXFileReference; + lastKnownFileType = text; + name = basic_definitions; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/include/basic_definitions; + sourceTree = ""; + }; + 1265D11B12C778D90050D02E /* bitset */ = { + isa = PBXFileReference; + lastKnownFileType = text; + name = bitset; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/include/bitset; + sourceTree = ""; + }; 1267813012B7B13E00A25CED /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 12B46E6D12B75631006C2B9C /* smbios_patcher.h */; @@ -394,23 +480,6 @@ vrLen = 894; vrLoc = 14871; }; - 1269260B12BC9B1B004D09F1 /* acpi_patcher.c */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = acpi_patcher.c; - path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/ACPIPatcher/acpi_patcher.c; - sourceTree = ""; - }; - 1279BD7112BF4D8700612F62 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 12D170AB12BF114400B78E60 /* cpu.c */; - name = "cpu.c: 13"; - rLen = 0; - rLoc = 269; - rType = 0; - vrLen = 446; - vrLoc = 0; - }; 1279BD7512BF4D8700612F62 /* ACPIPatcher.c */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; @@ -530,6 +599,23 @@ path = /Users/slice/Projects/fakesmc/Chameleon/RC5m/i386/boot2/modules.c; sourceTree = ""; }; + 12A7376E12C854A600769789 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D37D3612C7FAB8000F1C6A /* GUI_module.c */; + name = "GUI_module.c: 503"; + rLen = 38; + rLoc = 11043; + rType = 0; + vrLen = 698; + vrLoc = 9616; + }; + 12A7377212C854A600769789 /* vbe.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = vbe.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/vbe.c; + sourceTree = ""; + }; 12AB04BD12B663F5005A745F /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 12B903AB12B2A00E00FE287A /* platform.h */; @@ -564,6 +650,23 @@ vrLen = 400; vrLoc = 3028; }; + 12AD499312C7ADAB0082CD39 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12B4E87B12C7A7E6005BEB1E /* NVRAM.c */; + name = "NVRAM.c: 69"; + rLen = 13; + rLoc = 1876; + rType = 0; + vrLen = 604; + vrLoc = 1490; + }; + 12AD499712C7ADAB0082CD39 /* modules.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = modules.h; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/modules.h; + sourceTree = ""; + }; 12AF764312BA614B003BBFD3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 12EFD98D12B510D9002A1712 /* revision */; @@ -628,6 +731,13 @@ path = /Users/slice/Projects/fakesmc/Chameleon/RC5m/i386/libsaio/smbios_patcher.h; sourceTree = ""; }; + 12B4E87B12C7A7E6005BEB1E /* NVRAM.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = NVRAM.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/NVRAM/NVRAM.c; + sourceTree = ""; + }; 12B903AB12B2A00E00FE287A /* platform.h */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; @@ -775,6 +885,16 @@ vrLen = 665; vrLoc = 3; }; + 12C246F412C87C7C007E8339 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12A7377212C854A600769789 /* vbe.c */; + name = "vbe.c: 245"; + rLen = 7; + rLoc = 7689; + rType = 0; + vrLen = 735; + vrLoc = 7282; + }; 12C26D2E12B0DDF400AF7F4B /* ChamMek */ = { isa = PBXExecutable; activeArgIndices = ( @@ -823,6 +943,48 @@ path = /Users/slice/Projects/Chameleons/chameleon/branches/meklort/i386/modules/KernelPatcher/kernel_patcher.h; sourceTree = ""; }; + 12C2907612C8962900984F8F /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D2040D12C890B700CE318D /* graphics.c */; + name = "graphics.c: 722"; + rLen = 16; + rLoc = 20490; + rType = 0; + vrLen = 784; + vrLoc = 20063; + }; + 12C2907A12C8962900984F8F /* gui.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = gui.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/GUI/gui.c; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {903, 26559}}"; + sepNavSelRange = "{52932, 16}"; + sepNavVisRange = "{52522, 882}"; + }; + }; + 12C672F312C7C6BE0058B09B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12AD499712C7ADAB0082CD39 /* modules.h */; + name = "modules.h: 19"; + rLen = 13; + rLoc = 418; + rType = 0; + vrLen = 655; + vrLoc = 0; + }; + 12C672F512C7C6BE0058B09B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D332A912C669090093EEDB /* gui.h */; + name = "gui.h: 28"; + rLen = 16; + rLoc = 572; + rType = 0; + vrLen = 540; + vrLoc = 0; + }; 12C7009812B7BCE7006BD382 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 12C7FC5C12B7BCD6006BD382 /* basic_definitions */; @@ -951,6 +1113,224 @@ path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/cpu.c; sourceTree = ""; }; + 12D2040912C890B700CE318D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D4921B12C88EE6009975E9 /* boot.c */; + name = "boot.c: 657"; + rLen = 12; + rLoc = 20109; + rType = 0; + vrLen = 821; + vrLoc = 19575; + }; + 12D2040D12C890B700CE318D /* graphics.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = graphics.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/graphics.c; + sourceTree = ""; + }; + 12D3316C12C61CA80093EEDB /* bootstruct.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = bootstruct.h; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/bootstruct.h; + sourceTree = ""; + }; + 12D331A312C61E950093EEDB /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D3316C12C61CA80093EEDB /* bootstruct.h */; + name = "bootstruct.h: 43"; + rLen = 0; + rLoc = 1435; + rType = 0; + vrLen = 633; + vrLoc = 1150; + }; + 12D331A712C61E950093EEDB /* boot.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = boot.h; + path = /System/Library/Frameworks/System.framework/PrivateHeaders/pexpert/pexpert/i386/boot.h; + sourceTree = ""; + }; + 12D331BE12C621050093EEDB /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D331A712C61E950093EEDB /* boot.h */; + name = "boot.h: 97"; + rLen = 12; + rLoc = 2853; + rType = 0; + vrLen = 922; + vrLoc = 2332; + }; + 12D331C012C621050093EEDB /* acpi_patcher.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = acpi_patcher.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/ACPIPatcher/acpi_patcher.c; + sourceTree = ""; + }; + 12D331CC12C622FE0093EEDB /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D331C012C621050093EEDB /* acpi_patcher.c */; + name = "acpi_patcher.c: 683"; + rLen = 15; + rLoc = 18749; + rType = 0; + vrLen = 1074; + vrLoc = 18246; + }; + 12D331EE12C63CB30093EEDB /* ati5.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = ati5.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/ATI5000Enabler/ati5.c; + sourceTree = ""; + }; + 12D3321612C63DF20093EEDB /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D331EE12C63CB30093EEDB /* ati5.c */; + name = "ati5.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 608; + vrLoc = 0; + }; + 12D3321A12C63DF20093EEDB /* pci.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = pci.h; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/pci.h; + sourceTree = ""; + }; + 12D3324112C63EB70093EEDB /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D3321A12C63DF20093EEDB /* pci.h */; + name = "pci.h: 107"; + rLen = 0; + rLoc = 2409; + rType = 0; + vrLen = 1242; + vrLoc = 3316; + }; + 12D3329E12C669090093EEDB /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D3329F12C669090093EEDB /* lazydylib1.c */; + name = "lazydylib1.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 216; + vrLoc = 0; + }; + 12D3329F12C669090093EEDB /* lazydylib1.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = lazydylib1.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/lazydylib1.c; + sourceTree = ""; + }; + 12D332A512C669090093EEDB /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D332A612C669090093EEDB /* graphics.h */; + name = "graphics.h: 20"; + rLen = 0; + rLoc = 352; + rType = 0; + vrLen = 962; + vrLoc = 122; + }; + 12D332A612C669090093EEDB /* graphics.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = graphics.h; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/graphics.h; + sourceTree = ""; + }; + 12D332A912C669090093EEDB /* gui.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = gui.h; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/GUI/gui.h; + sourceTree = ""; + }; + 12D332AA12C669090093EEDB /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D332AB12C669090093EEDB /* gma.h */; + name = "gma.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 352; + vrLoc = 0; + }; + 12D332AB12C669090093EEDB /* gma.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = gma.h; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/GraphicsEnabler/gma.h; + sourceTree = ""; + }; + 12D378B312C7F861000F1C6A /* modules.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = modules.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/modules.c; + sourceTree = ""; + }; + 12D378BF12C7F8F8000F1C6A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D378B312C7F861000F1C6A /* modules.c */; + name = "modules.c: 231"; + rLen = 17; + rLoc = 5480; + rType = 0; + vrLen = 723; + vrLoc = 5087; + }; + 12D378C012C7F8F8000F1C6A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D170AB12BF114400B78E60 /* cpu.c */; + name = "cpu.c: 13"; + rLen = 0; + rLoc = 269; + rType = 0; + vrLen = 1002; + vrLoc = 2849; + }; + 12D378C312C7F8F8000F1C6A /* cpu.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = cpu.h; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/cpu.h; + sourceTree = ""; + }; + 12D37D3212C7FAB8000F1C6A /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D378C312C7F8F8000F1C6A /* cpu.h */; + name = "cpu.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 802; + vrLoc = 2605; + }; + 12D37D3612C7FAB8000F1C6A /* GUI_module.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = GUI_module.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/GUI/GUI_module.c; + sourceTree = ""; + }; + 12D4921B12C88EE6009975E9 /* boot.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = boot.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/boot.c; + sourceTree = ""; + }; 12D6232512BA5F380032F367 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 12078D9812BA5AF400A1C013 /* fake_efi.c */; @@ -971,15 +1351,12 @@ vrLen = 419; vrLoc = 398; }; - 12DA422E12C52DAC009281B3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 123FA2D012C4E34C000DF4A6 /* gui.c */; - name = "gui.c: 715"; - rLen = 13; - rLoc = 21602; - rType = 0; - vrLen = 717; - vrLoc = 21319; + 12D928BE12C7C8EB00269820 /* Makefile */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.make; + name = Makefile; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/ATI5000Enabler/Makefile; + sourceTree = ""; }; 12DA422F12C52DAC009281B3 /* PBXTextBookmark */ = { isa = PBXTextBookmark; @@ -998,39 +1375,18 @@ path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/libsaio.h; sourceTree = ""; }; - 12DA42D612C54017009281B3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 12DA42D712C54017009281B3 /* edid.c */; - name = "edid.c: 258"; - rLen = 0; - rLoc = 12049; - rType = 0; - vrLen = 904; - vrLoc = 5801; - }; - 12DA42D712C54017009281B3 /* edid.c */ = { + 12DA42EA12C54134009281B3 /* edid.c */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = edid.c; path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Resolution/edid.c; sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1048, 5200}}"; + sepNavSelRange = "{6812, 0}"; + sepNavVisRange = "{8696, 1093}"; + }; }; - 12DA42E912C54134009281B3 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 12DA42EA12C54134009281B3 /* edid.c */; - name = "edid.c: 258"; - rLen = 0; - rLoc = 6449; - rType = 0; - vrLen = 1256; - vrLoc = 5986; - }; - 12DA42EA12C54134009281B3 /* edid.c */ = { - isa = PBXFileReference; - name = edid.c; - path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Resolution/edid.c; - sourceTree = ""; - }; 12DCD38E12BBA5D600A20635 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 12F7FF0412BB9F3200949DEC /* ntfs_private.h */; @@ -1041,16 +1397,6 @@ vrLen = 1189; vrLoc = 0; }; - 12DF661812C4DD28006DBA03 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 12E415F412C4D87A005D21AE /* boot.c */; - name = "boot.c: 488"; - rLen = 0; - rLoc = 14514; - rType = 0; - vrLen = 1168; - vrLoc = 16104; - }; 12E17AE612B2BA9B00607D8E /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 12B90A5712B2AE1300FE287A /* 915resolution.h */; @@ -1068,13 +1414,6 @@ path = /Users/slice/Projects/fakesmc/Chameleon/RC5m/i386/libsaio/saio_types.h; sourceTree = ""; }; - 12E415F412C4D87A005D21AE /* boot.c */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.c; - name = boot.c; - path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/boot.c; - sourceTree = ""; - }; 12E6FB4712BB438700C2A021 /* Makefile */ = { isa = PBXFileReference; lastKnownFileType = sourcecode.make; @@ -1174,6 +1513,16 @@ path = /Users/slice/Projects/fakesmc/Chameleon/RC5m/i386/libsaio/pci_root.c; sourceTree = ""; }; + 12F1147112C7A41D0064D7EE /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1265D11B12C778D90050D02E /* bitset */; + name = "bitset: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 991; + vrLoc = 0; + }; 12F7FF0012BB9F3200949DEC /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 12FC25E812BB825300E9CFA8 /* drivers.c */; @@ -1225,6 +1574,65 @@ path = /Users/slice/Projects/fakesmc/Chameleon/RC5m/i386/boot2/drivers.c; sourceTree = ""; }; + 12FE983612C7CEEB001B1702 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12D928BE12C7C8EB00269820 /* Makefile */; + name = "Makefile: 1"; + rLen = 7; + rLoc = 14; + rType = 0; + vrLen = 736; + vrLoc = 0; + }; + 12FE984A12C7E11C001B1702 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12FE984B12C7E11C001B1702 /* Resolution.c */; + name = "Resolution.c: 13"; + rLen = 14; + rLoc = 247; + rType = 0; + vrLen = 236; + vrLoc = 0; + }; + 12FE984B12C7E11C001B1702 /* Resolution.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = Resolution.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Resolution/Resolution.c; + sourceTree = ""; + }; + 12FE985E12C7E1F7001B1702 /* 915resolution.c */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + name = 915resolution.c; + path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Resolution/915resolution.c; + sourceTree = ""; + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1048, 11999}}"; + sepNavSelRange = "{5145, 36}"; + sepNavVisRange = "{4459, 1188}"; + }; + }; + 12FE987912C7E281001B1702 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12FE985E12C7E1F7001B1702 /* 915resolution.c */; + name = "915resolution.c: 419"; + rLen = 0; + rLoc = 8937; + rType = 0; + vrLen = 670; + vrLoc = 2670; + }; + 12FE987A12C7E281001B1702 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 12DA42EA12C54134009281B3 /* edid.c */; + name = "edid.c: 190"; + rLen = 13; + rLoc = 4618; + rType = 0; + vrLen = 987; + vrLoc = 4129; + }; 8DD76FA90486AB0100D96B5E /* ChamMek */ = { activeExec = 0; executables = ( Index: branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3 =================================================================== --- branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3 (revision 692) +++ branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3 (revision 693) @@ -274,10 +274,7 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 17 - 2 - 1 - 0 + 27 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey @@ -302,7 +299,7 @@ 164 RubberWindowFrame - 264 184 1172 694 0 0 1440 878 + 172 181 1172 694 0 0 1440 878 Module PBXSmartGroupTreeModule @@ -320,7 +317,7 @@ PBXProjectModuleGUID 1CE0B20306471E060097A5F4 PBXProjectModuleLabel - edid.c + edid.h PBXSplitModuleInNavigatorKey Split0 @@ -328,11 +325,11 @@ PBXProjectModuleGUID 1CE0B20406471E060097A5F4 PBXProjectModuleLabel - edid.c + edid.h _historyCapacity 0 bookmark - 12DA42E912C54134009281B3 + 123C5F9012C8AB2C00DFC2D4 history 12121ED112B261EA00207E55 @@ -383,18 +380,40 @@ 12FC0E9412BB65A800E9CFA8 12F7FF0012BB9F3200949DEC 12DCD38E12BBA5D600A20635 - 1236A82312BD6023003F1DA9 12679BA312BE822E00E3637F - 1279BD7112BF4D8700612F62 128A97B712C2336000600556 128A97B812C2336000600556 128A9AF412C233CE00600556 1288318212C3608100EA4CB2 128835DC12C366AB00EA4CB2 - 12DF661812C4DD28006DBA03 - 12DA422E12C52DAC009281B3 12DA422F12C52DAC009281B3 - 12DA42D612C54017009281B3 + 12D331A312C61E950093EEDB + 12D331BE12C621050093EEDB + 12D331CC12C622FE0093EEDB + 12D3321612C63DF20093EEDB + 12D3324112C63EB70093EEDB + 12D3329E12C669090093EEDB + 12D332A512C669090093EEDB + 12D332AA12C669090093EEDB + 1265C97612C7554E0050D02E + 1265C97712C7554E0050D02E + 12F1147112C7A41D0064D7EE + 12AD499312C7ADAB0082CD39 + 12C672F312C7C6BE0058B09B + 12C672F512C7C6BE0058B09B + 12FE983612C7CEEB001B1702 + 12FE984A12C7E11C001B1702 + 12FE987912C7E281001B1702 + 12FE987A12C7E281001B1702 + 12D378BF12C7F8F8000F1C6A + 12D378C012C7F8F8000F1C6A + 12D37D3212C7FAB8000F1C6A + 12A7376E12C854A600769789 + 12C246F412C87C7C007E8339 + 12D2040912C890B700CE318D + 12C2907612C8962900984F8F + 123C5F8D12C8AB2C00DFC2D4 + 123C5F8E12C8AB2C00DFC2D4 SplitCount @@ -406,14 +425,14 @@ GeometryConfiguration Frame - {{0, 0}, {964, 466}} + {{0, 0}, {964, 379}} RubberWindowFrame - 264 184 1172 694 0 0 1440 878 + 172 181 1172 694 0 0 1440 878 Module PBXNavigatorGroup Proportion - 466pt + 379pt ContentConfiguration @@ -426,14 +445,14 @@ GeometryConfiguration Frame - {{0, 471}, {964, 182}} + {{0, 384}, {964, 269}} RubberWindowFrame - 264 184 1172 694 0 0 1440 878 + 172 181 1172 694 0 0 1440 878 Module XCDetailModule Proportion - 182pt + 269pt Proportion @@ -452,9 +471,9 @@ TableOfContents - 12DA42EB12C54134009281B3 + 123C5F9212C8AB2C00DFC2D4 1CE0B1FE06471DED0097A5F4 - 12DA42EC12C54134009281B3 + 123C5F9312C8AB2C00DFC2D4 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -592,11 +611,12 @@ 5 WindowOrderList + 1C530D57069F1CE1000CFCEE 12C26D3512B0DDFC00AF7F4B /Users/slice/Projects/Chameleons/chameleon/branches/slice/ChamMek/ChamMek.xcodeproj WindowString - 264 184 1172 694 0 0 1440 878 + 172 181 1172 694 0 0 1440 878 WindowToolsV3 @@ -673,7 +693,7 @@ TableOfContents 12C26D3512B0DDFC00AF7F4B - 12DA42ED12C54134009281B3 + 123C5F8012C8AAFE00DFC2D4 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID @@ -795,13 +815,13 @@ TableOfContents 1CD10A99069EF8BA00B06720 - 12DA42DB12C54017009281B3 + 12FE988012C7E281001B1702 1C162984064C10D400B95A72 - 12DA42DC12C54017009281B3 - 12DA42DD12C54017009281B3 - 12DA42DE12C54017009281B3 - 12DA42DF12C54017009281B3 - 12DA42E012C54017009281B3 + 12FE988112C7E281001B1702 + 12FE988212C7E281001B1702 + 12FE988312C7E281001B1702 + 12FE988412C7E281001B1702 + 12FE988512C7E281001B1702 ToolbarConfiguration xcode.toolbar.config.debugV3 @@ -833,7 +853,7 @@ PBXProjectModuleGUID 1CDD528C0622207200134675 PBXProjectModuleLabel - <No Editor> + 915resolution.c StatusBarVisibility @@ -842,7 +862,7 @@ Frame {{0, 0}, {1109, 510}} RubberWindowFrame - 80 62 1109 816 0 0 1440 878 + 316 62 1109 816 0 0 1440 878 Module PBXNavigatorGroup @@ -868,7 +888,7 @@ Frame {{0, 515}, {1109, 260}} RubberWindowFrame - 80 62 1109 816 0 0 1440 878 + 316 62 1109 816 0 0 1440 878 Module PBXProjectFindModule @@ -891,13 +911,13 @@ TableOfContents 1C530D57069F1CE1000CFCEE - 12DA422A12C52D7F009281B3 - 12DA422B12C52D7F009281B3 + 123C5F8912C8AAFE00DFC2D4 + 123C5F8A12C8AAFE00DFC2D4 1CDD528C0622207200134675 1CD0528E0623707200166675 WindowString - 80 62 1109 816 0 0 1440 878 + 316 62 1109 816 0 0 1440 878 WindowToolGUID 1C530D57069F1CE1000CFCEE WindowToolIsVisible Index: branches/slice/TODO =================================================================== --- branches/slice/TODO (revision 692) +++ branches/slice/TODO (revision 693) @@ -1,5 +1,32 @@ TODO List for Chameleon Boot Loader ==================================== +27.12.2010 Slice +- numerous errors, mistakes, reservation, non-finished codes... Spaghetti sources! +- kernelcache never used (adler32 is wrong?) +- more careful CPU detection +- readNVRAM is wrong +- graphicsEnabler for X3100 is not good +- ATI Radeon enabler is not perfect + + +16.12.2010 Slice +- I want to implement NVRAM for use with nvram, bless, StartupDisk.prefPane, and with VoodooHDA in future. +1. Write a script rc.shutdown.local and place it into /etc +<-------------- +#!/bin/sh +nvram -p >nvram.inf +echo Hello! NVRAM is saved! +--------------> +2. Read and interpret nvram.inf to place variables into /options node +3. Prepare some other boot-time variables in the node (platform-uuid, BootOrder, FirmwareFeatures, efi-boot-device and so on) +4. Implement boot flag -c to clear growing amount of nvram savings. + +- ATI GraphicsEnabler is not perfect. +1. ATY,SCLK, ATY,MCLK, ATY,RefCLK must be read from VideoBIOS but not constant values. Excluded! +2. FakeDeviceID needed + +- Intel GraphicsEnabler needs to be corrected by calculating LCD info. Done! +-------------------------------------------------------------------------------------------------------- - Integrate Prasys current work on options and quick shortcut modified version of 18seven - Add autodetection of efistring algorythm to enabke graphics enabler to beanbled by default while not conflicting whith other efi string overriden content @@ -68,20 +95,3 @@ - Case unsensitive parsing for the bootConfig options: should help the common/novice user to setup more easily. -16.12.2010 Slice -- I want to implement NVRAM for use with nvram, bless, StartupDisk.prefPane, and with VoodooHDA in future. -1. Write a script rc.shutdown.local and place it into /etc -<-------------- -#!/bin/sh -nvram -p >nvram.inf -echo Hello! NVRAM is saved! ---------------> -2. Read and interpret nvram.inf to place variables into /options node -3. Prepare some other boot-time variables in the node (platform-uuid, BootOrder, FirmwareFeatures, efi-boot-device and so on) -4. Implement boot flag -c to clear growing amount of nvram savings. - -- ATI GraphicsEnabler is not perfect. -1. ATY,SCLK, ATY,MCLK, ATY,RefCLK must be read from VideoBIOS but not constant values. -2. FakeDeviceID needed - -- Intel GraphicsEnabler needs to be corrected by calculating LCD info. Index: branches/slice/CHANGES =================================================================== --- branches/slice/CHANGES (revision 692) +++ branches/slice/CHANGES (revision 693) @@ -1,4 +1,10 @@ Slice: +rev692 +- add ATI 5xxx Enabler module on Kabyl's sources (not checked) +- corrections to open standards: EFI, UUID, SMBIOS, ACPI, EDID +- getResolution from BIOS EDID now works +- exclude Intel BIOS from patch, because it has other structure +rev673 - not agree with claim "Removed obsolete -f option, use -x instead" -f - ignore kernel cache (rebuild it) -x - boot with restricted set of drivers (without Graphics card etc.)