Update server3 logic for cem_x16_to_2x8 cable
The old logic doesn't handle the case PEXA x8 + PEXB x8 -> x16. The bifurcation rule for server3:
* PEXA x8x8 + PEXB no cable -> x8x8
* PEXA x8 + PEXB no cable -> x8
* PEXA x4x4 + PEXB no cable -> x4x4
* PEXA x16 + PEXB x16 -> x16
* PEXA x16x16 + PEXB x16x16 -> x16x16
* PEXA x8 + PEXB x8 -> x16
Tested:
* Case 1: PE0A (x16), PE0B (x16), PE1A (x8x8), PE1B (0), PE2A (x8), PE2B (0)
```
root@bmc:~# hexdump -C bios-image -s 50397184 -n 256
03010000 22 24 47 4f 4f 47 21 22 04 00 00 00 00 00 00 00 |"$GOOG!"........|
03010010 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff |................|
03010020 06 01 10 02 08 08 01 08 00 00 00 00 00 ff ff ff |................|
03010030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
```
* Case 2: PE0A (x8), PE0B (x8), PE1A (x8x8), PE1B (0), PE2A (x8), PE2B (0)
```
root@bmc:~# hexdump -C bios-image | head
00000000 06 01 10 02 08 08 01 08 00 00 00 00 ff ff ff ff |................|
```
Google-Bug-Id: 456294027
Change-Id: I5868a7c4075de8d180e5ab044b1342588145ab8f
Signed-off-by: Anh Phan <anhphan@google.com>
4 files changed