Superiotool/add chip support

From coreboot
Revision as of 17:12, 18 January 2013 by GNUtoo (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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 "Configuration Registers" belonging to the logical device.
  • def are the default value of the corresponding idx registers.