2f1a1f66 | 08-Aug-2024 |
George Liu <liuxiwei@ieisystem.com> |
vendor-ibm-astlpc.md: Remove extra trailing spaces
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: Ibe64b5c1974b332f456683679900c94bab25e1a3 |
a0798298 | 04-Aug-2024 |
George Liu <liuxiwei@ieisystem.com> |
vendor-ibm-astlpc.md: Fix MD036 warnings
The following warnings are generated by using markdownlint analysis: ``` docs/bindings/vendor-ibm-astlpc.md:26 MD036/no-emphasis-as-heading Emphasis used ins
vendor-ibm-astlpc.md: Fix MD036 warnings
The following warnings are generated by using markdownlint analysis: ``` docs/bindings/vendor-ibm-astlpc.md:26 MD036/no-emphasis-as-heading Emphasis used instead of a heading [Context: "BTU: Baseline Transmission Uni..."] docs/bindings/vendor-ibm-astlpc.md:31 MD036/no-emphasis-as-heading Emphasis used instead of a heading [Context: "IBF: Input Buffer Full"] docs/bindings/vendor-ibm-astlpc.md:37 MD036/no-emphasis-as-heading Emphasis used instead of a heading [Context: "IDR: Input Data Register"] docs/bindings/vendor-ibm-astlpc.md:42 MD036/no-emphasis-as-heading Emphasis used instead of a heading [Context: "KCS: Keyboard-Controller-Style"] docs/bindings/vendor-ibm-astlpc.md:52 MD036/no-emphasis-as-heading Emphasis used instead of a heading [Context: "LPC Bus: Low Pin Count Bus"] docs/bindings/vendor-ibm-astlpc.md:57 MD036/no-emphasis-as-heading Emphasis used instead of a heading [Context: "LPC FW: LPC Firmware Cycles"] docs/bindings/vendor-ibm-astlpc.md:64 MD036/no-emphasis-as-heading Emphasis used instead of a heading [Context: "MTU: Maximum Transmission Unit"] docs/bindings/vendor-ibm-astlpc.md:70 MD036/no-emphasis-as-heading Emphasis used instead of a heading [Context: "OBF: Output Buffer Full"] docs/bindings/vendor-ibm-astlpc.md:76 MD036/no-emphasis-as-heading Emphasis used instead of a heading [Context: "ODR: Output Data Register"] docs/bindings/vendor-ibm-astlpc.md:81 MD036/no-emphasis-as-heading Emphasis used instead of a heading [Context: "STR: Status Register"] ``` Refer to markdown-lint [1] to fix MD036 [1]: https://github.com/updownpress/markdown-lint/blob/master/rules/036-no-emphasis-as-header.md
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: Id56964b7edff73c060215d27b55e558304b83269
show more ...
|
d65b7d30 | 04-Aug-2024 |
George Liu <liuxiwei@ieisystem.com> |
vendor-ibm-astlpc.md: Fix MD034 warnings
The following warnings are generated by using markdownlint analysis: ``` docs/bindings/vendor-ibm-astlpc.md:15:4 MD034/no-bare-urls Bare URL used [Context: "
vendor-ibm-astlpc.md: Fix MD034 warnings
The following warnings are generated by using markdownlint analysis: ``` docs/bindings/vendor-ibm-astlpc.md:15:4 MD034/no-bare-urls Bare URL used [Context: "http://www.dmtf.org/standards/..."] docs/bindings/vendor-ibm-astlpc.md:18:4 MD034/no-bare-urls Bare URL used [Context: "https://www.intel.com/content/..."] docs/bindings/vendor-ibm-astlpc.md:22:4 MD034/no-bare-urls Bare URL used [Context: "http://download.intel.com/desi..."] ``` Refer to markdown-lint [1] to fix MD034 [1]: https://github.com/updownpress/markdown-lint/blob/master/rules/034-no-bare-urls.md
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: I6a25ee9610678378e50ff5d2d6c953f1084d80ae
show more ...
|
fbb6f40e | 04-Aug-2024 |
George Liu <liuxiwei@ieisystem.com> |
README.md: Fix MD030 warnings
The following warnings are generated by using markdownlint analysis: ``` README.md:101:1 MD030/list-marker-space Spaces after list markers [Expected: 1; Actual: 2] READ
README.md: Fix MD030 warnings
The following warnings are generated by using markdownlint analysis: ``` README.md:101:1 MD030/list-marker-space Spaces after list markers [Expected: 1; Actual: 2] README.md:104:1 MD030/list-marker-space Spaces after list markers [Expected: 1; Actual: 2] ``` Refer to markdown-lint [1] to fix MD030 [1]: https://github.com/updownpress/markdown-lint/blob/master/rules/030-list-marker-space.md
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: I3cbcd5500404651ce7c98efa25504ad6dbe6284b
show more ...
|
fecb358b | 04-Aug-2024 |
George Liu <liuxiwei@ieisystem.com> |
README.md: Fix MD034 warnings
The following warnings are generated by using markdownlint analysis: ``` MD034/no-bare-urls Bare URL used [Context: "openbmc@lists.ozlabs.org"] MD034/no-bare-urls Bare
README.md: Fix MD034 warnings
The following warnings are generated by using markdownlint analysis: ``` MD034/no-bare-urls Bare URL used [Context: "openbmc@lists.ozlabs.org"] MD034/no-bare-urls Bare URL used [Context: "https://discord.gg/69Km47zH98"] ``` Refer to markdown-lint [1] to fix MD034 [1]: https://github.com/updownpress/markdown-lint/blob/master/rules/034-no-bare-urls.md
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: Id5398d4ddf6e2e157e91e40b69ce1dcaa8aaf7d6
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 ...
|
133df7ab | 14-May-2024 |
John Chung <john.chung@arm.com> |
core: Allow to handle destination null and broadcast endpoint id
mctp daemon might query endpoint (i.e., get endpoint id command) by physical addressed requests and set destination eid as 0.
Curren
core: Allow to handle destination null and broadcast endpoint id
mctp daemon might query endpoint (i.e., get endpoint id command) by physical addressed requests and set destination eid as 0.
Current implementation will block handling destination null and broadcast endpoint id for MCTP control message type.
Change-Id: Ie17035f88a80649e848fab93159a23172de0a33a Signed-off-by: John Chung <john.chung@arm.com>
show more ...
|
1fe5899e | 08-Jan-2024 |
Nikhil Namjoshi <nikhilnamjoshi@google.com> |
serial: Recover the state machine when a request's bytes are dropped
Today we use the byte 0x7e to indicate serial framing flag and serial trailing flag as well. In cases, when a request fails due t
serial: Recover the state machine when a request's bytes are dropped
Today we use the byte 0x7e to indicate serial framing flag and serial trailing flag as well. In cases, when a request fails due to certain bytes getting dropped, the libmctp serial state machine never recovers and all the subsequent requests fail. This is happens because the serial trailing flag is same as the framing flag.
Assuming an example packet
7e 01 04 ff ff ff ff 85 72 7e where 7e -> MCTP Serial Framing Flag 01 -> MCTP Serial Revision 04 -> Length of the Data bytes Next 4 bytes -> Data Bytes 85 -> fcs1 72 -> fcs2 7e -> MCTP Serial Trailing Flag
If some bytes are dropped (say 1st 4 bytes 7e 01 04 ff) in hardware or on the requester driver, then the libmctp responder state machine will catch this and drop all the packets until it gets the next MCTP Serial Framing Byte. However since the MCTP Serial Trailing byte of the current request is also 0x7e, the state machine would assume this to be start of the packet for next request and will soon realize that the next byte 0x7e (next request's MCTP Serial Framing Byte) is not MCTP_SERIAL_REVISION i.e. 0x01. So it will start dropping bytes for the next request too.
We can recover from this scenario, as here the failed request's trailer flag would take us to STATE_WAIT_REVISION, where we will receive 0x7e (next request's framing flag)
Tested: Verified the fix on a real scenario where bytes get dropped in USB hardware. The state machine responds with failure for the current request, but is able to process the next requests fine.
Change-Id: I9d853876a9765671d0067df21aab006bcf116dbc Signed-off-by: Nikhil Namjoshi <nikhilnamjoshi@google.com>
show more ...
|
5c901293 | 21-Dec-2023 |
Andrew Jeffery <andrew@aj.id.au> |
OWNERS: Update Andrew's preferred email
We're having some grief with non-preferred emails in Gerrit[1]. I now prefer project-related content goes to my work email address, so use my non-preferred em
OWNERS: Update Andrew's preferred email
We're having some grief with non-preferred emails in Gerrit[1]. I now prefer project-related content goes to my work email address, so use my non-preferred email to implement the switch.
[1]: https://issues.gerritcodereview.com/issues/317345953
Change-Id: I0127666566bfb8c59049c01a8a6f9015d00543f9 Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
8003c710 | 20-Oct-2023 |
Patrick Williams <patrick@stwcx.xyz> |
clang-format: copy latest and re-format
Copy the latest .clang-format from the docs repository and reformat the repository.
Change-Id: I0660e9f3f0a6a54fc229e034191295a27ffd5c52 Signed-off-by: Patri
clang-format: copy latest and re-format
Copy the latest .clang-format from the docs repository and reformat the repository.
Change-Id: I0660e9f3f0a6a54fc229e034191295a27ffd5c52 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
show more ...
|
e915aad4 | 10-Aug-2022 |
Rashmica Gupta <rashmica@linux.ibm.com> |
tests: undef NDEBUG in tests
So we can run tests even when compiled with -DNDEBUG
Change-Id: Iebb8399409e2b0a5172529e08bcac188956fd925 Signed-off-by: Rashmica Gupta <rashmica@linux.ibm.com> |
ca85ad86 | 10-Aug-2022 |
Rashmica Gupta <rashmica@linux.ibm.com> |
tests: bridge: Use unique names for bindings
This makes debugging easier.
Signed-off-by: Rashmica Gupta <rashmica@linux.ibm.com> Change-Id: I43d225434e0724244fef3faaf5ab95b7094cca84 |
487b31e0 | 14-Sep-2022 |
Rashmica Gupta <rashmica@linux.ibm.com> |
core: Ensure mctp_pktbuf_alloc() initialises end-offset in-bounds
Signed-off-by: Rashmica Gupta <rashmica@linux.ibm.com> Change-Id: I423fea60fbc5a40e66761b3a66bf9b44c3a9bc84 |
895083b5 | 06-Oct-2023 |
Andrew Jeffery <andrew@codeconstruct.com.au> |
configure.ac: Run autoupdate
Deal with the following warning:
``` configure.ac:25: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:25: You should run autoupdate. ```
Change-Id: Ia9f5
configure.ac: Run autoupdate
Deal with the following warning:
``` configure.ac:25: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:25: You should run autoupdate. ```
Change-Id: Ia9f5431a9a4d6b5d204c6f6acd8eb71ab944505c Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
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 ...
|
8803dc12 | 06-Sep-2023 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
gitignore: Don't ignore all '*.in' files
Currently .gitignore file contains the '*.in' pattern to ignore build files 'Makefile.in' and 'config.h.in'. But this pattern shouldn't be used since the rep
gitignore: Don't ignore all '*.in' files
Currently .gitignore file contains the '*.in' pattern to ignore build files 'Makefile.in' and 'config.h.in'. But this pattern shouldn't be used since the repository contains files like 'libmctp.pc.in' or 'udev/rules.d/mctp0-raw-kcsX.rules.in'. To solve the issue drop the '*.in' pattern from the ignore list and add 'Makefile.in' and 'config.h.in' directly.
Change-Id: Idfac893a6b5430b2492301ec633c9fc53059f503 Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
2a2a0f6f | 25-Aug-2023 |
Konstantin Aladyshev <aladyshev22@gmail.com> |
serial: Initialize pkt_trailer for the binding
Currently the pkt_trailer for the binding is not initialized explicitly. Fix typo to correct the issue.
Change-Id: I2d3af589886fabd17aa8f7c432bf92cd92
serial: Initialize pkt_trailer for the binding
Currently the pkt_trailer for the binding is not initialized explicitly. Fix typo to correct the issue.
Change-Id: I2d3af589886fabd17aa8f7c432bf92cd923e0640 Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
show more ...
|
b7824b66 | 08-Aug-2023 |
Benjamin Gwin <bgwin@google.com> |
core: Fix use of wrong 'free' function
This memory was allocated using `__mctp_alloc` but mistakenly being free with plain `free`, causing a potential heap corruption or crash if users define their
core: Fix use of wrong 'free' function
This memory was allocated using `__mctp_alloc` but mistakenly being free with plain `free`, causing a potential heap corruption or crash if users define their own malloc hooks.
Signed-off-by: Benjamin Gwin <bgwin@google.com> Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I1d78f62098e5d9b57e58e4dd90c4841b2923300d
show more ...
|
8f58dca7 | 07-Aug-2023 |
Jason M. Bills <jason.m.bills@intel.com> |
Remove Richard
Richard has left the project and asked that I remove him from the OWNERS file.
Change-Id: I8eead098234788889bddd71a3a65cc57ea6004b0 Signed-off-by: Jason M. Bills <jason.m.bills@intel
Remove Richard
Richard has left the project and asked that I remove him from the OWNERS file.
Change-Id: I8eead098234788889bddd71a3a65cc57ea6004b0 Signed-off-by: Jason M. Bills <jason.m.bills@intel.com>
show more ...
|
99b9d238 | 23-Jun-2023 |
Andrew Jeffery <andrew@aj.id.au> |
astlpc: Log changes to KCS status register
Break down what the current state of the interface is whenever it changes.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: Ic636f5cd471f35da785
astlpc: Log changes to KCS status register
Break down what the current state of the interface is whenever it changes.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: Ic636f5cd471f35da7851da0e448e62417104cd3e
show more ...
|
dca82599 | 23-Jun-2023 |
Andrew Jeffery <andrew@aj.id.au> |
mctp-demux-daemon: Change default log level to MCTP_LOG_NOTICE
This allows us to log things that aren't warnings or errors but do need some attention, more so than info-level issues.
Signed-off-by:
mctp-demux-daemon: Change default log level to MCTP_LOG_NOTICE
This allows us to log things that aren't warnings or errors but do need some attention, more so than info-level issues.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I99779ebb4f15672e969337be8e52e247d803deb1
show more ...
|
4df106db | 16-May-2023 |
Frederic Barrat <fbarrat@linux.ibm.com> |
astlpc: Add mctp_astlpc_tx_done() API
Add the mctp_astlpc_tx_done() API to help with packet transfer performance when using the LPC binding with the Aspeed BMC. The goal of the API is to tell the ca
astlpc: Add mctp_astlpc_tx_done() API
Add the mctp_astlpc_tx_done() API to help with packet transfer performance when using the LPC binding with the Aspeed BMC. The goal of the API is to tell the caller that the Transmit buffer has been consumed by the remote side, i.e. the Rx_complete command has been received locally. It can be helpful on the host side because of the way the Aspeed BMC implements the KCS devices.
The Aspeed BMC's KCS device doesn't provide an interrupt when the ODR register is read by the remote client/host. To workaround it, the linux KCS driver for Aspeed arms a timer to periodically check (every 0.5 second in the current implementation) the state of the register and generate an "Output Buffer Empty" (OBE) event to wake up any client on the BMC, for example the mctp-demux-daemon.
Typically, the mctp-demux-daemon waits in the poll() system call and wakes up when it receives a packet. When it's coming from the LPC bus and KCS device, the remote writes a Tx_begin command in the IDR register, which does generate an interrupt. To acknowledge the packet, the mctp-demux-daemon writes a Tx_complete command in the ODR and can then dispatch the request to the proper recipient (i.e. the PLDM daemon). When it wants to send a message on the LPC bus, the mctp-demux-daemon needs to wait till the ODR register has been read by the remote. Because we don't have an interrupt to know when that happens, the mctp-demux-daemon waits in poll() and will be awaken when an OBE event is generated by a background thread processing the timer interrupt. So when the mctp-demux-daemon enters poll() with something to send on the LPC bus, if the ODR is not available immediately, it will only be sent after the timer fires. Which could take up to 0.5s with the current driver implementation.
So when the host sends a PLDM request, it is therefore crucial, for good performance, that it reads the Rx_complete command out of the ODR very quickly when it's sending a MCTP packet as to free it and make sure the mctp-demux-daemon can send the reply immediately instead of having to wait in poll(). That's where the new mctp_astlpc_tx_done() helps: immediately after sending a message, the host can call repeatedly mctp_astlpc_poll() to read the KCS device status and read the ODR as fast as possible and with the mctp_astlpc_tx_done() API, it knows when to stop. Pseudo code looks like this (ignoring that we should timeout out of the loop after a while):
mctp_message_tx() while (!mctp_astlpc_tx_done(astlpc)) { mctp_astlpc_poll(astlpc); }
Note that the API, while generic, is (so far) only useful when called from a remote LPC endpoint.
Change-Id: I5e6d62aa142fe97449ccf9c9a2ade3cf45d02bf6 Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
show more ...
|
7f7fdc1d | 12-May-2023 |
Andrew Jeffery <andrew@aj.id.au> |
clang-format: copy latest and re-format
clang-format-16 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest
clang-format: copy latest and re-format
clang-format-16 has some backwards incompatible changes that require additional settings for best compatibility and re-running the formatter. Copy the latest .clang-format from the docs repository and reformat the repository.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: Ic5b4c8584fafe5ebe3d01c1f685cab271dd9690b
show more ...
|
2608b294 | 30-Mar-2023 |
Pedro Martelletto <martelletto@google.com> |
core: check for __mctp_alloc() failure in mctp_pktbuf_alloc()
Check for allocation failure in mctp_pktbuf_alloc(), as done elsewhere in the code.
Change-Id: If3b6d84335d87f4d0ddef059910e63edab82a30
core: check for __mctp_alloc() failure in mctp_pktbuf_alloc()
Check for allocation failure in mctp_pktbuf_alloc(), as done elsewhere in the code.
Change-Id: If3b6d84335d87f4d0ddef059910e63edab82a30e Signed-off-by: Pedro Martelletto <martelletto@google.com> Signed-off-by: Moritz Fischer <moritzf@google.com>
show more ...
|
45d13328 | 09-Aug-2022 |
Rashmica Gupta <rashmica@linux.ibm.com> |
astlpc: Use enums instead of hardcoded numbers
This makes it slightly easier to read the code.
Change-Id: Iab8df93fc330fda4b89d2a77922ca73f7a7ad1a1 Signed-off-by: Rashmica Gupta <rashmica@linux.ibm
astlpc: Use enums instead of hardcoded numbers
This makes it slightly easier to read the code.
Change-Id: Iab8df93fc330fda4b89d2a77922ca73f7a7ad1a1 Signed-off-by: Rashmica Gupta <rashmica@linux.ibm.com>
show more ...
|