From: Ross Biro <rossb@google.com>
To: linux-kernel@vger.kernel.org
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>, Andre Hedrick <andre@linux-ide.org>
Subject: [RFC]: Changes to ide_task_request
Date: Wed, 15 Jan 2003 09:53:13 -0800 [thread overview]
Message-ID: <3E25A009.6010402@google.com> (raw)
Seagate has been kind enough to tell me how to update the firmware on
their drives (under NDA of course). I believe adding a timeout field, a
recovery time field and an error handling field to ide_task_request_t
(and of course appropriate kernel handling code) would be enough to
allow a userspace program to update the drive firmware. I am hoping
that if I write such a program and send the source back to Seagate that
they will support it. I'm also hoping that the other manufacturers
firmware update methods are similiar enough to be handled by the same
system.
I'd like to make the following changes to hdreg.h:
#define ERROR_IGNORE 0 /* Just ignore it. */
#define ERROR_NORMAL 1 /* Just call the device error handler */
#define ERROR_SRST 2 /* Just do an SRST */
#define ERROR_RETRY_ONCE 3 /* Retry Once */
#define ERROR_RETRY 4 /* Retry until it suceedes. */
.
.
.
typedef struct ide_task_request_s {
task_ioreg_t io_ports[8];
task_ioreg_t hob_ports[8];
ide_reg_valid_t out_flags;
ide_reg_valid_t in_flags;
int data_phase;
int req_cmd;
unsigned long out_size;
unsigned long in_size;
int timeout; /* How long in HZ to wait for the
command to complete. */
int recovery_time; /* How long in HZ to wait after
command completion or an error
before issuing a new command. */
int error_handling;
} ide_task_request_t;
I chose HZ instead of microseconds for the timeouts because I envision a
kernel specific shared library that does the translatation and actual
ioctl and HZ should make the kernel side of things a bit easier.
Ross
reply other threads:[~2003-01-15 17:45 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=3E25A009.6010402@google.com \
--to=rossb@google.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andre@linux-ide.org \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox