// SPDX-License-Identifier: GPL-2.0+
/*
 * (C) Copyright 2011
 * Graeme Russ, <graeme.russ@gmail.com>
 */

#include <common.h>
#include <init.h>
#include <asm/global_data.h>
#include <linux/errno.h>
#include <asm/mtrr.h>

DECLARE_GLOBAL_DATA_PTR;

int init_cache_f_r(void)
{
	bool do_mtrr = CONFIG_IS_ENABLED(X86_32BIT_INIT) ||
		 IS_ENABLED(CONFIG_FSP_VERSION2);
	int ret;

	/*
	 * Supported configurations:
	 *
	 * booting from slimbootloader - in that case the MTRRs are already set
	 *	up
	 * booting with FSPv1 - MTRRs are already set up
	 * booting with FSPv2 - MTRRs must be set here
	 * booting from coreboot - in this case there is no SPL, so we set up
	 *	the MTRRs here
	 * Note: if there is an SPL, then it has already set up MTRRs so we
	 *	don't need to do that here
	 */
	do_mtrr &= !IS_ENABLED(CONFIG_SPL) &&
		!IS_ENABLED(CONFIG_FSP_VERSION1) &&
		!IS_ENABLED(CONFIG_SYS_SLIMBOOTLOADER);

	if (do_mtrr) {
		ret = mtrr_commit(false);
		/*
		 * If MTRR MSR is not implemented by the processor, just ignore
		 * it
		 */
		if (ret && ret != -ENOSYS)
			return ret;
	}

	/* Initialise the CPU cache(s) */
	return init_cache();
}
