From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bartlomiej Sieka Date: Wed, 06 Aug 2008 10:21:35 +0200 Subject: [U-Boot-Users] [PATCH 1/3] ppc: Report back the location we put the device tree if we dont boot In-Reply-To: <20080806070841.480A624847@gemini.denx.de> References: <20080806070841.480A624847@gemini.denx.de> Message-ID: <48995F0F.8070807@semihalf.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Wolfgang Denk wrote: > In message <1218004332-20311-1-git-send-email-galak@kernel.crashing.org> you wrote: >> Its useful to know where the device tree is if we have set 'autostart' >> to 'no. We come back to the prompt after a boot command and we can >> than post process the device tree but we need to know where it was put >> report this back via the env variable 'bootm_fdtaddr'. > > NAK. > > The whole code sequence in bootm.c seems broken to me: > > 272 debug ("## Transferring control to Linux (at address %08lx) ...\n", > 273 (ulong)kernel); > 274 > 275 show_boot_progress (15); > 276 > 277 #if defined(CFG_INIT_RAM_LOCK) && !defined(CONFIG_E500) > 278 unlock_ram_in_cache(); > 279 #endif > 280 if (!images->autostart) > 281 return ; > 282 > 283 #if defined(CONFIG_OF_LIBFDT) > > > The debug() [272f] should come immediately before booting the kernel > (i. e. move below line 282) because it is supposed to show when we > branch to Linux. No other code should be inbetween. > > And the (!images->autostart) test makes absolutely no sense here. > Documentation says: > > autostart: if set to "yes", an image loaded using the rarpb, > bootp, dhcp, tftp, disk, or docb commands will be > automatically started (by internally calling the bootm > command). > Hi Wolfgang, The test you're referring to was introduced by commit 75fa002c47171b73fb4c1f2c2fe4d6391c136276 "[new uImage] Respect autostart setting in linux bootm" by Kumar -- he should be better able to explain the details. > The "autostart" field introduced with the new image stuff behaves very > different, and actually makes no sense to me at all. > > Bartek, could you please comment what the intended behaviour was, and > how it relates to the documentated behaviour? It looks like that the "autostart" field has been added to the bootm_headers structure so that the arch-specific code can make decisions about booting without the need to call getenv("autostart"). Instead, the "autostart" field is set based on the env. variable once, and passed to boot-related functions via a parameter (e.g., "images" in do_bootm_linux()). Again, this field has beed introduced by Kumar (f5614e7926863bf0225ec860d9b319741a9c4004, "[new uImage] Add autostart flag to bootm_headers structure"), who should be able to comment more. Regards, Bartlomiej