Copyright (c) 2012-2016 Hyperion Entertainment and contributors.

UserDoc:BIOS

From AmigaOS Documentation Wiki
Jump to: navigation, search

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 setup 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 setup 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.
  • Custom Open Firmware compliant firmware was used on the Pegasos2 made by Genesi.

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.

U-Boot Environment Variables
Variable Name Common Values and Description
a1ide_conf
(not set) scan IDE buses and auto-configure
4 chars - (primary master,primary slave,secondary master,secondary slave)
0 nothing
1 hard disk
2 dvd/cdrom reader/writer

Onboard VIA686B only - specifies the configuration that a1ide.device will use.

a1ide_irq
(not set) use IRQs
4 chars - (primary master,primary slave,secondary master,secondary slave)
1 use IRQs
any other value don't use IRQs

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
(not set) both IDE channels
0 no IDE channel at all
1 only primary IDE channe
2 both IDE channels

Onboard VIA686B only - specifies which IDE Buses a1ide.device will use.

a1ide_timeout
(not set) 20
1 - 30 specified timeout

Onboard VIA686B only - specifies the timeout interval in seconds for a1ide connected devices. The recommended ATA(PI) specification is 30 seconds.

a1ide_xfer
(not set) use best PIO mode
4 chars - (primary master,primary slave,secondary master,secondary slave)
0 Automatic (best PIO mode)
a PIO 0 (3 MB/s, modeid 8)
b PIO 1 (5 MB/s, modeid 9)
c PIO 2 (8 MB/s, modeid 10)
d PIO 3 (11 MB/s, modeid 11)
e PIO 4 (16 MB/s, modeid 12)
A UDMA 0 (16 MB/s, modeid 64)
B UDMA 1 (25 MB/s, modeid 65)
C UDMA 2 (33 MB/s, modeid 66)
D UDMA 3 (44 MB/s, modeid 67)
E UDMA 4 (66 MB/s, modeid 68)
F UDMA 5 (100 MB/s, modeid 69)

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
on enables the AGP bus
off disables the AGP bus
agp_sideband
on enables sideband addressing on the AGP bus
off disables sideband addressing on the AGP bus
agp_speed
1x 1X speed
2x 2X speed
autostart
yes execute the kernel as soon as it has been loaded
no do not execute the kernel after loading
baudrate
9600 (default)
19200
38400
57600
115200
230400
460800
921600

Serial port baud rate.

boot1
cdrom IDE CDROM
floppy Floppy disk
ide IDE Disk
net Network
psii SII Parallel Disk
psiicdrom SII Parallel CDROM
scdrom SCSI CDROM
scsi SCSI Disk
sii SII Serial Disk
siicdrom SII Serial CDROM\)
ucdrom USB CDROM
usb USB Disk

Specifies the first device to boot from. Normally cdrom.

boot2
cdrom IDE CDROM
floppy Floppy disk
ide IDE Disk
net Network
psii SII Parallel Disk
psiicdrom SII Parallel CDROM
scdrom SCSI CDROM
scsi SCSI Disk
sii SII Serial Disk
siicdrom SII Serial CDROM\)
ucdrom USB CDROM
usb USB Disk

Specifies the second device to boot from. Normally ide.

boot3
cdrom IDE CDROM
floppy Floppy disk
ide IDE Disk
net Network
psii SII Parallel Disk
psiicdrom SII Parallel CDROM
scdrom SCSI CDROM
scsi SCSI Disk
sii SII Serial Disk
siicdrom SII Serial CDROM\)
ucdrom USB CDROM
usb USB Disk

Specifies the third device to boot from.

boot4
cdrom IDE CDROM
floppy Floppy disk
ide IDE Disk
net Network
psii SII Parallel Disk
psiicdrom SII Parallel CDROM
scdrom SCSI CDROM
scsi SCSI Disk
sii SII Serial Disk
siicdrom SII Serial CDROM\)
ucdrom USB CDROM
usb USB Disk

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
boota Amiga multiboot method
diskboot Linux direct method

Specifies how the machine is to be booted.

boota_keep_countdown
on Stop timer after a selection
off Continue timer after a selection (default)

Specifies whether the boota timer should continue after a selection is made.

boota_no_video_menu
on Display selection menu
off Disable selection menu (default)

Specifies whether the boota selection menu should be suppressed.

boota_scan_all_HDD
on Scan all hard drives
off Do not scan all hard drives (default)

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
diskboot Immediately boot from the designated disk (Linux).
"menu; run menuboot_cmd" Execute the "menu" command and then run the command in the "menuboot_cmd" variable (AmigaOS).
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
(not set) defaults to VIA IDE
psii sii0680ide (PATA)
ssii sii3112ide, sii3114ide or sii3512ide (SATA)

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
on (default)
off

Specifies whether to run "ide reset" as part of the boot sequence.

ide_maxbus
0 no devices attached to either channel
1 devices only attached to channel 1
2 devices attached to both channels

Specifies the maximum number of active IDE Buses for the onboard VIA controller.

ide_swap
0 use normal channels
1 swap channels

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
off Do not remap keys (default)
on Right Windows key should be mapped as the Menu key.
kbddev_sysreqishelp
off Do not remap keys (default)
on Map PRNSCR/SYSREQ or PRNSCR/SYSRQ (as shown on many keyboards) key should be mapped as the Help key.
limit_memory 512

Specifies a memory limit to restrict use of the available memory.\

menu_netboot
DHCP
BOOTP
ARP
TFTP

Specifies the network boot type when booting over a network. It is not used by AmigaOS or boota.

menuboot_cmd
(not set)
"ide reset; diskboot" Linux
"ide reset; boota; boota; boota" AmigaOS Multiboot

Specifies the commands to be issued on completion of the Menuboot delay.
Note the AmigaOS Multiboot sequence requires a command for each bootable device so boota is repeated.

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
278
378 (normal)

Specifies the Parallel Port address.

parallel_mode
0 ECP
1 EPP
2 Off (normal)
3 UNI

Specifies the Parallel Port mode.

pci_irqa 9

Specifies the IRQ level for PCI Interrupt A.

pci_irqa_select
edge Edge-triggered interrupts.
level Level-triggered interrupts. (normal)
pci_irqb 10

Specifies the IRQ level for PCI Interrupt B.

pci_irqb_select
edge Edge-triggered interrupts.
level Level-triggered interrupts. (normal)
pci_irqc 11

Specifies the IRQ level for PCI Interrupt C.

pci_irqc_select
edge Edge-triggered interrupts.
level Level-triggered interrupts. (normal)
pci_irqd 7

Specifies the IRQ level for PCI Interrupt D.

pci_irqd_select
edge Edge-triggered interrupts.
level Level-triggered interrupts. (normal)
preboot (not set)

Specifies any pre-boot commands.

rescan_bootunits
off (normal)
on

Specifies whether boota should rescan all of the boot units.

serial1_address
2E8
2F8
3E8
3F8 (normal)

Specifies the hardware address where Serial port 1 will be located.

serial2_address
2E8
2F8 (normal)
3E8
3F8

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
(not set) scan IDE buses and auto-configure
4 chars - (primary master,primary slave,secondary master,secondary slave)
0 nothing
1 hard disk
2 dvd/cdrom reader/writer

SII0680 only - specifies the configuration that sii0680ide.device will use.

sii0680ide_irq
(not set) use IRQs
4 chars - (primary master,primary slave,secondary master,secondary slave)
1 use IRQs
any other value don't use IRQs

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
(not set) both IDE channels
0 no IDE channel at all
1 only primary IDE channe
2 both IDE channels

SII0680 only - specifies which IDE Buses sii0680ide.device will use.

sii0680ide_timeout
(not set) 20
1 - 30 specified timeout

SII0680 only - specifies the timeout interval in seconds for sii0680ide connected devices. The recommended ATA(PI) specification is 30 seconds.

sii0680ide_xfer
(not set) use best UDMA mode (best PIO mode on Eyetech boards)
4 chars - (primary master,primary slave,secondary master,secondary slave)
0 Automatic (same as not set)
a PIO 0 (3 MB/s, modeid 8)
b PIO 1 (5 MB/s, modeid 9)
c PIO 2 (8 MB/s, modeid 10)
d PIO 3 (11 MB/s, modeid 11)
e PIO 4 (16 MB/s, modeid 12)
A UDMA 0 (16 MB/s, modeid 64)
B UDMA 1 (25 MB/s, modeid 65)
C UDMA 2 (33 MB/s, modeid 66)
D UDMA 3 (44 MB/s, modeid 67)
E UDMA 4 (66 MB/s, modeid 68)
F UDMA 5 (100 MB/s, modeid 69)
G UDMA 6 (133 MB/s, modeid 70)

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
(not set) scan IDE buses and auto-configure
2 chars - (primary bus/unit0,secondary bus/unit1)
0 nothing
1 hard disk
2 dvd/cdrom reader/writer

SII3112 only - specifies the configuration that sii3112ide.device will use.

sii3112ide_irq
(not set) use IRQs
2 chars - (primary bus/unit0,secondary bus/unit1)
1 use IRQs
any other value don't use IRQs

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
(not set) both IDE channels
0 no IDE channel at all
1 only primary IDE channel
2 both IDE channels

SII3112 only - specifies which IDE Buses sii3112ide.device will use.

sii3112ide_timeout
(not set) 20
1 - 30 specified timeout

SII3112 only - specifies the timeout interval in seconds for sii3112ide connected devices. The recommended ATA(PI) specification is 30 seconds.

sii3112ide_xfer
(not set) use best UDMA mode (best PIO mode on Eyetech boards)
2 chars - (primary bus/unit0,secondary bus/unit1)
0 Automatic (same as not set)
a PIO 0 (3 MB/s, modeid 8)
b PIO 1 (5 MB/s, modeid 9)
c PIO 2 (8 MB/s, modeid 10)
d PIO 3 (11 MB/s, modeid 11)
e PIO 4 (16 MB/s, modeid 12)
A UDMA 0 (16 MB/s, modeid 64)
B UDMA 1 (25 MB/s, modeid 65)
C UDMA 2 (33 MB/s, modeid 66)
D UDMA 3 (44 MB/s, modeid 67)
E UDMA 4 (66 MB/s, modeid 68)
F UDMA 5 (100 MB/s, modeid 69)
G UDMA 6 (133 MB/s, modeid 70)

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
(not set) scan IDE buses and auto-configure
4 chars - (primary master,primary slave,secondary master,secondary slave)
0 nothing
1 hard disk
2 dvd/cdrom reader/writer

SII3114 only - specifies the configuration that sii3114ide.device will use.

sii3114ide_irq
(not set) use IRQs
4 chars - (primary master,primary slave,secondary master,secondary slave)
1 use IRQs
any other value don't use IRQs

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
(not set) both IDE channels
0 no IDE channel at all
1 only primary IDE channel
2 both IDE channels

SII3114 only - specifies which IDE Buses sii3114ide.device will use.

sii3114ide_timeout
(not set) 20
1 - 30 specified timeout

SII3114 only - specifies the timeout interval in seconds for sii3114ide connected devices. The recommended ATA(PI) specification is 30 seconds.

sii3114ide_xfer
(not set) use best UDMA mode (best PIO mode on Eyetech boards)
4 chars - (primary master,primary slave,secondary master,secondary slave)
0 Automatic (same as not set)
a PIO 0 (3 MB/s, modeid 8)
b PIO 1 (5 MB/s, modeid 9)
c PIO 2 (8 MB/s, modeid 10)
d PIO 3 (11 MB/s, modeid 11)
e PIO 4 (16 MB/s, modeid 12)
A UDMA 0 (16 MB/s, modeid 64)
B UDMA 1 (25 MB/s, modeid 65)
C UDMA 2 (33 MB/s, modeid 66)
D UDMA 3 (44 MB/s, modeid 67)
E UDMA 4 (66 MB/s, modeid 68)
F UDMA 5 (100 MB/s, modeid 69)
G UDMA 6 (133 MB/s, modeid 70)

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
(not set) scan IDE buses and auto-configure
2 chars - (primary bus/unit0,secondary bus/unit1)
0 nothing
1 hard disk
2 dvd/cdrom reader/writer

SII3512 only - specifies the configuration that sii3512ide.device will use.

sii3512ide_irq
(not set) use IRQs
2 chars - (primary bus/unit0,secondary bus/unit1)
1 use IRQs
any other value don't use IRQs

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
(not set) both IDE channels
0 no IDE channel at all
1 only primary IDE channel
2 both IDE channels

SII3512 only - specifies which IDE Buses sii3512ide.device will use.

sii3512ide_timeout
(not set) 20
1 - 30 specified timeout

SII3512 only - specifies the timeout interval in seconds for sii3512ide connected devices. The recommended ATA(PI) specification is 30 seconds.

sii3512ide_xfer
(not set) use best UDMA mode (best PIO mode on Eyetech boards)
2 chars - (primary bus/unit0,secondary bus/unit1)
0 Automatic (same as not set)
a PIO 0 (3 MB/s, modeid 8)
b PIO 1 (5 MB/s, modeid 9)
c PIO 2 (8 MB/s, modeid 10)
d PIO 3 (11 MB/s, modeid 11)
e PIO 4 (16 MB/s, modeid 12)
A UDMA 0 (16 MB/s, modeid 64)
B UDMA 1 (25 MB/s, modeid 65)
C UDMA 2 (33 MB/s, modeid 66)
D UDMA 3 (44 MB/s, modeid 67)
E UDMA 4 (66 MB/s, modeid 68)
F UDMA 5 (100 MB/s, modeid 69)
G UDMA 6 (133 MB/s, modeid 70)

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
amiga Catweasel with Classic Amiga keyboard
amikbd Catweasel with Classic Amiga keyboard
ps2 standard PS2 keyboard
ps2kbd standard PS2 keyboard (normal)
serial external serial port

Specifies the standard input device.

stdout
serial external serial port
vga VGA display device (normal)

Specifies the standard output device.

usb0_enable
on Enable back panel ports (0/1)
off Disable back panel ports (0/1)
usb1_enable
on Enable header ports (2/3)
off Disable header ports (2/3)
usb_use_header
0 Use rear USB ports
1 Use front USB ports
use_memory_limit yes

Specifies whether the "memory_limit" variable is to be used.

vga_bg_color
0 Black (default)
1 Blue
2 Green
3 Cyan
4 Red
5 Magenta
6 Brown (Dark Yellow)
7 Light Gray
8 Dark Gray
9 Light Blue
10 Light Green
11 Light Cyan
12 Light Red
13 Light Magenta
14 Light Yellow
15 White

Specifies the background color for the UBoot initialisation screens.

vga_fg_color
0 Black
1 Blue
2 Green
3 Cyan
4 Red
5 Magenta
6 Brown (Dark Yellow)
7 Light Gray
8 Dark Gray
9 Light Blue
10 Light Green
11 Light Cyan
12 Light Red
13 Light Magenta
14 Light Yellow
15 White (default)

Specifies the foreground color for the UBoot initialisation screens.

video_num 1

Specifies the number of video devices.