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
tree: a479c9a20d2769c93ab1f3e995abca87db85bb6f
  1. fru/
  2. usb/
  3. .clang-format
  4. meson.build
  5. meson_options.txt