#!/bin/bash

#  getcb script: downloads coreboot and patches/deblobs it
#
#	Copyright (C) 2014 Francis Rowe <info@gluglug.org.uk>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

set -u -e -v

# This grabs current base used, and applies patches
# This is also used to run the deblob scripts.

# Remove the old version that may exist
# ----------------------------------------------------------------------------------

rm -rf coreboot

# Get latest coreboot:
# ----------------------------------------------------------------------------------

# download it using git
git clone http://review.coreboot.org/coreboot

# there are modifications required
cd coreboot/

# reset to previously tested revision
git reset --hard 6532676f9328ca3bd197b714db4f1de23544cbde

# Get patches from review.coreboot.org
# ----------------------------------------------------------------------------------

# Text mode patch for X60 native graphics (main patch already merged in coreboot. See 6723 on coreboot gerrit)
git fetch http://review.coreboot.org/coreboot refs/changes/25/6725/3 && git cherry-pick FETCH_HEAD

# lenovo/x60: Enable legacy brightness controls (native graphics)
git fetch http://review.coreboot.org/coreboot refs/changes/48/7048/4 && git cherry-pick FETCH_HEAD

# Enable T60 native graphics
git fetch http://review.coreboot.org/coreboot refs/changes/45/5345/9 && git cherry-pick FETCH_HEAD
# Enable text-mode graphics for T60
git fetch http://review.coreboot.org/coreboot refs/changes/50/7050/2 && git cherry-pick FETCH_HEAD
# lenovo/t60: Enable legacy brightness controls (native graphics)
git fetch http://review.coreboot.org/coreboot refs/changes/51/7051/1 && git cherry-pick FETCH_HEAD

# Enable cstates 1 and 2 on macbook21. This reduces heat / power usage when the system is idle
git fetch http://review.coreboot.org/coreboot refs/changes/23/7923/2 && git cherry-pick FETCH_HEAD

# ec/lenovo/h8: permanently enable wifi/trackpoint/touchpad/bluetooth/wwan
git fetch http://review.coreboot.org/coreboot refs/changes/58/7058/7 && git cherry-pick FETCH_HEAD

# i945: permanently set tft_brightness to 0xff. this fixes the issue with X60 and "scrolling" backlight
git fetch http://review.coreboot.org/coreboot refs/changes/61/7561/2 && git cherry-pick FETCH_HEAD

# northbridge/gm45/raminit.c: enable GS45 high-perf (i.e. add X200S support to libreboot)
git fetch http://review.coreboot.org/coreboot refs/changes/86/7786/1 && git cherry-pick FETCH_HEAD
# fix uneven backlight on X200 (when setting brightness low)
git fetch http://review.coreboot.org/coreboot refs/changes/79/7979/1 && git cherry-pick FETCH_HEAD

# Run coreboot-libre deblob scripts
# ---------------------------------------------------------------------------------

# The git history (git diff command) shows what blobs were deleted 
# along with the contents of those blobs. This needs to be deleted
# for libreboot's purposes.
rm -rf .git
rm -f .gitreview
rm -f .gitmodules
rm -f .gitignore

cd ../

# Deblob coreboot
./DEBLOB

# ------------------- DONE ----------------------


