On 05/23/2016 11:14 PM, Hauke Mehrtens wrote: > Section 3 of this document defines some interfaces how a boot loader > could forward a command line *or* a device tree to the kernel: > http://wiki.prplfoundation.org/w/images/4/42/UHI_Reference_Manual.pdf > This allows only a device tree *or* a command line, not both. > > The Linux kernel also supports an appended device tree. In this case the > early code overwrites the fw_args to look like the boot loader added a > device tree. This is done when CONFIG_MIPS_RAW_APPENDED_DTB is activated. > > The problem is when we use an appended device tree and the boot loader > adds some important information in the kernel command line. In this case > the command line gets overwritten and we do not get this information. > This is the case for some lantiq devices were the boot loader provides > the mac address to the kernel via the kernel command line. > > My proposal to solve this problem is to extend the interface and add a > option to provide the kernel command line *and* a device tree from the > boot loader to the kernel. > > a) use fw_arg0 ($a0) = -2 and fill the unused registers fw_arg2 ($a2) > and fw_arg3 ($a3) with argv and envp. > > b) add a new boot protocol $a0 = -3 with $a1 = DT address, $a2 = argv > and $a3 = envp. I just looked a little bit more closely and saw that the command line uses 3 args. One for the count, one argv and one envp. I would then only support device tree + count and argv, so the new interface would not support envp. > > I would prefer solution b). > > This way we would not loose the kernel command line when appending a > device tree and this could also be used by the boot loader if someone > wants to. > > Should I send a patch for this? > > Hauke >