mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-22 09:58:52 +09:00
![wdenk](/assets/img/avatar_default.png)
- remove trailing white space, trailing empty lines, C++ comments, etc. - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c) * Patches by Kenneth Johansson, 25 Jun 2003: - major rework of command structure (work done mostly by Michal Cendrowski and Joakim Kristiansen)
85 lines
1.3 KiB
C
85 lines
1.3 KiB
C
|
|
#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
|