[U-Boot] [PATCH 07/11] MX6: use macro building for MX6Q/MX6DL iomux regs

Eric Nelson
2014-04-23T19:00:41Z

Hi Stefano,

On 04/23/2014 10:07 AM, Stefano Babic wrote:
> Hi Tim, hi Nikita,
>
> On 10/04/2014 16:08, Nikita Kiryanov wrote:
>
>>> The cfg files are currently all written to use the IOMUX register
>>> names as MX6_ (no Q vs DL) so that a single cfg file can be used for a
>>> build-time configuration of IMX6Q or IMX6DL.
>>
>> OK now I understand. It seems to me that you only have this problem
>> because you are using these address #defines as values for
>> mx6_mmdc_ioregs structs to define a register mapping. You can
>> also define this mapping by using a struct template that matches the
>> register layout and a base address, both of which change between CPU
>> types.
>>
>
> Reason to do in this way is the thought that the layout among the
> processsors can be completely different, thing that for other area is
> also true.
>
> This was discussed also in a previous RFC by Eric:
>
> http://lists.denx.de/pipermail/u-boot/2013-November/166665.html
>
> Tim, what about to repost in your patchset Eric's patch ? It completes
> your patchset and add documentation that is now missing (added Eric in
> CC if he will complain about this..)
>

I have no problem with this, but when I did some follow-on work to
bring up SPL on Nitrogen6x boards, I recall finding some bugs in
that patch set.

I didn't follow up with updates because I ran into some other
snags. In particular, our use of SPI-NOR makes it crucial that
we be able to download a secondary U-Boot over USB.

> However, if we can recognize the same layout for all three variations (I
> have only check some registers in 6Q and 6DL layout), using the same
> structure with a different base address can be even more readable. I
> admit I have not checked deeply, but it seems at first glance that
> mx6dq_ctrl and mx6sdl_ctrl in 7/11 share the same layout.
>

There's a lot of commonality, but a quick diff of arch-mx6/mx6q-ddr.h
and arch-mx6/mx6dl-ddr.h will show the problem areas.

>> You can find an example of this in the Wandboard SPL implementation.
>> It's not in mainline ATM so you'll have to download their BSP.
>> The template + base addr method also doesn't use up additional memory
>> to define this layout, which is a point in its favor.
>
> If the layout is exactly the same, you could make the structure
> available to all imx6 flavors.
>

Unfortunately, I don't believe it is.

Regards,

Eric