[Soekris] Net5401 + OpenBSD + 256MB CF
dyoung at pobox.com
Tue Feb 4 02:03:21 UTC 2003
On Mon, Feb 03, 2003 at 07:49:22PM -0600, soekris-tech-admin at lists.soekris.com wrote:
> Also, I'm wondering if anyone has done any investigation as to why
> certain cards do not work. A friend of mine also purchased a Net4501
> with a Kingston 256MB CF card and has had no problems getting Linux to
> boot. However, using the same CF card in the same Net4501 with OpenBSD
> gives a "Read error" as the 1st stage tries to load the 2nd stage. This
> made me quite curious because from a technical standpoint, if Linux can
> boot, OpenBSD should as well. So, this past week I tried experimenting
> with a few things to see where the problem is.
Maybe the OpenBSD's and FreeBSD's bootloaders are still affected by a
bug which used to affect NetBSD's? Here is the log message for a patch
I made to NetBSD:
date: 2002/10/10 18:52:42; author: dyoung; state: Exp; lines: +39 -1
Introduce biosdiskreset(), and call it to reset the disk (with Int
0x13 Function 0) after a read error. This is a requirement mentioned
in most BIOS documentation.
This answers PR 18591.
Incidentally, on the Soekris Engineering net45x1 single-board
computer, this fixes a bug where the bootloader corrupts the kernel
while loading it from certain varieties of CompactFlash card
(especially varieties identified by NetBSD as <TOSHIBA THNCF064MBA>).
The patch affected sys/arch/i386/stand/lib/bios_disk.S. You might examine
the equivalent OpenBSD source file to find out if it does a proper disk
reset on read failures.
> The first thing I did was hack OpenBSD's biosboot program to do single-
> sector reads to load the 2nd stage. I got the idea from looking at
> LILO's source code. This actually worked and I was able to get to the
> 2nd stage boot loader giving me the "boot> " prompt. However, I could
> not load a kernel. Again, I got read errors. I briefly looked at
> OpenBSD's boot program, but the sources are quite a bit more complex
> than biosboot. Therefore I decided to move on to something else.
> Next I thought I'd try to get FreeBSD to boot from the Net4501, but
> again, ran into the dreaded "Read error" when trying to boot from the CF
> card. I decided to try PXE-booting and was able to boot into the
> FreeBSD 4.7 installation. I then performed a minimal installation from
> the Soekris with no problems. However, when I rebooted, I got the "Read
> Error" yet again.
> So, based from what I've been seeing through all of this, it would
> appear as though the BIOS for the Net4501's is having a problem reading
> data from the CF card in a block fashion. During OpenBSD's or FreeBSD's
> initial boot steps, the BIOS is used to read the kernel image off of the
> disk. However, once the kernel is loaded, the BIOS is no longer needed.
> In the case of FreeBSD where I was able to PXE-boot the kernel, I
> noticed no problems reading or writing data to the CF card. This is
> what leads me to the conclusion that it's the Soekris' BIOS that is
> causing problems in the boot process and not necessarily the card.
> Am I completely off-base here? Have any of the Soekris engineers taken
> a look at this more closely? I'd be interested in hearing other's
> opinions on this subject.
> Also, if it would help development in any way, I'd be more than happy
> to ship my Kingston CF cards to Soekris for testing.
> jason hord
> Soekris Engineering, technical discussion mailing list
> [un]subscribe: http://lists.soekris.com/mailman/listinfo/soekris-tech
David Young OJC Technologies
dyoung at ojctech.com Engineering from the Right Brain
Urbana, IL * (217) 278-3933
More information about the Soekris-tech