162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * This file contains miscellaneous low-level functions for PPC 44x.
462306a36Sopenharmony_ci *    Copyright 2007 David Gibson <dwg@au1.ibm.com>, IBM Corporation.
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#include <asm/reg.h>
862306a36Sopenharmony_ci#include <asm/ppc_asm.h>
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci	.text
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci/*
1362306a36Sopenharmony_ci * Do an IO access in AS1
1462306a36Sopenharmony_ci */
1562306a36Sopenharmony_ci_GLOBAL(as1_readb)
1662306a36Sopenharmony_ci	mfmsr	r7
1762306a36Sopenharmony_ci	ori	r0,r7,MSR_DS
1862306a36Sopenharmony_ci	sync
1962306a36Sopenharmony_ci	mtmsr	r0
2062306a36Sopenharmony_ci	sync
2162306a36Sopenharmony_ci	isync
2262306a36Sopenharmony_ci	lbz	r3,0(r3)
2362306a36Sopenharmony_ci	sync
2462306a36Sopenharmony_ci	mtmsr	r7
2562306a36Sopenharmony_ci	sync
2662306a36Sopenharmony_ci	isync
2762306a36Sopenharmony_ci	blr
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci_GLOBAL(as1_writeb)
3062306a36Sopenharmony_ci	mfmsr	r7
3162306a36Sopenharmony_ci	ori	r0,r7,MSR_DS
3262306a36Sopenharmony_ci	sync
3362306a36Sopenharmony_ci	mtmsr	r0
3462306a36Sopenharmony_ci	sync
3562306a36Sopenharmony_ci	isync
3662306a36Sopenharmony_ci	stb	r3,0(r4)
3762306a36Sopenharmony_ci	sync
3862306a36Sopenharmony_ci	mtmsr	r7
3962306a36Sopenharmony_ci	sync
4062306a36Sopenharmony_ci	isync
4162306a36Sopenharmony_ci	blr
42