SIO_REG
err = superio_enter(UNLOCK_KEY, SIO_REG, LNV_SE30_NAME);
val = superio_inb(SIO_REG, CHIPID_REG) << 8;
val |= superio_inb(SIO_REG, CHIPID_REG + 1);
superio_exit(LOCK_KEY, SIO_REG);
superio_outb(SIO_REG, LDN_REG, LD_NUM_SHM);
base_phys = (superio_inb(SIO_REG, LD_BASE_ADDR) |
(superio_inb(SIO_REG, LD_BASE_ADDR + 1) << 8) |
(superio_inb(SIO_REG, LD_BASE_ADDR + 2) << 16) |
(superio_inb(SIO_REG, LD_BASE_ADDR + 3) << 24)) &
superio_exit(LOCK_KEY, SIO_REG);