Problem with L4Linux accessing ethernet clocks
manolis837 at gmail.com
Wed Oct 11 15:33:58 CEST 2017
On 10/05/2017 01:25 AM, Adam Lackorzynski wrote:
> Those clocks are part of a clock device that has mmio registers just as
> the network device. So you need to give access to those so that it can
> set the clocks as needed. Another trick might be to let u-boot
> initialize the network, and thus the clocks, so that they still work
> when L4 has been booted. Do you boot other network in u-boot?
I followed you advice and managed to fix everything and l4linux now has
access to both the network and the sd cards.
What took me time to understand is that access to all the clocks in zynq
is controlled from the zynq-slcr. I first needed to add that mmio
registers to the l4linux vbus. Next I ported the driver from the normal
arm linux arch to the l4 arch and made sure it was properly initialized.
Then I just needed to modify the clkc driver to work under l4linux and
only enable the clocks for the peripherals I needed. With all this done
the drivers for each device work as is.
All my work can be found in https://gitlab.com/l4-fiasco-thesis/l4-linux
Everything I changed is specific to L4_PLATFORM_ZYNQ, the new config
option I created. In the future I will move the whole Zynq slcr
initialization out of l4linux and in l4, so the l4linux kernel will not
control devices it shouldn't.
If anyone has any question on the how and why please ask :).
Finally I have a question, Are you accepting patches for L4 and L4Linux?
I could make my git patches more presentable and send them here if you
want, to be added to your upstream repo.
Thank you for your help!!
More information about the l4-hackers