Re: Device Tree Blob support in l4linux

Martin Schröder <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
Am 19.08.2014 um 14:25 schrieb Martin Schröder:
> Hi Adam,
>
> I tracked the problem down to l4linux/arch/l4/kernel/arch-arm/setup.c:
> In static customize_machine(void) either machine_desc->init_machine() is
> called and the static/generic platform devices are added (and the DT
> disregarded). If init_machine is not set the DT is parsed instead by
> of_platform_populate. So I changed in l4.c the .init_machine property to
> NULL and got all the devices generated from the DT.

While trying to get fec_main.c probed, I recognized that skipping 
.init_machine is not a good idea, since dma_alloc_coherent fails while 
allocating the memory for the network buffer descriptors in fec_main.c. 
This is due to the missing call of l4io_request_iomem in the "dmamem" 
device L4X_DEVICE_CB. So it seems that both init_machine() and 
of_platform_populate() is needed. If I remove the "else" line from the 
if statement in customize_machine the dma_alloc_coherent succeeds again.

> Now at least I got the pinctrl-mxs.c working (utilizes only memory). But
> gpoi-mxs.c does not get it's irq and fails probing. What is the correct
> interrupt-parent definition if the interrupt controller is outside of
> l4linux?

Maybe the interrupt-parent adjustment could also be done "in memory" 
after loading the dtb?


Best regards,
    Martin.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.