/* Returns copy of whole control register region Note: skip RAM address register because accessing it will cause bus hangs!  */
static void skge_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p)
/* Returns copy of whole control register region Note: skip RAM address register because accessing it will cause bus hangs!  */
static void skge_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p)
{
	const struct skge_port *skge = netdev_priv(dev);
	const void __iomem *io = skge->hw->regs;
	regs->version = 1;
	memset(p, 0, regs->len);
	memcpy_fromio(p, io, B3_RAM_ADDR);
	memcpy_fromio(p + B3_RI_WTO_R1, io + B3_RI_WTO_R1,
		      regs->len - B3_RI_WTO_R1);
}