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:        }

Reply via email to