public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Luke-Jr <luke@dashjr.org>
To: linux-kernel@vger.kernel.org
Cc: Zoltan Boszormenyi <zboszor@freemail.hu>
Subject: Firmware Flashing (Was: CD writing in future Linux (stirring up a hornets' nest))
Date: Fri, 10 Feb 2006 08:01:20 +0000	[thread overview]
Message-ID: <200602100801.23404.luke@dashjr.org> (raw)
In-Reply-To: <43EB7E28.2030208@freemail.hu>

On Thursday 09 February 2006 17:38, Zoltan Boszormenyi wrote:
> For those who don't know, there even exists a firmware updater for Pioneer
> DVD+-RW drives that work on Linux with /dev entries, on a live system,
> without the need for a reboot... http://lasvegas.rpc1.org/
> Look, Jörg, they don't need HOST/TARGET/LUN triplets for this task!

On the topic of firmware updating, I also have a project for a 
firmware-flashing API that supports both BTC and BenQ DVD burners (in theory, 
anyway-- it's 100% untested at this point). It uses libscg (indirectly, 
though calls to fwscsi_*) to access the devices, but uses regular old /dev 
device names (or the SCSI number things). If anyone wants a snapshot (or CVS 
access, to contribute), let me know and I'll post it in my public_html...

Current plugins:
	Image formats: CVT, Intel HEX, and BenQ EXE
	User interfaces: 'fwflash' (commandline)
	Devices:
		DVD+-RW: BTC and BenQ

Build output:
	lib/libfwflash.so
	lib/libfwflashscsi.so
	lib/fwflash/device/dvdrw_benq.so
	lib/fwflash/device/dvdrw_btc.so
	lib/fwflash/imgfmt/benq_exe.so
	lib/fwflash/imgfmt/cvt.so
	lib/fwflash/imgfmt/intel_hex.so
	bin/fwflash

Current API (unstable):
--- core.h ---
extern const char * fwflash_get_error ();
extern void fwflash_error (const char *fmt, ...);
extern void fwflash_warn (const char *fmt, ...);
extern void fwflash_checksum (const unsigned char *data, size_t size, const 
char **wanted, void *output);
extern void fwflash_checksum_one (const unsigned char *data, size_t size, 
const char *wanted, void *output);
extern int fwflash_flash (hdevice, himage);
extern hdevice fwflash_device_open (const char *);
extern const char * fwflash_device_name (hdevice);
extern const char * fwflash_device_id (hdevice);
extern const char * fwflash_device_protocol_name (hdevice);
extern const char * fwflash_device_firmware_id (hdevice);
extern himage fwflash_image_open (const char *);
extern const char * fwflash_image_name (himage);
extern const char * fwflash_image_format_name (himage);
extern const char * fwflash_image_echksum (himage);
extern const char * fwflash_image_achksum (himage);
extern int fwflash_image_verify_chksum (himage);
extern const char * fwflash_image_firmware_id (himage);
extern const char * fwflash_image_device_id (himage);
extern size_t fwflash_image_data_size (himage);
extern const char * fwflash_image_data (himage);
--- device.h ---
extern const char * fwdevice_protocol_name ();
extern void * fwdevice_load_file (FILE *);
extern void * fwdevice_load_filename (const char *);
extern const char * fwdevice_name (void *);
extern const char * fwdevice_id (void *);
extern const char * fwdevice_firmware_id (void *);
extern int fwdevice_flash_image (void *h, himage img);
--- imgfmt.h ---
extern const char * fwimage_format_name ();
extern void * fwimage_load_file (FILE *);
extern void * fwimage_load_filename (const char *);
extern const char * fwimage_name (void *);
extern const char * fwimage_echksum (void *);
extern const char * fwimage_achksum (void *);
extern int fwimage_verify_chksum (void *);
extern const char * fwimage_firmware_id (void *);
extern const char * fwimage_device_id (void *);
extern size_t fwimage_data_size (void *);
extern const char * fwimage_data (void *);
--- scsi.h ---
extern void * fwscsi_open_filename (const char *fn);
extern void * fwscsi_open_scsidev (int bus, int target, int lun);
extern void fwscsi_cmd_setbyte (void *h, int i, char v);
extern void fwscsi_cmd_setcdb (void *h, char *data, size_t len);
extern int fwscsi_exec_command (void *h, const char *flags, char *buf, int 
bufsize);

      parent reply	other threads:[~2006-02-10  8:01 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-09 17:38 CD writing in future Linux (stirring up a hornets' nest) Zoltan Boszormenyi
2006-02-09 22:33 ` Sam Vilain
2006-02-10  8:01 ` Luke-Jr [this message]

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=200602100801.23404.luke@dashjr.org \
    --to=luke@dashjr.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=zboszor@freemail.hu \
    /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