Switching among serial consoles

Simon Glass sjg at chromium.org
Mon Mar 23 16:36:51 CET 2020


Hi,

On Fri, 20 Mar 2020 at 12:26, Tom Rini <trini at konsulko.com> wrote:
>
> On Wed, Mar 18, 2020 at 09:48:36AM +0100, Michal Simek wrote:
> > Hi,
> >
> > long time ago I was playing with switching among consoles.
> > I have two IPs with the same driver where main console is probed and
> > used which is visible via dm tree.
> >
> >  serial        1  [ + ]   serial_zynq           |   |-- serial at ff000000
> >  serial        2  [   ]   serial_zynq           |   |-- serial at ff010000
> >
> > then I have also dcc which can be also used as a console
> >
> >  serial        0  [   ]   arm_dcc               |-- dcc
> >
> > Lastly I have enabled netconsole feature.
> >
> > I have no problem to switch between serial at ff000000 and nc but I can't
> > switch it to dcc or second instance.
> >
> > dhcp
> > setenv ncip 192.168.0.105
> > setenv nc 'setenv stdout nc;setenv stdin nc'
> > setenv dcc 'setenv stdout dcc;setenv stdin dcc'
> > setenv serial0 'setenv stdout serial at ff000000;setenv stdin serial at ff000000'
> > setenv serial1 'setenv stdout serial at ff010000;setenv stdin serial at ff010000'
> > run nc
> >
> > and then via netconsole
> >
> > run serial0
> >
> > works to get back.
> >
> >
> > Console info is showing only available and registered instances.
> >
> > ZynqMP> con
> > List of available devices:
> > serial at ff000000 00000007 IO
> > serial   00000003 IO stdin stdout stderr
> > nulldev  00000003 IO
> > nc       00000003 IO
> >
> > It means the question is how to probe second instance of serial_zynq
> > serial at ff010000 and dcc. I expect when probe is done it will show up in
> > console list and switch is possible.
> >
> > I found SERIAL_SEARCH_ALL symbol but it is just search not probe.
> >
> > I am quite sure that it was working in past but not sure if this was
> > before DM but I would like to know how you are doing it/testing it today.
>
> I think the answer is we don't have any tests for multiple consoles to
> start with, so it's not tested.  I'd start by grabbing an old platform
> and bisect'ing back the years to see when it did last work as the first
> thing.  Sorry!

Note there is special logic in stdio_get_by_name() for vidconsole (so
when you say 'setenv stdout vidconsole' it probes the video). It might
need another look, or need to be generalised.

Regards,
Simon


More information about the U-Boot mailing list