Hello everybody,

my past experience with embedded PC computers includes a decade when 
CompactFlash was the bread and butter bootdisk flash format for the 
computers that we used to sell at the time.

As for IDE/CF conversion adapters, I recall a time when the CF cards 
did not support DMA operation, and consequently many earlier IDE/CF 
adapters did not support DMA either. Which was fun when the first CF 
cards arrived that *did* in fact support DMA. You'd get them 
"detected" by the BIOS (INQUIRY worked), but then reading the MBR 
failed :-)  So I suggest that you get some converter that does 
support DMA = does have the two signals required routed on the PCB.

As a particular CF/IDE adaptor model still available today, I'd like 
to mention the Delock model 91624 .
https://www.delock.com/produkt/91624/merkmale.html
I cannot see DMA mentioned in its description, but I'm pretty sure 
it's the surviving later generation of the board that does support 
DMA.

Pay attention to the cable that you're using. For UDMA above 33MBps, 
you need the dense 80wire cable. The aforementioned DeLock adaptor 
does have that missing pin in the 40pin header that allows you to 
plug in that modern IDE cable. If you use a sparse 40wire cable (or 
44wire for that matter) you'd better keep it as short as possible, 
otherwise you get IDE transaction errors.

If you stumble upon Geode-based PC hardware, be aware that especially 
its older generations used to have a problem with specific "ATA 
target controller" chip models that were popular in certain old CF 
card models. The symptoms span from mild rot (OS fails to boot after 
a successful installation) to heavy brain damage (ATA transaction 
failures during OS installation). I recall seeing a wave of such 
cards when the popular size was 16 - 64 MB, the controller chip brand 
was SSS (which you could only find out by cracking the card's 
mechanical shell open). And I seem to have recently stumbled upon an 
older piece of a 1GB CF card being flakey in an old Geode-based 
machine.

As for CF card brands... SanDisk is not a bad choice, overall their 
flash products are top notch within the general/consumer market.
For industrial-grade CF cards, I can warmly recommend Innodisk, 
though at the same time I should declare my vested interest (I work 
as a support techie with a small national distributor of this brand).
  https://www.innodisk.com/en/products/flash-storage/cf-card
For instance their iCF4000 family are all SLC-based and the current 
models work fine with Geode motherboards of all vintages. The SLC 
silicon technology can sustain maybe 50k total rewrites. Innodisk 
also have something called "iSLC", which apparently means using just 
the most-significant bit per cell, thus using the MLC memory in 
SLC-like mode. This yields about 20-30k rewrites for a lower cost. 
But even the SLC-based iCF4000 at 1 GB can cost maybe 30-40 EURO, 
depending on some further "flavours" of the card (temperature range 
for instance) and depending on where you can buy (and you also need 
to consider carriage!).

Be aware that swapping is generally not a very nice load on flash 
cards, as the write transaction may be smaller than a flash row size 
(page size), i.e. the written volume gets "multiplied".

A nice intro into flash space allocation / wear leveling algorithms 
in cards with block layer abstraction:
https://lwn.net/Articles/428584/
The IDE LBA sector size is 512 B.
The x86 VM page size is 4 kB (unless huge pages are configured).
The flash row size (page size) can be a couple dozen kB.
The erase block size is megabytes, rather than hundreds of kB.
Inside an ATA/SATA Flash drive or USB mass storage drive, there are 
two floors of space allocation (mapping) from the "virtual" LBA layer 
1) to "minimum writeable size" rows (pages) and 2) to the erase 
blocks. And quite some janitoring is going on in shuffling these 
allocation units around. Innodisk have some software tools (Windows 
only, AFAICT) to tell you the average and maximum number of 
overwrites (internally kept track of per erase block, apparently). 
These two figures are apparently somehow encoded in a proprietary 
SMART variable - details available from Innodisk techsupport by 
email.

Sorry to hear that 32bit Linux is no longer as straightforward as I 
used to appreciate it for the last two decades or so. It is true that 
I myself do not have any need for 32bit kernels anymore, as pretty 
much all embedded x86 PC's that we have sold over the last 5+ years 
(maybe more like a decade) already have 64bit cores :-) so even my 
PXEbooting test environment now has 64bit kernels and I don't 
remember the last time I got an error message trying to boot that on 
a 32bit CPU. I could try compiling a modern 32bit kernel with a 
minimal instruction set just for sport, but I don't really have the 
time...

I hope this helps :-)

Frank



_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to