openMMC
Open Source Modular MMC for AMCs
|
Functions | |
uint8_t | get_ipmb_addr (void) |
Reads own I2C slave address using GA pins. | |
Variables | |
const unsigned char | IPMBL_TABLE [IPMBL_TABLE_SIZE] |
Table holding all possible address values in IPMB specification. | |
uint8_t get_ipmb_addr | ( | void | ) |
Reads own I2C slave address using GA pins.
Based on coreipm/coreipm/mmc.c
The state of each GA signal is represented by G (grounded), U (unconnected), or P (pulled up to Management Power).
The MMC drives P1 low and reads the GA lines. The MMC then drives P1 high and reads the GA lines. Any line that changes state between the two reads indicate an unconnected (U) pin.
The IPMB-L address of a Module can be calculated as (70h + Site Number x 2).
G = 0, P = 1, U = 2
Pin | Ternary | Decimal | Address |
---|---|---|---|
GGG | 000 | 0 | 0x70 |
GGP | 001 | 1 | 0x8A |
GGU | 002 | 2 | 0x72 |
GPG | 010 | 3 | 0x8E |
GPP | 011 | 4 | 0x92 |
GPU | 012 | 5 | 0x90 |
GUG | 020 | 6 | 0x74 |
GUP | 021 | 7 | 0x8C |
GUU | 022 | 8 | 0x76 |
PGG | 100 | 9 | 0x98 |
PGP | 101 | 10 | 0x9C |
PGU | 102 | 11 | 0x9A |
PPG | 110 | 12 | 0xA0 |
PPP | 111 | 13 | 0xA4 |
PPU | 112 | 14 | 0x88 |
PUG | 120 | 15 | 0x9E |
PUP | 121 | 16 | 0x86 |
PUU | 122 | 17 | 0x84 |
UGG | 200 | 18 | 0x78 |
UGP | 201 | 19 | 0x94 |
UGU | 202 | 20 | 0x7A |
UPG | 210 | 21 | 0x96 |
UPP | 211 | 22 | 0x82 |
UPU | 212 | 23 | 0x80 |
UUG | 220 | 24 | 0x7C |
UUP | 221 | 25 | 0x7E |
UUU | 222 | 26 | 0xA2 |
const unsigned char IPMBL_TABLE[IPMBL_TABLE_SIZE] |
Table holding all possible address values in IPMB specification.