[coreboot] for Lenovo G505S owners: AtomBIOS ROMs (discrete too!), binaries, datasheets...

Mike Banon mikebdp2 at gmail.com
Sun Jul 16 10:10:31 CEST 2017


Hi Paul, here is my proposed fix for ./origami-ec/tools/segments to
make it more portable across the different bash versions :

1) replace

if (( $size > $size_limit ))

with

if [ $(printf "%d" ${size}) -gt $(printf "%d" ${size_limit}) ]

2) replace

if (( $offset < $map ))

with

if [ $(printf "%d" ${offset}) -lt $(printf "%d" ${map}) ]

After these changes the hexadecimal numbers are converted to decimal
before the comparison. Now this script works OK and the whole build
completes without any error

I have tested your firmware at my G505S, the LEDs are working ;-) and
are changing their state if I press a button.

Maybe its a good idea to launch this project publicly by creating a
mirror at GitHub, so that the people could easily commit the pull
requests and send their comments - and then the merged pull requests
could be synchronized with your home repository at git.code.paulk.fr ?
What do you think about this idea?

Best regards,
Mike Banon

On Sat, Jul 15, 2017 at 6:58 PM, Paul Kocialkowski <contact at paulk.fr> wrote:
> Hey,
>
> Le samedi 15 juillet 2017 à 16:53 +0300, Mike Banon a écrit :
>> Dear Damien, thank you for your interest!
>>
>> These repositories are not raising G505S free-as-in-freedom level,
>> just trying to improve the things: e.g. make a discrete GPU working
>> and erase serial IDs from EC KB9012 proprietary firmware. To clarify:
>>
>> 1) g505s-atombios : contains the AtomBIOS ROMs for discrete GPU of
>> G505S.
>> AFAIK nobody has successfully extracted these discrete ROMs before!
>> If your G505S had integrated GPU only you couldn't benefited from
>> them,
>> but my G505S has a discrete GPU also - which does not work with
>> coreboot.
>> And I really hope that having two AtomBIOS ROMs inside coreboot.rom
>> (integrated + discrete, e.g. both pci1002,990b.rom and
>> pci1002,6663.rom )
>> will help me to make this discrete GPU working. Going to test it soon
>> :D
>>
>> 2) g505s-proprietary : contains the motherboard's LA-A091P and EC
>> KB9012
>> keyboard controller datasheets, and Lenovo's Hardware Maintenance
>> Manual
>> (sometimes helps to find the replacement parts, such as the new
>> screws)
>> Of course many of us already had these files, but it also contains a
>> clean EC KB9012 ROM - extracted directly from BIOS updating software!
>> Compared to what is flashed at G505S by default, this clean ROM
>> doesn't
>> have any IDs, therefore flashing it slightly improves your anonymity
>>
>> > It would be good to get this chipset working with Timothy's
>> > non-AGESA ram init, which I was working on at an earlier time but
>> > got
>> > stuck and ran out of time.
>>
>> Please tell, have you uploaded your unfinished work somewhere?
>>
>> > I believe the EC has been done too by Paul
>>
>> Thank you very much for this information! Do you know whether
>> it has been 100% completed and G505S boots with it, by a chance?
>>
>> http://git.code.paulk.fr/gitweb/?p=origami-ec.git;a=summary
>>
>> I am getting a few problems while trying to build:
>>
>> tools/segments: 19: tools/segments: 0x000016A4: not found
>> tools/segments: 19: tools/segments: 0x00000C2C: not found
>> tools/segments: 19: tools/segments: 0x00000E07: not found
>> tools/segments: 69: tools/segments: cannot open 0x0000: No such file
>> tools/segments: 69: tools/segments: 0: not found
>> tools/segments: 69: tools/segments: 49152: not found
>> tools/segments: 69: tools/segments: cannot open 0x10000: No such file
>> tools/segments: 69: tools/segments: 65536: not found
>>
>> Perhaps the tools/segments bash script is not portable enough,
>> I will try to fix it and contribute a solution in the near future
>
> To answer the question, no, it is not finished. Far from it. There is
> very little visibility regarding the project as it was not launched
> publicly yet (even though the source code I'm working on is already
> available).
>
> Too bad that the script does not work with your setup, reasonable fixes
> to make it work would indeed be welcome! It works fine on my setup.
>
>> > the only thing remaining apart from the hardest part (ram init)
>> > would be
>> > the vga init, (which Alex already did 95% for this particular
>> > hardware)
>>
>> Curious to hear about Alex's open source VGA init. Most likely it has
>> been
>> written with integrated-only GPU in the mind, but if it will become
>> the last
>> obstacle before fully liberating G505S --> then I could try to
>> complete it
>>
>> > I no longer have the laptop hardware with me so this is going to be
>> > problematic for me to do much work on it in the near future.
>>
>> Its very sad to hear. G505S is the most powerful portable coreboot
>> hardware
>> without Intel ME / PSP backdoors, and I hope that more of these
>> wonderful
>> laptops will end up at the hands of opensource/privacy-caring people
>>
>> Luckily this laptop's default thermal paste is of very poor quality,
>> and
>> when it starts easily overheating after a couple of years - a lot of
>> people
>> are simply selling it instead of changing its' thermal paste!
>> Partially
>> because of that, partially because a lot of G505S have been
>> manufactured,
>> it is easy to find this laptop at eBay/craigslist for a very cheap
>> price!
>>
>> For example, just $100 dollars:
>>
>> http://www.ebay.com/itm/Lenovo-G505s-20255-AMD-A10-6gb-Ram-No-Hdd-Part
>> s-Repair-/332298782671
>>
>> If I were at USA I would have definitely bought, need just $59 to
>> refurbish
>>
>> 1) 8cells battery, more capacity than original! $33 -
>> https://www.aliexpress.com/item/8-Cell-Battery-for-Lenovo-IdeaPad-G400
>> s-G405s-G505s-G410s-G510s-S410p-S510p-Z710-L12L4A02-
>> L12M4A02/32819127987.html
>>
>> 2) replacement keyboard, $12 -
>> https://www.aliexpress.com/item/Free-Shipping-US-keyboard-for-lenovo-I
>> deapad-G505S-FLEX-15-G500S-S500-Z510-US-laptop-
>> keyboard/1945098518.html
>>
>> 3) bottom cover, $14 -
>> https://www.aliexpress.com/item/New-For-Lenovo-G500S-G505S-Bottom-RAM-
>> HDD-Hard-Drive-Cover-Door-balck/32819067218.html
>>
>> + new thermal paste and some 100% alcohol for disinfection,
>> then could put SSD and 16 GB of RAM there for a beast machine ;)
>>
>> > I'm not sure if you are allowed to redistribute proprietary
>> > roms/datasheets
>>
>> It depends on your location - different countries have different laws.
>> At my place I am allowed to use and even distribute them for not-
>> commercial
>> purposes (e.g. reverse engineering or just a hobby), at some other
>> places
>> the people are allowed to download these files but aren't allowed to
>> share
>>
>> Sadly some countries have very strict copyright laws, e.g. at USA I
>> would
>> have had to wait 75 years :P Many (if not all) GitHub servers are at
>> USA
>> jurisdiction, but they can't sue me - only to take down my
>> repositories,
>> which I could easily re-upload to GitHub again or to somewhere else...
>>
>> However, these datasheets have been at GitHub for almost a year
>> ( https://github.com/mikebdp2/kb9012-g505s-official ) and still
>> available!
>>
>> Probably because these datasheets aren't like a game or a movie
>> (when the manufacturer is losing money if someone else is distributing
>> it)
>> in reality - nobody cares if you are distributing them. Multiple times
>> I
>> have honestly tried to contact both Compal and ENE asking them if they
>> don't mind me sharing the datasheets, but they have never replied to
>> me
>>
>> Good luck to your projects,
>> Mike Banon
>>
>> On Sat, Jul 15, 2017 at 6:24 AM, Damien Zammit <damien at zamaudio.com>
>> wrote:
>> > Dear Mike,
>> >
>> > I am not sure what this is all about, but we already ported the
>> > G505s to
>> > coreboot.    I believe the EC has been done too by Paul,
>> > so the only thing remaining apart from the hardest part (ram init)
>> > would
>> > be the vga init, (which Alex already did 95% for this particular
>> > hardware).  I no longer have the laptop hardware with me so this is
>> > going to be problematic for me to do much work on it in the near
>> > future.
>> >
>> > By the way, I'm not sure if you are allowed to redistribute
>> > proprietary
>> > roms/datasheets, but IANAL.
>> >
>> > I wish you luck,
>> >
>> > Damien
>> >
>> > On 15/07/17 07:48, Mike Banon wrote:
>> > > Good day! Together with my friend Ivan we have opened a new GitHub
>> > > page,
>> > >
>> > > https://github.com/g505s-opensource-researcher
>> > >
>> > > and created 3 repositories there:
>> > >
>> > > 1) g505s-atombios
>> > > AMD AtomBIOS video bios releases for G505S Integrated HD-8650G and
>> > > discrete HD-8570M / R5-M230 GPUs
>> > >
>> > > 2) g505s-proprietary
>> > > Proprietary stuff: InsydeH20 closed source BIOS files, documents,
>> > > binaries and datasheets for G505S
>> > >
>> > > Their files were described at our previous messages:
>> > >
>> > > https://mail.coreboot.org/pipermail/coreboot/2017-July/084660.html
>> > > https://mail.coreboot.org/pipermail/coreboot/2017-July/084671.html
>> > > https://mail.coreboot.org/pipermail/coreboot/2017-June/084569.html
>> > >
>> > > All the SHA-256 checksums are available at sha256sum.txt text
>> > > files
>> > >
>> > > Also, we are going to set up 3) a bit later:
>> > >
>> > > 3) g505s-coreboot
>> > > coreboot open source BIOS releases for AMD-based Lenovo G505S
>> > > laptop
>> > > with A10-5750M quad core APU
>> > >
>> > > "3)" could be especially useful for the people who just recently
>> > > became interested at coreboot/SeaBIOS projects - and would like to
>> > > quickly test on their G505S laptop because of the official BIOS
>> > > shortcomings (WiFi whitelist / poor thermal management)
>> > >
>> > > By the way, there were two typos at Ivan's cbfstool.sh script -
>> > > two
>> > > missing "\" characters at the end of line. g505s-atombios
>> > > repository
>> > > has a working version
>> > >
>> > > Have the great weekends and happy hacking ;-)
>> > >
>> > > Wish you all the best,
>> > > Mike Banon
>> > >
> --
> Paul Kocialkowski,
>
> developer of free digital technology and hardware support.
>
> Website: https://www.paulk.fr/
> Coding blog: https://code.paulk.fr/
> Git repositories: https://git.paulk.fr/ https://git.code.paulk.fr/



More information about the coreboot mailing list