Decoding Sun Fire 25K IO boat locations

Here is how to decode the Sun Fire E25K IO Boat locations. This is useful if you are trying to jumpstart a domain that has multiple ethernet cards in it. (Note even if you only have 1 physical card, there are other “ethernet” devices on the back side for the MAN and I2 networks).

So lets take this example. Here is the out put of show-nets from a domain.

{80} ok show-nets
a) /pci@bd,700000/network@1
b) /pci@bc,700000/network@3,1
c) /pci@bc,700000/pci@1/network@1
d) /pci@bc,700000/pci@1/network@0
e) /pci@9d,700000/network@1
f) /pci@9c,700000/network@3,1
g) /pci@9c,700000/pci@1/network@1
h) /pci@9c,700000/pci@1/network@0

The first step is to convert the hexadecimal agent id into binary. The agent id in the above example (line h for reference) is 9c. So 9c in binary is 00 1001 1100. The last 5 bits identify the IOC chip. A value of 0x1c is IOC0, whereas 0x1d is IOC1. So in the above, the last 5 bits is 11100 = 1c. The remaining first 5 bits of the agent id converted from binary to decimal will tell you the expander board. So 00 100 = 4 in decimal. So from this we can tell that the network card is in Expander 4 and IOC 0.

Next is to identify the bus, that is the part after the , in the above example they are all 700000, which is bus B. Whereas 600000 is bus A.

Bus A is the 33/66-MHz, where as Bus B is the 33MHz.

So as you are looking at an IO expander the B bus is the top 2 slots, and the A bus is the bottom 2 slots. The IO bridge 0 is the right and the IO bridge 1 is the left side.

So in our example this Card is in the Top Right slot of the IO boat in expander board 4. Next since this card has 2 ports, you will see a network@0, and network@1. Which correspond to the port 0 and 1 on the card (which happens to be a dual port ethernet/scsi card).

Now that I have explained how it works, here is a quick cheat sheet:

Device Agent ID Expander board
1c 0
3c 1
5c 2
7c 3
9c 4
bc 5
dc 6
fc 7
11c 8
13c 9
15c 10
17c 11
19c 12
1bc 13
1dc 14
1fc 15
21c 16
23c 17