# OpenIPC Wiki [Table of Content](index.md) For XM boards with Hi35{16Ev200,16Ev300,18Ev300} SoC ONLY!!! ------------------------------------------------------------ ### Supported sensors Please look up your sensor in [the list of supported devices][1]. ### Initial device firmware updates ``` setenv bootargs 'mem=${osmem:-32M} console=ttyAMA0,115200 panic=20 root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=hi_sfc:256k(boot),64k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)' setenv bootcmd 'setenv setargs setenv bootargs ${bootargs}; run setargs; sf probe 0; sf read 0x42000000 0x50000 0x200000; bootm 0x42000000' setenv uk 'mw.b 0x42000000 ff 1000000; tftp 0x42000000 uImage.${soc} && sf probe 0; sf erase 0x50000 0x200000; sf write 0x42000000 0x50000 ${filesize}' setenv ur 'mw.b 0x42000000 ff 1000000; tftp 0x42000000 rootfs.squashfs.${soc} && sf probe 0; sf erase 0x250000 0x500000; sf write 0x42000000 0x250000 ${filesize}' saveenv setenv soc hi351xxxxxxx # Set your SoC. hi3516ev200, hi3516ev300, or hi3518ev300. setenv osmem 32M setenv totalmem 64M # 64M for hi3516ev200, hi3518ev300, 128M for hi3516ev300. setenv ipaddr 192.168.1.10 setenv serverip 192.168.1.254 # Your TFTP server IP address. saveenv run uk; run ur; reset # Flash kernel, rootfs and reboot device ``` ### Follow-up quick updates ``` run uk; run ur; reset ``` ### Executing a command after the first run For a Hi3516Ev300 board: ``` set_allocator cma firstboot ``` For a Hi3516Ev200 or Hi3518Ev300 board: ``` set_allocator hisi firstboot ``` ### Danger zone You always have an option to update the bootloader. However, you need to understand what you do. NB! Replace bootloader filename with the one matching your SoC. Full list is [here](https://github.com/OpenIPC/firmware/releases/tag/latest). ``` mw.b 0x42000000 ff 1000000 tftp 0x42000000 u-boot-hi3516xxxxx-beta.bin sf probe 0 sf erase 0x0 0x50000 sf write 0x42000000 0x0 ${filesize} reset ``` [1]: https://github.com/OpenIPC/firmware/wiki/supported_devices