MIPS - passing data to kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

 I am trying to port Linux to MIPS-based platform with custom
bootloader. I need to pass command line, initrd, and some parameters
such as memory size to kernel (preferably via device tree). The
devicetree is built/modified  in bootloader, so I cannot embed it in
kernel.

Please correct me if I am wrong:

- I think there is no standard for passing data to kernel, just some
firmwares use a0/a1 for argv/argc (in fw_init_cmdline).

- there is no standard for passing device tree on MIPS (does U-Boot
support this on MIPS? How?)

- the only way how to pass address/size of initramfs/initrd is via
commandline parameters (rd_start, rd_size)

What I would like to do is to pass initrd, device tree and commandline
to kernel. For example PowerPC has the following arguments on kernel
start which perfectly matches my needs:

  51 *   r3: ptr to board info data
  52 *   r4: initrd_start or if no initrd then 0
  53 *   r5: initrd_end - unused if r4 is 0
  54 *   r6: Start of command line string
  55 *   r7: End of command line string

Unfortunately MIPS ABI allows only a0..a3 (+stack arguments which is
of no use in this case) so I'll have to use either some sort of memory
structure (such as ATAGs used in ARMLinux/Android) or pass devicetree
address via register or commandline. I would prefer ATAG-like method
as it's much cleaner than other methods.

Any comments on this are welcome. I do not want to re-invent wheel.


Thank you,

Martin


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux