OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [arch/] [arm/] [lib/] [io-acorn.S] - Rev 1275

Go to most recent revision | Compare with Previous | Blame | View Log

/*
 *  linux/arch/arm/lib/io-acorn.S
 *
 *  Copyright (C) 1995, 1996 Russell King
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
#include <linux/config.h> /* for CONFIG_CPU_nn */
#include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/hardware.h>

                .text
                .align

                .equ    diff_pcio_base, PCIO_BASE - IO_BASE

                .macro  outw2   rd
                mov     r8, \rd, lsl #16
                orr     r8, r8, r8, lsr #16
                str     r8, [r3, r0, lsl #2]
                mov     r8, \rd, lsr #16
                orr     r8, r8, r8, lsl #16
                str     r8, [r3, r0, lsl #2]
                .endm

                .macro  inw2    rd, mask, temp
                ldr     \rd, [r0]
                and     \rd, \rd, \mask
                ldr     \temp, [r0]
                orr     \rd, \rd, \temp, lsl #16
                .endm

                .macro  addr    rd
                tst     \rd, #0x80000000
                mov     \rd, \rd, lsl #2
                add     \rd, \rd, #IO_BASE
                addeq   \rd, \rd, #diff_pcio_base
                .endm

.iosl_warning:
                .ascii  "<4>insl/outsl not implemented, called from %08lX\0"
                .align

/*
 * These make no sense on Acorn machines.
 * Print a warning message.
 */
ENTRY(insl)
ENTRY(outsl)
                adr     r0, .iosl_warning
                mov     r1, lr
                b       SYMBOL_NAME(printk)

@ Purpose: write a memc register
@ Proto  : void memc_write(int register, int value);
@ Returns: nothing

#ifdef CONFIG_CPU_26
ENTRY(memc_write)
                cmp     r0, #7
                RETINSTR(movgt,pc,lr)
                mov     r0, r0, lsl #17
                mov     r1, r1, lsl #15
                mov     r1, r1, lsr #17
                orr     r0, r0, r1, lsl #2
                add     r0, r0, #0x03600000
                strb    r0, [r0]
                RETINSTR(mov,pc,lr)
#endif

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.