Re: Device Tree Blob support in l4linux

Adam Lackorzynski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
On Tue Aug 19, 2014 at 17:43:29 +0200, Martin Schröder wrote:
> 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.

Ok, I should probably rip this all out and do DT only.

> >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?

I have some still hacky code on my disk which I think handles this. I
have to check and clean this up to commit it.



Adam
-- 
Adam                 [email protected]
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/
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.