[U-Boot] [PATCH v10 07/16] mips: Implement {in, out}_{le, be}_{16, 32, 64} and {in, out}_8
Stefan Roese
sr at denx.de
Wed Oct 10 05:58:50 UTC 2018
- Previous message: [U-Boot] [PATCH v10 07/16] mips: Implement {in, out}_{le, be}_{16, 32, 64} and {in, out}_8
- Next message: [U-Boot] [PATCH v10 07/16] mips: Implement {in, out}_{le, be}_{16, 32, 64} and {in, out}_8
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
On 04.10.2018 09:00, Mario Six wrote:
> MIPS is the only architecture currently supported by U-Boot that does
> not implement any of the in/out register access functions.
>
> To have a interface that is useable across architectures, add the
> functions to the MIPS architecture (implemented using the __raw_write
> and __raw_read functions).
>
> Reviewed-by: Simon Glass <sjg at chromium.org>
> Signed-off-by: Mario Six <mario.six at gdsys.cc>
>
> ---
>
> v9 -> v10:
> No changes
>
> v8 -> v9:
> No changes
>
> v7 -> v8:
> No changes
>
> v6 -> v7:
> No changes
>
> v5 -> v6:
> New in v6
>
> ---
> arch/mips/include/asm/io.h | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
> index 957442effd..7c40e415c7 100644
> --- a/arch/mips/include/asm/io.h
> +++ b/arch/mips/include/asm/io.h
> @@ -547,6 +547,28 @@ __BUILD_CLRSETBITS(bwlq, sfx, end, type)
> #define __to_cpu(v) (v)
> #define cpu_to__(v) (v)
>
> +#define out_arch(type, endian, a, v) __raw_write##type(cpu_to_##endian(v),a)
> +#define in_arch(type, endian, a) endian##_to_cpu(__raw_read##type(a))
> +
> +#define out_le64(a, v) out_arch(q, le64, a, v)
> +#define out_le32(a, v) out_arch(l, le32, a, v)
> +#define out_le16(a, v) out_arch(w, le16, a, v)
> +
> +#define in_le64(a) in_arch(q, le64, a)
> +#define in_le32(a) in_arch(l, le32, a)
> +#define in_le16(a) in_arch(w, le16, a)
> +
> +#define out_be64(a, v) out_arch(q, be64, a, v)
> +#define out_be32(a, v) out_arch(l, be32, a, v)
> +#define out_be16(a, v) out_arch(w, be16, a, v)
> +
> +#define in_be64(a) in_arch(q, be64, a)
> +#define in_be32(a) in_arch(l, be32, a)
> +#define in_be16(a) in_arch(w, be16, a)
> +
> +#define out_8(a, v) __raw_writeb(v, a)
> +#define in_8(a) __raw_readb(a)
> +
Reviewed-by: Stefan Roese <sr at denx.de>
Thanks,
Stefan
- Previous message: [U-Boot] [PATCH v10 07/16] mips: Implement {in, out}_{le, be}_{16, 32, 64} and {in, out}_8
- Next message: [U-Boot] [PATCH v10 07/16] mips: Implement {in, out}_{le, be}_{16, 32, 64} and {in, out}_8
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the U-Boot
mailing list