ARCH=armhf
BOOTSOURCE='https://github.com/hardkernel/u-boot.git'
BOOTSCRIPT='boot-odroid-xu4.ini:boot.ini'
BOOTDIR='u-boot-odroidxu'
BOOTBRANCH='branch:odroidxu4-v2017.05'
UBOOT_TARGET_MAP=';;sd_fuse/bl1.bin.hardkernel sd_fuse/bl2.bin.hardkernel.720k_uboot u-boot-dtb.bin sd_fuse/tzsw.bin.hardkernel'

case $BRANCH in

	legacy)

		KERNELSOURCE='https://github.com/hardkernel/linux'
		KERNELBRANCH='branch:odroidxu4-4.14.y'
		KERNELDIR='linux-odroidxu4'

	;;

	current)

		KERNELSOURCE='https://github.com/hardkernel/linux'
		KERNELBRANCH='branch:odroid-5.4.y'
		KERNELDIR='linux-odroidxu4'
	;;

	edge)

		KERNELBRANCH='branch:linux-5.16.y'

	;;

esac

CPUMIN=600000
CPUMAX=2000000
GOVERNOR=ondemand
SERIALCON=ttySAC2




setup_write_uboot_platform()
{

	# this will update u-boot on the device rootfs is located on
	# in case it's a mmc device, otherwise DEVICE will not be changed
	# and will default to /dev/mmcblk0
	local tmp=$(cat /proc/cmdline)
	tmp="${tmp##*root=}"
	tmp="${tmp%% *}"
	[[ -n $tmp ]] && local part=$(findfs $tmp 2>/dev/null)
	[[ -n $part ]] && local dev=$(lsblk -n -o PKNAME $part 2>/dev/null)
	[[ -n $dev && $dev == mmcblk* ]] && DEVICE="/dev/${dev}"

}




write_uboot_platform()
{

	# handle writing to eMMC on package upgrades
	# assuming $2 points to a correct device

	if [[ $2 == /dev/mmcblk* && -b ${2}boot0 ]]; then
		local device=${2}boot0
		echo 0 > /sys/block/$(basename $device)/force_ro
		local is_emmc=1
		signed_bl1_position=0
		bl2_position=30
		uboot_position=62
	else
		local device=${2}
		signed_bl1_position=1
		bl2_position=31
		uboot_position=63
	fi

	if [[ $is_emmc == 1 ]]; then
		tzsw_position=1502
	else
		tzsw_position=1503
	fi
	env_position=2015
	dd if=$1/bl1.bin.hardkernel of=$device seek=$signed_bl1_position conv=fsync > /dev/null 2>&1
	dd if=$1/bl2.bin.hardkernel.720k_uboot of=$device seek=$bl2_position conv=fsync > /dev/null 2>&1
	dd if=$1/u-boot-dtb.bin of=$device bs=512 seek=$uboot_position conv=fsync > /dev/null 2>&1
	dd if=$1/tzsw.bin.hardkernel of=$device seek=$tzsw_position conv=fsync > /dev/null 2>&1
	dd if=/dev/zero of=$device seek=$env_position bs=512 count=32 conv=fsync > /dev/null 2>&1
}




family_tweaks()
{

	echo "blacklist ina231_sensor" > $SDCARD/etc/modprobe.d/blacklist-odroid.conf

}




family_tweaks_bsp()
{

	mkdir -p $destination/etc/udev/rules.d
	cp $SRC/packages/bsp/odroid/90-builtin-net-rps.rules $destination/etc/udev/rules.d

	mkdir -p $destination/usr/local/bin
	cp $SRC/packages/bsp/rockchip/hdmi.rules $destination/etc/udev/rules.d
	install -m 755 $SRC/packages/bsp/rockchip/hdmi-hotplug $destination/usr/local/bin

	# park HDD heads on shutdown
	mkdir -p $destination/lib/systemd/system-shutdown
	install -o root -g root -m 0755 $SRC/packages/bsp/odroid/odroid.shutdown $destination/lib/systemd/system-shutdown/odroid.shutdown

}
