ALIX tinyBIOS revision history
------------------------------

v0.98g	11/26/07

	- fix CS5536 serial port flow control

v0.98f	11/26/07

	- disable audio section

v0.98e	11/25/07

	- serial console: allow Int 14 init to disable interrupt.
	- setup: add UDMA option

v0.98d	11/15/07

	- setup: change HDD slave to V (avoid misadvertent change)
	- setup: add MFGPT workaround option

v0.98c	11/13/07

	- alternate version without MFGPT reset

v0.98b	11/1/07

	- fix UART initialization

v0.98	10/31/07

	- skip DLL status check

v0.97	10/26/07

	- back to 400 MHz DRAM clock for ALIX.3*2

v0.96	10/25/07

	- always do HDD wait if enabled

v0.95	10/24/07

	- use 333 MHz DRAM clock for ALIX.3*2

v0.94	10/23/07

	- force MFGPT timer reset (undocumented MSR 5140002B per
	  workaround in AMD Linux driver)

	- fixed a bug in PCI BIOS find device function
	
	- auto detect DRAM clock to set correct refresh interval

v0.93	10/21/07

	- added port 92 reset support
	
	- added 19200 baud option

v0.92	10/3/07

	- added HDD wait option, adds some delay to allow detection of
	  conventional HDDs.
	
	- disable CS5536 diverse device power management to avoid MFGPT /
	  interrupt issues.
	
	- MFGPT issues: please observe AMD CS5536 data book section 5.16.3,
	  incorrect initialization sequence can HANG the system.

v0.90	9/25/07

	- Remapped audio and USB interrupts to offload regular PCI interrupts.
	
	- IRQ7 is no longer directed to the LPC bus, used as a default
	  interrupt for MFGPT high resolution timer.
	
	- Implemented BIOS setup. Press S during memory test to enter.
	
	- Added UMB (upper memory block) support.

ALIX / tinyBIOS quirks
----------------------

A20 gate

	A20 gate is always "open", prefer performance over support for
	broken legacy code.
	
HDD master / slave

	To reduce boot time, slave drives are not detected by default.
	Change the option in setup if required.
	
HDD wait

	Hard disk drives need more time to wake up, enable HDD wait in
	setup if necessary.
	
LPT IRQ

	IRQ7 is intentionally unmapped to allow use for MFGPT high speed
	timer.

RTC wake-up

	One customer reported strange behavior on ALIX.1C, set wake-up
	time to 999999 if problems occur.
	
UMB
	
	To support UMB (upper memory block), unused shadow RAM between
	C000 and E000 is left read/writeable.

Open issues
-----------

Boot device selection

	nice to have...

HDD support

	tinyBIOS does not include large HDD support (> about 40 GB) yet.
	
PCI boot ROMs

	Not handled correctly by tinyBIOS.

PCI bridges

	tinyBIOS bridge support is questionable, if in doubt send PCI dump +
	maybe sample hardware to PC Engines.
	
Port 92 restart

	Needs SMI emulation.
	
PXE boot

	Module added, but interferes with "S" setup key. Be persistent
	to enter setup. Shift-Tab cannot be entered through serial console,
	need to change to different PXE module without menu.
	
VGA

	ALIX.1C tinyBIOS does not support video.
	
Flash layout for ALIX						pd 070921
---------------------

The layout is controlled by the batch files used to build the BIOS,
for example lx3.bat.

00000 - 0FFFF	Config block (only first few bytes used, but the flash device
		has 64KB erase blocks)

10000 - 3FFFF	unused

40000 - 47FFF	unused / video BIOS (future use)

48000 - 5FFFF	unused

60000 - 6FFFF	PXE BIOS

70000 - 77FFF	SMI module

78000 - 78FFF	unused, space for runtime copy of config block

79000 - 7FFFF	tinyBIOS core

Memory layout for ALIX
----------------------

00000 - 9FFFF	RW	base 640K RAM

A0000 - BFFFF	-	unused / VGA memory

C0000 - C7FFF	RO	unused / video BIOS

C8000 - DFFFF	-	unused

E0000 - EFFFF	RW	PXE BIOS

F0000 - F7FFF	RW	SMI module

F8000 - F8FFF	RO	runtime copy of config block

F9000 - FFFFF	RO	tinyBIOS core

PCI Interrupt map
-----------------

Please note that ALIX.2A / ALIX.3A boards have a different mapping, please
use the correct files for these boards.

PCI dev	AD line	Int map		Description

00	..	-		unused

08	AD11	INTA		Geode LX host bridge (crypto)

10..40	12..18 	-		unused

48	AD19	INTB		LAN1 (right)

50	AD20	INTC		LAN2 (middle)

58	AD21	INTD		LAN3 (left)

60	AD22	INTA, INTB	miniPCI 1

68	AD23	-		unused

70	AD24	INTC, INTD	miniPCI2

78	AD25	INTA .. INTD	Geode CS5536

80..F8	..	-		unused

Interrupt map
-------------

IRQ0	timer
IRQ1	KBD (LPC)
IRQ2	cascade
IRQ3	COM1 serial (internal / LPC)
IRQ4	COM2 serial (LPC)
IRQ5	audio (CS5536)
IRQ6	FDC (LPC)
IRQ7	spare, used for MFGPT high resolution timer

IRQ8	RTC
IRQ9	PCI INTA
IRQ10	PCI INTB
IRQ11	PCI INTC
IRQ12	PCI INTD
IRQ13	floating point
IRQ14	IDE HDD
IRQ15	USB (CS5536)

