Как сделать SD-карту в качестве загрузки по умолчанию в uboot?

U-Boot 2013.07 (Nov 21 2013 - 18:12:40) Memory: ECC disabled DRAM: 1 GiB MMC: zynq_sdhci: 0 SF: Detected N25Q128A with page size 64 KiB, total 16 MiB In: serial Out: serial Err: serial Net: Gem.e000b000 Hit any key to stop autoboot: 0 SF: Detected N25Q128A with page size 64 KiB, total 16 MiB SF: 11010048 bytes @ 0x520000 Read: OK Wrong Image Format for bootm command ERROR: can't get kernel image! U-Boot-PetaLinux> 

то я бы run sdboot , и он run sdboot с SD-карты, где я поставил изображение для загрузки sd.

Это показывает, что по умолчанию UBoot загружается со вспышки. Какие изменения мне нужно сделать в uboot и где, чтобы загрузочное устройство по умолчанию было SD-картой, а не вспышкой?

Есть ли какая-то переменная окружения, которую я должен установить для этого?

  • Доступ к корневой файловой системе и подкаталогам из U-boot?
  • Система файлов rootfs.jffs2 не поместится в mtd3
  • FDT, перемещенный U-Boot, не может быть доступен Linux (в highmem)
  • Больше ничего не видно на консоли после «Начало ядра ...»
  • Переключение нескольких графических режимов при запуске
  • Как создать изображение Uboot Initramfs для arm64
  • Дисплей памяти с использованием md в u-boot
  • Как указать U-Boot не использовать uramdisk
  • 2 Solutions collect form web for “Как сделать SD-карту в качестве загрузки по умолчанию в uboot?”

    Чтобы узнать больше о параметрах u-boot, я предлагаю вам сделать

     U-Boot-PetaLinux> printenv 

    и посмотрите на влияние определенных переменных среды, упомянутых в UBootEnvVariables . Вероятно, изменение, которое вы

     U-Boot-PetaLinux> setenv bootcmd 'run sdboot' ; saveenv ; reboot 

    Переменные bootcmd и bootargs наиболее важны для понимания. Ничто не очень сложно, и информация для вас.

    Если ваша система уже настроена, вы можете использовать метод, описанный @Joe Kul. Фактически вы задаете переменную окружения с параметрами загрузки, которые вы хотите, и сохраните файл конфигурации u-boot на свой носитель.

    Если вы все еще отлаживаете свою установку, вы можете захотеть установить свою переменную среды в исходный код, а затем перекомпилировать. После того, как вы получите команды u-boot, выясните.

    Файл для редактирования зависит от того, какую плату вы используете. Я использую mx23evk, поэтому редактирую файл /include/configs/mx23evk.h . Посмотрите на /* Extra Environments */ section.

    Я удалил все, что было в этом разделе, и заменил его на это.

     /* Extra Environments */ #define CONFIG_EXTRA_ENV_SETTINGS \ "boot_mfg=echo Running mfgtools...; " \ "ext2load mmc 0:6 0x40600000 /boot/uboot/mfgupdat.zIm; " \ "ext2load mmc 0:6 0x40a00000 /boot/uboot/mfgupdat.dtb; " \ "bootz 40600000 - 40a00000;\0" \ "boot_pro=echo Running Production...; " \ "ext2load mmc 0:6 0x40600000 /boot/uboot/pro_1.zIm; " \ "ext2load mmc 0:6 0x40a00000 /boot/uboot/pro_1.dtb; " \ "bootz 40600000 - 40a00000;\0" \ "boot_rescue=echo Running Rescue...; " \ "bootz 40600000 - 40a00000;\0" \ 

    В командной строке u-boot я могу выбрать между тремя предопределенными настройками загрузки просто: run boot_mfg ИЛИ run boot_pro

    Это позволяет мне быстро загрузиться в 3 разных конфигурации. Просто установите его по умолчанию, когда закончите с вашей отладкой.

    Если я правильно CONFIG_BOOTDELAY переменные CONFIG_BOOTDELAY и CONFIG_BOOTCOMMAND имеют какое-то отношение к загрузке по умолчанию.

    Поэтому сначала я загрузился, так как вы выяснили, какие команды позволяют загружать на носитель в разделе с нужным ядром и корнем.

     ext2load mmc 0:6 0x40600000 /boot/uboot/mfgupdat.zIm 

    Затем я бы изменил исходный код, чтобы отразить эту команду, а не автозагрузку, запустив переменную, указанную в исходном коде.

     run my_boot_variable 

    Если вы довольны этим, то снова измените исходный код на автоматическую загрузку с использованием этой переменной с задержкой по времени или без нее. Вы можете добавить несколько загрузочных переменных и выбрать другие, нажав клавишу.

    Я не работал с этим через пару месяцев, поэтому я могу оставить важную информацию, но это должно заставить вас смотреть в правильном направлении.

    Linux и Unix - лучшая ОС в мире.