[parisc-linux] iodc call and HPMC: dump driver.
Grant Grundler
grundler@dsl2.external.hp.com
Mon, 02 Sep 2002 21:42:12 -0600
Bruno Vidal wrote:
> Hi all.
> Do you know a guy who is a guru of iodc calls ?
I'm not expert, but I've mucked with it abit.
> I'm still stuck with this. I think I was really near the
> solution. Now my iodc call create beatifull HPMC.
Which platform are you testing on?
32 or 64-bit kernel?
> Take a look to this call, I was thinking that it
> was all right, but there is still something wrong.
> now i'm able to retrieve hpa,
> I based this on palo code:
>
> ret = real32_call(PAGE0->mem_boot.iodc_io, (unsigned long)PAGE0->mem_boot.hp
> a, DUMPDEV_WRITE,
> PAGE0->mem_boot.spa, __pa(PAGE0->mem_boot.dp.layers), __pa(pdc_result), dev
> addr, __pa(iodc_dbuf), 2048);
Can you dump the values for the call that HPMCs?
I'm not sure what is supposed to be passed as arguments to IODC.
I'm trying to find it in the documentation I have and then I
can verify the values are sane.
Note that all IODC is 32-bit.
And earlier IODC versions don't like byte addresses greater than 2GB.
Not sure when that got fixed but it certainly wasn't on 712
or similar workstations/servers. It wasn't even noticed as a problem
until HP started shipping 4GB disk drives (ie 1997 or so).
later IODC included a "block" interface which use block address
instead of byte address. I'll try to find documentation on this.
> DUMPDEV_WRITE = 1
> static unsigned long pdc_result[32] __attribute__ ((aligned (8)));
> static char __attribute__((aligned(64))) iodc_dbuf[DUMP_PAGE_SZ];
>
> and devaddr=191889408
191889408 == 0xB7000000
If this is the target byte address on the block device, it's too big.
> Disk /dev/sda: 64 heads, 32 sectors, 17366 cylinders
> Units = cylinders of 2048 * 512 bytes
>
> /dev/sda1 * 1 61 62448 f0 Linux/PA-RISC boot
> /dev/sda2 62 183 124928 83 Linux
> /dev/sda3 184 1648 1500160 82 Linux swap
> /dev/sda4 1649 17366 16095232 5 Extended
> /dev/sda5 1649 5554 3999728 83 Linux
> /dev/sda6 5555 9460 3999728 82 Linux swap
> /dev/sda7 9461 13366 3999728 83 Linux
> /dev/sda8 13367 17366 4095984 83 Linux
which of these are you trying to write to?
sda3?
> Do you know someone who is well aware of iodc calls ?
> I want to discuss a bit about this.
hmm...inside HP there are a few people who've mucked with IODC.
Let's see if we can figure it out here first.
thanks,
grant