<feed xmlns='http://www.w3.org/2005/Atom'>
<title>phosphor-mboxbridge/test, branch master</title>
<subtitle>OpenBMC Phosphor Flash mailbox bridge daemon sources</subtitle>
<id>https://git.raptorcs.com/git/phosphor-mboxbridge/atom?h=master</id>
<link rel='self' href='https://git.raptorcs.com/git/phosphor-mboxbridge/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/'/>
<updated>2019-03-19T06:10:59+00:00</updated>
<entry>
<title>mboxd: Add backend DBus interface and commandline options</title>
<updated>2019-03-19T06:10:59+00:00</updated>
<author>
<name>Andrew Jeffery</name>
<email>andrew@aj.id.au</email>
</author>
<published>2019-03-15T02:10:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/commit/?id=5320f6e02453261e6c75d3bef101ad1bef6de82e'/>
<id>urn:sha1:5320f6e02453261e6c75d3bef101ad1bef6de82e</id>
<content type='text'>
Also implement a backend commandline option to mboxctl: `mboxctl
--backend ...`, to allow easy run-time switching of the backend from the
commandline.

Switching between VPNOR and file backends via mboxctl was tested on
Witherspoon, and MTD and file backends on Romulus.

Change-Id: Iaf0e27ecf1d5cdd9e3a31729fb179096bbc37408
Signed-off-by: Andrew Jeffery &lt;andrew@aj.id.au&gt;
</content>
</entry>
<entry>
<title>mboxd: Remove flash API compatibility shim</title>
<updated>2019-03-18T00:16:11+00:00</updated>
<author>
<name>Andrew Jeffery</name>
<email>andrew@aj.id.au</email>
</author>
<published>2019-03-14T06:06:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/commit/?id=0297e5b82ea1bf8b151f8208c5f28a121d82eb4c'/>
<id>urn:sha1:0297e5b82ea1bf8b151f8208c5f28a121d82eb4c</id>
<content type='text'>
The flash API compatibility was kept to reduce the line noise in the
previous backend patch. Remove the compatibility layer now and convert
the remaining call-sites.

Change-Id: I4b6e54f4463059a7804918add81e7572db7b7c21
Signed-off-by: Andrew Jeffery &lt;andrew@aj.id.au&gt;
</content>
</entry>
<entry>
<title>mboxd: Add a backend abstraction layer to mboxd.</title>
<updated>2019-03-18T00:16:11+00:00</updated>
<author>
<name>Evan Lojewski</name>
<email>github@meklort.com</email>
</author>
<published>2019-03-14T04:04:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/commit/?id=f1e547c74563d59f60d918c6fa673bb8cee6e669'/>
<id>urn:sha1:f1e547c74563d59f60d918c6fa673bb8cee6e669</id>
<content type='text'>
Introduce a backend abstraction, enabling multiple implementations to be
compiled in at once. This change formally abstracts the two existing
backends, mtd and vpnor.

With the backend abstraction in place, subsequent backends are easier to
implement.

This change is based of Evan's work and he retains authorship credit. I
(AJ) have reworked the patch to pass the vpnor tests, refactored some
parts to enable broader use of const structures and others to clarify
the initialisation sequences.

Due to the existing lack of abstraction the patch has unfortunately
wide-ranging impacts. I've whittled it down as much as I consider
reasonable.

Change-Id: I29984a36dae4ea86ec00b853d2a756f0b9afb3ec
Signed-off-by: Evan Lojewski &lt;github@meklort.com&gt;
Signed-off-by: Andrew Jeffery &lt;andrew@aj.id.au&gt;
</content>
</entry>
<entry>
<title>flash: Introduce flash_validate()</title>
<updated>2019-03-18T00:16:11+00:00</updated>
<author>
<name>Andrew Jeffery</name>
<email>andrew@aj.id.au</email>
</author>
<published>2019-03-14T23:24:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/commit/?id=cb93504ed0fefa23186415accca6c0812174f274'/>
<id>urn:sha1:cb93504ed0fefa23186415accca6c0812174f274</id>
<content type='text'>
Clean up the protocol_negotiate_version() mess. The existing approach
came about due to viewing the vpnor implementation as an edge case in
its own right. The code becomes much neater if we consider all backends
as equal and afford them the callbacks necessary for correct behaviour.

Change-Id: Ifaeee9da459818cf22b2f137ddc5b8d0356b9be9
Signed-off-by: Andrew Jeffery &lt;andrew@aj.id.au&gt;
</content>
</entry>
<entry>
<title>test/flash_copy: Configure MTD device to avoid undefined behaviour</title>
<updated>2019-03-15T12:12:12+00:00</updated>
<author>
<name>Andrew Jeffery</name>
<email>andrew@aj.id.au</email>
</author>
<published>2019-03-14T06:12:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/commit/?id=2dfc2a22a26b8726b1da336e952c3d05ebe02aed'/>
<id>urn:sha1:2dfc2a22a26b8726b1da336e952c3d05ebe02aed</id>
<content type='text'>
Otherwise we observe invalid memory accesses due to uninitialised
variables.

Change-Id: I8b9063ccc9a25b225a562ebe120f2a99a28788ca
Signed-off-by: Andrew Jeffery &lt;andrew@aj.id.au&gt;
</content>
</entry>
<entry>
<title>test/mbox: Assert that the flash fd is sane</title>
<updated>2019-03-15T12:12:12+00:00</updated>
<author>
<name>Andrew Jeffery</name>
<email>andrew@aj.id.au</email>
</author>
<published>2019-03-14T04:27:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/commit/?id=7c1588aad84b8aa680e1cdf32c10092221a067fe'/>
<id>urn:sha1:7c1588aad84b8aa680e1cdf32c10092221a067fe</id>
<content type='text'>
Change-Id: I8f08db1b0ae19197c3fb8c4053deab900154a125
Signed-off-by: Andrew Jeffery &lt;andrew@aj.id.au&gt;
</content>
</entry>
<entry>
<title>test/mbox: Use assertions for error handling</title>
<updated>2019-03-15T12:12:12+00:00</updated>
<author>
<name>Andrew Jeffery</name>
<email>andrew@aj.id.au</email>
</author>
<published>2019-03-14T04:26:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/commit/?id=bf2417e5efaf799ca196d61aafd481c916d11bf8'/>
<id>urn:sha1:bf2417e5efaf799ca196d61aafd481c916d11bf8</id>
<content type='text'>
No need to try to exit gracefully in the test cases.

Change-Id: Id558c5201c08bdb0b34859cb3af1a0efa1a2809b
Signed-off-by: Andrew Jeffery &lt;andrew@aj.id.au&gt;
</content>
</entry>
<entry>
<title>test: Add windows_equally_evictable</title>
<updated>2018-09-14T07:22:34+00:00</updated>
<author>
<name>Andrew Jeffery</name>
<email>andrew@aj.id.au</email>
</author>
<published>2018-08-28T07:20:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/commit/?id=c84b8f8f6fec341215f8317173be3603c3bca05a'/>
<id>urn:sha1:c84b8f8f6fec341215f8317173be3603c3bca05a</id>
<content type='text'>
Tests for the condition where the minimum age is less than any window's
current age, in which case we can get a NULL dereference if the
windows_reset_all() implementation is broken.

    windows.c:409:23: runtime error: member access within null pointer of type 'struct window_context'
    ASAN:DEADLYSIGNAL
    =================================================================
    ==31400==ERROR: AddressSanitizer: SEGV on unknown address 0x00000004 (pc 0x0002b658 bp 0x74c00270 sp 0x7eb7c678 T0)
    ==31400==The signal is caused by a WRITE memory access.
    ==31400==Hint: address points to the zero page.
        #0 0x2b657 in window_reset windows.c:410
        #1 0x2cc9b in windows_create_map windows.c:572
        #2 0x1f3f3 in protocol_v1_create_window protocol.c:167
        #3 0x2121b in protocol_v2_create_window protocol.c:417
        #4 0x24cd7f in generic_vpnor_create_window vpnor/protocol.cpp:51
        #5 0x24d053 in protocol_v2_vpnor_create_window vpnor/protocol.cpp:63
        #6 0x2663b in mbox_handle_create_window transport_mbox.c:282
        #7 0x276db in handle_mbox_req transport_mbox.c:568
        #8 0x276db in transport_mbox_dispatch transport_mbox.c:649
        #9 0x17fcb in poll_loop mboxd.c:185
        #10 0x17fcb in main mboxd.c:423
        #11 0x46b68517 in __libc_start_main (/lib/libc.so.6+0x46b68517)

    AddressSanitizer can not provide additional info.
    SUMMARY: AddressSanitizer: SEGV windows.c:410 in window_reset
    ==31400==ABORTING

Change-Id: I8161e2ea17953e196d4bb3ca90d19e44ec10c86d
Signed-off-by: Andrew Jeffery &lt;andrew@aj.id.au&gt;
</content>
</entry>
<entry>
<title>daemon: Remove the concept of triggering or suppressing events</title>
<updated>2018-09-14T07:20:28+00:00</updated>
<author>
<name>Andrew Jeffery</name>
<email>andrew@aj.id.au</email>
</author>
<published>2018-08-20T02:16:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/commit/?id=2ebfd20f349b84313d2161afa313f1f579fc6965'/>
<id>urn:sha1:2ebfd20f349b84313d2161afa313f1f579fc6965</id>
<content type='text'>
Rather, trigger them (or not) as necessary in the relevant code-paths.
This ensures that any call to one of protocol_events_{set,clear}()
actually has a consequence that we can set about dealing with in the
transport layer.

Change-Id: If64733fa53ed9def0da8330c99cbe48327bab934
Signed-off-by: Andrew Jeffery &lt;andrew@aj.id.au&gt;
</content>
</entry>
<entry>
<title>transport: Switch transports as required on GET_MBOX_INFO</title>
<updated>2018-09-14T07:20:28+00:00</updated>
<author>
<name>Andrew Jeffery</name>
<email>andrew@aj.id.au</email>
</author>
<published>2018-08-10T05:11:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-mboxbridge/commit/?id=23a48212475a61c198cef08ad15c0a348d8d1d02'/>
<id>urn:sha1:23a48212475a61c198cef08ad15c0a348d8d1d02</id>
<content type='text'>
Also flush the event state out via the new transport. This must be done
after the command has completed for the mbox transport.

Change-Id: I251fb949ae67a477288d0d57a1a6afe5b2af5f8f
Signed-off-by: Andrew Jeffery &lt;andrew@aj.id.au&gt;
</content>
</entry>
</feed>
