History Hurricane-LX BIOS ========================= Known issues: - The Insyde BIOS does not implement the System Management BIOS (SMBIOS) specification, which includes the Desktop Management Interface (DMI). This makes some Linux versions disable ACPI, assuming the BIOS is from 1999 or older. A workaround is to give "acpi=force" as a kernel parameter on boot. - Windows thinks ISA devices at 0220 conflict with the mother board resources at 1220-122F. It is wrong. If anyone ever finds a way to tell Windows that I/O 0220-022F really is fine to use on ISA, please drop us a note! - The BIOS itself implements only USB 1.1 support for booting from USB drives and for legacy software relying on INT 13 calls like DOS. You will only get USB 2.0 speed once your OS has loaded its native EHCI driver. - If several USB drives are connected on boot, all of them will be available via the legacy INT13 interface, however only the first to be found can be booted from. So, if in doubt, the bootable USB drive should be connected to USB port 0. On the Hurricane-LX, that's the one closest to the corner of the board. HLX00013.BIN --JR 07/2010 ------------ - Made the "80-Conductor Cable Sense" Setup option less confusing by no longer talking about GPIO numbers. GPIO 05 is hardwired anyway, so just called it "Auto" and removed the useless "None" choice. - If all boot devices failed, the BIOS used to make a last attempt hoping for some external IDE controller. But this led to booting from (internal) IDE or USB even if the user had deliberately dropped them from the boot order. Now this last attempt is skipped in that case. HLX00012.BIN --JR 12/2009 ------------ - Created a new Setup option allowing to disable the PS/2 mouse port. This will free up IRQ 12, e.g. for PC/104 (ISA) cards. - Disabling ACPI now makes IRQ 9 available. - Hoping to provoke less conflicts, moved DDMA I/O registers from 0x1300-137F to 0x1390-13FF and taught PnP ACPI to shrink it further if some channels are disabled. The problem is that Windows stubbornly assumes all ISA devices to decode only 10 bit addresses, so DMA was claimed to conflict with ISA cards at 0x300-37F. This is of course not the case as most current PC/104 devices decode full 16 bits and the ISA bridge per default doesn't forward accesses to 0x1300 anyway. By the way, did I mention ASL syntax is hell? - Also moved SPI from I/O 0x1200 to 0x1228, adjacent to Simple-I/O, for the same reason, to avoid imaginary conflicts with 0x200. - Before trying to boot from a device, made the BIOS look for some start code. - Extended the POST 9F/BF mem dump to show stuck address lines and added a second run with inverted patterns to test the other half of the data lines. - The BIOS will now remedy an unresponsive SPD EEPROM chip on the RAM module by effecting an automatic power cycle. - The new core introduced with HLX00007 greatly tightens the floppy timings to improve performance. AMD was too enthusiastic, though: had to reintroduce a delay to fix frequent read errors. HLX00011.BIN --JR 09/2009 ------------ - Added support for Hurricane-LX revisions 3V0 and later, which use a power up and watchdog circuitry similar to the CSR-/CLR-LX and introduce an SMC. This allows new features like LEMT, Wake on PS/2 and configurable Spread Spectrum and makes disabling the power button for Instant Power On unnecessary. NOTE: Applications MUST NOT CHANGE the affected watchdog config bits (SIO LDN 7, Index 72h, Bits 6+4), but keep the BIOS's settings to ensure reliable watchdog operation throughout all board revisions. NOTE: BIOS binaries below this point WILL NOT BOOT on Hurricane-LX board revisions 3V0 and later! HLX00010.BIN --JR 05/2009 ------------ - Reorganized and cleaned up all Setup menus. Looks much better now, should've done this a long time ago! - New feature: the watchdog can now be left armed on boot to get a seamlessly watchdog-protected boot process. The timeout can be configured up to 255 s. Over 6 weeks are technically possible, but I wanted to keep it simple. - Another novelty: a temperature limit can be set that, if exceeded, will trigger an OS-independent emergency shutoff. A power cycle will revive the board. - Made it possible to boot from an IDE Slave hard drive by swapping the BIOS drive number with the Master. - Reconfigured the watchdog clock source to get reproducible and more accurate timeouts. - Fixed a BIOS hang if PCI INTs are set to IRQ14 and no IDE device is present. - PNPACPI reported nonsense about the LPT port, making recent Linux kernels disable it. Fixed it, and many other bugs I tripped over along the way: ASL syntax is hell! Appearently even AMD developers were having trouble with it. - Also rewrote parts of the LPT initialization, this should make EPP and ECP modes work properly now. - Fixed the PCI resource assignment code to handle PCMCIA aka CardBus bridges correctly. - Fixed an error that hampered PCI busmaster DMA into the on-board graphics framebuffer. Framegrabber and TV cards' hardware overlay mode works now. - Previously unused I/O range 0x0298-029B is now used for SIO PME registers. - Changed order of NVRAM integrity and failed POST counter checks. - Minor precautionary fixes for IDE code to avoid potential geometry issues. HLX00009.BIN --JR 08/2008 ------------ - Updated splash screen to use new LiPPERT logo. - Enabled IT8888 DDMA channels 0,6,7 in Setup defaults. - Rewrote thermal display to be able to show negative values, and to get updated continuously. - Cosmetic changes to Setup, moved Primary ATA Controller to make room for Audio setting. - Created setup entry to make disabling audio PCI header possible. This will also power down the audio codec, saving 0.25 W. - Extended Setup option for SMB to also hide dedicated PCI headers for GPIO, MFGPT. They are obsolete, non-standard and may confuse OSes. The resources are mirrored in the ISA bridge header. - Fixed VSA bug making the I/O resources for SMB, GPIO, MFGPT appear in virtual PCI headers with wrong sizes. This caused Linux to detect bogus resource conflicts. - Fixed bug causing USB floppy always to be drive A:, even when chosen otherwise in setup. This also prevented booting a legacy floppy even without any USB drive connected. - Fixed bug causing POST to fail prematurely with code A5 when no SPD ROM was found. The correct behaviour is to continue to 7F without SPD or manual RAM timing data, or to fail with 9F if the memory controller got configured, but the RAM could not be accessed. - After failing with POST 9F or BF (stack setup, RAM test), a detailled mem dump is printed on port 80h to allow tracking down the culprit. For the meaning of the dump see example in postcode.txt. - Inserted HLT in kbd wait loop in INT16 AH=00/10, Pause and BIOS Setup (only in menu and help, not in value prompt and message boxes). Reduces power consumption by 1.3 W. - Corrected init of CS5536 GPIOs 6, 10, 27 (LAN_PD, THRM_ALRM, PM-LED). - Removed Display CRC check completely. This caused more trouble than it's worth - after all, if your graphics pipeline is broken, a message on the screen isn't helpful. The increased F1 timeout didn't solve things reliably, went back to 2000 ms. HLX00008.BIN --JR 02/2008 ------------ - Fixed BIOS crashing on USB drives partitioned to have 256 heads. - Also fixed 5(!) bugs returning an error and always 2 drives for floppy emulation, 1 cylinder too many otherwise in Get Drive Parameters INT13 call, total garbage nr of sectors in drive param table of EDD INT13 extension, and size of last partition instead of size of whole disk in both functions. - Rewrote central part of usb_device_detect. Insyde's crappy USB drive enumeration code was very fragile on unusually partitioned USB drives and behaved oddly with more than 1 device connected. A really clean solution is not easily possible, but it's definitely an improvement. - Increased default Splash Screen / F1 key timeout to 2200 to work around a strange bug causing HLX00007 failing to boot with "Display CRC error: Contact your board vendor." when PassMark USB test plugs are attached. - Added support for SST 25VF080B SPI flash chips. HLX00007.BIN --JR 11/2007 ------------ - Based on new Samba release 1.02.18 from Insyde: - Based on new core from AMD (Geode GX3 Ver1.09.07). - Fixed CPU temp display. - Added setup options "Force USB Floppy to drive A:", "P-State Limit" and "Primary ATA Controller". - Fixed boot from USB cdrom (Suse 10.2 CD) and other USB drives. - Fixed bluescreen when WinXP GPIO driver was installed. - Various other changes, see relnotes.txt in sources for complete list. - Ported all previous changes made to Samba release 13, see relnotes.txt. - Improved make.bat for easier compilation and adapted it to Samba Release 18. Will draw padded BIOS size from makefile now. - Extended BIOS binary to the full chip size of 1 MB. This ensures the CMOS backups get overwritten when updating. - Replaced splash screen with shifted image to counteract displaying bug. - Reimplemented CMOS-copy-to-flash to share more code with the CRR-LX. Additional to the SST 25LF080A, also supports Spansion S25FL008A and ST M25P80 SPI flash now. - Removed useless Backlight Control and flatpanel type auto detect. - Added ambient temp to Thermal config, fixed init. - Set Performance State Limit to 1 in setup defaults. - Init SIO regs for hardware monitoring and GPIOs. Mapped some to Simple-I/O. - Turn off POST Data Port 'feature' a lot earlier. - Switched clock throtteling interface from ACPI 1.0b to 2.0 and corrected/extended clock tables. - Reflected move of VSA mem to 80400000 in the ACPI tables. NOTE: BIOS binaries beyond this point have a different size, therefore 'flashrom' must be called with different parameters! HLX00006.BIN --JR 08/2007 ------------ - InstantHack(tm). Copied cstlvga.rom and vgdata.c from Samba Release 18 to fix WinXP splash screen when TFT is used. Will be replaced with a real Samba 18 based version soon (I hope). HLX00005.BIN --JR 04/2007 ------------ - New naming scheme for all LiPPERT BIOSes. - Improved make.bat, automatically draws BIOS filename from geodecfg.opt now. - Patched geode/pci/pciscan.asm (not overridden!). Before, all bridges were skipped when initializing, because they are supposedly handled later. But in fact, only PCI-to-PCI and CardBus bridges are, so now only they are skipped. This fixes the issue, that e.g. PCI-to-local-bus bridges on some PC/104+ cards are not initialized properly. - Disabled "POST data port" feature, which copies port 0x80 to the printer data port 0x378. E.g. Linux writes to 0x80 all the time, which might disturb applications connected to the printer port. - IT8888 DDMA channel 0 used ports 0x200X, which are already in use. Moved all DDMA regs to 0x1300-0x137F. - Moved IOD_SCs for ports 0x8X (DMA page regs) from GLIU2 to GLIU1, otherwise 0x87 will not be trapped (chip bug?). This makes ISA DMA0 work. Also trap only writes. - Now, additional to F1, DEL may be used for entering setup. - Changed setup defaults: APM disabled now. Some Linux versions fell asleep in the middle of the booting process (when apmd gets loaded?). - Renamed USB On-The-Go controller in BIOS setup to USB Option Controller. OTG is not supported, AMD removed it from the CS5536 specs. - Removed 3 s delay when Splash Screen Timeout is set to 0, but set default to 2000. Changed description to make clear that delay is not only used with splash screen enabled. HLX000V4.BIN --JR 12/2006 ------------ - Rearranged I/O traps in ddma.c to make ISA DMA16 work while still using the same number of IOD Descriptor MSRs, (which are almost depleted)! This works around a bug in the VSA sysmgr forgetting I/O traps when a port range begins in an already set up IOD_SC MSR but spans across its end. HLX000V3.BIN --JR 12/2006 ------------ - Renamed "LPC Card devices" to "Serial and Parallel ports". - Hid setup entries the customer is not supposed to play with: - all Flash Configuration items in Drive Configuration - all TV Output Configuration items in Video and Flat Panel Config - complete Memory and Cache Optimization screen in Main Menu - grayed out "Clock Determined By" in System Clock/PLL Config HLX000V2.BIN --JR 12/2006 ------------ - Preventively fixed possible bugs in CMOS-copy-to-flash. - Made ethernet LEDs blink the way AMD likes them. - Added watchdog init to lpcsio.asm. - Used Oli's favorite setup defaults: - GeodeLink Multiplier: 10 (was 8 => RAM 266->333 MHz) - Floppy BIOS Support: Disabled (saves 1 s when booting) - PCI INTC#: IRQ 5 - PCI INTD#: IRQ 15 - Instant Power On: Enabled - New help text for "Instant Power On" setup entry. - Increased number of reboots until defaults are loaded from 3 to 5 (like it's already said in the manual). - Cleaned up NVRAM definitions for INSTANT_ON and SMBUS_ENABLE. HLX000V1.BIN --JR 10/2006 ------------ alias "Hurricane_1.01.13-0V1.rom" - Cleaned up sources, added make.bat to ease compilation. - Implemented CMOS-copy-to-flash. - Increased BIOS size from 256KB to 512KB. - Replaced splash screen. - Changed Ethernet IRQ routing to fit production version of Samba. Hurricane_1.01.13.rom --Insyde 07/2006 --------------------- alias "Samba_1.01.13.rom" alias "LiPPERT release 12"(!) Original BIOS adapted for LiPPERT by Insyde, based on Samba release 1.01.12: - Removed "not for distribution" from the summary screen. - Added setup option for Instant On. - Disabled SMBus and HSDIP virtual PCI headers by default. - Removed GPIO25 from available GPIOs list. - Disabled setting of PM_FSD (Fail Safe) register for power button in CS5536 init code and in VSA. Initialized this later in UserRomInit routine.