On Mon, Dec 30, 2013 at 12:20 AM, Peter Maydell <peter.maydell@xxxxxxxxxx> wrote: > The code which decides whether to set up the ATAGS data structure on > reset was using the wrong conditional, which meant we were creating > an ATAGS structure when doing a device-tree boot if the dtb was > autogenerated by the board. This is harmless, but unnecessary, so > bring it in to line with user-provided-dtb boots. > > Signed-off-by: Peter Maydell <peter.maydell@xxxxxxxxxx> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xxxxxxxxxx> > --- > hw/arm/boot.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/hw/arm/boot.c b/hw/arm/boot.c > index 1c1b0e5..4036262 100644 > --- a/hw/arm/boot.c > +++ b/hw/arm/boot.c > @@ -173,6 +173,11 @@ static void default_reset_secondary(ARMCPU *cpu, > env->regs[15] = info->smp_loader_start; > } > > +static inline bool have_dtb(const struct arm_boot_info *info) > +{ > + return info->dtb_filename || info->get_dtb; > +} > + > #define WRITE_WORD(p, value) do { \ > stl_phys_notdirty(p, value); \ > p += 4; \ > @@ -421,7 +426,7 @@ static void do_cpu_reset(void *opaque) > env->regs[15] = info->loader_start; > } > > - if (!info->dtb_filename) { > + if (!have_dtb(info)) { > if (old_param) { > set_kernel_args_old(info); > } else { > @@ -542,7 +547,7 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info) > /* for device tree boot, we pass the DTB directly in r2. Otherwise > * we point to the kernel args. > */ > - if (info->dtb_filename || info->get_dtb) { > + if (have_dtb(info)) { > /* Place the DTB after the initrd in memory. Note that some > * kernels will trash anything in the 4K page the initrd > * ends in, so make sure the DTB isn't caught up in that. > -- > 1.8.5 > > _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm