Dangerous Prototypes

General Category => General discussion => Topic started by: XMGA517 on June 24, 2020, 09:17:51 pm

Title: Programming ITE 8587 - Need help writing EC FW (Laptop)
Post by: XMGA517 on June 24, 2020, 09:17:51 pm

I’m new to these forums and I’m not sure where I’m supposed to post. Perhaps somebody could move this to the correct section or direct me to post there? Or maybe this is fine as it is.

My laptop is the XMG A517 (Clevo N850HP6)
Official Download Portal (https://download.schenker-tech.de/package/xmg-a517/) | User Manual (https://download.schenker-tech.de/package/xmg-a517/?wpdmdl=2374&ind=1540374016250) | Service Manual (http://s472165864.onlinehome.fr/anyware/manuels/N850HP6%20SM%2020170420.pdf)

I need to write to the EC chip on my motherboard, but I’m not sure how. The chip specifically is the KBC-ITE IT8587. It’s a 128 pin LQFP chip. Apparently programming it is done through UART protocols (See pages 22 and 97 of the Service Manual for more info).

I’m completely out of my depth here. This is all new to me. I’ve recently been experimenting with a CH341A SPI USB programmer and flashrom, but unfortunately I’ve recently discovered the EC FW chip isn’t SOP8. I have however been able to interface with the four SOP8 chips on my motherboard - including the main BIOS chip (MX25L6473F) and the vBIOS chip (MXIC 25U4033E).

I found this forum through this guide (http://dangerousprototypes.com/docs/Flashing_KB9012_with_Bus_Pirate) by @mikeb and it appears to be very relevant, however, it’s for a different chip. There’s also this forum post (http://forum.notebookreview.com/threads/bricked-clevo-n150rd-after-ec-update.825156/) and this guide (https://www.laboneinside.com/how-to-program-laptop-kb9012-io-chip/) that’s got an entirely different method. Apparently I can utilise the keyboard connector?

There’s the RT809F programmer, but if were to purchase all the necessary equipment, it will end up costing a fair bit for something that might not even fix my issue. As mentioned, I already have the CH341A SPI Programmer (along with the SOIC8 clip and 1.8v adapter). Hopefully I can utilise this along with other things I need to buy?

If I can just follow Mike’s guide, what do I need to do differently to get it working with the IT8587?

I’m really hoping someone on this forum can help me. I’m determined to get this laptop up and running so I can use it again, even if it requires a lot of time and effort. I’ve already learnt a few things along the way!
Title: Re: Programming ITE 8587 - Need help writing EC FW (Laptop)
Post by: mikeb on December 07, 2020, 10:44:55 am
Hi there, sorry it took me so long to reply to you. Problem is - your ITE IT8587 chip is from another company, not ENE, and I doubt that programming it with CH341A "in KB9012 mode" will work without serious source code flashrom modifications (similar to writing the whole patch from scratch). And the rarity of IT8587 datasheet - which should describe the flashing method and be used as a programmer's guidance - doesn't help at all. Perhaps could be found if you'd google a lot, but I don't have enough free time at the moment. I expect the flashing method to be similar in appearance - through a keyboard's port, it's the source code modifications which is the most difficult part. I suggest you to contact a laptop repair shop, they most likely have a proprietary programmer required to flash your chip and hopefully they won't charge too much. Or sell this laptop for parts and get a Lenovo G505S, if you are also interested in the opensource BIOS and stuff like that
Title: Re: Programming ITE 8587 - Need help writing EC FW (Laptop)
Post by: XMGA517 on December 13, 2020, 01:09:29 am
Hey Mike, glad to hear from you.

I was doubtful that the solution would work given the chip is not only a different model, but manufactured by a different company too. Still, given the sheer lack of other options, I was all up for giving it a go. Still am if there’s hope.

In the time since I posted this, I haven’t really gotten anywhere with fixing it. With some Googling, it’s possible to find different variants of the pin layout for the IT8587 (see attached), but not the full and complete datasheet - which would include those all so necessary flashing instructions and/or enough information to work with. Amongst other things, I did email ITE who eventually got back and told me that “the document is covered by NDA for manufactory” and that the IT8528E chip was “similar for reference”. That would explain the rarity of the datasheet (or rather, the complete one). I found an 80 page pinout document on the IT8528E here (http://j5d2v7d7.stackpathcdn.com/wp-content/uploads/2015/09/IT8528E.pdf). Is that helpful?

I don’t know why a chip used in a 3+ year old laptop is covered by NDA, when so many other similar chips from the same company aren’t. Doesn’t make sense to me, but oh well.

Anyway, I’d really appreciate any help. It would be great to utilise the keyboard connector to do this, unless you know of any other way? You mentioned that the source code modifications would be the hard part, would that need to be done regardless of method if using the keyboard connector? I wouldn’t even know where to start since I don’t have any experience with that sort of thing.

I guess if all else fails, I could contact a repair shop for it. Whether they have to equipment to flash it is another matter. And even if they do, it might turn out that there’s another issue and flashing it still doesn’t fix it. At least I can confirm that by confirming a successful write on the chip. Might just end up selling it for parts and getting myself a different laptop if that’s the case though.

I think it may also be possible to buy a pre-programmed chip online, but then there’s the difficult of soldering a chip like that.

I’d much rather find some way of programming the chip myself. Any ideas would be awesome, thanks (or perhaps you know someone else who can help?)
Title: Re: Programming ITE 8587 - Need help writing EC FW (Lapto
Post by: XMGA517 on December 16, 2020, 10:53:10 am
I think I understand what you mean about software modifications now - it’s for flashrom, right? You can flash the ENE KB9012 because Paul Kocialkowski created a patch for it, but from what I can see (https://www.flashrom.org/Supported_hardware), the IT8587 (or IT8528E) aren’t supported by flashrom yet. I just assumed my chip would be supported when viewing your guide, instead of trying to program it in “KB9012 mode”.

Is that the inherent problem with this solution? That there’s no patch out there made for these chips yet?

Is the only solution to create a patch or find another solution (like the one potentially in the elusive datasheet covered by NDA)? If so, is it worth contacting someone like Paul Kocialkowski (or another person with this sort of experience) for help?

That or finding a repair shop with the right, specialised equipment to flash it directly.