PoE SAI solution based on the Marvell V3 protocol
PoE API and protocol between the Host software and the Power management (PM) running on the service-CPU (SCPU). The data transfer mechanism is IPC, which allows both the host and SCPU to communicate via shared memory.
| Component | Description |
|---|---|
| poelibsai-debian/usr/lib/libsai.so | shared library that provides SAI implementation |
| poelibsai-debian/usr/lib/libapp_scpu.a | vendor specific library for communication between SAI and the hardware (ARM64 architecture) |
| sai-poe-implementation/board_info/xml & md5 files | files that contain info relevant to the board (ports, pse, etc) |
| poelibsai | debian that contains all data and functions to run PoE in SAI environment |
| sai-poe-implementation/PDLIB | parsing mechanism |
| Component | Description |
|---|---|
| SAI PoE | SAI PoE source code (sai-poe-implementation/src/sai/sai_poe.c) |
| V3 PoE | Takes SAI requests and converts into V3 structures to send to the PoE firmware (sai-poe-implementation/src/poe_v3.c) |
| Shared Memory | Communication method between the application and the PoE firmware, will vary depending on the board architecture |
| PoE Firmware | PoE firmware that communicates with the PoE hardware (vendor specific) |
| PoE Hardware | PoE hardware (depends on the board architecture) |
SAI PoE Proposal (HLD) In opencomputeproject/SAI
Tested on Ubuntu 20.04.6 LTS using aarch64-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0 and Marvell Tool chain using GCC 12 for the ARM64 architecture.
cd sai-poe-implementation
./build_and_package.shcd ./sai-poe-implementation
make
cd ..
cp ./sai-poe-implementation/board_info/rdac5xpoe.xml .
md5sum rdac5xpoe.xml > rdac5xpoe.md5
mv rdac5xpoe* ./poelibsai-debian/usr/lib/
cp ./sai-poe-implementation/libsai.so ./poelibsai-debian/usr/lib/
dpkg-deb --build poelibsai-debian poelibsai.deb