root/arch/arm/mach-rpc/ecard-loader.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  *  linux/arch/arm/lib/ecard.S
   4  *
   5  *  Copyright (C) 1995, 1996 Russell King
   6  *
   7  * 27/03/03 Ian Molton Clean up CONFIG_CPU
   8  */
   9 #include <linux/linkage.h>
  10 #include <asm/assembler.h>
  11 
  12 #define CPSR2SPSR(rt) \
  13                 mrs     rt, cpsr; \
  14                 msr     spsr_cxsf, rt
  15 
  16 @ Purpose: call an expansion card loader to read bytes.
  17 @ Proto  : char read_loader(int offset, char *card_base, char *loader);
  18 @ Returns: byte read
  19 
  20 ENTRY(ecard_loader_read)
  21                 stmfd   sp!, {r4 - r12, lr}
  22                 mov     r11, r1
  23                 mov     r1, r0
  24                 CPSR2SPSR(r0)
  25                 mov     lr, pc
  26                 mov     pc, r2
  27                 ldmfd   sp!, {r4 - r12, pc}
  28 
  29 @ Purpose: call an expansion card loader to reset the card
  30 @ Proto  : void read_loader(int card_base, char *loader);
  31 @ Returns: byte read
  32 
  33 ENTRY(ecard_loader_reset)
  34                 stmfd   sp!, {r4 - r12, lr}
  35                 mov     r11, r0
  36                 CPSR2SPSR(r0)
  37                 mov     lr, pc
  38                 add     pc, r1, #8
  39                 ldmfd   sp!, {r4 - r12, pc}
  40 

/* [<][>][^][v][top][bottom][index][help] */