On Tue 20 Jun, Russell King - ARM Linux Admin wrote:
> Mark Scholes writes:
> > I run PartMan 1.13b2 (the latest AFAIK) chose ADFS and the drive,
> > entered the number of cylinders in the Geometry window as the number
> > reported was 16383
> 16383 is the maximum number of cylinders that the drive itself will report.
Yes. I think I sent in a patch that helps with this problem (Russell?
but maybe I never got round it/quite finished it - so it's attached
here (!diff format I'm afraid -) to play with).
This uses the lba-capacity field to work out the corect geometry instead
of believing the cripplied-for-PCbioses 'cylinders' field.
Try it, or if you have probs I'll send you a modded !Partman version to try.
> > The ADFS partition seems OK, it hasn't given any errors yet. I can't
> > test the ARMLinux side as my CD is SCSI and my SCSI card is a Castle
> > (any news on drivers for it, I've emailed Castle, no reply as yet).
> Castle are the only people who are able to write the drivers (they refuse
> to allow anyone else to know how their cards work).
They have said that they will tell me what to do and allow a binary-only
distribution of a driver, which is pretty crummy (some people just don't
have the right attitude to open source :-( ), but better than nothing at
all. I hope to get something done about this in the next couple or three
months. The same applies to Kinetic card support.
> > Also if I get it working is it possible to read the ARMLinux
> > partitions from RISC OS? Will IscaFS work with this size of HD?
IscaFs definately has a few bugs, so who knows what it'll make of a
partition 13Gb partition 31Gb into a drive :-). But it ought to work. As
I'm now nominally (i.e. I'm looking after it, and will apply
any patches I get but haven't done a stroke of work on it myself yet) the
maintainer of this code I'd be keen to hear how you get on...
Wookey
--
Aleph One Ltd, Bottisham, CAMBRIDGE, CB5 9BA, UK Tel (00 44) 1223 811679
work: http://www.aleph1.co.uk/ play: http://www.chaos.org.uk/~wookey/
Diff files 'ADFS::Chewy.$.ARMlinux.utils.source.fromftp.partlib/arc.lib.blkio.c.open'
and 'ADFS::Chewy.$.ARMlinux.utils.source.lib.blkio.c.open'
change ADFS::Chewy.$.ARMlinux.utils.source.fromftp.partlib/arc.lib.blkio.c.open, line
179 to 184
line 179: geo->log2secsize = 9;
line 180: geo->sector_size = 1 << 9;
line 181: geo->sectors = ide_id_res.sectors;
line 182: geo->heads = ide_id_res.heads;
line 183: geo->cylinders = ide_id_res.cyls;
line 184: update_disc_record = 1;
to ADFS::Chewy.$.ARMlinux.utils.source.lib.blkio.c.open, line 179 to 200
line 179:
line 180: dbg_printf ("-IDE Identify gives: chs=%d,%d,%d, current
chs=%d,%d,%d",
line 181: ide_id_res.cyls,ide_id_res.heads, ide_id_res.sectors,
line 182:
ide_id_res.cur_cyls,ide_id_res.cur_heads,ide_id_res.cur_sectors);
line 183: dbg_printf ("LBA mode %ssupported",ide_id_res.capability&0x02 ? "is
" : "is not ");
line 184: /* For big drives get sector count to imply cylinder count */
line 185: if (ide_id_res.field_valid & 0x01) {
line 186: geo->log2secsize = 9;
line 187: geo->sector_size = 1 << 9;
line 188: geo->sectors = ide_id_res.cur_sectors;
line 189: geo->heads = ide_id_res.cur_heads;
line 190: geo->cylinders = ide_id_res.lba_capacity /
(ide_id_res.cur_sectors * ide_id_res.cur_heads);
line 191: dbg_printf ("LBA capacity:%08X, implies %d
cylinders",ide_id_res.lba_capacity, geo->cylinders);
line 192: update_disc_record = 1;
line 193: } else {
line 194: geo->log2secsize = 9;
line 195: geo->sector_size = 1 << 9;
line 196: geo->sectors = ide_id_res.sectors;
line 197: geo->heads = ide_id_res.heads;
line 198: geo->cylinders = ide_id_res.cyls;
line 199: update_disc_record = 1;
line 200: }