All of lore.kernel.org
 help / color / mirror / Atom feed
From: Grant Grundler <grundler@dsl2.external.hp.com>
To: Bruno Vidal <bruno_vidal@hpfrcu03.france.hp.com>
Cc: parisc-linux@lists.parisc-linux.org
Subject: Re: [parisc-linux] iodc call and HPMC: dump driver.
Date: Mon, 02 Sep 2002 22:50:49 -0600	[thread overview]
Message-ID: <20020903045049.E268F4829@dsl2.external.hp.com> (raw)
In-Reply-To: Message from Bruno Vidal <bruno_vidal@hpfrcu03.france.hp.com> of "Mon, 02 Sep 2002 08:12:26 +0200." <3D73014A.15ED96ED@admin.france.hp.com>

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2183 bytes --]

Bruno Vidal wrote:
> ret =  real32_call(PAGE0->mem_boot.iodc_io,
	ARG0	(unsigned long)PAGE0->mem_boot.hpa,
	ARG1	DUMPDEV_WRITE,
	ARG2	PAGE0->mem_boot.spa
	ARG3	__pa(PAGE0->mem_boot.dp.layers)
	ARG4	__pa(pdc_result)
	ARG5	devaddr
	ARG6	__pa(iodc_dbuf)
	ARG7	2048);

The parameters "look" ok.

> 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

except the value of this one. I'm pretty sure now it's wrong.

IO ACD, page 520 of 646 (aka 13-48) says:
Description:    The argument reqsize specifies the amount of data that the
	caller would like to write. It must be a multiple of 2 Kbytes, but
	is otherwise unconstrained. The data to write is in memory at the
	address specified by memaddr. The value of memaddr must be a multiple
	of 64 bytes. The address on the device medium, devaddr, must be 2
	Kbyte aligned. If the call returns a nonnegative status, the return
	parameter count is the number of bytes actually output; it must be a
	multiple of 2 Kbytes. If the call returns a negative status, the
	value of count and the data written are HVERSION dependent.

IO ACD, page 491 of 646 (aka 13-19) says:
13.3.8  Data Types
The data types of the standard arguments and return parameters are as follows:
· All signed integers are represented in two's complement (32-bit) format.
· The status value returned by all IODC entry points in GR28 is a signed integer.
· All addresses, which are passed as arguments, or returned as parameters, are 32-bit unsigned integers.
· The data type of ARG0 in all IODC entry points is a 32-bit unsigned integer.
· The data type of ARG1 in all IODC entry points is a 32-bit unsigned integer.

One might assume devaddr is treated as an "unsigned" integer.
But most older IODC are broken and treat it as a signed value.
(ie anything shipped before ~1996-1998)

I wouldn't trust newer boxes to get it right either.
Once you get ENTRY_IO_BOOT_OUT working, I suggest trying to
use ENTRY_IO_BBLOCK_OUT that's now defined in <asm/pdc.h> first
and if that fails (not implemented), fall back to ENTRY_IO_BOOT_OUT.

hth,
grant

  parent reply	other threads:[~2002-09-03  4:50 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-02  6:12 [parisc-linux] iodc call and HPMC: dump driver Bruno Vidal
2002-09-03  3:42 ` Grant Grundler
2002-09-03  4:22 ` Grant Grundler
2002-09-03  4:50 ` Grant Grundler [this message]
2002-09-03 16:24   ` Bruno Vidal
2002-09-04  4:53     ` Grant Grundler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020903045049.E268F4829@dsl2.external.hp.com \
    --to=grundler@dsl2.external.hp.com \
    --cc=bruno_vidal@hpfrcu03.france.hp.com \
    --cc=parisc-linux@lists.parisc-linux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.