Всем доброго времени суток!
Сейчас занимаюсь темой анализа биосов от ноутбуков, а именно их первых 64 кб (что специально для EC/SuperI/O)
Соответственно, ищу, для общего анализа.
Если есть биос основной при этом - не откажусь от куска, который отвечает за загрузку и работу с EC.
Но это я и сам могу найти.
Спасибо!
Имеется в наличии:
#define N_Retry 4 #define EC_SCI 0x04 // EC SCI is connected to GPE0, bit 4 #define SMBOffset 0x18 // SMBus registers base in EC space #define SMB_Data 0x1C // = SMBOffset+4 #define P5xOffset 0x48 // IOPort registers base in EC space #define P60_67IOPortOffset 0x50 // IOPort registers base in EC space #define P60_StatusIOPortOffset 0x78 // IOPort registers base in EC space #define IOPortOffset 0x18 // IOPort registers base in EC spaceо! то что надо Принимаю в
Принимаю в любом виде :-)
ec_227.zip v1100.zip Лежать
v1100.zip
Лежать будет до завтрашнего вечера. Если ASL нужен, то выложу чуть позже.
UPD. Уже не лежит :)
XVilka я вообще не понял - а
я вообще не понял - а в чем проблема набыдать дампы?
Взять к примеру АСУС. У них на большинство ноутбуков прошивки лежат в открытую для скачивания на оф. сайте.
Т.к. на большинстве АСУСов стоят EC типа ITE, которые берут свою прошивку из Main BIOS, то можно наковырять очень много дампов.
[off]Кстати, именно по этой причине ноуты с запорченным БИОСом не включаются - к EC подсоединена кнопка включения к контакту GPIO, а такие ноги программируются прошивкой...[/off]
Второй пример - у IBM отдельно лежат обновления прошивок (Main BIOS) и обновления прошивки KBC (на IBM обычно используется H8S, который имеет встроенный ROM). Наковырять образов тоже не проблема.
Если есть конкретные вопросы - welcome в аську.
Re: Коллекционирую (для реверса) биосы EC (embedded controller)
Ведь и правда все доступно :-)
Device(EC) {
Device(EC) { Name(_HID,EISAID("PNP0C09")) Name(_GPE,0x01) Name(ECOK, 0x00) Method(_REG, 2) { if (LEqual(Arg0, 0x03)) { Store(Arg1, ECOK) } \REAB() Store(1,\FWA3) } Name(_CRS,ResourceTemplate() // Current Resource Settings { IO(Decode16,0x62,0x62,0x1,0x1) // Fixed IO IO(Decode16,0x66,0x66,0x1,0x1) // Fixed IO }) OperationRegion(ERAM,EmbeddedControl,0x0,0xFF) Field(ERAM,ByteAcc,NoLock,Preserve) { Offset(0x04), CMCM,8, CMD1,8, CMD2,8, CMD3,8, Offset(SMBOffset), SMPR, 8, // SMBus protocol register SMST, 8, // SMBus status register SMAD, 8, // SMBus address register SMCM, 8, // SMBus command register SMD0, 0x108, // SMBus data registers (32) // + SMBus block count SMAA, 8, // SMBus Alarm Address Offset(0x4E), ,5, P55,1, Offset(0x78), P60,1, ,1, P62,1, ,1, P64,1, ,1, P66,1, P67,1, // BatteryMark issue Offset(0x81), SP81,8, Offset(0x83), SP83,8, // BatteryMark issue Offset(0x89), SP89,8, Offset(0x8B), SP8B,8, Offset(0x90), // Thermal monitor 0 [AC080200] T1SP,8, // Spec -0x90 T1AD,8, // Slave address -0x91 T1CM,8, // Command -0x92 T1VL,8, // Value -0x93 T1LW,8, // Low -0x94 T1HG,8, // High -0x95 TSK1,8, // -0x96 T1CR,8, // Critical -0x97 Offset(0x98), // Thermal monitor 1 T2SP,8, // Spec -0x98 T2AD,8, // Slave address -0x99 T2CM,8, // Command -0x9a T2VL,8, // Value -0x9b T2LW,8, // Low -0x9c T2HG,8 // High -0x9d } Field(ERAM,ByteAcc,NoLock,Preserve) { Offset(P5xOffset), P54S, 8, // P54 SPEC protocol register P55S, 8, // P55 SPEC protocol register P54T, 8, // P54 Task protocol register P55T, 8, // P55 Task protocol register temp1 ,16, temp2 , 5, Offset(P60_67IOPortOffset), P60S, 8, // P60 SPEC protocol register P61S, 8, // P61 SPEC protocol register P62S, 8, // P62 SPEC protocol register P63S, 8, // P63 SPEC protocol register P64S, 8, // P64 SPEC protocol register P65S, 8, // P65 SPEC protocol register P66S, 8, // P66 SPEC protocol register P67S, 8, // P67 SPEC protocol register P60T, 8, // P60 Task protocol register P61T, 8, // P61 Task protocol register P62T, 8, // P62 Task protocol register P63T, 8, // P63 Task protocol register P64T, 8, // P64 Task protocol register P65T, 8, // P65 Task protocol register P66T, 8, // P66 Task protocol register P67T, 8, // P67 Task protocol register } Field(ERAM, ByteAcc, NoLock, Preserve) { Offset(SMB_Data), SMW0, 16, // SMBus data word field } Field(ERAM, ByteAcc, NoLock, Preserve) { Offset(SMB_Data), SMB0, 8, // SMBus data byte field }Re: Коллекционирую (для реверса) биосы EC (embedded controller)