18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2007 Lemote Inc. & Institute of Computing Technology
48c2ecf20Sopenharmony_ci * Author: Fuxin Zhang, zhangfx@lemote.com
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci#include <linux/export.h>
78c2ecf20Sopenharmony_ci#include <linux/init.h>
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#include <asm/wbflush.h>
108c2ecf20Sopenharmony_ci#include <asm/bootinfo.h>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci#include <loongson.h>
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_cistatic void wbflush_loongson(void)
158c2ecf20Sopenharmony_ci{
168c2ecf20Sopenharmony_ci	asm(".set\tpush\n\t"
178c2ecf20Sopenharmony_ci	    ".set\tnoreorder\n\t"
188c2ecf20Sopenharmony_ci	    ".set mips3\n\t"
198c2ecf20Sopenharmony_ci	    "sync\n\t"
208c2ecf20Sopenharmony_ci	    "nop\n\t"
218c2ecf20Sopenharmony_ci	    ".set\tpop\n\t"
228c2ecf20Sopenharmony_ci	    ".set mips0\n\t");
238c2ecf20Sopenharmony_ci}
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_civoid (*__wbflush)(void) = wbflush_loongson;
268c2ecf20Sopenharmony_ciEXPORT_SYMBOL(__wbflush);
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_civoid __init plat_mem_setup(void)
298c2ecf20Sopenharmony_ci{
308c2ecf20Sopenharmony_ci}
31