On Sat, Oct 29, 2011 at 09:43:30AM +0100, Russell King - ARM Linux wrote: > On Fri, Oct 28, 2011 at 09:49:49AM -0700, Stephen Warren wrote: > > When boards boot from DT, there is no fixup function to override the > > bootloader's ATAGs. I also see a bunch of code to set up the memory > > information from DT e.g. setup_machine_fdt()'s call to: > > > > of_scan_flat_dt(early_init_dt_scan_memory, NULL); > > > > ... but I assume that happens before the ATAGs are processed, and the > > buggy ATAGs end up overriding the information in the DT file. > > As far as the uncompressed kernel is concerned, there is either ATAG > or DT information, never both. If the boot loader provides ATAGs and > the zImage has a DT appended to it, the zImage decompressor merges the > ATAGs into the appended DT and passes the DT to the kernel. > > So anyone who currently 'fixes' their broken boot loader via the fixup > function by directly manipulating the ATAGS is going to hit the DT > image instead. Ugh. Not pretty. A platform could still have board specific fixup code that matches on the compatible string that deals with broken firmware ATAGs, but I don't think that is what we want to do. We could handle it by filling the .dts file with an empty 'reg' property for memory, and only push in the legacy ATAG data if reg is indeed empty. That gives the option of overriding ATAGs if the DT already specifies memory. Need to think about this more. g. -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html