[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] Writing to Multiple Serial Ports



On 7 Oct 2015, at 15:53, Paul Skentzos <paul.skentzos@xxxxxxxxxxxxxxx> wrote:
> 
> Hi Luke,
> 
> On 10/7/2015 10:15 AM, Luke Dunstan wrote:
>> Hi Paul,
>> 
>> Did you get serial ports working even in dom0 on Cubietruck yet? It took me
>> quite a while to discover that Xen normally disables the A20 UARTs by 
>> deleting
>> them from the device tree:
>> 
>> http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/arm/platforms/sunxi.c;h=0ba7b3d9b476a95edb653e120b7b3900a47f7c06;hb=HEAD#l64
>> 
>> Luke
>> 
> 
> Yes, we do have this working. It was a bit of an annoyance that we discovered
> just as you did when starting to work on the Cubietruck.
> 
> We found that all serial ports with the "snps,dw-apb-uart" driver are
> blacklisted on the "sunxi" platform to prevent dom0 from having driver access 
> to
> the Xen console.  So we hacked up the attached patch.  Which is not an ideal
> fix, but it was good enough for now.
> 
> The better fix would be to have Xen compare the memory address for every item 
> in
> the device tree against the addresses that Xen has already reserved for 
> itself.

We could apply this patch to the https://github.com/mirage/xen-arm-builder
distribution, which is only really used to boot on Cubieboards at the moment.
It's nice to have the out-of-the-box experience just work for that distribution.

-anil



> 
> - Paul
> 
>> 
>> On Wed, 7 Oct 2015 at 21:00 Paul Skentzos <paul.skentzos@xxxxxxxxxxxxxxx
>> <mailto:paul.skentzos@xxxxxxxxxxxxxxx>> wrote:
>> 
>>    Dave,
>> 
>> 
>>    On 10/6/2015 5:04 PM, David Scott wrote:
>>> Hi Paul, Aaron,
>>> 
>>> On Tue, Oct 6, 2015 at 8:27 PM, Paul Skentzos
>>    <paul.skentzos@xxxxxxxxxxxxxxx <mailto:paul.skentzos@xxxxxxxxxxxxxxx>
>>> <mailto:paul.skentzos@xxxxxxxxxxxxxxx
>>    <mailto:paul.skentzos@xxxxxxxxxxxxxxx>>> wrote:
>>> 
>>>    We are trying to access a serial port passed to a domu. We're very new
>>    to Mirage
>>>    and ocaml, but plan on converting our existing system to use MirageOS for
>>>    various domU's.
>>> 
>>>    So, at the moment, the question we have is whether anyone has had any
>>    success
>>>    writing to multiple serial ports with one of those serial ports being
>>    accessed
>>>    from a domu?
>>> 
>>>    As a first attempt, we took the Mirage console example and added a second
>>>    console. We connected it to '1' and then to /dev/null and tried to
>>    print to it.
>>>    Neither of the ideas were valid. We're not sure what the console
>>    should be named
>>>    or what the hashtbl is looking for. The application compiles, but the
>>    VM halts
>>>    with a message stating. "... waiting for hotplug". The application
>>    built for
>>>    unix didn't work either.
>>> 
>>> 
>>>    We are trying to read data from a GPS receiver from a domu.
>>> 
>>> 
>>> Interesting! Is the GPS receiver connected to a physical serial port on
>>    the host?
>>> 
>> 
>>    Thanks for the quick response. Yes, the GPS is connected to the host, to a
>>    hardware serial port.
>> 
>>> The virtual serial ports that Mirage can see need to be served by something 
>>> on
>>> the host (a "backend", typically in dom0). If you're creating your VM with 
>>> "xl
>>> create" then you can declare "channels"[1] which will spawn a qemu process 
>>> in
>>> dom0 which will act as the server/backend. At the moment the backend can
>>    only be
>>> connected to a fresh tty or a Unix domain socket -- there is no built-in
>>    support
>>> for proxying to a real /dev/ttyS* device.
>>> 
>>> I think the first thing to do is to verify that adding a 'channel' to your 
>>> xl
>>> config file causes the Xen domU to get further than "waiting for hotplug".
>>    After
>>> that I think you could declare the backend to be a Unix domain socket, and
>>    then
>>> run a proxy in dom0 which would write the data to the appropriate ttyS 
>>> device.
>>> 
>>> Sorry that's a bit clunky -- when I added the channel support to "xl" I 
>>> didn't
>>> think about the possibility of a real serial port. I'm sure that could be
>>    added
>>> in future though.
>>> 
>>> What do you think?
>>> 
>> 
>>    This is really good information and you were speaking the language my 
>> colleague
>>    and I were as we iterated through the design.
>> 
>>    Here are our results. Running the system on an x86 VM worked just as you
>>    described above, so that was great news. However, and we should have been 
>> clear
>>    about this at the beginning, our hardware platform is ARM based; 
>> Cubietruck,
>>    specifically. We tried the same process on the Cubietruck and it did not 
>> work.
>>    I'm assuming that this is the case since ARM does not make use of qemu 
>> like x86
>>    does.
>> 
>>    It seems that this could be overcome on ARM, however not without some
>>    difficulty. Any thoughts on this?
>> 
>>    Best regards,
>>    Paul
>> 
>> 
>>> Cheers,
>>> Dave Scott
>>> 
>>> [1] http://xenbits.xen.org/docs/unstable/misc/channel.txt
>>> 
>>> 
>>>    Any ideas where we should look for getting this capability?
>>> 
>>>    I appreciate the help!
>>> 
>>>    Paul Skentzos
>>>    Aaron Cornelius
>>> 
>>> 
>>> 
>>> 
>>> 
>>>    _______________________________________________
>>>    MirageOS-devel mailing list
>>>    MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
>>    <mailto:MirageOS-devel@xxxxxxxxxxxxxxxxxxxx>
>>    <mailto:MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
>>    <mailto:MirageOS-devel@xxxxxxxxxxxxxxxxxxxx>>
>>>    http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>>> 
>>> 
>>> 
>>> 
>>> --
>>> Dave Scott
>> 
>>    _______________________________________________
>>    MirageOS-devel mailing list
>>    MirageOS-devel@xxxxxxxxxxxxxxxxxxxx 
>> <mailto:MirageOS-devel@xxxxxxxxxxxxxxxxxxxx>
>>    http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
>> 
> <0001-Fix-blacklist-for-Cubie-UARTs.patch>_______________________________________________
> MirageOS-devel mailing list
> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.