ABLE Bootloader FAQ

ABLE Logo
  1. What filesystems does ABLE support?
  2. ABLE doesn't recognise my (supported) filesystem, can this be fixed?
  3. ABLE has errors when reading a filesystem, can this be fixed?
  4. IDE device detection is not reliable especially with older CDROM drives
  5. Can ABLE load a raw binary image?
  6. The firmware was updated from cyclone to ABLE and now there is no visible activity while the video card BIOS is being emulated?
  7. How long should the Video BIOS emulation take on my EB110ATX?
  8. How is the ABLE console input and output set to use serial?
  9. The non volatile memory settings have become corrupt, how can they be reset?
  10. The non volatile memory settings are wrong and the boot sequence cannot be aborted
  11. Can the non volatile settings be overridden?
  12. How is the default boot command be set or changed?
  13. What must be done to get ABLE to automatically run Linux from disc after Debian installation?
  14. What terminal settings should be used for the ABLE serial console?
  15. Nothing appears on serial port when configured for serial console
  16. Windows Hyperterm does not work with serial console
  17. Can a USB keyboard be used with ABLE
  18. The Network interface does not report the correct line settings
  19. CDROMs do not have long filenames
  20. CDROM filenames are all in upper case
  21. CDROMs cannot be changed after boot
  22. Performing an nvclear then an nvsave operation doesnt clear nvsettings.
  23. What file format does the display command require?
  24. ABLE fails to obtain an automatic network configuration with BOOTP/DHCP, how is this fixed?
  25. ABLE does not automatically select an appropriate TFTP server, how is this corrected?

  1. What filesystems does ABLE support?

    The full versions of ABLE (Version 1.73 and later) can understand ISO9660, FAT, EXT2FS and U/FFS. These types are determined by the partitioning information of the media i.e an ISO9960 filesystem will be probed for on a CD and EXT2FS will be assumed for a partition with the type set to 0x83 (EXT2FS) on disc.

  2. ABLE doesn't recognise my (supported) filesystem, can this be fixed?

    If possible a dump of the first few hundred kilobytes of the disc would be helpful, together with as much information about the filesystems and partition layout as possible. This information should be directed to Simtec support or submitted via the website as a support incident.

  3. ABLE has errors when reading a filesystem, can this be fixed?

    Please report all the errors accurately and if possible a dump of the first few hundred kilobytes of the disc would be helpful, together with as much information about the filesystems and partition layout as possible. This information should be directed to Simtec support or submitted via the website as a support incident.

  4. IDE device detection is not reliable especially with older CDROM drives

    Ensure ABLE is updated to version 1.73 or later. An issue with the timeout length on drive diagnose commands caused unreliable device detection in some configurations.

  5. Can ABLE load a raw binary image?

    ABLE loads files and determines their type using a "magic number". Currently ABLE cannot determine the type of a raw binary image so is unable to execute such images directly.

    ABLE does support Motorola S-records which can be used to load binary data directly into SDRAM (the exec address is set with the close record). The code is entered with the MMU off.

    Possibly the easiest method to execute arbitrary code is to place the four byte sequence 0x016f2818 at offset 36 in your binary. This is the magic number of a Linux kernel. The code will be loaded at 0x8000 and entered with the MMU off. This should suffice as a workaround until ABLE is modified to allow the recognition of arbitrary binaries.

  6. The firmware was updated from cyclone to ABLE and now there is no visible activity while the video card BIOS is being emulated?

    The moving keyboard lights effect was removed from the BIOS emulation as it had a large impact on emulation time (up to 30%).

  7. How long should the Video BIOS emulation take on my EB110ATX?

    The time to emulate a video card BIOS is very card specific, some example times are 40seconds for a 4MB IGS5000 and 60 seconds for an 16MB NVidia card. ABLE is significantly faster at this BIOS emulation than previous firmware.

  8. How is the ABLE console input and output set to use serial?

    Prior to ABLE 2.20 this is achieved as outlined here. From ABLE 2.20 onwards the console system has become much more powerful and is documented in Chapter 4 "ABLE Console" of the user guide.

    Prior to ABLE 2.20, whatever the current console is configured to (if unknown see Question 11 to get known values) use the nvset to change the cons-read and cons-write variables to "serial"

    Example Setting console to serial port

    >nvshow
    shell-hist (is unset)
    cons-write (is unset)
    cons-read (is unset)
    boot.auto (is unset)
    boot.cmd (is unset)
    boot.timeout (is unset)
    fb.enable  = off
    fb.output (is unset)
    fb.y (is unset)
    fb.x (is unset)
    sys.autoshadow  = on
    sys.speed (is unset)
    >nvset cons-write serial
    >nvset cons-read serial
    >nvshow
    shell-hist (is unset)
    cons-write  = serial
    cons-read  = serial
    boot.auto (is unset)
    boot.cmd (is unset)
    boot.timeout (is unset)
    fb.enable  = off
    fb.output (is unset)
    fb.y (is unset)
    fb.x (is unset)
    sys.autoshadow  = on
    sys.speed (is unset)
    >nvsave
    >
  9. The non volatile memory settings have become corrupt, how can they be reset?

    If necessary use the technique described in Question 11 to override your corrupt settings. Use the nvclear command to clear all the setting back to defaults, reconfigure any settings you need and use the nvsave command to store them back.

  10. The non volatile memory settings are wrong and the boot sequence cannot be aborted

    Use the technique described in Question 11 to override the the incorrect settings. Use the Non volatile settings commands to correct the settings.

  11. Can the non volatile settings be overridden?

    The non-volatile settings on all boards can be either wiped or ignored when the system is powered up. Usually the board will have a red link cap on the non-volatile RAM jumper (please refer to your board's pinout or technical reference manual for exact details). The EB7500ATX and EB110ATX jumper will clear the non-volatile memory and loose all settings but the EB2410ITX jumper merely ignores the non-volatile setting at boot time.

  12. How is the default boot command be set or changed?

    To change the default boot behavior of ABLE there are three relevant non volatile settings, these are boot.auto, boot.cmd and boot.timeout. The boot.auto controls whether ABLE will attempt to run the boot.cmd automatically at startup and the boot.timeout controls how long ABLE waits (in seconds) before executing the command.

    The boot process is covered in Chapter 6 "Automatically starting an Operating system" and Chapter 7 "Manually starting an Operating system" of the ABLE user guide.

  13. What must be done to get ABLE to automatically run Linux from disc after Debian installation?

    The default boot command must be changed to run the Linux kernel this is achieved using the Non volatile settings commands (see Question 12 ). ABLE understands a variety of filesystems (see Question 1), the kernel must be on a partition with a supported filesystem to be booted by ABLE. The exact Linux device to use for the root disc can usually be easily determined from the ABLE boot text and will appear in a line similar to

    (hd0) on ((hda1):ext2)

    This shows ABLE has found a valid filesystem on hda1 and mapped the drive to the ABLE (hd0). The partition can be examined with the ls command

    >ls (hd0)
    lost+found
    root
    boot
    vmlinuz
    tmp
    lib
    usr
    sbin
    etc
    var
    bin
    dev
    home
    mnt
    proc
    opt
    floppy
    cdrom
    initrd
    >

    In this case the boot.cmd should be set to "(hd0)vmlinuz root=/dev/hda1"

    Note

    If the serial console is being used the command line parameter "console=ttySAC0" must be appended to the command line i.e. in this case it should read "(hd0)vmlinuz root=/dev/hda1 console=ttySAC0"

    Example Setting the boot.cmd to boot Linux

    >nvset boot.cmd "(hd0)vmlinuz root=/dev/hda1"
    >nvshow
    shell-hist (is unset)
    cons-write  = serial
    cons-read  = serial
    boot.auto (is unset)
    boot.cmd  = (hd0)vmlinuz root=/dev/hda1
    boot.timeout (is unset)
    fb.enable  = on
    fb.output (is unset)
    fb.y (is unset)
    fb.x (is unset)
    sys.autoshadow  = on
    sys.speed (is unset)
    >nvsave
    >
  14. What terminal settings should be used for the ABLE serial console?

    Prior to ABLE 2.20 the values here are correct and are still the defaults. In ABLE 2.20 and later these settings may be overridden by console configuration, full details may be found in Chapter 4 "ABLE console" of the user guide.

    Default speed settings are 9600 baud for the EB7500ATX, 38400 baud for the EB110ATX and 115200 baud for the EB2410ITX. All should be configured with 8 data bits, no parity and one stop bit (8N1). Also ensure all handshaking, both hardware and software, is disabled as the ABLE serial console does not support these features.

  15. Nothing appears on serial port when configured for serial console

    Ensure the terminal settings are correct for your machine. See Question 14 for details. Special attention should be paid to the flow control settings.

  16. Windows Hyperterm does not work with serial console

    The automatic speed negotiation in windows Hyperterm appears to fail when used with the ABLE serial console. Setting the values manually works correctly (see Question 14 for details on serial settings).

  17. Can a USB keyboard be used with ABLE

    ABLE versions prior to 2.20 do not support USB keyboards, all later versions do. The stack is limited by the usb.hubdepth non volatile parameter to the number of levels the stack will scan hubs for devices. In addition the stack can be disabled with the usb.enable variable.

    Some platforms which have USB ports still lack USB support (EB110ATX and EB7500ATX) because they do not have adequate flash storage for the USB stack.

  18. The Network interface does not report the correct line settings

    This is caused by the network connection becoming unavailable e.g. unplugged cable or the network controller taking an extended amount of time to negotiate a link. This will resolve itself and the link will become correctly configured.

  19. CDROMs do not have long filenames

    ABLE 1.86 and later support Rockridge extensions allowing the use of long filenames, prior to version 1.86 ABLE only supported basic ISO9660 Filesystems and not Rockridge.

    Joliet extensions remain unsupported at this time.

  20. CDROM filenames are all in upper case

    ABLE 1.86 and later support Rockridge extensions providing proper name capitalization, prior to version 1.86 ABLE only supported basic ISO9660 Filesystems and not Rockridge.

    Joliet extensions remain unsupported at this time.

  21. CDROMs cannot be changed after boot

    Currently ABLE does not support ATAPI (which CDROMS are) device media changing. This will be improved in future.

  22. Performing an nvclear then an nvsave operation doesnt clear nvsettings.

    The nvsave command does not require an additional nvsave command. The nvsave command does not change the current settings. This allows the recovery of settings, with nvsave if an unrequired nvclear command is issued.

  23. What file format does the display command require?

    The display command supports simple non-RLE encoded 8 bit per pixel BMP files. To be recognized by ABLE the BMP must be compressed using either the UNIX compress or gzip compress programs.

    such files can be generated using the imagemagic convert program. A suitable command line to generate usable BMP files would be:

    bast:~$ convert source.jpg -resize 640x480 -colors 256 -compress none bmp3:output.bmp
    bast:~$ gzip output.bmp
  24. ABLE fails to obtain an automatic network configuration with BOOTP/DHCP, how is this fixed?

    ABLE can perform a BOOTP/DHCP (specified in RFC 2131) auto configuration to obtain its network parameters.

    A configuration faliure is typically exhibited when the user tries to boot an image for the first time, for example:

    ABLE 2.09 (C) 2001-2005 Simtec Electronics
    DM9000: dm0: r1, 00:11:ac:00:06:00 int phy, link ok, 100Mbit full duplex
    >(tftpboot)batty
    tftp: attempting bootp
    bootp: sending request
    bootp: readudp returned -2
    bootp: readudp returned -2
    bootp: readudp returned -2
    sendrecv: timeout
    bootp: no reply
    tftp: bootp failed to get IP address
    sh: (tftpboot)batty.img: error: unknown error code (-2)
    >
    

    Firstly ensure that the physical network is properly connected and configured. The BOOTP/DHCP server should be checked to ensure it is configured to serve the device.

    Configuring a DHCP server will often require the MAC address of the device, this is clearly shown during ABLE boot and will be prefixed with the sequence 00:11:ac

    If the BOOTP server logs do not yield a solution the BOOTP session may be dumped using a tool such as tcpdump:

    tcpdump -n -v -i eth2 udp port 67 and port 68 and ether host 00:11:ac:00:06:00

    where the MAC address of the module and the Ethernet interface to use is substituted.

    A successful session would look something like

    21:28:19.000508 IP (tos 0x0, ttl   4, id 0, offset 0, flags [none], length: 576) 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:11:ac:00:06:00, length: 548, flags: [none]
              Client Ethernet Address: 00:11:ac:00:06:00 [|bootp]
    21:28:20.257392 IP (tos 0x0, ttl   4, id 0, offset 0, flags [none], length: 576) 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:11:ac:00:06:00, length: 548, secs:2, flags: [none]
              Client Ethernet Address: 00:11:ac:00:06:00 [|bootp]
    21:28:20.449652 IP (tos 0x10, ttl  64, id 0, offset 0, flags [none], length: 375) 192.168.7.1.67 > 192.168.7.238.68: BOOTP/DHCP, Reply, length: 347, flags: [none]
              Your IP: 192.168.7.238
              Server IP: 192.168.7.1
    

    This shows a BOOTP server (address 192.168.7.1) responding to the module with an address of 192.168.7.238

    If this still does not assist in finding the problem please contact Simtec support.

  25. ABLE does not automatically select an appropriate TFTP server, how is this corrected?

    ABLE uses the siaddr or "next server" parameter, provided by the DHCP server which supplied the network configuration, for its TFTP server address.

    If the DHCP server does not specify a "next server" parameter ABLE attempts to create a suitable IP address for the server by selecting the first address of the network specified by the DHCP server.

    For example if the DHCP server gave an IP address response of 192.168.7.238 ABLE will use the first address of the class C range (192.168.7.1). If the behaviour outline here is not wanted the DHCP server must specify an appropriate "next server" parameter.

Other pages