Superiotool/add chip support

From coreboot
Revision as of 16:41, 18 January 2013 by GNUtoo (talk | contribs) (→‎Howto)
Jump to navigation Jump to search

The wiki is being retired!

Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!

Introduction

This page explain how to add support for your superio chip in Superiotool.

Howto

The superio I have(SMSC LPC47N217) is already supported but has no extended dump, we'll show how to add that.

Here's the main structure(from superiotool.h) for adding extended registers:

struct superio_registers {
        int32_t superio_id;             /* Signed, as we need EOT. */
        const char *name;               /* Super I/O name */
        struct {
                int8_t ldn;
                const char *name;       /* LDN name */
                int16_t idx[IDXSIZE];
                int16_t def[IDXSIZE];
        } ldn[LDNSIZE];
};
  • lLDN means logical device name. Floppy, Serial or parallel port are logical devices.
  • int8_t ldn is the logical device number
  • idx is an array of register belonging to the logical device.
  • def are the default value of the corresponding idx registers.