History log of /openbmc/libmctp/ (Results 1 – 25 of 293)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
b3de343e18-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 ...

133df7ab14-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 ...

1fe5899e08-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 ...

5c90129321-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 ...

8003c71020-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 ...

e915aad410-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>

ca85ad8610-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

487b31e014-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

895083b506-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 ...

400766f907-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 ...

8803dc1206-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 ...

2a2a0f6f25-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 ...

b7824b6608-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 ...

8f58dca707-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 ...

99b9d23823-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 ...

dca8259923-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 ...

4df106db16-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 ...

7f7fdc1d12-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 ...

2608b29430-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 ...

45d1332809-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 ...

f298897708-Nov-2022 Rashmica Gupta <rashmica@linux.ibm.com>

pcap: Use SLL2 linktype for captures

This means we can use wireshark on our pcaps.

Signed-off-by: Rashmica Gupta <rashmica@linux.ibm.com>
Change-Id: I215af00e064d352e41d0a8eb87d5a30582998676

a68185c408-Dec-2022 Patrick Williams <patrick@stwcx.xyz>

prettier: re-format

Prettier is enabled in openbmc-build-scripts on Markdown, JSON, and YAML
files to have consistent formatting for these file types. Re-run the
formatter on the whole repository.

prettier: re-format

Prettier is enabled in openbmc-build-scripts on Markdown, JSON, and YAML
files to have consistent formatting for these file types. Re-run the
formatter on the whole repository.

Change-Id: Ibcba1d4dcfc062988d71ea12912b53512fa644ff
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...

8f4f161004-Dec-2022 Patrick Williams <patrick@stwcx.xyz>

shellcheck: ignore minor report in bootstrap.sh

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ief2a8bd51010576bec884cb793256c34b00d5547

a721c2d804-Dec-2022 Patrick Williams <patrick@stwcx.xyz>

format: reformat with clang-format

Reformat everything with clang-format and remove .clang-ignore and
custom code formatter.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I93dfca67

format: reformat with clang-format

Reformat everything with clang-format and remove .clang-ignore and
custom code formatter.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I93dfca67948d3fbcc0f05ece4ae3e4dd9495ab57

show more ...

0f05b6cb14-Nov-2022 Andrew Jeffery <andrew@aj.id.au>

astlpc: Refactor redundant assertion and associated logic

The type of the pkt_size member was changed from int to size_t and
therefore the assertion always holds. The assertion was protecting the
su

astlpc: Refactor redundant assertion and associated logic

The type of the pkt_size member was changed from int to size_t and
therefore the assertion always holds. The assertion was protecting the
subsequent cast to uint32_t, so the assertion is deleted and the cast
replaced by ensuring body is of the right type for the comparison.

Fixes: #10
Fixes: e889b19f4b34 ("core: Make pkt_size and pkt_pad size_t")
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: I6600bb242b66fd8510a150e1a508a7f572beb8d0

show more ...

12345678910>>...12