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/