Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Feb 2022 20:26:49 +0100
From:      "Ronald Klop" <ronald-lists@klop.ws>
To:        "Marco Devesas Campos" <devesas.campos@gmail.com>, "Warner Losh" <imp@bsdimp.com>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>
Subject:   Re: [PATCH] Experimental vchiq and bcm2835_audio support for arm64
Message-ID:  <op.1ibeyzzokndu52@joepie>
In-Reply-To: <CANCZdfoS0TaGkBWSkbzdisr_MJt6chZts2xBRJ5GQXjXoVaENA@mail.gmail.com>
References:  <A0775CDC-7382-4A15-8131-482572032308@gmail.com> <a02d8dd2-020a-3125-3418-08f0a069aa5e@klop.ws> <8EC05647-00D9-455B-98A9-B83A33DDFC5D@gmail.com> <48190d6a-fc5d-7da9-ddfd-fded48d429db@klop.ws> <106195874.50.1644310150579@localhost> <E7561C63-D0DF-4F38-9101-12B0D473982E@gmail.com> <CANCZdfoS0TaGkBWSkbzdisr_MJt6chZts2xBRJ5GQXjXoVaENA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
------------fUu38EU0gquoIVv62Jdqb2
Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes
Content-Transfer-Encoding: Quoted-Printable

On Sun, 27 Feb 2022 17:41:25 +0100, Warner Losh <imp@bsdimp.com> wrote:

>
>
> On Sun, Feb 27, 2022 at 8:44 AM Marco Devesas Campos  =

> <devesas.campos@gmail.com> wrote:
>> Hi, List
>>
>> On the back of Ronald Klop's comments (thanks!), I went and got mysel=
f  =

>> an
>> RPI 4 and it turns out all that was need was adding the right dtb
>> reference and it all works (seemingly) fine (incremental patch  =

>> attached).
>
> I've committed the patch below. If it turns out we need more, we can  =

> always augment.


Hi Marco, Warner,

Isn't the patch from  =

https://lists.freebsd.org/archives/freebsd-arm/2022-February/000949.html=
  =

needed also?
As you mention the patch below is an incremental patch?

Regards,
Ronald.






>
> Warner
>
>> One of the potential projects highlighted in the latest call for  =

>> proposals
>> was exactly to get hdmi audio output in 64 bit Pis, viz. the 400-s. I=
f
>> anyone who voted for that reads this list, wd be nice to get some inp=
ut  =

>> on
>> the patches.
>>
>> Best,
>> Marco
>>
>>
>>
>> diff --git a/sys/contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c  =

>> b/sys/contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c
>> index dc18678b99a3..344267ff0c1c 100644
>> --- a/sys/contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c
>> +++ b/sys/contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c
>> @@ -83,6 +83,7 @@ static struct bcm_vchiq_softc *bcm_vchiq_sc =3D NUL=
L;
>> static struct ofw_compat_data compat_data[] =3D {
>>        {"broadcom,bcm2835-vchiq",      BSD_DTB},
>>        {"brcm,bcm2835-vchiq",          UPSTREAM_DTB},
>> +       {"brcm,bcm2711-vchiq",          UPSTREAM_DTB},
>>        {NULL,                          0}
>> };
>>
>>
>>
>>> On 8 Feb 2022, at 08:49, Ronald Klop <ronald-lists@klop.ws> wrote:
>>>Van: Ronald Klop <ronald-lists@klop.ws>
>>> Datum: maandag, 7 februari 2022 21:05
>>> Aan: Marco Devesas Campos <devesas.campos@gmail.com>,  =

>>> freebsd-arm@freebsd.org
>>> Onderwerp: Re: [PATCH] Experimental vchiq and bcm2835_audio support =
 =

>>> for arm64
>>>On 2/6/22 14:46, Marco Devesas Campos wrote:
>>> > Hi Ronald,
>>> >
>>> > Thanks so much for trying out the patch out.
>>> >
>>> >> On 6 Feb 2022, at 13:05, Ronald Klop <ronald-lists@klop.ws> wrote=
:
>>> >>
>>> >> Hi,
>>> >>
>>> >> I compiled this on a RPI4 + 14-CURRENT. It boots, but I see no  =

>>> difference in available devices.
>>> >> I can try to boot it on a RPI3B+ on another time.
>>> >
>>> > I *think* the GPU/VC in RPI-4 is a very different beast from the  =

>>> others. I'll
>>> > look into it, but if you could give it a try on the 3+ I'd be much=
  =

>>> obliged.
>>> >
>>> >>
>>> >> What would be the expected outcome? Where should I look at (or  =

>>> listen to)?
>>> >>
>>> >
>>> > You should see something like
>>> >
>>> >    vchiq0: <BCM2835 VCHIQ> mem 0x7e00b840-0x7e00b87b irq 54 on  =

>>> simplebus0
>>> >    vchiq: local ver 8 (min 3), remote ver 8.
>>> >    pcm0: <VCHIQ audio> on vchiq0
>>> >
>>> > in your dmesg output.
>>> >
>>> > The file /dev/vchiq should exist, as well as the following sysctl-=
s  =

>>> (I'm
>>> > assuming no other audio devices are attached)
>>> >
>>> >    % sysctl dev.pcm
>>> >    dev.pcm.0.trace: 0
>>> >    ...
>>> >    dev.pcm.0.dest: 0
>>> >    ...
>>> >    dev.pcm.0.%parent: vchiq0
>>> >    ...
>>> >    dev.pcm.0.%driver: pcm
>>> >    dev.pcm.0.%desc: VCHIQ audio
>>> >    =E2=80=A6
>>> >
>>> > Then if you `cat < /dev/random > /dev/dsp` you should hear some  =

>>> static coming
>>> > out of whatever is connected to hdmi (maybe headphones too?  =

>>> otherwise try
>>> > setting `sysctl dev.pcm.0.dest=3D1`)
>>> >
>>> > Best,
>>> > Marco
>>>Hi,
>>>Booted the patched 14-CURRENT on the RPI3B+.
>>>dmesg diff:
>>> +vchiq0: <BCM2835 VCHIQ> mem 0x7e00b840-0x7e00b87b irq 54 on simpleb=
us0
>>> +vchiq: local ver 8 (min 3), remote ver 8.
>>> +pcm0: <VCHIQ audio> on vchiq0
>>>[root@rpi3 ~]# cat /dev/sndstat
>>> Installed devices:
>>> pcm0: <VCHIQ audio> (play) default
>>> No devices installed from userspace.
>>>[root@rpi3 ~]# sysctl dev.pcm
>>> dev.pcm.0.trace: 0
>>> dev.pcm.0.starved: 0
>>> dev.pcm.0.freebuffer: 40000
>>> dev.pcm.0.underruns: 0
>>> dev.pcm.0.retrieved: 0
>>> dev.pcm.0.submitted: 0
>>> dev.pcm.0.callbacks: 0
>>> dev.pcm.0.dest: 0
>>> dev.pcm.0.mode: 3
>>> dev.pcm.0.bitperfect: 0
>>> dev.pcm.0.buffersize: 0
>>> dev.pcm.0.play.vchanformat: s16le:2.0
>>> dev.pcm.0.play.vchanrate: 48000
>>> dev.pcm.0.play.vchanmode: fixed
>>> dev.pcm.0.play.vchans: 1
>>> dev.pcm.0.%parent: vchiq0
>>> dev.pcm.0.%pnpinfo:
>>> dev.pcm.0.%location:
>>> dev.pcm.0.%driver: pcm
>>> dev.pcm.0.%desc: VCHIQ audio
>>> dev.pcm.%parent:
>>>To play some audio I need to search some headphones first. :-)
>>>Ronald.
>>>  Good morning,
>>>Found headphones with a cable on the attic. Plugged it into the audio=
  =

>>> jack and played an mp3. Amazing!
>>>Regards,
>>> Ronald.
------------fUu38EU0gquoIVv62Jdqb2
Content-Type: multipart/related; boundary=----------fUu38EU0gquoIVXPrLJBDs

------------fUu38EU0gquoIVXPrLJBDs
Content-Type: text/html; charset=utf-8
Content-ID: <op.1646076409722.9e19cd655d68fe51@172.17.4.1>
Content-Transfer-Encoding: Quoted-Printable

<!DOCTYPE html><html><head>
<style type=3D"text/css">body { font-family:'Calibri'; font-size:13px}</=
style>
</head>
<body>On Sun, 27 Feb 2022 17:41:25 +0100, Warner Losh &lt;imp@bsdimp.com=
&gt; wrote:<br><br><blockquote style=3D"margin: 0 0 0.80ex; border-left:=
 #0000FF 2px solid; padding-left: 1ex"><div dir=3D"ltr"><div dir=3D"ltr"=
><br></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmai=
l_attr">On Sun, Feb 27, 2022 at 8:44 AM Marco Devesas Campos &lt;<a href=
=3D"mailto:devesas.campos@gmail.com">devesas.campos@gmail.com</a>&gt; wr=
ote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px =
0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi, L=
ist<br>
<br>
On the back of Ronald Klop's comments (thanks!), I went and got myself a=
n<br>
RPI 4 and it turns out all that was need was adding the right dtb<br>
reference and it all works (seemingly) fine (incremental patch attached)=
.<br></blockquote><div><br></div><div>I've committed the patch below. If=
 it turns out we need more, we can always augment.</div></div></div></bl=
ockquote><div><br></div><div><br></div><div>Hi Marco, Warner,</div><div>=
<br></div><div>Isn't the patch from https://lists.freebsd.org/archives/f=
reebsd-arm/2022-February/000949.html needed also?</div><div>As you menti=
on the patch below is an incremental patch?</div><div><br></div><div>Reg=
ards,</div><div>Ronald.</div><div><br></div><div><br></div><div><br></di=
v><div><br></div><div><br></div><div><br></div><blockquote style=3D"marg=
in: 0 0 0.80ex; border-left: #0000FF 2px solid; padding-left: 1ex"><div =
dir=3D"ltr"><div class=3D"gmail_quote"><div><br></div><div>Warner</div><=
div>&nbsp;</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0p=
x 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
One of the potential projects highlighted in the latest call for proposa=
ls<br>
was exactly to get hdmi audio output in 64 bit Pis, viz. the 400-s. If<b=
r>
anyone who voted for that reads this list, wd be nice to get some input =
on<br>
the patches.<br>
<br>
Best,<br>
Marco<br>
<br>
<br>
<br>
diff --git a/sys/contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c b/sys/co=
ntrib/vchiq/interface/vchiq_arm/vchiq_kmod.c<br>
index dc18678b99a3..344267ff0c1c 100644<br>
--- a/sys/contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c<br>
+++ b/sys/contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c<br>
@@ -83,6 +83,7 @@ static struct bcm_vchiq_softc *bcm_vchiq_sc =3D NULL;<=
br>
&nbsp;static struct ofw_compat_data compat_data[] =3D {<br>
&nbsp; &nbsp; &nbsp; &nbsp; {"broadcom,bcm2835-vchiq",&nbsp; &nbsp; &nbs=
p; BSD_DTB},<br>
&nbsp; &nbsp; &nbsp; &nbsp; {"brcm,bcm2835-vchiq",&nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; UPSTREAM_DTB},<br>
+&nbsp; &nbsp; &nbsp; &nbsp;{"brcm,bcm2711-vchiq",&nbsp; &nbsp; &nbsp; &=
nbsp; &nbsp; UPSTREAM_DTB},<br>
&nbsp; &nbsp; &nbsp; &nbsp; {NULL,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb=
sp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0}<br>
&nbsp;};<br>
<br>
<br>
<br>
&gt; On 8 Feb 2022, at 08:49, Ronald Klop &lt;<a href=3D"mailto:ronald-l=
ists@klop.ws" target=3D"_blank">ronald-lists@klop.ws</a>&gt; wrote:<br>
&gt; <br>
&gt; Van: Ronald Klop &lt;<a href=3D"mailto:ronald-lists@klop.ws" target=
=3D"_blank">ronald-lists@klop.ws</a>&gt;<br>
&gt; Datum: maandag, 7 februari 2022 21:05<br>
&gt; Aan: Marco Devesas Campos &lt;<a href=3D"mailto:devesas.campos@gmai=
l.com" target=3D"_blank">devesas.campos@gmail.com</a>&gt;, <a href=3D"ma=
ilto:freebsd-arm@freebsd.org" target=3D"_blank">freebsd-arm@freebsd.org<=
/a><br>
&gt; Onderwerp: Re: [PATCH] Experimental vchiq and bcm2835_audio support=
 for arm64<br>
&gt; <br>
&gt; On 2/6/22 14:46, Marco Devesas Campos wrote:<br>
&gt; &gt; Hi Ronald,<br>
&gt; &gt;<br>
&gt; &gt; Thanks so much for trying out the patch out.<br>
&gt; &gt;<br>
&gt; &gt;&gt; On 6 Feb 2022, at 13:05, Ronald Klop &lt;<a href=3D"mailto=
:ronald-lists@klop.ws" target=3D"_blank">ronald-lists@klop.ws</a>&gt; wr=
ote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Hi,<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I compiled this on a RPI4 + 14-CURRENT. It boots, but I se=
e no difference in available devices.<br>
&gt; &gt;&gt; I can try to boot it on a RPI3B+ on another time.<br>
&gt; &gt;<br>
&gt; &gt; I *think* the GPU/VC in RPI-4 is a very different beast from t=
he others. I'll<br>
&gt; &gt; look into it, but if you could give it a try on the 3+ I'd be =
much obliged.<br>
&gt; &gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; What would be the expected outcome? Where should I look at=
 (or listen to)?<br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt; You should see something like<br>
&gt; &gt;<br>
&gt; &gt;&nbsp; &nbsp; vchiq0: &lt;BCM2835 VCHIQ&gt; mem 0x7e00b840-0x7e=
00b87b irq 54 on simplebus0<br>
&gt; &gt;&nbsp; &nbsp; vchiq: local ver 8 (min 3), remote ver 8.<br>
&gt; &gt;&nbsp; &nbsp; pcm0: &lt;VCHIQ audio&gt; on vchiq0<br>
&gt; &gt;<br>
&gt; &gt; in your dmesg output.<br>
&gt; &gt;<br>
&gt; &gt; The file /dev/vchiq should exist, as well as the following sys=
ctl-s (I'm<br>
&gt; &gt; assuming no other audio devices are attached)<br>
&gt; &gt;<br>
&gt; &gt;&nbsp; &nbsp; % sysctl dev.pcm<br>
&gt; &gt;&nbsp; &nbsp; dev.pcm.0.trace: 0<br>
&gt; &gt;&nbsp; &nbsp; ...<br>
&gt; &gt;&nbsp; &nbsp; dev.pcm.0.dest: 0<br>
&gt; &gt;&nbsp; &nbsp; ...<br>
&gt; &gt;&nbsp; &nbsp; dev.pcm.0.%parent: vchiq0<br>
&gt; &gt;&nbsp; &nbsp; ...<br>
&gt; &gt;&nbsp; &nbsp; dev.pcm.0.%driver: pcm<br>
&gt; &gt;&nbsp; &nbsp; dev.pcm.0.%desc: VCHIQ audio<br>
&gt; &gt;&nbsp; &nbsp; =E2=80=A6<br>
&gt; &gt;<br>
&gt; &gt; Then if you `cat &lt; /dev/random &gt; /dev/dsp` you should he=
ar some static coming<br>
&gt; &gt; out of whatever is connected to hdmi (maybe headphones too? ot=
herwise try<br>
&gt; &gt; setting `sysctl dev.pcm.0.dest=3D1`)<br>
&gt; &gt;<br>
&gt; &gt; Best,<br>
&gt; &gt; Marco<br>
&gt; <br>
&gt; <br>
&gt; Hi,<br>
&gt; <br>
&gt; Booted the patched 14-CURRENT on the RPI3B+.<br>
&gt; <br>
&gt; dmesg diff:<br>
&gt; +vchiq0: &lt;BCM2835 VCHIQ&gt; mem 0x7e00b840-0x7e00b87b irq 54 on =
simplebus0<br>
&gt; +vchiq: local ver 8 (min 3), remote ver 8.<br>
&gt; +pcm0: &lt;VCHIQ audio&gt; on vchiq0<br>
&gt; <br>
&gt; [root@rpi3 ~]# cat /dev/sndstat<br>
&gt; Installed devices:<br>
&gt; pcm0: &lt;VCHIQ audio&gt; (play) default<br>
&gt; No devices installed from userspace.<br>
&gt; <br>
&gt; [root@rpi3 ~]# sysctl dev.pcm<br>
&gt; dev.pcm.0.trace: 0<br>
&gt; dev.pcm.0.starved: 0<br>
&gt; dev.pcm.0.freebuffer: 40000<br>
&gt; dev.pcm.0.underruns: 0<br>
&gt; dev.pcm.0.retrieved: 0<br>
&gt; dev.pcm.0.submitted: 0<br>
&gt; dev.pcm.0.callbacks: 0<br>
&gt; dev.pcm.0.dest: 0<br>
&gt; dev.pcm.0.mode: 3<br>
&gt; dev.pcm.0.bitperfect: 0<br>
&gt; dev.pcm.0.buffersize: 0<br>
&gt; dev.pcm.0.play.vchanformat: s16le:2.0<br>
&gt; dev.pcm.0.play.vchanrate: 48000<br>
&gt; dev.pcm.0.play.vchanmode: fixed<br>
&gt; dev.pcm.0.play.vchans: 1<br>
&gt; dev.pcm.0.%parent: vchiq0<br>
&gt; dev.pcm.0.%pnpinfo:<br>
&gt; dev.pcm.0.%location:<br>
&gt; dev.pcm.0.%driver: pcm<br>
&gt; dev.pcm.0.%desc: VCHIQ audio<br>
&gt; dev.pcm.%parent:<br>
&gt; <br>
&gt; <br>
&gt; To play some audio I need to search some headphones first. :-)<br>
&gt; <br>
&gt; Ronald.<br>
&gt;&nbsp; <br>
&gt; <br>
&gt; <br>
&gt; Good morning,<br>
&gt; <br>
&gt; Found headphones with a cable on the attic. Plugged it into the aud=
io jack and played an mp3. Amazing!<br>
&gt; <br>
&gt; Regards,<br>
&gt; Ronald.<br>
&gt;&nbsp; <br>
<br>
<br>
</blockquote></div></div>
</blockquote><br><br><br></body></html>
------------fUu38EU0gquoIVXPrLJBDs--

------------fUu38EU0gquoIVv62Jdqb2--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.1ibeyzzokndu52>