#
4058b2cb |
| 07-Nov-2024 |
Matt Johnston <matt@codeconstruct.com.au> |
control: Add basic MCTP Control Protocol handler
This will respond to the 4 mandatory MCTP Control Protocol commands. Applications can register supported types using mctp_control_add_type().
Change
control: Add basic MCTP Control Protocol handler
This will respond to the 4 mandatory MCTP Control Protocol commands. Applications can register supported types using mctp_control_add_type().
Change-Id: Ia904bcbe118626adf9254ffa71dd8e17fbdfc9b7 Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
show more ...
|
#
b3de343e |
| 18-Apr-2024 |
John Chung <john.chung@arm.com> |
serial: Support Frame Check Sequence
According to DSP0253, implementing frame check sequence via crc-16-ccitt calculation. crc-16-ccitt implementation refer to RFC1662 Appendix C.
Tested: Verified
serial: Support Frame Check Sequence
According to DSP0253, implementing frame check sequence via crc-16-ccitt calculation. crc-16-ccitt implementation refer to RFC1662 Appendix C.
Tested: Verified on sending/receiving mctp packets with mctp-serial kernel driver.
Change-Id: I8417d521589e9f40a0ca68596cdcfd061fd919cc Signed-off-by: John Chung <john.chung@arm.com>
show more ...
|
#
400766f9 |
| 07-Sep-2023 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
astlpc: Provide KCS device path as a binding argument
Currently astlpc binding expects a '/dev/mctp0' device in the system for the KCS communication. This device is a symbolic link to the real '/dev
astlpc: Provide KCS device path as a binding argument
Currently astlpc binding expects a '/dev/mctp0' device in the system for the KCS communication. This device is a symbolic link to the real '/dev/raw-kcsX' device, created by the udev rules populated by the build system. This approach is not ideal since the build system populates udev rules for the KCS3 and KCS4 channels simultaneously and for these channels only. This means that there are some design limitations for the MCTP communication. It is only possible on KCS3 or KCS4 channel, and if one of these channels is used, the other one must be disabled. To make design more flexible get rid of all the udev rules and provide '/dev/raw-kcsX' device path as an argument to the binding initialization code.
Change-Id: I505e44280636c83b59669b314f60279b371d0403 Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
Revision tags: v0.11 |
|
#
983cc3fa |
| 30-Nov-2021 |
Brad Bishop <bradleyb@fuzziesquirrel.com> |
build: compile and install utils
Build these utilities by default, so that they don't break.
Change-Id: I5096442d68e0aa291d8b9236a598a4d7128e8769 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel
build: compile and install utils
Build these utilities by default, so that they don't break.
Change-Id: I5096442d68e0aa291d8b9236a598a4d7128e8769 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
show more ...
|
#
cad47301 |
| 20-Aug-2021 |
Andrew Jeffery <andrew@aj.id.au> |
mctp-demux-daemon: Add packet capture option
Optionally enable libpcap support in mctp-demux-daemon to capture packets both from the Unix domain socket and binding interfaces. Providing the two capt
mctp-demux-daemon: Add packet capture option
Optionally enable libpcap support in mctp-demux-daemon to capture packets both from the Unix domain socket and binding interfaces. Providing the two capture points allows for tracking down issues with packets being dropped during binding initialisation.
As there's no formal linktype defined for MCTP or higher-level DMTF protocols command-line switches provide the ability to specify one of the private linktype values in the range 147-162.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I593d9e4be80c0198e643758f216e774169668a8c
show more ...
|
#
69f545f7 |
| 18-May-2021 |
Sumanth Bhat <sumanth.bhat@linux.intel.com> |
core: Handle MCTP fragment sizes
Message assembly can be terminated if case we receive a middle/end packet of unexpected size. This provision is provided in DSP0236 v1.3.1 section 8.8 incorrect tran
core: Handle MCTP fragment sizes
Message assembly can be terminated if case we receive a middle/end packet of unexpected size. This provision is provided in DSP0236 v1.3.1 section 8.8 incorrect transmission unit.
Reception of middle packets whose size is not equal to start packet and end packets whose size is not less than or equal to the start packet causes message assembly termination.
Signed-off-by: Sumanth Bhat <sumanth.bhat@linux.intel.com> Change-Id: I6371ab9e22e2c8ece70a9480f224de3f1f2f184e
show more ...
|
#
d4103f8f |
| 16-Jun-2021 |
Andrew Jeffery <andrew@aj.id.au> |
mctp-demux-daemon: Use systemd socket activation
Take advantage of lazy initialisation.
However, this also allows (one) daemon providing services over MCTP (pldmd) an opportunity to start prior to
mctp-demux-daemon: Use systemd socket activation
Take advantage of lazy initialisation.
However, this also allows (one) daemon providing services over MCTP (pldmd) an opportunity to start prior to MCTP interfaces coming up. This is a stunted way to provide capabilities that might be assumed by other components (the host) without implementing some required messages from the MCTP standard.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I4b1c21f4fd42f84e2c85a453570a74330fc70ecf
show more ...
|
#
ac1cd9dc |
| 15-Jun-2021 |
Andrew Jeffery <andrew@aj.id.au> |
libmctp: Add subdirectory for systemd metadata
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I0989331aff807928fc23a4b298ef97c491714093
|
#
745b1d15 |
| 10-May-2021 |
Andrew Jeffery <andrew@aj.id.au> |
astlpc: Ship udev rules to help with device and driver transition
Currently the OpenBMC kernel has a hacky device driver at drivers/char/misc/mctp-lpc.c that only works against KCS channel 4 on Aspe
astlpc: Ship udev rules to help with device and driver transition
Currently the OpenBMC kernel has a hacky device driver at drivers/char/misc/mctp-lpc.c that only works against KCS channel 4 on Aspeed BMCs. This hacky driver exposes an `mctp0` device node.
The intent is to replace it with one that is slightly less hacky at drivers/char/ipmi/kcs_bmc_cdev_raw.c[1], though eventually this too will be replaced by an in-kernel implementation of the entire LPC MCTP binding.
kcs_bmc_dev_raw.c works against all KCS devices in both Aspeed and Nuvoton BMC SoCs.
We need to move away from KCS channel 4 on the Aspeed BMCs as the way the hardware initialises the status bits conflicts with the protocol definition for the LPC MCTP binding[2].
Kill two birds with one stone by shipping udev rules that accomodate the new device node names that come with kcs_bmc_dev_raw.c, and symlink them upon creation to /dev/mctp0 to emulate the original mctp-lpc.c interface.
[1] https://lore.kernel.org/openbmc/20210510064955.1704652-1-andrew@aj.id.au/T/#me02d9a0e6ce82c9e0602cd615ccdad66d242af87 [2] https://github.com/openbmc/libmctp/blob/eba19a3b122a39ef2b5dbda49b418a202f78a48d/docs/bindings/vendor-ibm-astlpc.md#kcs-status-register-layout
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I21446936cea6c5e4024ec6536ad5983dd360deb2
show more ...
|
#
eba19a3b |
| 09-Mar-2021 |
Andrew Jeffery <andrew@aj.id.au> |
astlpc: Introduce protocol v3 with integrity checks
v3 of the binding adds a CRC-32 value as a medium-specific trailer to each packet passing over the binding interface.
The patch includes a naive
astlpc: Introduce protocol v3 with integrity checks
v3 of the binding adds a CRC-32 value as a medium-specific trailer to each packet passing over the binding interface.
The patch includes a naive bit-shift implementation of CRC-32, we can improve it later as necessary.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I93a95bccef30010d56e10e29b6d84554268ab7af
show more ...
|
Revision tags: v0.10 |
|
#
8d53b1c3 |
| 28-May-2020 |
Andrew Jeffery <andrew@aj.id.au> |
configure: Enable valgrind support
I've caught some issues with valgrind that were missed by the compiler sanitizers (though were interestingly picked up by the cmake build of the test suites).
Sig
configure: Enable valgrind support
I've caught some issues with valgrind that were missed by the compiler sanitizers (though were interestingly picked up by the cmake build of the test suites).
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I96ac0a331c2d7466ee66a7ce2e8d8b2b8d497d5d
show more ...
|
#
ba6727e6 |
| 13-Mar-2020 |
Wiktor Gołgowski <wiktor.golgowski@linux.intel.com> |
core: Support transport control commands
This change introduces a control message request handler for MCTP bindings. If a handler is provided, transport control messages will be forwarded to the han
core: Support transport control commands
This change introduces a control message request handler for MCTP bindings. If a handler is provided, transport control messages will be forwarded to the handler, otherwise they will be forwarded to the default handler.
Change-Id: I62266d6bf2d512ec97759c0b8a3477c5e433d609 Signed-off-by: Wiktor Gołgowski <wiktor.golgowski@linux.intel.com> [AJ: Split out general control message handler, formatting] Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
#
1e496c8b |
| 16-Jan-2020 |
Xiaochao Ma <maxiaochao@inspur.com> |
Add MCTP service file
Previous service file for this repo are contained in the corresponding meta layer. Now move it into the repository that owns them.
Signed-off-by: Xiaochao Ma <maxiaochao@inspu
Add MCTP service file
Previous service file for this repo are contained in the corresponding meta layer. Now move it into the repository that owns them.
Signed-off-by: Xiaochao Ma <maxiaochao@inspur.com> Change-Id: I15d85815483da19b08869225eb50866b49fe5575
show more ...
|
#
25de0934 |
| 05-Feb-2020 |
Andrew Jeffery <andrew@aj.id.au> |
tests: Add test_serial
Uses pipes to connect two instances (A and B) of the serial binding and passes a message exceeding the BTU from A to B.
Increases test converage for libmctp as a whole from ~
tests: Add test_serial
Uses pipes to connect two instances (A and B) of the serial binding and passes a message exceeding the BTU from A to B.
Increases test converage for libmctp as a whole from ~60% (lines and functions) to ~75% (lines and functions).
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: Iaad6f265528799148c23db9365ebf9fa748e50ee
show more ...
|
#
0247c733 |
| 05-Feb-2020 |
Andrew Jeffery <andrew@aj.id.au> |
tests: Add test_astlpc
Exercise message passing and packetisation over a dummy LPC interface injected via the ops struct. The main() plays the role of the host.
Test suite code coverage for libmctp
tests: Add test_astlpc
Exercise message passing and packetisation over a dummy LPC interface injected via the ops struct. The main() plays the role of the host.
Test suite code coverage for libmctp as a whole is lifted from ~34% (lines and functions) to ~53% (lines and functions).
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: Ied17b7fcf9b996c08ea7bea554ef4112ef0005c0
show more ...
|
#
7344ac2a |
| 09-Jan-2020 |
Andrew Jeffery <andrew@aj.id.au> |
configure: Add code coverage magic
Autoconf changed the way code-coverage was handled in the recent past, so there a slight complication so we work across both implementations.
Signed-off-by: Andre
configure: Add code coverage magic
Autoconf changed the way code-coverage was handled in the recent past, so there a slight complication so we work across both implementations.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I675c64953d262cd4b26a8ab758290ef4325790c0
show more ...
|
#
1a4ec3cd |
| 02-Sep-2019 |
Jeremy Kerr <jk@ozlabs.org> |
core,API: Add bridge support
This change introduces a facility to bridge messages between two bindings.
This is implemented through a new mctp_bridge_busses() API, which applies a new routing polic
core,API: Add bridge support
This change introduces a facility to bridge messages between two bindings.
This is implemented through a new mctp_bridge_busses() API, which applies a new routing policy, sending packets from one binding to the other. This is in contrast to the current policy of dropping all non-local packets.
To do this, the message context code needs to know both source and destination EIDs, so add them to the mctp_msg_ctx_lookup() criteria.
Also, add a small test for bridge mode.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Change-Id: If532613525ddbf81df249e26d0f23825996f7bda
show more ...
|
#
80971f84 |
| 28-Aug-2019 |
Jeremy Kerr <jk@ozlabs.org> |
Add pkg-config definition for libmctp
Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Change-Id: I276caf181d398d1b4a217f2ff59e5e7d31b47b6a
|
#
8682ef24 |
| 30-May-2019 |
Jeremy Kerr <jk@ozlabs.org> |
autotools: Install headers
Use the _HEADERS automake variables to install headers appropriately.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
|
#
c7e764a2 |
| 28-May-2019 |
Jeremy Kerr <jk@ozlabs.org> |
Rework conditional feature usage
Currently, the infrastructure that we have to enable a flexible compilation environment has a few issues:
- the allocator configuration is performed at run-time, w
Rework conditional feature usage
Currently, the infrastructure that we have to enable a flexible compilation environment has a few issues:
- the allocator configuration is performed at run-time, while the log configuration is performed at compile-time
- for a standard compile (ie, standard userspace, using autoconf+automake to build), we need a few pre-defined configuration options.
This change adds a bit of runtime selection to the logging infrastructure, to match the allocator setup. We also unify the compile-time defines into config.h, using MCTP_-prefixed macro names, allowing integration into other build systems.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
show more ...
|
#
b2ef62ba |
| 27-May-2019 |
Jeremy Kerr <jk@ozlabs.org> |
autoconfiscate
Add autoconf, libtool, automake and bootstrap tools. While this will be used for the typical "build a shared-library" use-case, we still want to support other build types that may use
autoconfiscate
Add autoconf, libtool, automake and bootstrap tools. While this will be used for the typical "build a shared-library" use-case, we still want to support other build types that may use the libmctp code directly, and not use autoconf.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
show more ...
|