macros.h
来自「Uboot源码,非常通用的bootloader.适用于各种平台的Linux系统引」· C头文件 代码 · 共 85 行
H
85 行
#ifndef _MACROS_H#define _MACROS_H /* ** Load a long integer into a register */ .macro liw reg, value lis \reg, \value@h ori \reg, \reg, \value@l .endm /* ** Generate config_addr request ** This macro expects the values in registers: ** r3 - bus ** r4 - devfn ** r5 - offset */ .macro config_addr rlwinm r9, r5, 24, 0, 6 rlwinm r8, r4, 16, 0, 31 rlwinm r7, r3, 8, 0, 31 or r9, r8, r9 or r9, r7, r9 ori r9, r9, 0x80 liw r10, 0xfec00cf8 stw r9, 0(r10) eieio sync .endm /* ** Generate config_data address */ .macro config_data mask andi. r9, r5, \mask addi r9, r9, 0xcfc oris r9, r9, 0xfee0 .endm /* ** Write a byte value to an output port */ .macro outb port, value lis r2, 0xfe00 li r0, \value stb r0, \port(r2) .endm /* ** Write a register byte value to an output port */ .macro outbr port, value lis r2, 0xfe00 stb \value, \port(r2) .endm /* ** Read a byte value from a port into a specified register */ .macro inb reg, port lis r2, 0xfe00 lbz \reg, \port(r2) .endm /* ** Write a byte to the SuperIO config area */ .macro siowb offset, value li r3, 0 li r4, (7<<3) li r5, \offset li r6, \value bl pci_write_cfg_byte .endm#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?