Motorola Mobility Confidential Restricted.

KreaTV IP-STB Boot Procedure

The behavior of the booting process can be controlled by different options sent to the IP-STB from the DHCP server. These options is set in the DHCP server's configuration file.

Boot Procedure

The boot procedure can be divided into four communication steps:

DHCP

First the IP-STB broadcasts DHCP Discover and DHCP Request packets (according to RFC 951, RFC 2131 and RFC2132) in order to receive an IP address, gateway and the KreaTV specific BootCast address and other configuration parameters from the DHCP server.

See the DHCP options for detailed info on all supported DHCP options.

BootCast

In the second step the BootCast address is used to download the bootcast info file (multicasted by the Infocast server) used to receive information about where to find the splash image and the boot image.

Splash image

In the third step the splash image is downloaded. The information from the bootcast file is used to download the multicasted splash image.

Only one download attempt is made for the splash image, regardless of DHCP option-134.

If the download of the splash image fails, the IP-STB will proceed and attempt to download the boot image instead.

Boot image

In the last step the boot image is downloaded. The information from the bootcast file is used to download the multicasted boot image.

If the boot image was not successfully downloaded after the number of attempts made according to DHCP option-134, the IP-STB will reboot and, by that, start a new downloading procedure. A DHCP Release message will however first be sent to the DHCP server before the IP-STB reboots. This may cause the time before reboot to be much longer than indicated by the settings if the DHCP server is not reachable (approximately 40 seconds extra).

Introducing a new boot procedure

With the introduction of the IP-STB models VIP2853 and VIP11X3 the behavior of the boot loader has changed. The steps above are still valid but the new booting method introduces some caveats that needs to be taken into consideration.

Current boot process

When the IP-STB is powered on the resident boot loader (RBL) is executed and performs basic setup of the hardware, e.g. RAM settings, and then after some basic security checks the RBL executes the dynamic boot loader (DBL). The DBL manages all steps described above.

New boot process

The new boot process is re-engineered with the goal to avoid executing the DBL whenever possible. It is left to the RBL to decide if the DBL needs to be executed. The boot procedure can be explained as follows:

  1. The RBL will execute the DBL if:
    • No valid boot image found.
    • Initial configuration, e.g. radio remote pairing, hasn't been made.
    • Forced execution of the DBL.
  2. The DBL scans the network for new software and downloads it. Once the software is downloaded the DBL repackages the boot image, re-encrypts it and stores it on flash. The IP-STB is rebooted for the changes to take effect.
On subsequent boots the RBL will execute the repackaged boot image directly.

Because of the altered boot process KreaTV now has the ability to detect updated software when Bootcast or HTTP boot is used. In a DVB-C setup software detection and download is still handled as described in frontend service. In the Bootcast HTTP boot scenario KreaTV will not download any software instead updates are signaled to the boot loader and causes the DBL to run on next reboot as described above. The possibility to force upgrades from an application is of course still possible through the following methods:

To detect new software KreaTV matches the version of the system software against the version tags (see HTTP boot and Boot cast info). The system software version is retrieved by means of an information object const.sw.version. This value is derived from concatenation of information from two sources:
  • The version field in the file build_data.xml. This file is supplied with each SDK.
  • Version number (if any) supplied to the build script at build time.
This value MUST match the version tags. Another noticeable difference is that the boot progress display has been dropped since it has no bearing on the new boot flow. Instead error messages will be displayed on failure.

In some cases it may be necessary to force execution of the DBL. For the VIP2853 and VIP11X3 IP-STB models this is done by pressing the standby button, power cycling the IP-STB and releasing the standby button after at least 3 seconds.

Configuration

For configuration options please see the API documentation for kreatv-option-swupdate. Note carefully that these options are completely unrelated to the software service.

If you encounter a problem while trying to boot the STB, use the firmware_log_client.py tool for debugging.