Copyright (c) Hyperion Entertainment and contributors.
UserDoc:BIOS
When your Amiga computer system is powered on or reset, the BIOS or firmware's job is to initialize the hardware and to start the booting process of the operating system. It also enables you to define some settings that you may want to use either for the next boot or for every time you use your computer. There are two interface modes that can be used; a console mode and a graphical mode. If you are not an expert don't panic, because once you have set up some firmware variables, you'll use the console very rarely. Typically you will only use the graphic mode, i.e. the menus, which are easier to use. Your computer can boot in many different ways, depending how you set up your variables.
The firmware will generally not be updated very often. The reason for this is because the hardware itself is not changing. The firmware's job is to initialize the hardware to a pointer where the operating system can take over and nothing more.
The BIOS of a new generation Amiga computer will not be explained here as it depends on the hardware. Hence, it is the manufacturer's job to provide a manual describing how the BIOS works and which options you can select to operate the computer.
For now, there are:
- Das U-Boot used on the Sam440, Sam460 and AmigaOne 500 products from ACube Systems. U-Boot was also used by Eyetech for their AmigaOne-XE and MicroA1-C products and various developer boards.
- CFE used on the AmigaOne X1000 built by A-EON Technology.
- Das U-Boot used on the AmigaOne X5000 and AmigaOne A1222 built by A-EON Technology.
- Custom Open Firmware compliant firmware was used on the Pegasos2 made by Genesi.
Contents
Das U-Boot Environment Variables
Environment Variables are values that can be set during the boot process to control the behaviour of various pieces of software running on the computer. Some variables are shared by more than one process, while other are unique to a process, but there is no finite list of Environment Variables.
Displaying Environment Variables
To find out what Environment Variables are set on your machine type printenv at the U-Boot Console. The display will show each variable defined and its value, but it will NOT be alphabetically ordered as shown, and you will only be able to see the last 22 lines of the list.
In order to see the complete list, you must change the "stdout" environment variable from "vga" to "serial" and use a null modem cable from the serial port on the AmigaOne connected to the serial port of another computer running a serial comms program that can display the incoming data stream.
Alternatively, if you suspect a particular variable and want to check its contents, type printenv followed by the name of the variable, e.g.
]printenv autostart autostart=yes
Listing Environment Variables
Once AmigaOS has been installed you can obtain a complete unsorted list by typing NVGetVar from a Shell to display all of the UBoot environment variables. Typing NVGetVar >RAM:varlist will output the list to a file on the RAM Disk which you can print off for reference if required.
Warning |
---|
The battery on the motherboards used to maintain these variables has a life of around 3 years and will need to be replaced periodically. If the battery dies, or when you remove it to replace it, you will lose all of the U-Boot environment variables, so it is important to keep an up-to-date listing handy in order that you can reconfigure your machine when the need arises. |
Changing Environment Variables
If you find that an Environment Variable contains the wrong value, you can change it using the "setenv" command at the U-Boot console. For example, suppose you want to change the delay time for the U-Boot Initialisation Display, you simply enter a new value for the "bootdelay" variable, i.e.
]printenv bootdelay bootdelay=10 ]setenv bootdelay 3 ]saveenv ]printenv bootdelay bootdelay=3
Notice that the "=" sign is NOT used when specifying values for the setenv command. However, if the value contains any embedded blanks, the value must be enclosed within " marks.
Creating New Environment Variables
Anyone can create new variables for whatever they wish, and some people even create their own variables to save them having to key in repetitive commands each time, e.g.
]setenv lx "diskboot 500000 2:0 0; bootm" ]saveenv ]printenv lx lx=diskboot 500000 2:0 0; bootm
In future, rather than having to type the full command to install Debian from CD-ROM, they can simply type "lx". Note how more than one command can be specified on the same line separated by a semi colon " ; ".
Resetting or Removing Environment Variables
If you want to reset or remove an Environment Variable simply leave off the value, e.g.
]setenv lx ]saveenv ]printenv lx ## Error: "lx" not defined
Understanding Environment Variables
It can be very useful to know what some of these variables are and what they contain, particularly when things don't behave as expected, so we have compiled a list of common environment variables that we know about with typical values to give you some idea where to look.
Variable Name | Common Values and Description | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
a1ide_conf |
Onboard VIA686B only - specifies the configuration that a1ide.device will use. | ||||||||||||||||||||||||||||||||
a1ide_irq |
Onboard VIA686B only - specifies whether a1ide.device will use IRQs. Using interrupts relieves the CPU (PIO approx 20%, UDMA approx 95%). It also affects transfer speed (PIO 10-20% lower, UDMA 10-20% faster). | ||||||||||||||||||||||||||||||||
a1ide_maxbus |
Onboard VIA686B only - specifies which IDE Buses a1ide.device will use. | ||||||||||||||||||||||||||||||||
a1ide_timeout |
Onboard VIA686B only - specifies the timeout interval in seconds for a1ide connected devices. The recommended ATA(PI) specification is 30 seconds. | ||||||||||||||||||||||||||||||||
a1ide_xfer |
Onboard VIA686B only - specifies the transfer mode that a1ide.device will use for each device. If you specify an unsupported mode, it will use the best mode the drive claims to support. | ||||||||||||||||||||||||||||||||
agp_enable |
| ||||||||||||||||||||||||||||||||
agp_sideband |
| ||||||||||||||||||||||||||||||||
agp_speed |
| ||||||||||||||||||||||||||||||||
autostart |
| ||||||||||||||||||||||||||||||||
baudrate |
Serial port baud rate. | ||||||||||||||||||||||||||||||||
boot1 |
Specifies the first device to boot from. Normally cdrom. | ||||||||||||||||||||||||||||||||
boot2 |
Specifies the second device to boot from. Normally ide. | ||||||||||||||||||||||||||||||||
boot3 |
Specifies the third device to boot from. | ||||||||||||||||||||||||||||||||
boot4 |
Specifies the fourth device to boot from. | ||||||||||||||||||||||||||||||||
boot_command | Diskboot Specifies a command to be executed to invoke a disk boot. | ||||||||||||||||||||||||||||||||
boot_config | Default Specifies the name of the AmigaOS kickstart label to boot with. The SYS:Kickstart/kicklayout file contains one or more layouts and each one has a unique label. | ||||||||||||||||||||||||||||||||
boot_method |
Specifies how the machine is to be booted. | ||||||||||||||||||||||||||||||||
boota_keep_countdown |
Specifies whether the boota timer should continue after a selection is made. | ||||||||||||||||||||||||||||||||
boota_no_video_menu |
Specifies whether the boota selection menu should be suppressed. | ||||||||||||||||||||||||||||||||
boota_scan_all_HDD |
Specifies whether boota should scan all Hard Disk Drives. | ||||||||||||||||||||||||||||||||
boota_timeout | 10
Specifies the delay time in seconds for the Amiga Multi-boot Menu. | ||||||||||||||||||||||||||||||||
bootargs | arg1 arg2 arg3 ... Specifies the argument string that should be passed to Linux on booting. | ||||||||||||||||||||||||||||||||
bootcmd |
| ||||||||||||||||||||||||||||||||
bootdelay | 5 Specifies the delay time in seconds for the U-Boot Initialisation Display. | ||||||||||||||||||||||||||||||||
bootdevice | Specifies the hardware device for Linux to boot from. | ||||||||||||||||||||||||||||||||
ethact | Specifies the Ethernet device. | ||||||||||||||||||||||||||||||||
ethaddr | Specifies your unique Ethernet (MAC) address for network operation. | ||||||||||||||||||||||||||||||||
ide |
SIIxxxx only - Specifies the type of drives U-Boot should use for booting. | ||||||||||||||||||||||||||||||||
ide_cd_timeout | 30 Specifies the time in seconds to wait for an IDE CDROM drive before timing out. | ||||||||||||||||||||||||||||||||
ide_doreset |
Specifies whether to run "ide reset" as part of the boot sequence. | ||||||||||||||||||||||||||||||||
ide_maxbus |
Specifies the maximum number of active IDE Buses for the onboard VIA controller. | ||||||||||||||||||||||||||||||||
ide_swap |
Specifies that the Primary and Secondary bus should be swapped. | ||||||||||||||||||||||||||||||||
ipaddr | Specifies the local TCP/IP address for network booting - only used for TFTP booting. | ||||||||||||||||||||||||||||||||
kbddev_mapping | fromkey=tokey (fromkey=tokey....) Specifies whether keyboard remapping is required and which key(s) should be remapped and is typically used where a keyboard may not have particular keys. | ||||||||||||||||||||||||||||||||
kbddev_norwin |
| ||||||||||||||||||||||||||||||||
kbddev_sysreqishelp |
| ||||||||||||||||||||||||||||||||
limit_memory | 512 Specifies a memory limit to restrict use of the available memory.\ | ||||||||||||||||||||||||||||||||
menu_netboot |
Specifies the network boot type when booting over a network. It is not used by AmigaOS or boota. | ||||||||||||||||||||||||||||||||
menuboot_cmd |
Specifies the commands to be issued on completion of the Menuboot delay. | ||||||||||||||||||||||||||||||||
menuboot_delay | 3 Specifies the delay time in seconds for the Menuboot Delay panel. | ||||||||||||||||||||||||||||||||
menucmd | menu Specifies the command to be executed to invoke the boot menu. | ||||||||||||||||||||||||||||||||
os4_commandline | debuglevel=0 Specifies the argument string that should be passed to the AmigaOS kernel on booting. | ||||||||||||||||||||||||||||||||
parallel_address |
Specifies the Parallel Port address. | ||||||||||||||||||||||||||||||||
parallel_mode |
Specifies the Parallel Port mode. | ||||||||||||||||||||||||||||||||
pci_irqa | 9 Specifies the IRQ level for PCI Interrupt A. | ||||||||||||||||||||||||||||||||
pci_irqa_select |
| ||||||||||||||||||||||||||||||||
pci_irqb | 10 Specifies the IRQ level for PCI Interrupt B. | ||||||||||||||||||||||||||||||||
pci_irqb_select |
| ||||||||||||||||||||||||||||||||
pci_irqc | 11 Specifies the IRQ level for PCI Interrupt C. | ||||||||||||||||||||||||||||||||
pci_irqc_select |
| ||||||||||||||||||||||||||||||||
pci_irqd | 7 Specifies the IRQ level for PCI Interrupt D. | ||||||||||||||||||||||||||||||||
pci_irqd_select |
| ||||||||||||||||||||||||||||||||
preboot | (not set) Specifies any pre-boot commands. | ||||||||||||||||||||||||||||||||
rescan_bootunits |
Specifies whether boota should rescan all of the boot units. | ||||||||||||||||||||||||||||||||
serial1_address |
Specifies the hardware address where Serial port 1 will be located. | ||||||||||||||||||||||||||||||||
serial2_address |
Specifies the hardware address where Serial port 2 will be located. | ||||||||||||||||||||||||||||||||
serverip | Specifies the server IP address. The server must be running a supported networking boot service. | ||||||||||||||||||||||||||||||||
sii0680ide_conf |
SII0680 only - specifies the configuration that sii0680ide.device will use. | ||||||||||||||||||||||||||||||||
sii0680ide_irq |
SII0680 only - specifies whether sii0680ide.device will use IRQs. Using interrupts relieves the CPU (PIO approx 20%, UDMA approx 95%). It also affects transfer speed (PIO 10-20% lower, UDMA 10-20% faster). | ||||||||||||||||||||||||||||||||
sii0680ide_maxbus |
SII0680 only - specifies which IDE Buses sii0680ide.device will use. | ||||||||||||||||||||||||||||||||
sii0680ide_timeout |
SII0680 only - specifies the timeout interval in seconds for sii0680ide connected devices. The recommended ATA(PI) specification is 30 seconds. | ||||||||||||||||||||||||||||||||
sii0680ide_xfer |
SII0680 only - specifies the transfer mode that sii0680ide.device will use for each device. If you specify an unsupported mode, it will use the best mode the drive claims to support. | ||||||||||||||||||||||||||||||||
sii3112ide_conf |
SII3112 only - specifies the configuration that sii3112ide.device will use. | ||||||||||||||||||||||||||||||||
sii3112ide_irq |
SII3112 only - specifies whether sii3112ide.device will use IRQs. Using interrupts relieves the CPU (PIO approx 20%, UDMA approx 95%). It also affects transfer speed (PIO 10-20% lower, UDMA 10-20% faster). | ||||||||||||||||||||||||||||||||
sii3112ide_maxbus |
SII3112 only - specifies which IDE Buses sii3112ide.device will use. | ||||||||||||||||||||||||||||||||
sii3112ide_timeout |
SII3112 only - specifies the timeout interval in seconds for sii3112ide connected devices. The recommended ATA(PI) specification is 30 seconds. | ||||||||||||||||||||||||||||||||
sii3112ide_xfer |
SII3112 only - specifies the transfer mode that sii3112ide.device will use for each device. If you specify an unsupported mode, it will use the best mode the drive claims to support. | ||||||||||||||||||||||||||||||||
sii3114ide_conf |
SII3114 only - specifies the configuration that sii3114ide.device will use. | ||||||||||||||||||||||||||||||||
sii3114ide_irq |
SII3114 only - specifies whether sii3114ide.device will use IRQs. Using interrupts relieves the CPU (PIO approx 20%, UDMA approx 95%). It also affects transfer speed (PIO 10-20% lower, UDMA 10-20% faster). | ||||||||||||||||||||||||||||||||
sii3114ide_maxbus |
SII3114 only - specifies which IDE Buses sii3114ide.device will use. | ||||||||||||||||||||||||||||||||
sii3114ide_timeout |
SII3114 only - specifies the timeout interval in seconds for sii3114ide connected devices. The recommended ATA(PI) specification is 30 seconds. | ||||||||||||||||||||||||||||||||
sii3114ide_xfer |
SII3114 only - specifies the transfer mode that sii3114ide.device will use for each device. If you specify an unsupported mode, it will use the best mode the drive claims to support. | ||||||||||||||||||||||||||||||||
sii3512ide_conf |
SII3512 only - specifies the configuration that sii3512ide.device will use. | ||||||||||||||||||||||||||||||||
sii3512ide_irq |
SII3512 only - specifies whether sii3512ide.device will use IRQs. Using interrupts relieves the CPU (PIO approx 20%, UDMA approx 95%). It also affects transfer speed (PIO 10-20% lower, UDMA 10-20% faster). | ||||||||||||||||||||||||||||||||
sii3512ide_maxbus |
SII3512 only - specifies which IDE Buses sii3512ide.device will use. | ||||||||||||||||||||||||||||||||
sii3512ide_timeout |
SII3512 only - specifies the timeout interval in seconds for sii3512ide connected devices. The recommended ATA(PI) specification is 30 seconds. | ||||||||||||||||||||||||||||||||
sii3512ide_xfer |
SII3512 only - specifies the transfer mode that sii3512ide.device will use for each device. If you specify an unsupported mode, it will use the best mode the drive claims to support. | ||||||||||||||||||||||||||||||||
stdin |
Specifies the standard input device. | ||||||||||||||||||||||||||||||||
stdout |
Specifies the standard output device. | ||||||||||||||||||||||||||||||||
usb0_enable |
| ||||||||||||||||||||||||||||||||
usb1_enable |
| ||||||||||||||||||||||||||||||||
usb_use_header |
| ||||||||||||||||||||||||||||||||
use_memory_limit | yes
Specifies whether the "memory_limit" variable is to be used. | ||||||||||||||||||||||||||||||||
vga_bg_color |
Specifies the background color for the UBoot initialisation screens. | ||||||||||||||||||||||||||||||||
vga_fg_color |
Specifies the foreground color for the UBoot initialisation screens. | ||||||||||||||||||||||||||||||||
video_num | 1
Specifies the number of video devices. |