68 lines
690 B
ArmAsm
68 lines
690 B
ArmAsm
#include "macros.h"
|
|
|
|
|
|
.globl pci_read_cfg_byte
|
|
|
|
pci_read_cfg_byte:
|
|
config_addr
|
|
config_data 3
|
|
eieio
|
|
sync
|
|
lbz r3, 0(r9)
|
|
blr
|
|
|
|
|
|
.globl pci_write_cfg_byte
|
|
|
|
pci_write_cfg_byte:
|
|
config_addr
|
|
config_data 3
|
|
stb r6, 0(r9)
|
|
eieio
|
|
sync
|
|
blr
|
|
|
|
|
|
.globl pci_read_cfg_word
|
|
|
|
pci_read_cfg_word:
|
|
config_addr
|
|
config_data 2
|
|
lhbrx r3, 0, r9
|
|
eieio
|
|
sync
|
|
blr
|
|
|
|
|
|
.globl pci_write_cfg_word
|
|
|
|
pci_write_cfg_word:
|
|
config_addr
|
|
config_data 2
|
|
sthbrx r6, 0, r9
|
|
eieio
|
|
sync
|
|
blr
|
|
|
|
|
|
.globl pci_read_cfg_long
|
|
|
|
pci_read_cfg_long:
|
|
config_addr
|
|
config_data 0
|
|
lwbrx r3, 0, r9
|
|
eieio
|
|
sync
|
|
blr
|
|
|
|
|
|
.globl pci_write_cfg_long
|
|
|
|
pci_write_cfg_long:
|
|
config_addr
|
|
config_data 0
|
|
stwbrx r6, 0, r9
|
|
eieio
|
|
sync
|
|
blr
|