| ARRIS Enterprises, Inc. Confidential Information |
Introduction to the ARRIS Boot LoaderThe purpose of the ARRIS Boot Loader is to initialise the hardware when the set-top box is powered on, and get it ready to run the full operating system. The boot loader also verifies that the operating system and software being started up is secured and genuine. The ARRIS Boot Loader is a three-stage, Linux-based secure boot loader, with support for skipping the second stage. The boot loader resides in flash memory on the STB and is made up of two stages: the RBL (Resident Boot Loader) and the DBL (Dynamic Boot Loader). RBL: Resident Boot LoaderThe RBL is a small piece of code which initializes the SoC (System-On-a-Chip) and hardware, and verifies the integrity of the next software stage in the boot process. The RBL performs its tasks in the first few seconds following power on. DBL: Dynamic Boot LoaderThe main responsibility of the DBL is to download a new version of the KreaTV platform from the network, verify its integrity and prepare that image for starting. The DBL is also responsible for showing a customized splash screen image while loading and starting the KreaTV platform. The DBL also contains a menu system to allow the end-user to change some basic parameters, and contains a simple Wi-Fi scanning tool for searching and entering SSID's and passwords. The DBL contains a DHCP client for network initialization, and also supports different network protocols used for downloading the KreaTV platform, such as HTTP with proxy support, TFTP, and Infocast (a proprietary multicast format). It can even use a connected USB memory stick. The DBL performs its tasks in a few seconds, plus the time taken to download software from the network, verify it, and save it to the flash memory. In practice, this can take 30 seconds or more. It depends greatly on the size of the software being downloaded and the available bandwidth. In some configurations, the DBL doesn't execute at all. This is known as two-stage boot, where the RBL launches the main software directly, thus improving boot up time. UpdatingThe DBL may be updated from time to time (the RBL is never changed). A double-buffered system is used to protect against errors during DBL updates. The DBL currently being used is located in one of two areas of the flash memory (known as a slot), and the new DBL is written to the other slot. Then the STB reboots and test boots the new DBL. If this booting is successful the new DBL slot is marked as the current, and the old one made idle. If the booting fails, the older DBL will continue to be used. This protects against corrupted DBL files, or power interruptions when performing flash writes. |