#!/usr/bin/env bash

# Be cautious with environment variables collision! Buildroot sets some of them.
# To test script run it with OUT=/dev/stdout.

[[ -v OUT ]] || OUT="$TARGET_DIR"/boot/extlinux/extlinux.conf

[[ -v ROOT ]] || ROOT=/dev/mmcblk0p1
[[ -v CONSOLE ]] || CONSOLE=ttyS0,115200n8
[[ -v VIDEO ]] || VIDEO=HDMI:1920x1080

if [[ ! -v CMDLINE ]]; then
    CMDLINE="${CONSOLE:+console=$CONSOLE} earlycon ${ROOT:+root=$ROOT roottype=ext4 rw rootwait} ${VIDEO:+video=$VIDEO}"
fi

if [[ -v FDT ]]; then
    FDTCMD=FDT
else
    FDTCMD=FDTDIR
fi

mkdir -p "${OUT%/*}"

cat > "$OUT" <<EOF
MENU TITLE Boot Menu
TIMEOUT 20
DEFAULT default

LABEL default
    MENU LABEL Default (/boot/zImage)
    LINUX /boot/zImage
    $FDTCMD /boot/elvees/$FDT
    # Pass extra arguments for buggy drivers:
    # * video=... is required for vpout-drm on Salute-ELPM2 for video output
    # * blacklist=vpoutfb is recommended on Salute-EL24D1/D2 boards if video output is not
    #   required (otherwise vpoutfb reads data from DDR needlessly consuming DDR bandwidth).
    ${CMDLINE:+APPEND $CMDLINE}
EOF
