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: