52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
if [ -z "$1" ]
 | 
						|
then
 | 
						|
  echo "$0 <model> [--without-ec]" >&2
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
MODEL="$1"
 | 
						|
 | 
						|
WITH_EC=true
 | 
						|
if [ "$2" = "--without-ec" ]
 | 
						|
then
 | 
						|
    WITH_EC=false
 | 
						|
fi
 | 
						|
 | 
						|
if [ ! -d "models/${MODEL}" ]
 | 
						|
then
 | 
						|
  echo "model '${MODEL}' not found" >&2
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
MODEL_DIR="$(realpath "models/${MODEL}")"
 | 
						|
 | 
						|
DMI_MODEL="$(cat /sys/class/dmi/id/product_version)"
 | 
						|
if [ "${DMI_MODEL}" != "${MODEL}" ]
 | 
						|
then
 | 
						|
  echo "Refusing to flash model '${MODEL}' to model '${DMI_MODEL}'" >&2
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
cargo build --release --manifest-path libs/intel-spi/Cargo.toml
 | 
						|
sudo libs/intel-spi/target/release/intel-spi "build/${MODEL}/firmware.rom"
 | 
						|
 | 
						|
if [ "$WITH_EC" = true ]
 | 
						|
then
 | 
						|
    if [ -e "build/${MODEL}/ec.rom" ]
 | 
						|
    then
 | 
						|
        cargo build --release --manifest-path ec/tool/Cargo.toml
 | 
						|
        ECTOOL=ec/tool/target/release/system76_ectool
 | 
						|
 | 
						|
        if sudo $ECTOOL info &> /dev/null
 | 
						|
        then
 | 
						|
            sudo $ECTOOL flash "build/${MODEL}/ec.rom"
 | 
						|
        else
 | 
						|
            echo "WARNING: Skipping EC flash: Could not get System76 EC info"
 | 
						|
        fi
 | 
						|
    fi
 | 
						|
else
 | 
						|
    echo "Skipping EC flash"
 | 
						|
fi
 |