Skip to content

Latest commit

 

History

History
87 lines (52 loc) · 3.66 KB

bios.md

File metadata and controls

87 lines (52 loc) · 3.66 KB

BIOS

BIOS on this device is a 1Mbit (128 Kb) FLASH, soldered on board which contains a proprietary Soekris Engineering comBIOS.

The net4501 comes with the Soekris Engineering netBIOS. The BIOS is designed especially for setup and operation using the serial port as the console. The BIOS is located in Flash memory, and can be upgraded over the serial port. Critical system setup parameters are also saved in the Flash memory, so the system will not lose any setup information due to CMOS battery backup power loss.

Running newer Linux kernels and GRUB2 requires updating to BIOS v1.33.

Updating comBIOS

Flashing new comBIOS image to your net4501 requires sending the new BIOS image over XMODEM protocol, over a serial connection. Binary image will be saved in memory at 4000:0000, from where it is flashed later in the process.

Prerequisites

A null modem cable is required to communicate with your Soekris net4501. To communicate with your net4501 you will need a serial tty I/O application.

GNU/Linux

For serial tty I/O we will use tio. To transfer the binary BIOS via XMODEM we will use sx which is a part of lrzsz package. Install it using your package manager. stty, which we will use to set serial connection parameters, is part of coreutils.

For Debian-based distros:

apt install tio lrzsz coreutils

For Fedora/RHEL:

dnf install tio lrzsz coreutils

For OpenWRT:

opkg install tio lrzsz coreutils-stty

Make sure both software and hardware XON/XOFF flow control is disabled. tio disables both software and hardware XON/XOFF flow control by default.

For other tty terminal applications, to temporarily disable XON/XOFF flow control in the current terminal session use:

stty -ixon

This will not persist beyond your current session.

Default baud rate for net4501 is 19200, however, if working on modern hardware feel free to raise it to 115200. If issues appear during this process lower the baud rate progressively until issues are gone.

Flashing

  1. Obtain the BIOS image from Soekris http://soekris.com/downloads.html Be cautious, if running a BIOS prior to 1.20, you will have to update to 1.26a first, and then update to 1.33 (the latest known version).

  2. Connect to you net4501 via serial console. If running tio:

tio /dev/ttyS0 -b 115200

Replace 115200 with the appropriate baud rate for your device (default is 19200).

  1. Upon successfully connecting to the device, enter Monitor mode by pressing CTRL+P prior to booting. After getting to the > prompt, issue download command.

Since BIOS v1.22 the download command defaults to CRC check for verifying the flash image is OK. By entering download - it's possible to revert to checksum.

  1. Disconnect tio by pressing CTRL+T Q (release CTRL before pressing Q).

  2. Send your new BIOS image to your net4501 using sx.

In most GNU/Linux distros:

sx -X xxx.bin > /dev/ttyS0 < /dev/ttyS0

replace xxx.bin with the name of your BIOS file and /dev/ttyS0 to designate your serial connection.

  1. Wait for the process to complete. Even faster baud rates are sluggish. e.g. 115200 baud is 14.0625 Kbps. When the file is transfered, you should get a message similar to Transfer complete.

  2. Reconnect to serial console (see step 2.).

  3. Issue the flashupdate command. In case your transfer has failed, or the BIOS image is corrupted, net4501 should check against a checksum. It should not allow you to flash a corrupt image.

  4. Finally, issue a reboot command. Your net4501 will now reboot. After POST you should now see it is using a new version of BIOS.