Skip to content

ACO PCIe setting

Wataru Ishida edited this page May 1, 2019 · 2 revisions

From v0.7.0, ACO PCIe setting is experimentally supported.

PCIe access enables faster bring up compared to i2c/mdio access. Also, it enables interesting features like real-time constellation monitoring which will be added in the future releases.

To use ACO PCIe access, reload the PCIe kernel module with the following steps.

$ lsmod
Module                  Size  Used by
x86_64_accton_as7716_24xc_dsp     4550  0
linux_user_bde         17390  0
linux_kernel_bde       41347  1 linux_user_bde
x86_64_accton_as7716_24xc_sfp     6590  0
x86_64_accton_as7716_24xc_dps850     3839  0
x86_64_accton_as7716_24xc_psu     2102  0
x86_64_accton_as7716_24xc_fan     4174  0
x86_64_accton_as7716_24xc_leds     4017  0
accton_i2c_cpld         6278  3 x86_64_accton_as7716_24xc_leds,x86_64_accton_as7716_24xc_psu,x86_64_accton_as7716_24xc_sfp
$ rmmod x86_64_accton_as7716_24xc_dsp
$ insmod /lib/modules/3.16.39-OpenNetworkLinux/onl/accton/x86-64-accton-as7716-24xc/x86-64-accton-as7716-24xc-dsp.ko
$ dmesg
[ 8382.023572] dsp_init_module : DSP Driver - 0.2.0
[ 8382.027288] dsp_init_module : Copyright (c) 2016 NTT Electronics Corporation.
[ 8382.033806] dsp_init_module : Major = 125  Minor = 0
[ 8382.037938] dsp_probe : Probe.
[ 8382.039888] dsp_probe : VendorID:14E4, DeviceID:A001, Rev:00
[ 8382.044866] dsp_probe : index=0, base=FBA00000 length=1000 flags=14220C
[ 8382.051157] dsp_probe : BAR0 Phys=FBA00000 Logi=ffffc90016e84000
[ 8382.056418] dsp_probe : Probe.
[ 8382.058378] dsp_probe : VendorID:14E4, DeviceID:A001, Rev:00
[ 8382.063323] dsp_probe : index=1, base=FB900000 length=1000 flags=14220C
[ 8382.069260] dsp_probe : BAR0 Phys=FB900000 Logi=ffffc90016e86000
[ 8382.074524] dsp_probe : Probe.
[ 8382.076472] dsp_probe : VendorID:14E4, DeviceID:A001, Rev:00
[ 8382.081402] dsp_probe : index=2, base=FB800000 length=1000 flags=14220C
[ 8382.087337] dsp_probe : BAR0 Phys=FB800000 Logi=ffffc90016e88000

You can see 3 devices (index=0,1,2) are recognized by the driver. At this point, you need to manually check which device corresponds to which PIU. Let's assume index=0 is the leftmost slot, index=1 is the second slot and index=2 is the third slot.

note the forth from the left slot doesn't support PCIe access. Use slots other than that for PCIe access.

Create device files which correspond to each devices.

$ mknod /dev/dsp0 c 125 0
$ mknod /dev/dsp1 c 125 1
$ mknod /dev/dsp2 c 125 2

Edit /etc/tai/nel/config.json to use PCIe access.

$ mkdir -p /etc/tai/nel
$ cat /etc/tai/nel/config.json
[
{"dsp-io-dev":"/dev/dsp0"},
{"dsp-io-dev":"/dev/dsp1"},
{"dsp-io-dev":"/dev/dsp2"},
{},
{},
{},
{},
{}
]

Reboot oopt system

oopt reboot
Clone this wiki locally