# $NetBSD: nintendo.conf,v 1.2 2026/01/10 22:46:49 jmcneill Exp $
# Nintendo PowerPC customization script used by mkimage
#
board=nintendo
resize=true
swap=true
swap_size_MB=128
swap_file=/swap
fsize=4096
bsize=4096
ffsversion=2

. ${DIR}/conf/evbppc.conf

make_label() {
	make_label_evbppc
}

make_fstab() {
	make_fstab_evbppc

	cat >> ${mnt}/etc/fstab << EOF
${swap_file} none swap sw,priority=1 0 0
EOF
}

customize() {
	customize_evbppc
	cat >> "${mnt}/etc/rc.conf" << EOF
mdnsd=YES
devpubd=YES
wscons=YES
bluetooth=YES
makemandb=NO
EOF
}

populate_wii() {
	echo "${bar} looking for kernel in ${kernel} ${bar}"
	k="${kernel}/netbsd-NINTENDO.gz"

	# install files to /boot partition
	tgt="apps/netbsd/boot.elf"
	echo "${bar} installing ${k} to /boot/${tgt} ${bar}"
	mkdir -p "${mnt}/boot/apps/netbsd"
	case "${k}" in
	*.gz)
		${GZIP_CMD} -dc "${k}" > "${mnt}/boot/${tgt}"
		;;
	*)
		cp "${k}" "${mnt}/boot/${tgt}"
		;;
	esac

	# Metadata for HBC
	cp ${DIR}/files/evbppc_wii_meta.xml ${mnt}/boot/apps/netbsd/meta.xml
	cp ${DIR}/files/evbppc_wii_icon.png ${mnt}/boot/apps/netbsd/icon.png

	# MINI bootloader
	mkdir -p "${mnt}/boot/bootmii"
	cp "${release}/usr/mdec/ppcboot.elf" "${mnt}/boot/bootmii/ppcboot.elf"
}

populate_wiiu() {
	echo "${bar} looking for kernel in ${kernel} ${bar}"
	k="${kernel}/netbsd-NINTENDO.MP.gz"

	# install files to /boot partition
	tgt="netbsd"
	echo "${bar} installing ${k} to /boot/${tgt} ${bar}"
	mkdir -p "${mnt}/boot"
	case "${k}" in
	*.gz)
		${GZIP_CMD} -dc "${k}" > "${mnt}/boot/${tgt}"
		;;
	*)
		cp "${k}" "${mnt}/boot/${tgt}"
		;;
	esac

	# Linux-loader config
	mkdir -p "${mnt}/boot/linux"
	cat >> "${mnt}/boot/linux/boot.cfg" << EOF
[loader]
default=netbsd

[profile:netbsd]
name=NetBSD
kernel=sdmc:/netbsd
cmdline=root=ld0a
EOF
}

populate() {
	populate_wii
	populate_wiiu

	# Add swap space
	rm -f ${mnt}${swap_file}
	dd if=/dev/zero of=${mnt}${swap_file} bs=1 count=1 \
	    seek=$((${swap_size_MB} * 1024 * 1024 - 1))
	echo ".${swap_file} type=file uname=root gname=wheel mode=0600" \
            >> "$tmp/selected_sets"
}
