paul@31 | 1 | Introduction
|
paul@31 | 2 | ------------
|
paul@31 | 3 |
|
paul@31 | 4 | NanoPayload is a test of bootable payloads for the Ben NanoNote, exploring the
|
paul@31 | 5 | necessary initialisation activities to allow programs to run on the device.
|
paul@31 | 6 | Unlike U-Boot, it does not seek to become a general framework for booting any
|
paul@31 | 7 | kind of device; instead, it merely attempts to provide a minimal collection of
|
paul@31 | 8 | routines for "bare metal" software usage in order to illustrate the
|
paul@31 | 9 | initialisation requirements and to make it possible to deploy other software.
|
paul@31 | 10 |
|
paul@65 | 11 | An attempt has been made to also generate payloads for the jz4730-based
|
paul@65 | 12 | MiniPC/Mipsbook/Minibook device. This device does not appear to support USB
|
paul@65 | 13 | boot mode, and thus any payloads will need to be deployed by other means, such
|
paul@65 | 14 | as through the use of SD/MMC media.
|
paul@65 | 15 |
|
paul@65 | 16 | Deployment over USB
|
paul@65 | 17 | -------------------
|
paul@65 | 18 |
|
paul@44 | 19 | The payloads can be deployed on the Ben NanoNote using the USB boot mode as
|
paul@44 | 20 | described on the Qi-Hardware site:
|
paul@44 | 21 |
|
paul@44 | 22 | http://en.qi-hardware.com/wiki/USB_BOOT_mode
|
paul@44 | 23 |
|
paul@65 | 24 | The provided script can be issued on a USB host machine as follows (given
|
paul@44 | 25 | sufficient privileges):
|
paul@44 | 26 |
|
paul@65 | 27 | ./boot_usb
|
paul@65 | 28 |
|
paul@65 | 29 | This employs the xbboot program which is available in the xburst-tools
|
paul@65 | 30 | package:
|
paul@65 | 31 |
|
paul@65 | 32 | http://en.qi-hardware.com/wiki/Xburst-tools
|
paul@65 | 33 |
|
paul@65 | 34 | The different MiniPC products do not appear to support USB boot.
|
paul@65 | 35 |
|
paul@65 | 36 | Deployment using microSD/SD/MMC Media
|
paul@65 | 37 | -------------------------------------
|
paul@44 | 38 |
|
paul@65 | 39 | The stage 2 payload can be written to a suitable media card as a uImage file
|
paul@65 | 40 | which can then be loaded and invoked by a U-Boot bootloader already installed
|
paul@65 | 41 | on the Ben NanoNote or MiniPC product.
|
paul@65 | 42 |
|
paul@65 | 43 | Typically, U-Boot on the Ben NanoNote will look for such a file located at
|
paul@65 | 44 | /boot/uImage within the first partition of a microSD card. On the MiniPC,
|
paul@65 | 45 | U-Boot will look for a file located at /uImage (in other words, a file called
|
paul@65 | 46 | uImage in the top-level directory) within the first partition of an SD card.
|
paul@65 | 47 |
|
paul@65 | 48 | Since U-Boot should have initialised the RAM and clocks, the stage 1 payload
|
paul@65 | 49 | is superfluous, and only the stage 2 payload is needed in this situation.
|
paul@44 | 50 |
|
paul@31 | 51 | Related U-Boot Resources
|
paul@31 | 52 | ------------------------
|
paul@31 | 53 |
|
paul@44 | 54 | For the Ben NanoNote, some resources may only exist in the branch of U-Boot
|
paul@44 | 55 | identified as u-boot-2012.10-rc2 when configuring OpenWrt. Others may exist in
|
paul@44 | 56 | the principal U-Boot development branch, but differ between that branch and
|
paul@44 | 57 | the previous XBurst-supporting branch.
|
paul@31 | 58 |
|
paul@31 | 59 | arch/mips/cpu/xburst/jz4740.c RAM and clock-related initialisation
|
paul@31 | 60 | arch/mips/lib/board.c generic board initialisation
|
paul@31 | 61 | arch/mips/include/asm/io.h things like readl and writel
|
paul@31 | 62 | board/qi/qi_lb60/qi_lb60.c board-specific initialisation
|
paul@31 | 63 | common/lcd.c generic LCD initialisation
|