U-Boot: pass a copy of the FDT to the kernel

This commit is contained in:
François Revol
2013-04-21 01:15:43 +02:00
parent 048f079571
commit 247db0d169
2 changed files with 8 additions and 2 deletions
@@ -22,8 +22,8 @@ typedef struct {
void *openfirmware_entry; void *openfirmware_entry;
char rtc_path[128]; char rtc_path[128];
// TODO: add FDT // Flattened Device Tree blob
char dummy; void *fdt;
} platform_kernel_args; } platform_kernel_args;
#endif /* KERNEL_BOOT_PLATFORM_UBOOT_KERNEL_ARGS_H */ #endif /* KERNEL_BOOT_PLATFORM_UBOOT_KERNEL_ARGS_H */
@@ -105,6 +105,12 @@ platform_start_kernel(void)
addr_t stackTop addr_t stackTop
= gKernelArgs.cpu_kstack[0].start + gKernelArgs.cpu_kstack[0].size; = gKernelArgs.cpu_kstack[0].start + gKernelArgs.cpu_kstack[0].size;
if (gFDT) {
// clone the Flattened Device Tree blob
gKernelArgs.platform_args.fdt = kernel_args_malloc(fdt_totalsize(gFDT));
memcpy(gKernelArgs.platform_args.fdt, gFDT, fdt_totalsize(gFDT));
}
// smp_init_other_cpus(); // smp_init_other_cpus();
serial_cleanup(); serial_cleanup();
mmu_init_for_kernel(); mmu_init_for_kernel();