ARM Versatile/AB reference design with the IB2 interface board and some splash graphics on the little display.
Serial Terminal
Install minicom. In Fedora it's simply yum install minicom and you're done with it.
Setup minicom, I just use this terminal program out of habit, and it's simple to suspend to do other stuff on the serial port, like uploading S-records. So:
- As root: minicom -s
- In the Serial port setup, select port (/dev/ttyS0 for your first built-in port, /dev/ttyUSB0 for a USB-to-serial dongle) menu set up 38400 baud, 8 data bits, NO parity, 1 stop bit, NONE control flow, then select NO hardware flow control - the symptom for not doing this will be that the boot monitor prompt goes numb, i.e. you cannot interact with it, ENTER is useless etc.
- In the Modem and dialing menu delete "init string", "reset string" and "hang up string", this is no modem so why would we care, it only disturbs our use of the serial port for uploading S-records and stuff
- Save as dfl to save this as default
Toolchain
The latest Linaro GCC toolchain is what I usually use to compile recent kernels for almost all CPUs.
U-boot
Compiling U-Boot
- Clone a u-boot from Das U-Boot git over at denx.de
- Configure and build the shebang for the Versatile/PB:
cd u-boot mkdir build export CROSS_COMPILE=arm-none-eabi- make O=build CROSS_COMPILE=$(CROSS_COMPILE) distclean make O=build CROSS_COMPILE=$(CROSS_COMPILE) versatilepb make O=build CROSS_COMPILE=$(CROSS_COMPILE) all
If you think it's fun you can use my versatile-uboot.mak file to build it like this: make -f integrator.mak build (use it in the u-boot root dir)
- Make sure that u-boot.bin appears in your build directory.
- Copy the u-boot.bin to the MMC card.
- Power on the Versatile.
- Convert the u-boot.bin to u-boot.exe like this:
M:\> convert binary u-boot.bin load_address 0x01000000 entry_point 0x01000000
- Run U-Boot like this: run u-boot.exe
ARM Versatile/AB reference design with the IB1 interface board and the Sharp LQ084V1DG21 display with some splash graphics.
Linux Kernel
When I build kernels I use this versatile.mak makefile, like this: make -f versatile.mak config && make -f versatile.mak build - it is mainly a way to automate things.
You need an external root filesystem or my homebrew initramfs root filesystem to attach to the kernel when building it if you wanna get to prompt.
When building kernels I use a minimal initramfs root filesystem placed in my home directory. (This is to get you to a prompt without a root filesystem installed in the flash.) These root filesystems are created using this script. See below for prebuilt versions.
You can easily download the kernel into the target using the ethernet connector and TFTP from U-Boot like this:
setenv serverip 169.254.1.1;setenv ipaddr 169.254.1.2;setenv bootfile uImage;tftpboot;bootm
See my notes on setting up a TFTP server if you need help with that.
Binaries
- U-BOOT.EXE - a precompiled U-Boot
- uImage-ab-v4.20 self-contained kernel image with initramfs for the Versatile/AB
- uImage-ab-ib2-v4.20+ self-contained kernel image with initramfs for the Versatile/AB with the IB2 (Interface Board 2, Mobile phone type) daughterboard
- rootfs-versatile.cpio a minimal Busybox-based root filesystem with splash graphics for the Versatile.