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.

UBL UBOOT 描述符

  

在DM368的开发包目录下/psp/flash-utils/DM36x/GNU:执行make 可以省成UBL:ubl_DM36x_nand.bin ;我想问的是如何添加UBL 的描述符?烧写到flash的时候不是还要在某个位置存放UBL的描述符?这个UBL描述符如何制作?

同样,对于UBOOT,他的描述胡又该如何修改添加?

  •   而若果我要制作SD卡启动的时候,只需要将ubl,uboot,kernel rootfs放到

    dm3xx_sd_boot-6_leopard/original目录下,并修改

    /usr/local/dvsdk368/myproject/sd_boot/dm3xx_sd_boot-6.1/dm3xx_sd.config

     

    DM36x)  

       ubl=original/UBL_DM36x_NAND.bin

       uboot=original/u-boot-sd-write-nand.bin

       kernel=original/uImage

       rootfs=original/ramdisk.gz

    在整个制作过程中也没有涉及到描述符?

  • lou liangliang 说:

      

    在DM368的开发包目录下/psp/flash-utils/DM36x/GNU:执行make 可以省成UBL:ubl_DM36x_nand.bin ;我想问的是如何添加UBL 的描述符?烧写到flash的时候不是还要在某个位置存放UBL的描述符?这个UBL描述符如何制作?

    同样,对于UBOOT,他的描述胡又该如何修改添加?

    UBL/uboot的描述符是在NANDWriter工具写UBL到NAND的时候写入的。请参考代码nandwriter.c

    UBL:

        gNandBoot.magicNum    = UBL_MAGIC_SAFE;
        gNandBoot.block       = DEVICE_NAND_RBL_SEARCH_START_BLOCK;
        gNandBoot.page        = 0;
        gNandBoot.numPage     = numPagesUBL;
        gNandBoot.entryPoint  = 0x0100;       // This fixed entry point will work with the UBLs
        gNandBoot.ldAddress   = 0;            // This doesn't matter for the UBL

        if (LOCAL_writeHeaderAndData(hNandInfo,&gNandBoot,ublPtr) != E_PASS)
        {
          printf("\tERROR: Write failed.\r\n");
          return E_FAIL;
        }

    Uboot:

        // set the entry point and load addresses
     gNandBoot.entryPoint =0x81080040;
        //set load address
        gNandBoot.ldAddress = 0x81080000;

     gNandBoot.magicNum = UBL_MAGIC_BIN_IMG;
        gNandBoot.block = DEVICE_NAND_DBL_SEARCH_START_BLOCK;
        gNandBoot.page = 0;
        gNandBoot.numPage = numPagesAPP;

        if (LOCAL_writeHeaderAndData(hNandInfo, &gNandBoot, appPtr) != E_PASS)
        {
          DEBUG_printString("\tERROR: Write Failed\n");
          return E_FAIL;
        }

  • 非常感谢你的回答!