On 1/2/19 9:26 AM, Lukasz Majewski wrote: > Hi Marek, > >> On 1/2/19 12:37 AM, Lukasz Majewski wrote: >>> This commit is necessary to be able to re-use the pinctrl code in >>> early SPL to properly configure pins. >>> >>> The problem is that those "static" structures are placed in the >>> SDRAM area, which corresponds to u-boot proper (not even SPL). >>> Hence, when one wants to configure pins before relocation via >>> DTS/DM, the board hangs (imx6q SoC powered one) as only OCRAM area >>> is available (0x009xxxxx). >>> >>> It is also safe to use calloc in this case, as the early SPL code >>> provides it - either full or trimmed version. The allocated memory >>> is also correct in respect to the memory area in which the SoC is >>> currently running (OCRAM vs. SDRAM). >> >> You should be able to access static data in early environment, many >> other drivers have no problem with it. > > Have you used pinctrl IMX6Q driver with early DM at SPL? > >> I believe there is some more >> fundamental problem that needs to be fixed, > > With the current code - which was not used in OCRAM only available > memory - the statics are placed in the SDRAM area (0x178x xxxx). > > Instead of changing linker script (and validate it for all drivers and > boards for SPL and u-boot proper) - the code has been rewritten to use > malloc (which is available in the early code - either full blown or > simple version). > >> hacking around it like >> this is just hiding the real issue. > > The real issue is that IMX6Q uses SDRAM memory for statics/globals from > the very beginning. Fix it ? What you're implying here is that rodata (preinitialized static variables) are misplaced.
-- Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot