# # Copyright (c) 2010, Intel Corporation # All rights reserved. # # Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: # # * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. # * Neither the name of Intel Corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Prerequisites PC running 32-bit Linux (e.g., Fedora Core 10 or Ubuntu 9.10) Linux development tools: genromfs, mktemp, libncurses5-dev, zlib1g-dev, etc. Package Content: cs_rootfs_1.1.1\ root file system fwupdate\ Firmware Update tool proprietary\ Proprietary drivers in binary form romfs\ Work area to hold the contents of firmware image smp86xx_kernel_source_R2.6.22-19\ Linux kernel source build-all.sh Shell script for first-time build build-fw.sh Shell script that creates downloadable ROM file system image from romfs\ directory build-kernel.sh Shell script for building the kernel build-rootfs.sh Shell script for building the rootfs mips-4.3-51-mips-linux-gnu-i686-pc-linux-gnu.tar.bz2 MIPS cross compiler setpath.sh Shell script for setting up environment variables prior to building kernel and rootfs The source for the MIPS cross compiler is available here: http://www.codesourcery.com/sgpp/lite/mips/portal/package3545/public/mips-linux-gnu/mips-4.3-51-mips-linux-gnu.src.tar.bz2 To build the package for the first time: source ./build-all.sh build-all.sh will install cross compiler, build root file system, build kernel and create create downloadable firmware image. The downloadable firmware image (zbimage-linux-xload.monolithic) will be available in the current directory. To rebuild kernel: source ./setpath.sh source ./build-kernel.sh To rebuild rootfs: source ./setpath.sh source ./build-rootfs.sh To create downloadable firmware image: source ./setpath.sh source ./build-fw.sh build-fw.sh takes the content of ./romfs directory and creates a romfs image. The romfs image will be named zbimage-linux-xload.monolithic and placed in the current directory. The content of ./romfs directory: vmlinux_xload.zbf autoexec.rc fwupdate-tftp.sh vmlinux_xload.zbf is signed bootable Linux image. This file must not be modified or removed. Because of the Secure Boot feature, the CPU will boot only correctly signed file. When vmlinux_xload.zbf finishes booting, it will excute autoexec.rc script. The autoexec.rc provided in this package configures WiFi with SSID of "default" and static IP address of 192.168.16.99 and then starts telnet. You are free to modify this file but you should be very careful. If you make a mistake in configuring the WiFi, you might not be able to connect. If you cannot connect, you cannot change the firmware either. In other words, the adapter could be bricked if you are not careful. fwupdate-tftp.sh is a sample script that shows how the firmware can be updated. You are free to modify it to fit your needs. WARNING: You should use only /dev/nblock3. If you modify any other block, it is very likely that the adapter will be bricked. You can copy whatever you want into ./romfs directory and run build-fw.sh to generate new firmware image. The content of ./romfs directory will be availabe under /mnt mount point. The only limitation is that the maximum size of zbimage-linux-xload.monolithic is 17 Mbytes. To replace the standard Wireless Display firmware with your own firmware: Copy zbimage-linux-xload.monolithic into fwupdate folder and transfer the folder to a Wireless Display notebook computer. Run FWUpdateApp.exe inside the fwupdate folder on Wireless Display notebook computer. Select an adapter from Adapter List box and click "Start Firmware Update" button. Once firmware update begins, please do not turn off the adapter until it reboots. Flash Recovery If you brick your adapter, you might be able to revive it if you did not corrupt other blocks. To recover the original firmware, keep the recessed button pressed while turning on the power to the adapter. Keep the button pressed until the LED starts blinking. Then, release the button and wait for several minutes until adapter reboots to the Wireless Display Welcome screen. You should have a TV connected to the adapter so that you can see the welcome screen. If you do not see the Welcome screen in 10 minutes, you can try it again but chances are the adapter is unrecoverable.