All of lore.kernel.org
 help / color / mirror / Atom feed
From: Carlo Caione <carlo-6IF/jdPJHihWk0Htik3J/w@public.gmane.org>
To: Marcel Holtmann <marcel-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
Cc: Martin Blumenstingl
	<martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>,
	Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	devicetree <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	"open list:BLUETOOTH DRIVERS"
	<linux-bluetooth-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	"Gustavo F. Padovan"
	<gustavo-THi1TnShQwVAfugRpC6u6w@public.gmane.org>,
	Johan Hedberg
	<johan.hedberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org,
	jslaby-IBi9RG/b67k@public.gmane.org,
	johan-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	Larry.Finger-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org,
	Daniel Drake <drake-6IF/jdPJHihWk0Htik3J/w@public.gmane.org>
Subject: Re: [RFC v2 7/9] bluetooth: btrtl: load the config blob from devicetree when available
Date: Tue, 2 Jan 2018 11:15:59 +0000	[thread overview]
Message-ID: <CAL9uMOEMDup4hRkxD-tM8R0YirGs5uQi31AjJUnFCPNMKUdRHg@mail.gmail.com> (raw)
In-Reply-To: <563D6F9F-8495-40D4-BE56-5338ED2B9B99-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>

On Tue, Jan 2, 2018 at 11:11 AM, Marcel Holtmann <marcel-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org> wrote:
> Hi Martin,
>
>> Some Realtek bluetooth devices need a "config" blob. The btrtl driver
>> currently only allows loading this config blob via the request_firmware
>> mechanism.
>>
>> The UART Bluetooth chips use this config blob to specify the baudrate,
>> whether flow control is used and some other unknown bits. This means
>> that the config blob is board-specific - thus loading it via
>> request_firmware means that the rootfs is tied to a specific board.
>>
>> The UART Bluetooth chips are implemented through serdev. This means
>> there is also a devicetree node which describes the Bluetooth chip.
>> Thus we can also load the blob from the devicetree node to keep the
>> filesystem independent of any board configuration data. In the future
>> this could be extended to support ACPI as well (in case that's needed).
>>
>> Parse the devicetree node if it exists and obtain the config blob from
>> there. Otherwise fall back to using the "old" request_firmware
>> mechanism.
>
> where are these config blobs coming from? I think we also need to give people a helping hand on how to add them to DT. I still wonder if the only pieces we are using are the UART config, then maybe skipping the config blob and allowing for clear named values in DT might be better.

What about x86 platforms where we do not have DT (I didn't check but I
don't think that the UART config in that case is shipped in the ACPI
tables)?

Cheers,

-- 
Carlo Caione  |  +44.7384.69.16.04  |  Endless
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Carlo Caione <carlo@endlessm.com>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>,
	Rob Herring <robh+dt@kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	"open list:BLUETOOTH DRIVERS" <linux-bluetooth@vger.kernel.org>,
	linux-serial@vger.kernel.org, Mark Rutland <mark.rutland@arm.com>,
	"Gustavo F. Padovan" <gustavo@padovan.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	gregkh@linuxfoundation.org, jslaby@suse.com, johan@kernel.org,
	linux-amlogic@lists.infradead.org, Larry.Finger@lwfinger.net,
	Daniel Drake <drake@endlessm.com>
Subject: Re: [RFC v2 7/9] bluetooth: btrtl: load the config blob from devicetree when available
Date: Tue, 2 Jan 2018 11:15:59 +0000	[thread overview]
Message-ID: <CAL9uMOEMDup4hRkxD-tM8R0YirGs5uQi31AjJUnFCPNMKUdRHg@mail.gmail.com> (raw)
In-Reply-To: <563D6F9F-8495-40D4-BE56-5338ED2B9B99@holtmann.org>

On Tue, Jan 2, 2018 at 11:11 AM, Marcel Holtmann <marcel@holtmann.org> wrot=
e:
> Hi Martin,
>
>> Some Realtek bluetooth devices need a "config" blob. The btrtl driver
>> currently only allows loading this config blob via the request_firmware
>> mechanism.
>>
>> The UART Bluetooth chips use this config blob to specify the baudrate,
>> whether flow control is used and some other unknown bits. This means
>> that the config blob is board-specific - thus loading it via
>> request_firmware means that the rootfs is tied to a specific board.
>>
>> The UART Bluetooth chips are implemented through serdev. This means
>> there is also a devicetree node which describes the Bluetooth chip.
>> Thus we can also load the blob from the devicetree node to keep the
>> filesystem independent of any board configuration data. In the future
>> this could be extended to support ACPI as well (in case that's needed).
>>
>> Parse the devicetree node if it exists and obtain the config blob from
>> there. Otherwise fall back to using the "old" request_firmware
>> mechanism.
>
> where are these config blobs coming from? I think we also need to give pe=
ople a helping hand on how to add them to DT. I still wonder if the only pi=
eces we are using are the UART config, then maybe skipping the config blob =
and allowing for clear named values in DT might be better.

What about x86 platforms where we do not have DT (I didn't check but I
don't think that the UART config in that case is shipped in the ACPI
tables)?

Cheers,

--=20
Carlo Caione  |  +44.7384.69.16.04  |  Endless

WARNING: multiple messages have this Message-ID (diff)
From: carlo@endlessm.com (Carlo Caione)
To: linus-amlogic@lists.infradead.org
Subject: [RFC v2 7/9] bluetooth: btrtl: load the config blob from devicetree when available
Date: Tue, 2 Jan 2018 11:15:59 +0000	[thread overview]
Message-ID: <CAL9uMOEMDup4hRkxD-tM8R0YirGs5uQi31AjJUnFCPNMKUdRHg@mail.gmail.com> (raw)
In-Reply-To: <563D6F9F-8495-40D4-BE56-5338ED2B9B99@holtmann.org>

On Tue, Jan 2, 2018 at 11:11 AM, Marcel Holtmann <marcel@holtmann.org> wrote:
> Hi Martin,
>
>> Some Realtek bluetooth devices need a "config" blob. The btrtl driver
>> currently only allows loading this config blob via the request_firmware
>> mechanism.
>>
>> The UART Bluetooth chips use this config blob to specify the baudrate,
>> whether flow control is used and some other unknown bits. This means
>> that the config blob is board-specific - thus loading it via
>> request_firmware means that the rootfs is tied to a specific board.
>>
>> The UART Bluetooth chips are implemented through serdev. This means
>> there is also a devicetree node which describes the Bluetooth chip.
>> Thus we can also load the blob from the devicetree node to keep the
>> filesystem independent of any board configuration data. In the future
>> this could be extended to support ACPI as well (in case that's needed).
>>
>> Parse the devicetree node if it exists and obtain the config blob from
>> there. Otherwise fall back to using the "old" request_firmware
>> mechanism.
>
> where are these config blobs coming from? I think we also need to give people a helping hand on how to add them to DT. I still wonder if the only pieces we are using are the UART config, then maybe skipping the config blob and allowing for clear named values in DT might be better.

What about x86 platforms where we do not have DT (I didn't check but I
don't think that the UART config in that case is shipped in the ACPI
tables)?

Cheers,

-- 
Carlo Caione  |  +44.7384.69.16.04  |  Endless

  parent reply	other threads:[~2018-01-02 11:15 UTC|newest]

Thread overview: 123+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-01 20:42 [RFC v2 0/9] Realtek Bluetooth serdev support (H5 protocol) Martin Blumenstingl
2018-01-01 20:42 ` Martin Blumenstingl
2018-01-01 20:42 ` Martin Blumenstingl
     [not found] ` <20180101204217.26165-1-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2018-01-01 20:42   ` [RFC v2 1/9] serdev: implement parity configuration Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
     [not found]     ` <20180101204217.26165-2-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2018-01-02 11:16       ` Marcel Holtmann
2018-01-02 11:16         ` Marcel Holtmann
2018-01-02 11:16         ` Marcel Holtmann
     [not found]         ` <4FDCB65A-641A-4134-BAF1-4A777012FDE7-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2018-01-02 21:16           ` Martin Blumenstingl
2018-01-02 21:16             ` Martin Blumenstingl
2018-01-02 21:16             ` Martin Blumenstingl
     [not found]             ` <CAFBinCCq9mYBhzoL1XBVQNGxALg8oK5GB7Md9HJf_mchEMu3-A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-02 21:34               ` Martin Blumenstingl
2018-01-02 21:34                 ` Martin Blumenstingl
2018-01-02 21:34                 ` Martin Blumenstingl
     [not found]                 ` <CAFBinCD=iuE+ho22kihCFG=AJV5t+JtjRww8PLuq-cAJ2RkAHQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-03  9:06                   ` Johan Hovold
2018-01-03  9:06                     ` Johan Hovold
2018-01-03  9:06                     ` Johan Hovold
2018-01-03 12:37                   ` Marcel Holtmann
2018-01-03 12:37                     ` Marcel Holtmann
2018-01-03 12:37                     ` Marcel Holtmann
2018-01-01 20:42   ` [RFC v2 2/9] dt-bindings: net: bluetooth: add support for Realtek Bluetooth chips Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
     [not found]     ` <20180101204217.26165-3-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2018-01-02 11:16       ` Marcel Holtmann
2018-01-02 11:16         ` Marcel Holtmann
2018-01-02 11:16         ` Marcel Holtmann
     [not found]         ` <2A1D60F1-F86F-4A2B-A43A-F3419506DE99-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2018-01-02 21:10           ` Martin Blumenstingl
2018-01-02 21:10             ` Martin Blumenstingl
2018-01-02 21:10             ` Martin Blumenstingl
     [not found]             ` <CAFBinCBNro18Ak3h1fHFpAioDzimh5KcUeOE8PjQr_CCkAs7PA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-03 19:07               ` Rob Herring
2018-01-03 19:07                 ` Rob Herring
2018-01-03 19:07                 ` Rob Herring
2018-01-01 20:42   ` [RFC v2 3/9] Bluetooth: btrtl: add MODULE_FIRMWARE declarations Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42   ` [RFC v2 4/9] Bluetooth: btrtl: split the device initialization into smaller parts Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42   ` [RFC v2 5/9] Bluetooth: btrtl: add support for retrieving the UART settings Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42   ` [RFC v2 6/9] Bluetooth: btrtl: add support for the RTL8723BS and RTL8723DS chips Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42   ` [RFC v2 7/9] bluetooth: btrtl: load the config blob from devicetree when available Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
     [not found]     ` <20180101204217.26165-8-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2018-01-02 11:11       ` Marcel Holtmann
2018-01-02 11:11         ` Marcel Holtmann
2018-01-02 11:11         ` Marcel Holtmann
     [not found]         ` <563D6F9F-8495-40D4-BE56-5338ED2B9B99-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2018-01-02 11:15           ` Carlo Caione [this message]
2018-01-02 11:15             ` Carlo Caione
2018-01-02 11:15             ` Carlo Caione
     [not found]             ` <CAL9uMOEMDup4hRkxD-tM8R0YirGs5uQi31AjJUnFCPNMKUdRHg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-02 11:19               ` Marcel Holtmann
2018-01-02 11:19                 ` Marcel Holtmann
2018-01-02 11:19                 ` Marcel Holtmann
     [not found]                 ` <E8E39477-CF1A-4A3E-84C5-830E182C2266-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2018-01-02 11:31                   ` Carlo Caione
2018-01-02 11:31                     ` Carlo Caione
2018-01-02 11:31                     ` Carlo Caione
     [not found]                     ` <CAL9uMOH0N-4jgQncmPjK-KyU0vY9Q0ZnHYSAGgz3z3ywzc8Avw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-02 11:38                       ` Marcel Holtmann
2018-01-02 11:38                         ` Marcel Holtmann
2018-01-02 11:38                         ` Marcel Holtmann
     [not found]                         ` <F38429FB-2D20-4EF7-8547-E5A5D67D1618-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2018-01-02 21:43                           ` Martin Blumenstingl
2018-01-02 21:43                             ` Martin Blumenstingl
2018-01-02 21:43                             ` Martin Blumenstingl
2018-01-02 21:46                       ` Martin Blumenstingl
2018-01-02 21:46                         ` Martin Blumenstingl
2018-01-02 21:46                         ` Martin Blumenstingl
     [not found]                         ` <CAFBinCBB=SmviOMRHGDH6vzjTjV-mrtQEc8nBUhDbJGs9SBpgw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-02 23:06                           ` Carlo Caione
2018-01-02 23:06                             ` Carlo Caione
2018-01-02 23:06                             ` Carlo Caione
     [not found]                             ` <CAL9uMOFyfr_qGf5BeTojkMeWeH8LqPoKj=LrdgEMB2wmhGBxmA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-03 20:50                               ` Martin Blumenstingl
2018-01-03 20:50                                 ` Martin Blumenstingl
2018-01-03 20:50                                 ` Martin Blumenstingl
     [not found]                                 ` <CAFBinCAFsDRpp=4We1hQPiutM1Q0MrqebPLyS3e2_e+JcBoSmg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-04  9:46                                   ` Carlo Caione
2018-01-04  9:46                                     ` Carlo Caione
2018-01-04  9:46                                     ` Carlo Caione
     [not found]                                     ` <CAL9uMOGkZefjD_JNxjf4yJ0ATFtOG5Cm_XQq1fy0VQDjiMFBmg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-05 14:57                                       ` Marcel Holtmann
2018-01-05 14:57                                         ` Marcel Holtmann
2018-01-05 14:57                                         ` Marcel Holtmann
     [not found]                                         ` <EC216531-81EC-4EE8-BAC4-C6954C222092-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2018-01-05 16:15                                           ` Marcel Holtmann
2018-01-05 16:15                                             ` Marcel Holtmann
2018-01-05 16:15                                             ` Marcel Holtmann
     [not found]                                             ` <1F394D8B-CFB8-48BA-BC6B-15D1EE51DB08-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2018-01-05 20:44                                               ` Marcel Holtmann
2018-01-05 20:44                                                 ` Marcel Holtmann
2018-01-05 20:44                                                 ` Marcel Holtmann
     [not found]                                                 ` <41669609-3E28-473D-8616-71B9D0EEDCDF-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2018-01-07 20:07                                                   ` Martin Blumenstingl
2018-01-07 20:07                                                     ` Martin Blumenstingl
2018-01-07 20:07                                                     ` Martin Blumenstingl
     [not found]                                                     ` <CAFBinCBasb-WkLngxL2RAk9YMihC437ZgPKSkOd7Fm0RHG_aTw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-09 15:26                                                       ` Marcel Holtmann
2018-01-09 15:26                                                         ` Marcel Holtmann
2018-01-09 15:26                                                         ` Marcel Holtmann
2018-01-01 20:42   ` [RFC v2 8/9] Bluetooth: drop HCI_UART_INIT_PENDING support Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
     [not found]     ` <20180101204217.26165-9-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2018-01-02 11:04       ` Marcel Holtmann
2018-01-02 11:04         ` Marcel Holtmann
2018-01-02 11:04         ` Marcel Holtmann
     [not found]         ` <5F8922BB-5A97-43B1-88D5-591EB76FF787-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2018-01-02 21:06           ` Martin Blumenstingl
2018-01-02 21:06             ` Martin Blumenstingl
2018-01-02 21:06             ` Martin Blumenstingl
     [not found]             ` <CAFBinCAxUmxivp_PWkoydha84LbJi-GGv6Uhs6cKR+D_8c8QCw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-03 17:14               ` Loic Poulain
2018-01-03 17:14                 ` Loic Poulain
2018-01-03 17:14                 ` Loic Poulain
     [not found]                 ` <CAMZdPi9KkPZvuvrNgfGmRksJnR0cFti8P5XC-HTFeUfkFbCZ_g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-03 20:30                   ` Martin Blumenstingl
2018-01-03 20:30                     ` Martin Blumenstingl
2018-01-03 20:30                     ` Martin Blumenstingl
2018-01-03 18:38       ` Rob Herring
2018-01-03 18:38         ` Rob Herring
2018-01-03 18:38         ` Rob Herring
     [not found]         ` <CAL_JsqLB9aem0TXZyUvFpsfXP4p++oukPmQzGEYxkVwZt+bdvw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-01-03 20:38           ` Martin Blumenstingl
2018-01-03 20:38             ` Martin Blumenstingl
2018-01-03 20:38             ` Martin Blumenstingl
2018-01-01 20:42   ` [RFC v2 9/9] Bluetooth: hci_h5: add support for Realtek UART Bluetooth modules Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
2018-01-01 20:42     ` Martin Blumenstingl
     [not found]     ` <20180101204217.26165-10-martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
2018-01-02 11:11       ` Marcel Holtmann
2018-01-02 11:11         ` Marcel Holtmann
2018-01-02 11:11         ` Marcel Holtmann
     [not found]         ` <A32FB2B7-C20D-4E65-A353-1F7B89D9C702-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2018-01-02 21:27           ` Martin Blumenstingl
2018-01-02 21:27             ` Martin Blumenstingl
2018-01-02 21:27             ` Martin Blumenstingl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAL9uMOEMDup4hRkxD-tM8R0YirGs5uQi31AjJUnFCPNMKUdRHg@mail.gmail.com \
    --to=carlo-6if/jdpjhihwk0htik3j/w@public.gmane.org \
    --cc=Larry.Finger-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=drake-6IF/jdPJHihWk0Htik3J/w@public.gmane.org \
    --cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
    --cc=gustavo-THi1TnShQwVAfugRpC6u6w@public.gmane.org \
    --cc=johan-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=johan.hedberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=jslaby-IBi9RG/b67k@public.gmane.org \
    --cc=linux-amlogic-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-bluetooth-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=marcel-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=martin.blumenstingl-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.