The Riotboard User Manual doesn’t state clearly which side of the GPIO expansion port is which, so I made a diagram explaining it a bit better:
Print it out and align it with the board, and your job will be easier.
Also available in PDF form.
The Riotboard User Manual doesn’t state clearly which side of the GPIO expansion port is which, so I made a diagram explaining it a bit better:
Print it out and align it with the board, and your job will be easier.
Also available in PDF form.
For all you U-Boot users out there, if you set bootdelay=0 on a Riotboard, you will have problems if you ever want to get back into the U-Boot configuration menu.
To erase or modify the U-Boot environment settings, you need to create an /etc/fw_env.config that the U-Boot userspace tools can use.
tl;dr
This is what the fw_env.config file should look like on a Riotboard (at least, when using a build of Freescale’s General Availability kernels):
# Device Env. Offset Env. Size Flash Sector Size /dev/mmcblk3 0x60000 0x2000 0x1000
The U-Boot environment is saved to /dev/mmcblk3, which is tricky, because the partition table explicitly defines an unused area at the beginning of the eMMC storage device.
Once you’ve got the configuration file in place, running fw_printenv should show something like:
# fw_printenv
baudrate=115200
boot_a_script=load ${devtype} ${devnum}:${bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_extlinux=sysboot ${devtype} ${devnum}:${bootpart} any ${scriptaddr} ${prefix}extlinux/extlinux.conf
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_targets=mmc0 mmc1 mmc2 usb0 pxe dhcp
bootcmd=run distro_bootcmd
bootcmd_dhcp=usb start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi
bootcmd_mmc0=setenv devnum 0; run mmc_boot
bootcmd_mmc1=setenv devnum 1; run mmc_boot
bootcmd_mmc2=setenv devnum 2; run mmc_boot
bootcmd_pxe=usb start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=setenv devnum 0; run usb_boot
bootdelay=0
bootm_size=0x10000000
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
ethact=FEC
ethprime=FEC
fdt_addr_r=0x13000000
fdtfile=imx6dl-riotboard.dtb
kernel_addr_r=0x12000000
loadaddr=0x12000000
mmc_boot=if mmc dev ${devnum}; then setenv devtype mmc; run scan_dev_for_boot_part; fi
pxefile_addr_r=0x13200000
ramdisk_addr_r=0x13300000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${bootpart} bootfstype; then rune
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${bootpart} ${prefix}extlinux/extlinux.conf; then echo Found ${prefix}extlinux/extlinux.conf; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: cone
scriptaddr=0x13100000
stderr=serial
stdin=serial
stdout=serial
usb_boot=usb start; if usb dev ${devnum}; then setenv devtype usb; run scan_dev_for_boot_part; fi
You can now use the fw_setenv command to reset the bootdelay parameter.
Figuring Out The Right Configuration Parameters
If you’re using the U-Boot riotboard_defconfig, you’ll see:
#define CONFIG_SYS_EXTRA_OPTIONS "IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6s1g.cfg,MX6S,DDR_MB=1024,ENV_IS_IN_MMC"
If you then look at include/configs/embestmx6boards.h, you’ll see the configuration used to store the environment:
/* Environment organization */ #define CONFIG_ENV_SIZE (8 * 1024) #if defined(CONFIG_ENV_IS_IN_MMC) /* RiOTboard */ #define CONFIG_FDTFILE "imx6dl-riotboard.dtb" #define CONFIG_SYS_FSL_USDHC_NUM 3 #define CONFIG_SYS_MMC_ENV_DEV 2 /* SDHC4 */ #define CONFIG_ENV_OFFSET (6 * 64 * 1024) #define CONFIG_SUPPORT_EMMC_BOOT /* eMMC specific */ #elif defined(CONFIG_ENV_IS_IN_SPI_FLASH) ... #endif
Kind of a pain in the ass that no one at embest thought it would be useful to document this information.