1Summary 2======= 3 4LEGO MINDSTORMS EV3 is a toy robot produced by the LEGO Group. It is based 5on the davinci da850 evm. The EV3 has a 16MB spi flash and a SDHC microSD card 6reader. 7 8Booting 9======= 10 11The EV3 contains a bootloader in EEPROM that loads u-boot.bin from address 0x0 12of the spi flash memory. Using the default configuration, u-boot will check to 13see if there is a boot.scr file on the first FAT partition of the mmc. If there 14is, it will run the script and boot the kernel from the uImage file also in 15the FAT partition. Otherwise, it will load a kernel and rootfs from the flash. 16The kernel must be stored at address 0x50000 on the flash and have a maximum 17size of 3MiB. The rootfs must be a squasfs image and stored at 0x350000 in the 18flash and have a maximum size of 9.3MiB. The flash starting at 0xCB0000 is 19reserved for user data. 20 21Writing image to flash 22====================== 23 24The EEPROM contains a program for uploading an image file to the flash memory. 25The program is started by holding down the right button on the EV3 when powering 26it on. You can also `run fwupdateboot` in the u-boot shell to reboot into this 27mode. The image can then be uploaded using the official LEGO MINDSTORMS EV3 28software or a 3rd party program capable of uploading a firmware file. 29 30If you are booting from the microSD card, it is enough to just write uboot.bin 31to the flash. If you are not using a microSD card, you will need to create an 32image file using the layout described above. 33