[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#661861: PC Engines Alix 3C2: Boot hang waiting for /dev to be fully populated



On 04/03/12 07:37, Jonathan Nieder wrote:
> Thanks.  Does v0.98d, v0.99g, or v0.99 work, too?  (The changelog
> entry "Setup: change HDD slave to V (avoid accidental change)" sounds
> vaguely promising.)

I didn't test each intervening version. I have since reinstalled the
machine into its remote location. I will test it again when I get
physical access to it (if the BIOS updater allows downgrades).

I'm also attaching the Alix BIOS changelog referenced in the last post
for completeness.

Jon
How to upgrade the BIOS
-----------------------

1. Use a CF card that boots FreeDOS or similar.

Copy sb.com and alix*.bin to the CF card. Execute sb.com, this will
automatically select the right file and upgrade flash. DO NOT RENAME FILES.

Please see www.pcengines.ch/freedos.htm for details on how to prepare
a bootable FreeDOS CF card.

2. Serial port upgrade

Enter BIOS setup by pressing S during memory test. Then press X to start
transfer, and start a X-Modem 1K (CRC) upload / send in your communication
program. For alix.2* send alix2.upd, for alix.3* send alix3.upd.

Please note that all BIOS setup options are reset to default by the upgrade.

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

v0.99h	pd 081105	Enable banked extensions for CS5536 UARTs.

v0.99g	pd 081002	Add support for ALIX.4 board.

v0.99f	pd 080919	Experimental: swap INTD and USB interrupt assignment
			to avoid Mikrotik conflict between USB and non-existent
			secondary IDE...
			
			Experimental: enable HD_EDD, fix drive geometry report.

v0.99e	pd 080907	Correct COM2 port setup to I/O 02F8.

v0.99d	pd 080618	Enable CS5536 COM2 port for ALIX.6B and ALIX.2D
			boards.

v0.99c	pd 080222	USB gang power control to enable higher power USB
			modification.

v0.99b	pd 080111	Add PCI table entry for Commell MP-541
			dual LAN miniPCI card.

v0.99	pd 071210	Setup: changed description from Etherboot to PXE boot

v0.98j	pd 071206	Setup: add late PCI init option to support
			FPGA based miniPCI cards that take a long time
			to wake up... (symptom: no interrupt assigned)

v0.98h	pd 071203	Change to BIOS controlled PXE module

v0.98g	pd 071126	Fix CS5536 serial port flow control

v0.98f	pd 071126	Disable audio section

v0.98e	pd 071125	Serial console: allow Int 14 init to disable interrupt.
			Setup: add UDMA option

v0.98d	pd 071115	Setup: change HDD slave to V (avoid accidental change)
			Setup: add MFGPT workaround option

v0.98c	pd 071113	Alternate version without MFGPT reset

v0.98b	pd 071101	Fix UART initialization

v0.98	pd 071031	Skip DLL status check

v0.97	pd 071026	Back to 400 MHz DRAM clock for ALIX.3*2

v0.96	pd 071025	Always do HDD wait if enabled

v0.95	pd 071024	Use 333 MHz DRAM clock for ALIX.3*2

v0.94	pd 071023	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	pd 071021	Add port 92 reset support
	
			Setup: add 19200 baud option

v0.92	pd 071003	Add 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
			will HANG the system.

v0.90	pd 070925	Remap 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.
	
			Implement BIOS setup. Press S during memory test
			to enter.
	
			Add 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.

PXE boot

	Use setup to enable, or press N during memory test to select
	network boot for this startup only.
	
Reboot

	Best method to reboot ALIX.2 / ALIX.3 boards is to use either port 92
	or the dedicated reset registers in CS5536.

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
-----------

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.

VGA

	ALIX.1C tinyBIOS does not support video. Use Award BIOS for this.
	
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
ask for specific BIOS images for these boards.

PCI dev	AD line	Int map		Description

00	..	-		unused

08	AD11	INTA		Geode LX host bridge (crypto)

10..30	12..16 	-		unused

38	AD17	INTB		miniPCI1 secondary device (Commell hack)

40	AD18	-		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	COM2 serial (LPC)
IRQ4	COM1 serial (internal / 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	USB (CS5536)
IRQ13	floating point
IRQ14	IDE HDD
IRQ15	PCI INTD


Reply to: