Changes between Version 9 and Version 10 of venice/firmware


Ignore:
Timestamp:
08/25/2022 08:52:55 PM (2 years ago)
Author:
Tim Harvey
Comment:

add details about SoC differences between boards

Legend:

Unmodified
Added
Removed
Modified
  • venice/firmware

    v9 v10  
    104104The methods you use to update the firmware depends on what specifically you are trying to update.
    105105
     106Be care to use firmware images built for the specific SOC on the board you are using. Venice boards use a variety of IMX8M SoC's which have different boot firmware:
     107||= Board =||= SoC =||= Notes =||
     108|| GW710x-0x-* || i.MX8M Mini (aka IMX8MM) || use firmware with 'imx8mm' in the name ||
     109|| GW720x-0x-* || i.MX8M Mini (aka IMX8MM) || use firmware with 'imx8mm' in the name ||
     110|| GW730x-0x-* || i.MX8M Mini (aka IMX8MM) || use firmware with 'imx8mm' in the name ||
     111|| GW740x-*    || i.MX8M Plus (aka IMX8MP) || use firmware with 'imx8mp' in the name ||
     112
     113You can tell what you are using by watching the board boot:
     114{{{#!bash
     115U-Boot 2022.07-g1050480603 (Aug 19 2022 - 17:02:47 +0000), Build: jenkins-venice-bsp-122
     116
     117CPU:   Freescale i.MX8MP[8] rev1.1 1600 MHz (running at 1200 MHz)
     118CPU:   Industrial temperature grade (-40C to 105C) at 28C
     119...
     120Hit any key to stop autoboot:  0
     121u-boot=> print soc
     122soc=imx8mp
     123}}}
     124 - The above CPU banner shows 'i.MX8MP' which requires firmware with a 'imx8mp' in its name
     125 - The latest firmware images set the 'soc' U-Boot env variable to match the SoC you are using
    106126
    107127==== Update Entire Firmware (recommended)
     
    109129
    110130Complete Compressed Disk Images are available for download here: [http://dev.gateworks.com/venice/images/]
     131 * Be sure to use one that is compatible with the SoC on your board
    111132
    112133Procedure:
     
    121142setenv dev 2 # sets MMC device to be flashed - see mmc list
    122143# set your image
    123 setenv image focal-venice.img.gz # or whatever filename is used, with any tftp server directories in front of the filename
     144setenv image <distro>-venice-<soc>.img.gz
    124145# update
    125146run update_all
     
    133154# fetch your file
    134155cd /tmp
    135 wget http://dev.gateworks.com/venice/images/focal-venice.img.gz
     156wget http://dev.gateworks.com/venice/images/<distro>-venice-<soc>.img.gz
    136157# uncompress and write to the emmc device
    137 zcat focal-venice.img.gz | dd of=/dev/mmcblk0 bs=4M
     158zcat <disro>-venice-<soc>.img.gz | dd of=/dev/mmcblk0 bs=4M
    138159}}}
    139160
     
    145166
    146167The latest pre-built Bootloader images for Venice are available for download here:
    147  - [http://dev.gateworks.com/venice/boot_firmware/venice-imx8mm-flash.bin venice-imx8mm-flash.bin] for IMX8M Mini boards
    148  - [http://dev.gateworks.com/venice/boot_firmware/venice-imx8mn-flash.bin venice-imx8mn-flash.bin] for IMX8M Nano boards
    149 
    150 Procedure: **(Make sure you use the right variant per your processor imx8mm/imx8mn and the correct device for the emmc device)**
     168[http://dev.gateworks.com/venice/boot_firmware/]
     169 * Be sure to use one that is compatible with the SoC on your board
     170
     171Procedure:
    151172 * Via U-Boot:
    152173  - for IMX8M Mini board variants:
    153174{{{#!bash
    154175# setup network environment (use bootp or static by setting ipaddr/serverip and optional netmask/gatewayip)
     176bootp  # optional: use dhcp for network config
     177# choose the device to update
     178setenv dev 2 # sets MMC device to be flashed - see mmc list
     179# set your image
     180setenv image venice-$soc-flash.bin # with any tftp server directories in front of the filename
     181# update
     182run update_firmware
     183}}}
     184   - This is what the update_firmware script does if your curious:
     185{{{#!bash
     186update_firmware=tftpboot $loadaddr $image && setexpr blkcnt $filesize + 0x1ff && setexpr blkcnt $blkcnt / 0x200 && mmc dev $dev && mmc write $loadaddr 0x42 $blkcnt
     187}}}
     188  - for IMX8M Nano board variants:
     189{{{#!bash
     190# setup network environment (use bootp or static by setting ipaddr/serverip and optional netmask/gatewayip)
    155191setenv autoload 0; bootp  # use dhcp for network config but do not fetch a file
    156192# choose the device to update
    157193setenv dev 2 # sets MMC device to be flashed - see mmc list
    158194# set your image
    159 setenv image venice-imx8mm-flash.bin # with any tftp server directories in front of the filename
     195setenv image venice-$soc-flash.bin # with any tftp server directories in front of the filename
    160196# update
    161197run update_firmware
     
    163199   - This is what the update_firmware script does if your curious:
    164200{{{#!bash
    165 update_firmware=tftpboot $loadaddr $image && setexpr blkcnt $filesize + 0x1ff && setexpr blkcnt $blkcnt / 0x200 && mmc dev $dev && mmc write $loadaddr 0x42 $blkcnt
    166 }}}
    167   - for IMX8M Nano board variants:
    168 {{{#!bash
    169 # setup network environment (use bootp or static by setting ipaddr/serverip and optional netmask/gatewayip)
    170 setenv autoload 0; bootp  # use dhcp for network config but do not fetch a file
    171 # choose the device to update
    172 setenv dev 2 # sets MMC device to be flashed - see mmc list
    173 # set your image
    174 setenv image venice-imx8mn-flash.bin # with any tftp server directories in front of the filename
    175 # update
    176 run update_firmware
    177 }}}
    178    - This is what the update_firmware script does if your curious:
    179 {{{#!bash
    180 update_firmware=tftpboot $loadaddr $image && setexpr blkcnt $filesize + 0x1ff && setexpr blkcnt $blkcnt / 0x200 && mmc dev $dev && mmc write $loadaddr 0x40 $blkcnt
     201update_firmware=tftpboot $loadaddr $image && setexpr blkcnt $filesize + 0x1ff && setexpr blkcnt $blkcnt / 0x200 && mmc dev $dev && mmc write $loadaddr $splblk $blkcnt
    181202}}}
    182203 * Via Linux:
     204  - Updating via Linux requires you to download the 'venice-<soc>-flash.bin' file (pre-built images can be found [http://dev.gateworks.com/venice/boot_firmware/ here] and to use the correct offset in the boot device which varies per SoC:
    183205  - for IMX8M Mini board variants:
    184206{{{#!bash
     
    196218# uncompress and write to the emmc device to 32K offset
    197219dd if=venice-imx8mn-flash.bin of=/dev/mmcblk2 bs=1K seek=32
     220}}}
     221  - for IMX8M Plus board variants:
     222{{{#!bash
     223# fetch your file
     224cd /tmp
     225wget http://dev.gateworks.com/venice/boot_firmware/venice-imx8mp-flash.bin
     226# uncompress and write to the emmc device to 32K offset
     227dd if=venice-imx8mp-flash.bin of=/dev/mmcblk2 bs=1K seek=32
    198228}}}
    199229