This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

some problems about Linux booting method on EVMC6678L

Hi, all,

I have summarized the Linux booting methods on EVMC6678L:

1. Boot from Nand Flash. This method we should first write the Linux image to nand flash by DSS.sh or CCS(nand-writer program).
    Q1: If I use CCS to load Linux image, what the start address should I set in "Memory Browser"?? 

2. Boot by CCS loading. CCS load the linux ELF format image to RAM and then execute it.

3. Boot by TFTP. This will need the IBL and TFTP Server support.

4. Boot from NFS.
    Q4: Here shows how to setup NFS system, but how to give the boot args that tell linux to boot from the special NFS?? Such as DM6467, when power on, uboot will count down 3 seconds to allow us interrupt the normal boot and send our own boot args(on console via ttyS0), could I do sth to reach the similar goal on EVMC6678L?

5. Boot by Ethernet (ROM, but not IBL). (I guess that linux image could boot by this method, but not very sure......)
    Q5: in the example under C:\Program Files\Texas Instruments\mcsdk_2_00_08_20\tools\boot_loader\examples\ethernet, we need some utilities to convert the simple.out file from ELF format to  .eth format. Could we convert the ELF format Linux image to .eth, then transfered to target and boot it just as the simple example??

Q6: I rebuilt the linux image in folder ~/my-linux-c6x(with package "linux-c6x-2.0.0.63-src" and changed no args or settings.) just as documents said, and then generated Linux image file named vmlinux-2.6.34-evmc6678.el-dev-xxx-20120515(ELF format), With that image I tried method 2 and method 3 to boot, but I always getting the notice that it is seeking for NFS on 158.218.100.25:XXXX, then I find it is configured in my-linux-c6x/linux-c6x-project/kbuilds/evmc6678.mk, does it mean that in Q4, I could give the boot args in this file before build kernel?? If so, isn't that once I change the boot args, I need to rebuild the kernel??

Q7: in ~/my-linux-c6x, when I build the kernel image, I can build the SysLink Drivers at the same time, could I just build kernel to generate linux image and later build syslink to generate syslink.ko(that is to say, build them seperately...)??

Anyone could answer those questions and help me to understand linux build and boot on EVMC6678L better?

Thanks very much!

  • Hi,

    Linux MCSDK on c6678 only supports 2 ways of bootup, Nand boot, and TFTP boot. Please refer to the User's Guide in the 2.0.0.63 release package. Liniux MCSDK 2.0 for c6678 uses IBL, not uboot, so the feature you mentioned is not supported. Linux MCSDK also does not have the Ethernet boot feature as you mentioned in BIOS MCSDK. When rebuilding the kernel, you can either modify the boot args in the kbuilds mk file, or modify it in the .bin file by "bootblob set-cmdline". If you need to rebuild kernel often, I suggest you change the boot args in .mk file. If you don't need to build the kernel, then bootblob to modify boot args in the .bin file is better approach. As far as building syslink.ko separately, I think when building syslink, the kernel will be rebuilt any way.

    If this answer your questions, please mark this thread as resolved. Thanks!

    Rex

  • Hi, Rex, 

    I have tried other ways to boot linux except Nand boot and TFTP boot, that's CCS Load boot and NFS boot, but i don't try Ethernet boot... As you said, I modified the boot args in the kbuilds evmc6678.mk, and rebuilt the kernel, with the generated kernel image, I can boot from NFS or CCS Load.

    But i am not clearly about your last statement: "As far as building syslink.ko separately, I think when building syslink, the kernel will be rebuilt any way." Isn't it to say that, if I want to build syslink.ko, I need to rebuild the kernel at the same time? Otherwise, when I finished my app based on syslink, do I need to rebuild kernel and syslink.ko as well as my app?

    Thanks!

  • Hi,

    I meant when you enable BUILD_SYSLINK in the setenv file, the kernel will be built again.

    Rex

  • Hi guys,

    I would like to boot linux (full ramfs, not only kernel) from SPI NOR flash using IBL. I tried to load fullInitRamFS.bin into NOR via norwriter. But it's not working. I can see in console list:

    IBL: PLL and DDR Initialization Complete

    IBL Result code 00

    IBL: Booting from NOR

    IBL: Booting from NOR

    IBL: Booting from NOR

    .

    .

    .

    IBL: Booting from NOR

    If I use bare kernel (ELF) file and use it same way, I know it is working (I'am able to ping it). I note that used *.bin file works, if I load it usin CCS. I'm not sure about binary format but it was created using "bootlob make-image". Set cmd line is :

    console=ttyS0,115200 rw mem=256M ip=dhcp initrd=0x%fsimage-start-abs-x%,0x%fsimage-size-x%

    If you need more info, ask for more.

    Thanks in advance

    Ondrej

  • Hi, Ondrej,

    NOR flash requires ELF format, so I suggest you rebuild the kernel with modified command line (in kbuilds/evmc6678.mk) using NFS file system with the cpio file system installed on the server. So, kernel booting up from NOR will mount this NFS file system, and the console will display a linux prompt.

    Rex

  • Hi, Ondrej,

    Just curious why do you want to boot from NOR? Any particular reason?

    I did some tests, and it works for me. If you really want to boot from NOR, you need to modify IBL code and reprogram IBL. Change norBoot.bootFormat in tools/boot_loader/ibl/src/util/iblConfig/src/device.c from ibl_BOOT_FORMAT_ELF to ibl_BOOT_FORMAT_BBLOB, and rebuilt the ibl according to the build_instruction.txt in the ibl/doc. It will boot up the EVM with the initramfs.bin programmed in NOR earlier.

    Rex

  • Hi Rex,

    I want to boot from NOR to have NAND available for additional use. I mean saving binaries for other cores, cfg files etc. I know I can use linux FS for this purpose but I would like to have separate linux image and additional data. It seems to be more suitable in our target application. ....Thanks for your tips how to solve it. I'm going to try it.

    Ondrej