FWIW, i hacked up a small driver to read the firmware, i'm attaching it
to this
Mail. Would be nice if some people could try reading the firmware from
their PA-RISC
system so we can collect and archive them. Note that it HPMC's in 32
Bit Mode,
but it worked in 64 Bit mode on my C3750/J5000.
Nice!
+static int __init pdc_firmware_register_sysfs(void)
+{
+ struct bin_attribute *attr;
+ int size, err = -ENOMEM;
+
+ attr = kzalloc(sizeof(*attr), 0);
+ if (!attr)
+ return -ENOMEM;
+
+ size = 1048576; // FIXME
+
+ sysfs_bin_attr_init(attr);
+
+ attr->size = size;
+ attr->attr.name = "pdcrom";
+ attr->attr.mode = S_IRUSR;
+ attr->read = pdc_firmware_read_rom;
+#ifdef CONFIG_64BIT
+ attr->private = ioremap(0xfffffff0f0000000, size);
+#else
+ attr->private = ioremap(0xf0000000, size);
+#endif
+ if (!attr->private)
+ goto err_attr;
+
+ err = sysfs_create_bin_file(firmware_kobj, attr);
+ if (err)
+ goto err_unmap;
+
+ pdc_firmware_attr = attr;
+ return 0;
+
+err_unmap:
+ iounmap(attr->private);
+err_attr:
+ kfree(attr);
+ return err;
+}
+
+static int __init pdc_firmware_init(void)
+{
+ return pdc_firmware_register_sysfs();
+}
Any particular reason you are not simply using BIN_ATTR_RO?
Eike