S905X3 平台调试1000M 网络PHY IC IP1001C

IP1001C 规格书

 

 通过以上从规格书里面或者的ID 寄存器我们得到IP1001C 的ID 为

0x02430c54

0x02430c20

接下来我们需要移植驱动

因为IP1001C 属于ICPLUS 

所以我们可以参考内核目录下原本的驱动将IP1001C 相关的驱动和初始化部分添加进icplus.c 这样既可以做到兼容之前的驱动,也使我们移植能够省去不少时间

common/drivers/net/phy/icplus.c

/*
 * Driver for ICPlus PHYs
 *
 * Copyright (c) 2007 Freescale Semiconductor, Inc.
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 *
 */
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/unistd.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <linux/spinlock.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/mii.h>
#include <linux/ethtool.h>
#include <linux/phy.h>

#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>

MODULE_DESCRIPTION("ICPlus IP175C/IP101A/IP101G/IC1001 PHY drivers");
MODULE_AUTHOR("Michael Barkowski");
MODULE_LICENSE("GPL");

/* IP101A/G - IP1001 */
#define IP10XX_SPEC_CTRL_STATUS         16      /* Spec. Control Register */
#define IP1001_RXPHASE_SEL              (1<<0)  /* Add delay on RX_CLK */
#define IP1001_TXPHASE_SEL              (1<<1)  /* Add delay on TX_CLK */
#define IP1001_SPEC_CTRL_STATUS_2       20      /* IP1001 Spec. Control Reg 2 */
#define IP1001_APS_ON                   11      /* IP1001 APS Mode  bit */
#define IP101A_G_APS_ON                 2       /* IP101A/G APS Mode bit */
#define IP101A_G_IRQ_CONF_STATUS        0x11    /* Conf Info IRQ & Status Reg */
#define IP101A_G_IRQ_PIN_USED           (1<<15) /* INTR pin used */
#define IP101A_G_IRQ_DEFAULT            IP101A_G_IRQ_PIN_USED

static int ip175c_config_init(struct phy_device *phydev)
{
        int err, i;
        static int full_reset_performed;

        if (full_reset_performed == 0) {

                /* master reset */
                err = mdiobus_write(phydev->mdio.bus, 30, 0, 0x175c);
                if (err < 0)
                        return err;

                /* ensure no bus delays overlap reset period */
                err = mdiobus_read(phydev->mdio.bus, 30, 0);

                /* data sheet specifies reset period is 2 msec */
                mdelay(2);

                /* enable IP175C mode */
                err = mdiobus_write(phydev->mdio.bus, 29, 31, 0x175c);
                if (err < 0)
                        return err;

                /* Set MII0 speed and duplex (in PHY mode) */
                err = mdiobus_write(phydev->mdio.bus, 29, 22, 0x420);
                if (err < 0)
                        return err;

                /* reset switch ports */
                for (i = 0; i < 5; i++) {
                        err = mdiobus_write(phydev->mdio.bus, i,
                                            MII_BMCR, BMCR_RESET);
                        if (err < 0)
                                return err;
                }

                for (i = 0; i < 5; i++)
                        err = mdiobus_read(phydev->mdio.bus, i, MII_BMCR);

                mdelay(2);

                full_reset_performed = 1;
        }

        if (phydev->mdio.addr != 4) {
                phydev->state = PHY_RUNNING;
                phydev->speed = SPEED_100;
                phydev->duplex = DUPLEX_FULL;
                phydev->link = 1;
                netif_carrier_on(phydev->attached_dev);
        }

        return 0;
}

static int ip1xx_reset(struct phy_device *phydev)
{
        int bmcr;

        /* Software Reset PHY */
        bmcr = phy_read(phydev, MII_BMCR);
        if (bmcr < 0)
                return bmcr;
        bmcr |= BMCR_RESET;
        bmcr = phy_write(phydev, MII_BMCR, bmcr);
        if (bmcr < 0)
                return bmcr;

        do {
                bmcr = phy_read(phydev, MII_BMCR);
                if (bmcr < 0)
                        return bmcr;
        } while (bmcr & BMCR_RESET);

        return 0;
}

static int ip1001_config_init(struct phy_device *phydev)
{
        int c;

        c = ip1xx_reset(phydev);
        if (c < 0)
                return c;

        /* Enable Auto Power Saving mode */
        c = phy_read(phydev, IP1001_SPEC_CTRL_STATUS_2);
        if (c < 0)
                return c;
        c |= IP1001_APS_ON;
        c = phy_write(phydev, IP1001_SPEC_CTRL_STATUS_2, c);
        if (c < 0)
                return c;

        if (phy_interface_is_rgmii(phydev)) {

                c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS);
                if (c < 0)
                        return c;

                c &= ~(IP1001_RXPHASE_SEL | IP1001_TXPHASE_SEL);

                if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID)
                        c |= (IP1001_RXPHASE_SEL | IP1001_TXPHASE_SEL);
                else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID)
                        c |= IP1001_RXPHASE_SEL;
                else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)
                        c |= IP1001_TXPHASE_SEL;

                c = phy_write(phydev, IP10XX_SPEC_CTRL_STATUS, c);
                if (c < 0)
                        return c;
        }

        return 0;
}

static int ip101a_g_config_init(struct phy_device *phydev)
{
        int c;

        c = ip1xx_reset(phydev);
        if (c < 0)
                return c;

        /* INTR pin used: speed/link/duplex will cause an interrupt */
        c = phy_write(phydev, IP101A_G_IRQ_CONF_STATUS, IP101A_G_IRQ_DEFAULT);
        if (c < 0)
                return c;

        /* Enable Auto Power Saving mode */
        c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS);
        c |= IP101A_G_APS_ON;

        return phy_write(phydev, IP10XX_SPEC_CTRL_STATUS, c);
}

static int ip175c_read_status(struct phy_device *phydev)
{
        if (phydev->mdio.addr == 4) /* WAN port */
                genphy_read_status(phydev);
        else
                /* Don't need to read status for switch ports */
                phydev->irq = PHY_IGNORE_INTERRUPT;

        return 0;
}

static int ip175c_config_aneg(struct phy_device *phydev)
{
        if (phydev->mdio.addr == 4) /* WAN port */
                genphy_config_aneg(phydev);

        return 0;
}

static int ip101a_g_ack_interrupt(struct phy_device *phydev)
{
        int err = phy_read(phydev, IP101A_G_IRQ_CONF_STATUS);
        if (err < 0)
                return err;

        return 0;
}

static struct phy_driver icplus_driver[] = {
{
        .phy_id         = 0x02430d80,
        .name           = "ICPlus IP175C",
        .phy_id_mask    = 0x0ffffff0,
        .features       = PHY_BASIC_FEATURES,
        .config_init    = &ip175c_config_init,
        .config_aneg    = &ip175c_config_aneg,
        .read_status    = &ip175c_read_status,
        .suspend        = genphy_suspend,
        .resume         = genphy_resume,
}, {
        .phy_id         = 0x02430d90,
        .name           = "ICPlus IP1001",
        .phy_id_mask    = 0x0ffffff0,
        .features       = PHY_GBIT_FEATURES | SUPPORTED_Pause |
                          SUPPORTED_Asym_Pause,
        .config_init    = &ip1001_config_init,
        .config_aneg    = &genphy_config_aneg,
        .read_status    = &genphy_read_status,
        .suspend        = genphy_suspend,
        .resume         = genphy_resume,
}, {
        .phy_id         = 0x02430c54,
        .name           = "ICPlus IP101A/G",
        .phy_id_mask    = 0x0ffffff0,
        .features       = PHY_BASIC_FEATURES | SUPPORTED_Pause |
                          SUPPORTED_Asym_Pause,
        .flags          = PHY_HAS_INTERRUPT,
        .ack_interrupt  = ip101a_g_ack_interrupt,
        .config_init    = &ip101a_g_config_init,
        .config_aneg    = &genphy_config_aneg,
        .read_status    = &genphy_read_status,
        .suspend        = genphy_suspend,
        .resume         = genphy_resume,
} };

module_phy_driver(icplus_driver);

static struct mdio_device_id __maybe_unused icplus_tbl[] = {
        { 0x02430d80, 0x0ffffff0 },
        { 0x02430d90, 0x0ffffff0 },
        { 0x02430c54, 0x0ffffff0 },
        { }
};

MODULE_DEVICE_TABLE(mdio, icplus_tbl);

这是原始驱动,现在我们为了支持IP1001C 将IP1001C 的驱动部分合成进来

/*
 * Driver for ICPlus PHYs
 *
 * Copyright (c) 2007 Freescale Semiconductor, Inc.
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 *
 */
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/errno.h>
#include <linux/unistd.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <linux/spinlock.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/mii.h>
#include <linux/ethtool.h>
#include <linux/phy.h>

#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>

MODULE_DESCRIPTION("ICPlus IP175C/IP101A/IP101G/IC1001/IP1001C PHY drivers");
MODULE_AUTHOR("Michael Barkowski");
MODULE_LICENSE("GPL");

/* IP101A/G - IP1001 */
#define IP10XX_SPEC_CTRL_STATUS         16      /* Spec. Control Register */
#define IP1001_RXPHASE_SEL              (1<<0)  /* Add delay on RX_CLK */
#define IP1001_TXPHASE_SEL              (1<<1)  /* Add delay on TX_CLK */
#define IP1001_SPEC_CTRL_STATUS_2       20      /* IP1001 Spec. Control Reg 2 */
#define IP1001_APS_ON                   11      /* IP1001 APS Mode  bit */
#define IP101A_G_APS_ON                 2       /* IP101A/G APS Mode bit */
#define IP101A_G_IRQ_CONF_STATUS        0x11    /* Conf Info IRQ & Status Reg */
#define IP101A_G_IRQ_PIN_USED           (1<<15) /* INTR pin used */
#define IP101A_G_IRQ_DEFAULT            IP101A_G_IRQ_PIN_USED

//Sam add for IP1001C
#define IP1001C_MMD_CTRL            0x0D
#define IP1001C_MMD_DATA            0x0E
#define IP1001C_EXT_STATUS          0x0F
#define IP1001C_SPEC_CTRL_STATUS    0x10
#define IP1001C_APS_ON              (0x1 << 7)
#define IP1001C_PAGE_SEL            0x14

#define REG_MODE_FIBER              0x01
#define REG_MODE_TP                 0x02
#define REG_MODE_AUTO               0x03



static void ip1001c_write_mmd(
                struct phy_device *phydev, unsigned int reg, unsigned short val)
{
        phy_write(phydev, IP1001C_MMD_CTRL, 0x001F);
        phy_write(phydev, IP1001C_MMD_DATA, reg);
        phy_write(phydev, IP1001C_MMD_CTRL, 0x401F);
        phy_write(phydev, IP1001C_MMD_DATA, val);
        phy_write(phydev, IP1001C_MMD_CTRL, 0x0000);  //to avoid broadcast write
}

static void set_reg_mode(struct phy_device *phydev, unsigned char rmode)
{
        phy_write(phydev, IP1001C_PAGE_SEL, 0);

        switch (rmode)
        {
                case REG_MODE_FIBER:
                        ip1001c_write_mmd(phydev, 0x031B, 0x0000);  break;
                case REG_MODE_TP:
                        ip1001c_write_mmd(phydev, 0x031B, 0x0100);  break;
                case REG_MODE_AUTO:
                        ip1001c_write_mmd(phydev, 0x031B, 0x0A00);  break;
        }
}

static unsigned char get_reg_mode(struct phy_device *phydev)
{
  int ext_satus;
  phy_write(phydev, IP1001C_PAGE_SEL, 0);
  ext_satus = phy_read(phydev, IP1001C_EXT_STATUS);
  if (ext_satus & 0x3000)   //link at TP port
  {
    return (unsigned char)REG_MODE_TP;
  }
  else   //link at Fiber port
  {
    return (unsigned char)REG_MODE_FIBER;
  }
}

static int ip175c_config_init(struct phy_device *phydev)
{
        int err, i;
        static int full_reset_performed;

        if (full_reset_performed == 0) {

                /* master reset */
                err = mdiobus_write(phydev->mdio.bus, 30, 0, 0x175c);
                if (err < 0)
                        return err;

                /* ensure no bus delays overlap reset period */
                err = mdiobus_read(phydev->mdio.bus, 30, 0);

                /* data sheet specifies reset period is 2 msec */
                mdelay(2);

                /* enable IP175C mode */
                err = mdiobus_write(phydev->mdio.bus, 29, 31, 0x175c);
                if (err < 0)
                        return err;

                /* Set MII0 speed and duplex (in PHY mode) */
                err = mdiobus_write(phydev->mdio.bus, 29, 22, 0x420);
                if (err < 0)
                        return err;

                /* reset switch ports */
                for (i = 0; i < 5; i++) {
                        err = mdiobus_write(phydev->mdio.bus, i,
                                            MII_BMCR, BMCR_RESET);
                        if (err < 0)
                                return err;
                }

                for (i = 0; i < 5; i++)
                        err = mdiobus_read(phydev->mdio.bus, i, MII_BMCR);

                mdelay(2);

                full_reset_performed = 1;
        }

        if (phydev->mdio.addr != 4) {
                phydev->state = PHY_RUNNING;
                phydev->speed = SPEED_100;
                phydev->duplex = DUPLEX_FULL;
                phydev->link = 1;
                netif_carrier_on(phydev->attached_dev);
        }

        return 0;
}

static int ip1xx_reset(struct phy_device *phydev)
{
        int bmcr;
        /* Software Reset PHY */
        bmcr = phy_read(phydev, MII_BMCR);
        if (bmcr < 0)
                return bmcr;
        bmcr |= BMCR_RESET;
        bmcr = phy_write(phydev, MII_BMCR, bmcr);
        if (bmcr < 0)
                return bmcr;
        do {
                bmcr = phy_read(phydev, MII_BMCR);
                if (bmcr < 0)
                        return bmcr;
        } while (bmcr & BMCR_RESET);

        return 0;
}

static int ip1001c_reset(struct phy_device *phydev)
{
  int i, bmcr;

  for (i=0; i < 2; i++)
  {
    if (i==0)
                set_reg_mode(phydev, REG_MODE_FIBER);
    else
                set_reg_mode(phydev, REG_MODE_TP);

    phy_write(phydev, IP1001C_PAGE_SEL, 0);
    // Software Reset PHY
    bmcr = phy_read(phydev, MII_BMCR);
    if (bmcr < 0)
                  return bmcr;
    bmcr |= BMCR_RESET;
    bmcr = phy_write(phydev, MII_BMCR, bmcr);
    if (bmcr < 0)
                  return bmcr;

    do {
                  bmcr = phy_read(phydev, MII_BMCR);
                  if (bmcr < 0)
        return bmcr;
    } while (bmcr & BMCR_RESET);
  }

        return 0;
}

static int ip1001_config_init(struct phy_device *phydev)
{
        int c;

        c = ip1xx_reset(phydev);
        if (c < 0)
                return c;

        /* Enable Auto Power Saving mode */
        c = phy_read(phydev, IP1001_SPEC_CTRL_STATUS_2);
        if (c < 0)
                return c;
        c |= IP1001_APS_ON;
        c = phy_write(phydev, IP1001_SPEC_CTRL_STATUS_2, c);
        if (c < 0)
                return c;

        if (phy_interface_is_rgmii(phydev)) {

                c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS);
                if (c < 0)
                        return c;

                c &= ~(IP1001_RXPHASE_SEL | IP1001_TXPHASE_SEL);

                if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID)
                        c |= (IP1001_RXPHASE_SEL | IP1001_TXPHASE_SEL);
                else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID)
                        c |= IP1001_RXPHASE_SEL;
                else if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)
                        c |= IP1001_TXPHASE_SEL;

                c = phy_write(phydev, IP10XX_SPEC_CTRL_STATUS, c);
                if (c < 0)
                        return c;
        }

        return 0;
}

static int ip1001c_config_init(struct phy_device *phydev)
{
        int c;
        c = ip1001c_reset(phydev);
        if (c < 0)
                return c;
    set_reg_mode(phydev, REG_MODE_TP);
  //enable Auto Power Saving mode
        phy_write(phydev, IP1001C_PAGE_SEL, 0x0000);
        c = phy_read(phydev, IP1001C_SPEC_CTRL_STATUS);
        if (c >= 0)
        {
                c |= IP1001C_APS_ON;
                phy_write(phydev, IP1001C_SPEC_CTRL_STATUS, c);
        }

  phy_write(phydev, 0x10, 0x3BA8);
  phy_write(phydev, 0x1C, 0xEC40);

  phy_write(phydev, IP1001C_PAGE_SEL, 0x0002);
  phy_write(phydev, 0x10, 0x5A09);

  phy_write(phydev, IP1001C_PAGE_SEL, 0x0003);
  phy_write(phydev, 0x10, 0xC0CF);
  phy_write(phydev, 0x18, 0x3C38);

  phy_write(phydev, IP1001C_PAGE_SEL, 0x0004);
  phy_write(phydev, 0x1A, 0x0608);

  phy_write(phydev, IP1001C_PAGE_SEL, 0x0010);
  phy_write(phydev, 0x1D, 0xB000);
  phy_write(phydev, 0x1E, 0xB2B2);
  phy_write(phydev, 0x1F, 0x7AB2);

  phy_write(phydev, IP1001C_PAGE_SEL, 0x0000);
  phy_write(phydev, 0x00, 0x1340);

  set_reg_mode(phydev, REG_MODE_FIBER);

  phy_write(phydev, 0x15, 0x2470);

  set_reg_mode(phydev, REG_MODE_AUTO);

  return 0;
}

static int ip101a_g_config_init(struct phy_device *phydev)
{
        int c;

        c = ip1xx_reset(phydev);
        if (c < 0)
                return c;

        /* INTR pin used: speed/link/duplex will cause an interrupt */
        c = phy_write(phydev, IP101A_G_IRQ_CONF_STATUS, IP101A_G_IRQ_DEFAULT);
        if (c < 0)
                return c;

        /* Enable Auto Power Saving mode */
        c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS);
        c |= IP101A_G_APS_ON;

        return phy_write(phydev, IP10XX_SPEC_CTRL_STATUS, c);
}

static int ip175c_read_status(struct phy_device *phydev)
{
        if (phydev->mdio.addr == 4) /* WAN port */
                genphy_read_status(phydev);
        else
                /* Don't need to read status for switch ports */
                phydev->irq = PHY_IGNORE_INTERRUPT;

        return 0;
}

static int ip1001c_read_status(struct phy_device *phydev)
{
  int err;
  int bmcr;
  int lpa;
  unsigned char mode = 0;
  phy_write(phydev, IP1001C_PAGE_SEL, 0);
  if (get_reg_mode(phydev) == REG_MODE_FIBER)
        set_reg_mode(phydev, REG_MODE_FIBER);
  else
        set_reg_mode(phydev, REG_MODE_TP);
  phy_write(phydev, IP1001C_PAGE_SEL, 0);
        /* Update the link, but return if there was an error */
        err = genphy_update_link(phydev);
  if (err)
        return err;

  bmcr = phy_read(phydev, MII_BMCR);
        if (bmcr < 0)
                return bmcr;

        if (bmcr & BMCR_FULLDPLX)
                phydev->duplex = DUPLEX_FULL;
        else
                phydev->duplex = DUPLEX_HALF;

        if (bmcr & BMCR_SPEED1000)
                phydev->speed = SPEED_1000;
        else if (bmcr & BMCR_SPEED100)
                phydev->speed = SPEED_100;
        else
                phydev->speed = SPEED_10;
        phydev->pause = 0;
        phydev->asym_pause = 0;
  lpa = phy_read(phydev, MII_LPA);
  if (lpa < 0)
  {
        return lpa;
  }
  if (mode == REG_MODE_TP)      //link at TP port
  {
    if (phydev->duplex == DUPLEX_FULL)
    {
                        phydev->pause = lpa & LPA_PAUSE_CAP ? 1 : 0;
                        phydev->asym_pause = lpa & LPA_PAUSE_ASYM ? 1 : 0;
                }
  }
  else    //link at Fiber port
  {
    if (phydev->speed == SPEED_1000)
    {
                        phydev->pause = lpa & LPA_1000XPAUSE ? 1 : 0;
                        phydev->asym_pause = lpa & LPA_1000XPAUSE_ASYM ? 1 : 0;
                }
  }

  set_reg_mode(phydev, REG_MODE_AUTO);
        return 0;
}

static int ip175c_config_aneg(struct phy_device *phydev)
{
        if (phydev->mdio.addr == 4) /* WAN port */
                genphy_config_aneg(phydev);

        return 0;
}

static int ip1001c_config_aneg(struct phy_device *phydev)
{
  int bmcr, adv;
  int err;
  set_reg_mode(phydev, REG_MODE_FIBER);
  phy_write(phydev, IP1001C_PAGE_SEL, 0);

  if (AUTONEG_ENABLE != phydev->autoneg)
  {
    phydev->pause = 0;
    phydev->asym_pause = 0;
    bmcr = 0;
    if (SPEED_1000 == phydev->speed)
      bmcr |= BMCR_SPEED1000;
    else if (SPEED_100 == phydev->speed)
      bmcr |= BMCR_SPEED100;
    if (DUPLEX_FULL == phydev->duplex)
      bmcr |= BMCR_FULLDPLX;
    err = phy_write(phydev, MII_BMCR, bmcr);
    if (err < 0)
      return err;
  }
  else
  {
    phydev->advertising &= phydev->supported;
    adv = phy_read(phydev, MII_ADVERTISE);
    if (adv < 0)
      return adv;
    adv &= ~(ADVERTISE_1000XPAUSE | ADVERTISE_1000XPSE_ASYM);
    if (phydev->advertising & ADVERTISED_Pause)
      adv |= ADVERTISE_1000XPAUSE;
    if (phydev->advertising & ADVERTISED_Asym_Pause)
      adv |= ADVERTISE_1000XPSE_ASYM;
    err = phy_write(phydev, MII_ADVERTISE, adv);
    if (err < 0)
      return err;
    bmcr = phy_read(phydev, MII_BMCR);
    if (bmcr < 0)
      return bmcr;
    bmcr |= (BMCR_SPEED1000 | BMCR_SPEED100 | BMCR_FULLDPLX |
      BMCR_ANENABLE | BMCR_ANRESTART);
    err = phy_write(phydev, MII_BMCR, bmcr);
    if (err < 0)
      return err;
  }

  set_reg_mode(phydev, REG_MODE_TP);
  phy_write(phydev, IP1001C_PAGE_SEL, 0);
  err = genphy_config_aneg(phydev);
  set_reg_mode(phydev, REG_MODE_AUTO);
  return err;
}

static int ip101a_g_ack_interrupt(struct phy_device *phydev)
{
        int err = phy_read(phydev, IP101A_G_IRQ_CONF_STATUS);
        if (err < 0)
                return err;

        return 0;
}

static struct phy_driver icplus_driver[] = {
{
        .phy_id         = 0x02430d80,
        .name           = "ICPlus IP175C",
        .phy_id_mask    = 0x0ffffff0,
        .features       = PHY_BASIC_FEATURES,
        .config_init    = &ip175c_config_init,
        .config_aneg    = &ip175c_config_aneg,
        .read_status    = &ip175c_read_status,
        .suspend        = genphy_suspend,
        .resume         = genphy_resume,
}, {
        .phy_id         = 0x02430d90,
        .name           = "ICPlus IP1001",
        .phy_id_mask    = 0x0ffffff0,
        .features       = PHY_GBIT_FEATURES | SUPPORTED_Pause |
                          SUPPORTED_Asym_Pause,
        .config_init    = &ip1001_config_init,
        .config_aneg    = &genphy_config_aneg,
        .read_status    = &genphy_read_status,
        .suspend        = genphy_suspend,
        .resume         = genphy_resume,
}, {
        .phy_id        = 0x02430c50,
        .name          = "ICPlus IP1001C FX PHY",
        .phy_id_mask   = 0x0ffffff0,
        .features      = PHY_GBIT_FEATURES | SUPPORTED_Pause |
                           SUPPORTED_Asym_Pause,
        .config_init   = &ip1001c_config_init,
        .config_aneg   = &ip1001c_config_aneg,
        .read_status   = &ip1001c_read_status,
        .suspend       = genphy_suspend,
        .resume        = genphy_resume,
}, {
        .phy_id        = 0x02430c20,
        .name          = "ICPlus IP1001C GPHY",
        .phy_id_mask   = 0x0ffffff0,
        .features      = PHY_GBIT_FEATURES | SUPPORTED_Pause |
                           SUPPORTED_Asym_Pause,
        .config_init   = &ip1001c_config_init,
        .config_aneg   = &ip1001c_config_aneg,
        .read_status   = &ip1001c_read_status,
        .suspend       = genphy_suspend,
        .resume        = genphy_resume,
}, {
        .phy_id         = 0x02430c54,
        .name           = "ICPlus IP101A/G",
        .phy_id_mask    = 0x0ffffff0,
        .features       = PHY_BASIC_FEATURES | SUPPORTED_Pause |
                          SUPPORTED_Asym_Pause,
        .flags          = PHY_HAS_INTERRUPT,
        .ack_interrupt  = ip101a_g_ack_interrupt,
        .config_init    = &ip101a_g_config_init,
        .config_aneg    = &genphy_config_aneg,
        .read_status    = &genphy_read_status,
        .suspend        = genphy_suspend,
        .resume         = genphy_resume,
} };

module_phy_driver(icplus_driver);

static struct mdio_device_id __maybe_unused icplus_tbl[] = {
        { 0x02430d80, 0x0ffffff0 },
        { 0x02430d90, 0x0ffffff0 },
        { 0x02430c50, 0x0ffffff0 },
        { 0x02430c20, 0x0ffffff0 },
        { 0x02430c54, 0x0ffffff0 },
        { }
};

MODULE_DEVICE_TABLE(mdio, icplus_tbl);

将驱动移植合成后,进行编译,当然添加进来的函数,可能编译有问题,请视情况进行驱动的更改

更改后重现编译驱动

开机加载:

Starting kernel ...

uboot time: 2976857 us
[    0.000000@0] Booting Linux on physical CPU 0x0
[    0.000000@0] Linux version 4.9.113 (yxt-rd01@yxtrd01-Super-Server) (gcc version 6.3.1 20170109 (Linaro GCC 6.3-2017.02) ) #1 SMP PREEMPT Mon Aug 23 17:56:15 CST 2021
[    0.000000@0] CPU: ARMv7 Processor [411fd050] revision 0 (ARMv7), cr=10c5383d
[    0.000000@0] CPU: div instructions available: patching division code
[    0.000000@0] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000@0] Machine model: Amlogic
[    0.000000@0] 07400000 - 07500000,     1024 KB, ramoops@0x07400000
[    0.000000@0] 05000000 - 05400000,     4096 KB, linux,secmon
[    0.000000@0] df800000 - e0000000,     8192 KB, linux,meson-fb
[    0.000000@0] 78000000 - 80000000,   131072 KB, linux,ion-dev
[    0.000000@0] ee000000 - f0800000,    40960 KB, linux,di_cma
[    0.000000@0] Reserved memory: regions without no-map are not yet supported
[    0.000000@0] 64c00000 - 78000000,   315392 KB, linux,codec_mm_cma
[    0.000000@0] f0900000 - f0900000,        0 KB, linux,codec_mm_reserved
[    0.000000@0] ea000000 - ee000000,    65536 KB, linux,vdin0_cma
[    0.000000@0] e6000000 - ea000000,    65536 KB, linux,vdin1_cma
[    0.000000@0] e4000000 - e6000000,    32768 KB, linux,vm0_cma
[    0.000000@0] cma: Reserved 8 MiB at 0xe3800000
[    0.000000@0] Memory policy: Data cache writealloc
[    0.000000@0] psci: probing for conduit method from DT.
[    0.000000@0] psci: PSCIv1.0 detected in firmware.
[    0.000000@0] psci: Using standard PSCI v0.2 function IDs
[    0.000000@0] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000@0] psci: SMC Calling Convention v1.1
[    0.000000@0] percpu: Embedded 15 pages/cpu @ee167000 s32140 r8192 d21108 u61440
[    0.000000@0] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 983554
[    0.000000@0] Kernel command line: init=/init console=ttyS0,115200 no_console_suspend earlyprintk=aml-uart,0xff803000 ramoops.pstore_en=1 ramoops.record_size=0x8000 ramoops.console_size=0x4000 hdr_policy=0 hdr_priority= otg_device=0 reboot_mode_android=normal logo=osd0,loaded,0x3d800000 vout=1080p60hz,enable panel_type=lcd_1 lcd_ctrl=0x00000000 hdmitx=,444,8bit hdmimode=1080p60hz hdmichecksum=0xcbc80000 dolby_vision_on=0 frac_rate_policy=1 hdmi_read_edid=1 cvbsmode=576cvbs osd_reverse=0 video_reverse=0 irq_check_en=0 androidboot.selinux=permissive androidboot.firstboot=0 jtag=disable androidboot.hardware=amlogic androidboot.bootloader=U-Boot 2015.01 androidboot.build.expect.baseband=N/A androidboot.serialno=1234567890 mac=90:0e:b3:2c:ea:da androidboot.mac=90:0e:b3:2c:ea:da androidboot.oem.key1=ATV00104319 androidboot.rpmb_state=0 ro rootwait skip_initramfs androidboot.dtbo_idx=0 --cmdline root=/dev/mmcblk0p18 buildvariant=userdebug
[    0.000000@0] am_vecm: boot hdr_policy: 0
[    0.000000@0] fb: osd0
[    0.000000@0] fb: loaded
[    0.000000@0] fb: 0x3d800000
[    0.000000@0] vout: 1080p60hz
[    0.000000@0] vout: enable: 1
[    0.000000@0] lcd: panel_type: lcd_1
[    0.000000@0] lcd: lcd_ctrl: 0x00000000
[    0.000000@0] vout: get hdmimode: 1080p60hz
[    0.000000@0] vout: get hdmi checksum: 0xcbc80000
[    0.000000@0] get_dolby_on: 0
[    0.000000@0] hdmitx: hdmitx boot frac_rate_policy: 1
[    0.000000@0] vout: get cvbsmode: 576cvbs
[    0.000000@0] vpp_axis_reverse: bootargs is 0
[    0.000000@0] DI: di_read_canvas_reverse: bootargs is 0.
[    0.000000@0] vdin_get_video_reverse: bootargs is 0.
[    0.000000@0] phlock_phase_config: bootargs is 0.
[    0.000000@0] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000@0] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000@0] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000@0] Memory: 3211120K/3940352K available (14336K kernel code, 1336K rwdata, 5108K rodata, 1024K init, 1395K bss, 57488K reserved, 671744K cma-reserved, 2487296K highmem)
[    0.000000@0] Virtual kernel memory layout:
[    0.000000@0]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000@0]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000@0]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
[    0.000000@0]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
[    0.000000@0]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000@0]     modules : 0xbc000000 - 0xbfe00000   (  62 MB)
[    0.000000@0]       .text : 0xc0108000 - 0xc1000000   (15328 kB)
[    0.000000@0]       .init : 0xc1600000 - 0xc1700000   (1024 kB)
[    0.000000@0]       .data : 0xc1700000 - 0xc184e2e8   (1337 kB)
[    0.000000@0]        .bss : 0xc1850000 - 0xc19ace84   (1396 kB)
[    0.000000@0] zone:Normal, spaned pages:196352, total:196352
[    0.000000@0] zone:HighMem, spaned pages:788736, total:985088
[    0.000000@0] page_trace_pre_work, trace buffer:edc00000, size:3c2000, used:edfc2000, end:ee000000
[    0.000000@0] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000@0] Preemptible hierarchical RCU implementation.
[    0.000000@0] Build-time adjustment of leaf fanout to 32.
[    0.000000@0] RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000@0] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=4
[    0.000000@0] NR_IRQS:16 nr_irqs:16 16
[    0.000000@0] irq_meson_gpio: 100 to 8 gpio interrupt mux initialized
[    0.000000@0] g12a_aoclkc_init: register ao clk ok!
[    0.000000@0] Meson chip version = RevB (2B:B - 1:0)
[    0.000000@0] meson_g12a_sdemmc_init: register amlogic sdemmc clk
[    0.000000@0] meson_g12a_sdemmc_init: register amlogic sdemmc clk
[    0.000000@0] meson_g12a_gpu_init: register meson gpu clk
[    0.000000@0] meson_g12a_media_init: register meson media clk
[    0.000000@0] meson_g12a_misc_init: register amlogic g12a misc clks
[    0.000000@0] meson_g12a_misc_init: done.
[    0.000000@0] g12a_clkc_init initialization complete
[    0.000000@0] sm1 clk probe ok
[    0.000000@0] arm_arch_timer: Architected cp15 timer(s) running at 24.00MHz (virt).
[    0.000000@0] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000005@0] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000017@0] Switching to timer-based delay loop, resolution 41ns
[    0.000063@0] meson_bc_timer: mclk->mux_reg =f080c190,mclk->reg =f080e194
[    0.000719@0] Console: colour dummy device 80x30
[    0.000746@0] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.000765@0] pid_max: default: 32768 minimum: 301
[    0.000823@0] thread_stack_cache_init, vmap:c012a980, bitmap:c0130400, cache page:e3400
[    0.000837@0] thread_stack_cache_init, allocation vm area:c012c180, addr:bc000000, size:3001000
[    0.000908@0] Security Framework initialized
[    0.000921@0] SELinux:  Initializing.
[    0.001011@0] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001027@0] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.001835@0] CPU: Testing write buffer coherency: ok
[    0.001880@0] ftrace: allocating 44814 entries in 132 pages
[    0.087742@0] sched-energy: CPU device node has no sched-energy-costs
[    0.087763@0] CPU0: update cpu_capacity 1024
[    0.087772@0] CPU0: thread 0, cpu 0, socket 0, mpidr 81000000
[    0.087802@0] Setting up static identity map for 0x200000 - 0x200058
[    0.132505@0] secmon: can't fine clear_range
[    0.180429@1] CPU1: update cpu_capacity 1024
[    0.180434@1] CPU1: thread 0, cpu 1, socket 0, mpidr 81000100
[    0.212538@2] CPU2: update cpu_capacity 1024
[    0.212543@2] CPU2: thread 0, cpu 2, socket 0, mpidr 81000200
[    0.244661@3] CPU3: update cpu_capacity 1024
[    0.244665@3] CPU3: thread 0, cpu 3, socket 0, mpidr 81000300
[    0.244779@0] Brought up 4 CPUs
[    0.244810@0] SMP: Total of 4 processors activated (192.00 BogoMIPS).
[    0.244818@0] CPU: All CPU(s) started in SVC mode.
[    0.245754@0] addr:bc045cce is in kernel, size fix 4096->10, data:mode=0755
[    0.245901@0] devtmpfs: initialized
[    0.279236@0] VFP support v0.3: implementor 41 architecture 3 part 40 variant 5 rev 2
[    0.279780@0] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.279807@0] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.280025@0] pinctrl core: initialized pinctrl subsystem
[    0.281370@0] NET: Registered protocol family 16
[    0.285491@0] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.285506@0] schedtune: init normalization constants...
[    0.285515@0] schedtune: no energy model data
[    0.285523@0] schedtune: disabled!
[    0.300359@0] cpuidle: using governor menu
[    0.300483@0] register canvas platform driver
[    0.300534@0] register rdma platform driver
[    0.304238@0] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.304253@0] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.304689@0] clkmsr: clkmsr: driver init
[    0.304700@0] codec_mm_module_init
[    0.304751@0] media_configs_system_init
[    0.305106@0] aml_watch_point_probe, in, wp:4
[    0.306026@0] pstore: using zlib compression
[    0.306721@0] console [pstore-1] enabled
[    0.306766@0] pstore: Registered ramoops as persistent store backend
[    0.306780@0] ramoops: attached 0x100000@0x7400000, ecc: 0/0
[    0.306794@0] ramoops: ramoops_io_en:0 1 old:0x0 ftrace_size:0x40000
[    0.309632@0] aml_iomap: amlogic iomap probe done
[    0.310388@0] vpu: driver version: v20190329(10-sm1)
[    0.310407@0] vpu: load vpu_clk: 666666667Hz(7)
[    0.310633@0] vpu: clktree_init
[    0.310722@0] vpu: vpu_probe OK
[    0.316853@0] clkmsr: msr_clk_reg0=f09c0004,msr_clk_reg2=f09c200c
[    0.316879@0] clkmsr: msr_ring_reg0=f09c45fc
[    0.320933@0] audio_clocks: audio_clocks_probe done
[    0.324951@0] aml_snd_reg_map[0], reg:ff661000, size:400
[    0.324987@0] aml_snd_reg_map[1], reg:ff660000, size:1000
[    0.325015@0] aml_snd_reg_map[2], reg:ff661400, size:400
[    0.325043@0] aml_snd_reg_map[3], reg:ff662000, size:1000
[    0.325070@0] aml_snd_reg_map[4], reg:ffd01000, size:1000
[    0.325097@0] aml_snd_reg_map[5], reg:ff661800, size:400
[    0.325127@0] aml_snd_reg_map[6], reg:ff661c00, size:104
[    0.325152@0] aml_snd_reg_map[7], reg:ff664000, size:104
[    0.325162@0] amlogic auge_snd_iomap probe done
[    0.327899@0] aml_vdac_config_probe: cpu_id:6, name:meson-sm1-vdac
[    0.328172@0] aml_vdac_probe: ok
[    0.328393@0] canvas_probe reg=ff638000,size=2000
[    0.328422@0] canvas maped reg_base =f09d8000
[    0.339273@0] rdma_probe,cpu_type:1, ver:0, len:8
[    0.339580@0] rdma_register, rdma_table_addr f0ad1000 rdma_table_addr_phy e3840000 reg_buf ed718000
[    0.339598@0] rdma_register success, handle 1 table_size 32768
[    0.339611@0] set_rdma_handle video rdma handle = 1.
[    0.339657@0] classs created ok
[    0.339681@0] classs file created ok
[    0.345338@0] cvbs_out: cvbsout_probe, cpu_id:6,name:meson-sm1-cvbsout
[    0.345533@0] cvbs_out: find performance_pal config
[    0.345557@0] cvbs_out: clk path:0x0
[    0.345570@0] vout: vout1: register server: cvbs_vout_server
[    0.345584@0] cvbs_out: register cvbs module server ok
[    0.345594@0] vout: vout2: register server: cvbs_vout2_server
[    0.345607@0] cvbs_out: register cvbs module vout2 server ok
[    0.345622@0] cvbs_out: chrdev devno 264241152 for disp
[    0.345939@0] cvbs_out: create cdev cvbs
[    0.345953@0] cvbs_out: cvbsout_probe OK
[    0.346817@0] codec_mm codec_mm: assigned reserved memory node linux,codec_mm_cma
[    0.346951@0] codec_mm codec_mm: assigned reserved memory node linux,codec_mm_cma
[    0.346963@0] codec_mm_probe ok
[    0.350222@0] earc_platform_probe
[    0.350341@0] regmap_resource, rx_cmdc, start:0xff663800, size:0x400
[    0.350472@0] regmap_resource, rx_dmac, start:0xff663c00, size:0x200
[    0.350586@0] regmap_resource, rx_top, start:0xff663e00, size:0x200
[    0.350658@0] EARC ff663800.earc: Can't get earc gate
[    0.350940@0] EARC ff663800.earc: Check whether support eARC TX
[    0.350959@0] EARC ff663800.earc: Check whether support eARC TX
[    0.350977@0] EARC ff663800.earc: Check whether support eARC TX
[    0.350992@0] EARC ff663800.earc: Check whether support eARC TX
[    0.351039@0] EARC ff663800.earc: platform get irq earc_tx failed, Check whether support eARC TX
[    0.351053@0] earc_platform_probe, irq_earc_rx:48, irq_earc_tx:-6
[    0.351505@3] earc_rx_isr EARCRX_CMDC_IDLE1
[    0.351537@0] earc_platform_probe, register soc platform
[    0.688078@0] vgaarb: loaded
[    0.688466@0] SCSI subsystem initialized
[    0.688856@0] usbcore: registered new interface driver usbfs
[    0.688949@0] usbcore: registered new interface driver hub
[    0.689060@0] usbcore: registered new device driver usb
[    0.689226@0] Linux video capture interface: v2.00
[    0.689383@0] pps_core: LinuxPPS API ver. 1 registered
[    0.689395@0] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.689433@0] PTP clock support registered
[    0.690399@0] secmon: reserve_mem_size:0x300000
[    0.690554@0] secmon secmon: assigned reserved memory node linux,secmon
[    0.690910@0] secmon: get page:ee27f000, 5000
[    0.690926@0] secmon: share in base: 0xc50fe000, share out base: 0xc50ff000
[    0.690938@0] secmon: phy_in_base: 0x50fe000, phy_out_base: 0x50ff000
[    0.691314@0] fb: osd_init_module
[    0.691977@0] fb: viu vsync irq: 58
[    0.692007@0] fb: viu2 vsync irq: 67
[    0.692145@0] 0x000000d8:Y=d8,U=0,V=0
[    0.692157@0] 0x000000d9:Y=d9,U=0,V=0
[    0.692168@0] 0x000000da:Y=da,U=0,V=0
[    0.692180@0] 0x000000db:Y=db,U=0,V=0
[    0.692190@0] 0x000000dc:Y=dc,U=0,V=0
[    0.692202@0] 0x000000dd:Y=dd,U=0,V=0
[    0.692628@0] fb: osd_rdma_init: rdma_table p=0xe3848000,op=0xe3848000 , v=0xf0ada000
[    0.692705@0] rdma_register, rdma_table_addr f0adc000 rdma_table_addr_phy e3849000 reg_buf ed7c6000
[    0.692721@0] rdma_register success, handle 2 table_size 4096
[    0.692734@0] fb: osd_rdma_init:osd rdma handle = 2.
[    0.692759@0] fb: mem_size: 0x800000
[    0.692769@0] fb: mem_size: 0x1980000
[    0.692779@0] fb: mem_size: 0x100000
[    0.692789@0] fb: mem_size: 0x100000
[    0.692799@0] fb: mem_size: 0x800000
[    0.692883@0] meson-fb fb: assigned reserved memory node linux,meson-fb
[    0.692897@0] fb: reserved memory base:0xdf800000, size:800000
[    0.693332@0] vout: error: invalid vinfo1. current vmode is not supported
[    0.693350@0] fb: init fbdev bpp is:32
[    0.695375@0] fb: set osd0 reverse as NONE
[    0.695402@0] vout: error: invalid vinfo1. current vmode is not supported
[    0.702629@0] fb: osd probe OK
[    0.703686@0] hdmitx: system: amhdmitx_probe start
[    0.703701@0] hdmitx: system: Ver: 20190815
[    0.703741@0] hdmitx: system: hdmitx_device.chip_type : 12
[    0.703794@0] hdmitx: system: not find match pwr-ctl
[    0.703846@0] hdmitx: system: not find drm_amhdmitx
[    0.703888@0] hdmitx: system: hpd irq = 51
[    0.704012@0] hdmitx: system: hdcp22_tx_skp failed to probe
[    0.704030@0] hdmitx: system: hdcp22_tx_esm failed to probe
[    0.704672@0] hdmitx: hdmitx20: Mapped PHY: 0xffd00000
[    0.704702@0] hdmitx: hdmitx20: Mapped PHY: 0xff634400
[    0.704726@0] hdmitx: hdmitx20: Mapped PHY: 0xff900000
[    0.704746@0] hdmitx: hdmitx20: Mapped PHY: 0xff800000
[    0.704763@0] hdmitx: hdmitx20: Mapped PHY: 0xff63c000
[    0.704777@0] hdmitx: hdmitx20: Mapped PHY: 0xffd00000
[    0.704792@0] hdmitx: hdmitx20: Mapped PHY: 0xff608000
[    0.704808@0] hdmitx: hdmitx20: Mapped PHY: 0xff600000
[    0.704823@0] hdmitx: hdmitx20: Mapped PHY: 0xffe01000
[    0.704843@0] hdmitx: hw: alread display in uboot 0x10
[    0.704882@0] hdmitx: hw: avmute set to 1
[    0.704897@0] vout: vout1: register server: hdmitx_vout_server
[    0.704910@0] vout: vout2: register server: hdmitx_vout2_server
[    0.705757@0] hdmitx: system: fmt_attr 444,8bit
[    0.705917@0] hdmitx: system: amhdmitx_probe end
[    0.706913@0] lcd: driver version: 20200102(8-sm1)
[    0.713270@0] lcd: detect mode: tablet, fr_auto_policy: 0, key_valid: 0
[    0.713290@0] lcd: detect resume_type: 0
[    0.713557@0] lcd: lcd_clktree_probe
[    0.713571@0] lcd: status: 0
[    0.713585@0] vout: vout1: register server: lcd_vout_server
[    0.713599@0] vout: vout2: register server: lcd_vout2_server
[    0.713613@0] lcd: lcd_get_config from dts
[    0.713634@0] lcd: no range_setting
[    0.713721@0] lcd: P070ACB_FT, mipi, 8bit, 600x1024
[    0.713743@0] lcd: pixel_clk = 49.434MHz, bit_rate = 395.472MHz
[    0.714151@0] vout: error: invalid vinfo1. current vmode is not supported
[    0.714165@0] fb: current vmode=invalid, cmd: 0x20000
[    0.714178@0] lcd: lcd_probe ok
[    0.714707@0] vout: create vout attribute OK
[    0.714916@0] vout: vout_fops_create OK
[    0.714931@0] vout: vout1: register server: nulldisp_vout_server
[    0.715080@0] vout: tvout monitor interval:500(ms), timeout cnt:20
[    0.715113@0] hdmitx: hdmitx_set_current_vmode[4726]
[    0.715124@0] hdmitx: system: recalc before 1080p60hz 60 1
[    0.715136@0] hdmitx: system: recalc after 1080p60hz 2997 50
[    0.715145@0] hdmitx: alread display in uboot
[    0.715156@0] vout: init mode 1080p60hz set ok
[    0.715167@0] vout: aml_tvout_mode_monitor
[    0.715185@0] vout: aml_vout_probe OK
[    0.716686@0] chip type:0x2b
[    0.717298@0] MEMORY:[100000+f0800000]
[    0.717316@0] ramdump_probe, storage device:data
[    0.717327@0] NO valid ramdump args:0 0
[    0.717354@0] ramdump_probe, set sticky to 8f09
[    0.717587@0] VFD Driver
[    0.717901@0] sm1628_init+++++++++++ 
[    0.717912@0] ---MDrv_FrontPnl_Init---.
[    0.717923@0] ---MDrv_TM1623_Init---++++++++++++.
[    0.717945@0] ---MDrv_TM1623_WriteData---++++++++++++.
[    0.718005@0] ---MDrv_TM1623_WriteData---++++++++++++.
[    0.718060@0] ---MDrv_TM1623_ShowBoot---++++++++++++.
[    0.728303@1] ---MDrv_TM1623_Write_Adr_Data---++++++++++++.
[    0.728350@1] ---MDrv_TM1623_WriteData---++++++++++++.
[    0.728416@1] ---MDrv_TM1623_WriteData---++++++++++++.
[    0.728480@1] ---MDrv_TM1623_WriteData---++++++++++++.
[    0.728541@1] ---MDrv_TM1623_WriteData---++++++++++++.
[    0.728601@1] ---hardware_init---0++++++++++++.
[    0.728614@1] vfd_ioremap--------sync time--------------
[    0.728709@1] power vfd key(116) registed.
[    0.728722@1] volumn-up vfd key(114) registed.
[    0.728733@1] volumn-down vfd key(115) registed.
[    0.728743@1] menu vfd key(139) registed.
[    0.728755@1] up vfd key(402) registed.
[    0.728766@1] down vfd key(403) registed.
[    0.728777@1] enter vfd key(28) registed.
[    0.728920@1] device_create_file completed 

[    0.729276@1] input: vfd_keypad as /devices/platform/meson-vfd/input/input0
[    0.729293@1] input_register_device completed 

[    0.729317@1] vfd config major:244

[    0.730673@1] Advanced Linux Sound Architecture Driver Initialized.
[    0.731665@1] Bluetooth: Core ver 2.22
[    0.731801@1] NET: Registered protocol family 31
[    0.731816@1] Bluetooth: HCI device and connection manager initialized
[    0.731841@1] Bluetooth: HCI socket layer initialized
[    0.731861@1] Bluetooth: L2CAP socket layer initialized
[    0.731913@1] Bluetooth: SCO socket layer initialized
[    0.732803@1] NetLabel: Initializing
[    0.732820@1] NetLabel:  domain hash size = 128
[    0.732829@1] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.732917@1] NetLabel:  unlabeled traffic allowed by default
[    0.738516@1] clocksource: Switched to clocksource arch_sys_counter
[    0.824196@1] VFS: Disk quotas dquot_6.6.0
[    0.824289@1] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.832603@3] hdmitx: edid: EDID Parser:
[    0.832640@3] hdmitx: hdmitx: reach vesa idx MAX
[    0.832650@3] hdmitx: hdmitx: reach vesa idx MAX
[    0.832661@3] hdmitx: hdmitx: reach vesa idx MAX
[    0.832692@3] hdmitx: hdmitx: reach vesa idx MAX
[    0.832711@3] hdmitx: hdmitx: reach vesa idx MAX
[    0.832721@3] hdmitx: hdmitx: reach vesa idx MAX
[    0.832731@3] hdmitx: hdmitx: reach vesa idx MAX
[    0.832742@3] hdmitx: hdmitx: reach vesa idx MAX
[    0.832752@3] hdmitx: hdmitx: reach vesa idx MAX
[    0.832773@3] [RX]-up_phy_addr = 1
[    0.832807@3] hdmitx: edid: get dtd0 vic: 19
[    0.832821@3] hdmitx: hdmitx: get PMT vic: 16
[    0.832836@3] hdmitx: edid: find IEEEOUT
[    0.832880@3] hdmitx: edid: check sum valid
[    0.832891@3] hdmitx: edid: check sum valid
[    0.832907@3] hdmitx: edid: check sum valid
[    0.832917@3] hdmitx: edid: check sum valid
[    0.832948@3] hdmitx: edid: blk0 raw data
[    0.832996@3] hdmitx: edid: 
[    0.832996@3] 00ffffffffffff004c2d630b47324b300a18010380301b782ad111a55555a028
[    0.832996@3] 0d5054bfef80714f81c0810081809500a9c0b3000101023a801871382d40582c
[    0.832996@3] 4500dd0c1100001e011d007251d01e206e285500dd0c1100001e000000fd0032
[    0.832996@3] 4b1e5111000a202020202020000000fc00533232443339300a202020202001cb
[    0.832996@3] 
[    0.832996@3] 
[    0.833020@3] hdmitx: edid: blk1 raw data
[    0.833064@3] hdmitx: edid: 
[    0.833064@3] 02031af14690041f131203230907078301000066030c00100080011d00bc52d0
[    0.833064@3] 1e20b8285540dd0c1100001e8c0ad090204031200c405500dd0c110000188c0a
[    0.833064@3] d08a20e02d10103e9600dd0c1100001800000000000000000000000000000000
[    0.833064@3] 00000000000000000000000000000000000000000000000000000000000000c8
[    0.833064@3] 
[    0.833064@3] 
[    0.833092@3] hdmitx: system: update rx hdr info 0
[    0.833816@0] hdmitx: system: irq 80000002 0
[    0.833832@0] earc_hdmitx_hpdst, plugin
[    0.842196@1] dtv_dmd:[amldtvdemod..]aml_dtvdemod_init.
[    0.843384@1] NET: Registered protocol family 2
[    0.844250@1] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.844325@1] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.844407@1] TCP: Hash tables configured (established 8192 bind 8192)
[    0.844520@1] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.844571@1] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.844806@1] NET: Registered protocol family 1
[    0.848199@1] wifi: power_on_pin_OD = 0;
[    0.848244@1] aml_wifi wifi: [wifi_dev_probe] no power_on_pin2
[    0.848519@1] aml_wifi wifi: [pwm_double_channel_conf_dt] wifi pwm dt ok
[    0.848561@1] aml_wifi wifi: [pwm_double_channel_conf] wifi pwm conf ok
[    0.848576@1] aml_wifi wifi: [wifi_dev_probe] dhd_static_buf setup
[    0.848588@1] Wifi: bcmdhd_init_wlan_mem: bcmdhd_init_wlan_mem(): 100.10.545.3
[    0.849652@1] Wifi: bcmdhd_init_wlan_mem: bcmdhd_init_wlan_mem prealloc ok
[    0.849671@1] aml_wifi wifi: [wifi_dev_probe] interrupt_pin=483
[    0.849684@1] aml_wifi wifi: [wifi_dev_probe] irq_num=0, irq_trigger_type=1
[    0.849697@1] aml_wifi wifi: [wifi_dev_probe] power_on_pin=482
[    0.849710@1] aml_wifi wifi: [wifi_dev_probe] clock_32k_pin=0
[    0.850116@1] aml_wifi wifi: [wifi_setup_dt] wifi_setup_dt
[    0.850293@1] aml_wifi wifi: [wifi_setup_dt] irq num is:(79)
[    0.850309@1] aml_wifi wifi: [wifi_setup_dt] interrupt_pin(483)
[    0.850343@1] aml_wifi wifi: [wifi_setup_dt] power_on_pin(482)
[    0.856639@1] enable_pmuserenr_all() start
[    0.856683@1] enable_pmuserenr_all() end
[    0.856720@1] hw perfevents: clusterb_enabled = 0
[    0.856737@1] hw perfevents: cpumasks 0xf, 0x0
[    0.856797@1] hw perfevents: cluster A irq = 25
[    0.856949@1] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[    0.862789@1] audit: initializing netlink subsys (disabled)
[    0.862911@1] audit: type=2000 audit(0.800:1): initialized
[    0.864497@2] workingset: timestamp_bits=30 max_order=20 bucket_order=0
[    0.877131@2] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.877353@0] clear:29c00000, free:29c00000, tick:150445 us
[    0.877590@2] exFAT: Version 1.2.9
[    0.879154@2] Registering sdcardfs 0.1
[    0.879476@2] ntfs: driver 2.1.32 [Flags: R/O].
[    0.879869@2] jffs2: version 2.2. (NAND) (SUMMARY)  ?2001-2006 Red Hat, Inc.
[    0.880860@2] fuse init (API version 7.26)
[    0.887915@0] NET: Registered protocol family 38
[    0.887939@0] Key type asymmetric registered
[    0.887952@0] Asymmetric key parser 'x509' registered
[    0.888175@0] bounce: pool size: 64 pages
[    0.888473@0] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 241)
[    0.888489@0] io scheduler noop registered (default)
[    0.888500@0] io scheduler deadline registered
[    0.888537@0] io scheduler cfq registered
[    0.902914@1] random: fast init done
[    0.902972@1] random: crng init done
[    0.917950@0] brd: module loaded
[    0.925875@0] loop: module loaded
[    0.926970@0] zram: Added device: zram0
[    0.927419@0] mtdoops: mtd device (mtddev=name/number) must be supplied
[    0.928645@0] libphy: Fixed MDIO Bus: probed
[    0.929071@0] tun: Universal TUN/TAP device driver, 1.6
[    0.929084@0] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    0.930209@0]  REG0:Addr = f0c3e540
[    0.930235@0]  ee eth reset:Addr = f0cf9008
[    0.930260@0] ----auto_cali_idx 255
[    0.931097@0] meson6-dwmac ff3f0000.ethernet: no reset control found
[    0.931117@0] stmmac - user ID: 0x11, Synopsys ID: 0x37
[    0.931127@0]  Ring mode enabled
[    0.931141@0]  DMA HW capability register supported
[    0.931154@0]  Normal descriptors
[    0.931165@0]  RX Checksum Offload Engine supported
[    0.931175@0] COE Type 2
[    0.931186@0]  TX Checksum insertion supported
[    0.931195@0]  Wake-Up On Lan supported
[    0.931273@0]  Enable RX Mitigation via HW Watchdog Timer
[    0.934375@0] libphy: stmmac: probed
[    0.934395@0] eth%d: PHY ID 02430c20 at 2 IRQ POLL (stmmac-0:02) active
[    0.936413@0] PPP generic driver version 2.4.2
[    0.936694@0] PPP BSD Compression module registered
[    0.936710@0] PPP Deflate Compression module registered
[    0.936738@0] PPP MPPE Compression module registered
[    0.936751@0] NET: Registered protocol family 24
[    0.936911@0] usbcore: registered new interface driver asix
[    0.937027@0] usbcore: registered new interface driver ax88179_178a
[    0.937119@0] usbcore: registered new interface driver cdc_ether
[    0.937197@0] usbcore: registered new interface driver net1080
[    0.937269@0] usbcore: registered new interface driver cdc_subset
[    0.937340@0] usbcore: registered new interface driver zaurus
[    0.937438@0] usbcore: registered new interface driver cdc_ncm
[    0.938316@0] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.938333@0] ehci-pci: EHCI PCI platform driver
[    0.938430@0] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.938465@0] ohci-pci: OHCI PCI platform driver
[    0.939382@0] usbcore: registered new interface driver cdc_acm
[    0.939399@0] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    0.939496@0] usbcore: registered new interface driver usb-storage
[    0.939653@0] usbcore: registered new interface driver usbserial
[    0.939724@0] usbcore: registered new interface driver pl2303
[    0.939805@0] usbserial: USB Serial support registered for pl2303
[    0.940352@0] mousedev: PS/2 mouse device common for all mice
[    0.940902@0] usbcore: registered new interface driver xpad
[    0.941082@0] i2c /dev entries driver
[    0.941413@0] IR NEC protocol handler initialized
[    0.941428@0] IR RC5(x/sz) protocol handler initialized
[    0.941440@0] IR RC6 protocol handler initialized
[    0.941452@0] IR JVC protocol handler initialized
[    0.941462@0] IR Sony protocol handler initialized
[    0.941473@0] IR SANYO protocol handler initialized
[    0.941483@0] IR Sharp protocol handler initialized
[    0.941496@0] IR MCE Keyboard/mouse protocol handler initialized
[    0.941507@0] IR XMP protocol handler initialized
[    0.941641@0] usbcore: registered new interface driver uvcvideo
[    0.941653@0] USB Video Class driver (1.1.1)
[    0.941744@0] usbcore: registered new interface driver cx231xx
[    0.941760@0] md: linear personality registered for level -1
[    0.942450@0] device-mapper: ioctl: 4.35.0-ioctl (2016-06-23) initialised: dm-devel@redhat.com
[    0.942678@0] device-mapper: verity-avb: AVB error handler initialized with vbmeta device: 
[    0.942695@0] Bluetooth: HCI UART driver ver 2.3
[    0.942708@0] Bluetooth: HCI UART protocol H4 registered
[    0.943075@0] cpuidle: enable-method property 'psci' found operations
[    0.943300@0] cpuidle: enable-method property 'psci' found operations
[    0.943445@0] cpuidle: enable-method property 'psci' found operations
[    0.943628@0] cpuidle: enable-method property 'psci' found operations
[    0.945313@0] ledtrig-cpu: registered to indicate activity on CPUs
[    0.945898@0] hidraw: raw HID events driver (C) Jiri Kosina
[    0.946459@0] usbcore: registered new interface driver usbhid
[    0.946473@0] usbhid: USB HID core driver
[    0.946734@0] ashmem: initialized
[    0.948293@0] value of voltage_tolerance 0
[    0.948316@0] meson_cpufreq_init:don't find the node <dynamic_gp1_clk>
[    0.948328@0] value of gp1_clk_target 0
[    0.949780@0] cpu cpu0: meson_cpufreq_init: CPU 0 initialized
[    0.952475@0] ff803000.serial: clock gate not found
[    0.952527@0] meson_uart ff803000.serial: ==uart0 reg addr = f0cfd000
[    0.952593@0] ff803000.serial: ttyS0 at MMIO 0xff803000 (irq = 36, base_baud = 1500000) is a meson_uart
[    0.952613@0] meson_uart ff803000.serial: ttyS0 use xtal(24M) 24000000 change 0 to 115200
[    1.021022@3] earc_rx_isr EARCRX_CMDC_IDLE2
[    1.360262@0] hdmitx: system: ###plugin!
[    1.360264@0] ###hdmi turn on!
[    1.503145@0] hdmitx: edid: EDID Parser:
[    1.503149@0] hdmitx: hdmitx: reach vesa idx MAX
[    1.503153@0] hdmitx: hdmitx: reach vesa idx MAX
[    1.503156@0] hdmitx: hdmitx: reach vesa idx MAX
[    1.503163@0] hdmitx: hdmitx: reach vesa idx MAX
[    1.503168@0] hdmitx: hdmitx: reach vesa idx MAX
[    1.503170@0] hdmitx: hdmitx: reach vesa idx MAX
[    1.503173@0] hdmitx: hdmitx: reach vesa idx MAX
[    1.503174@0] hdmitx: hdmitx: reach vesa idx MAX
[    1.503175@0] hdmitx: hdmitx: reach vesa idx MAX
[    1.503183@0] [RX]-up_phy_addr = 1
[    1.503194@0] hdmitx: edid: get dtd0 vic: 19
[    1.503198@0] hdmitx: hdmitx: get PMT vic: 16
[    1.503202@0] hdmitx: edid: find IEEEOUT
[    1.503224@0] hdmitx: edid: check sum valid
[    1.503225@0] hdmitx: edid: check sum valid
[    1.503230@0] hdmitx: edid: check sum valid
[    1.503231@0] hdmitx: edid: check sum valid
[    1.503235@0] hdmitx: edid: blk0 raw data
[    1.503259@0] hdmitx: edid: 
[    1.503259@0] 00ffffffffffff004c2d630b47324b300a18010380301b782ad111a55555a028
[    1.503259@0] 0d5054bfef80714f81c0810081809500a9c0b3000101023a801871382d40582c
[    1.503259@0] 4500dd0c1100001e011d007251d01e206e285500dd0c1100001e000000fd0032
[    1.503259@0] 4b1e5111000a202020202020000000fc00533232443339300a202020202001cb
[    1.503259@0] 
[    1.503259@0] 
[    1.503264@0] hdmitx: edid: blk1 raw data
[    1.503286@0] hdmitx: edid: 
[    1.503286@0] 02031af14690041f131203230907078301000066030c00100080011d00bc52d0
[    1.503286@0] 1e20b8285540dd0c1100001e8c0ad090204031200c405500dd0c110000188c0a
[    1.503286@0] d08a20e02d10103e9600dd0c1100001800000000000000000000000000000000
[    1.503286@0] 00000000000000000000000000000000000000000000000000000000000000c8
[    1.503286@0] 
[    1.503286@0] 
[    1.503290@0] hdmitx: system: update physcial size: 480 270
[    1.503296@0] hdmitx: hw: set audio
[    1.503303@0] hdmitx: hw: hdmitx tx_aud_src = 0
[    1.503315@0] hdmitx: fs = 0, cd = 4, tmds_clk = 148352
[    1.503319@0] hdmitx: hw: aud_n_para = 5824
[    1.503327@0] hdmitx: hw: set channel status
[    3.741081@2] console [ttyS0] enabled
[    3.745313@2] meson_uart ffd24000.serial: ==uart1 reg addr = f0eae000
[    3.751171@2] ffd24000.serial: ttyS1 at MMIO 0xffd24000 (irq = 50, base_baud = 1500000) is a meson_uart
[    3.762608@2] amlogic-new-usb2-v2 ffe09000.usb2phy: USB2 phy probe:phy_mem:0xffe09000, iomap phy_base:0xf0ee2000
[    3.771313@2] amlogic-new-usb3-v2 ffe09080.usb3phy: USB3 phy probe:phy_mem:0xffe09080, iomap phy_base:0xf0eed080
[    3.782067@2] meson-g12a-pinctrl pinctrl@ff634480: pin GPIOZ_0 already requested by ff3f0000.ethernet; cannot claim for ffd1f000.i2c
[    3.792645@2] meson-g12a-pinctrl pinctrl@ff634480: pin-1 (ffd1f000.i2c) status -22
[    3.800175@2] meson-g12a-pinctrl pinctrl@ff634480: could not request pin 1 (GPIOZ_0) from group i2c0_sda_z0  on device pinctrl-meson
[    3.812048@2] meson-i2c ffd1f000.i2c: Error applying setting, reverse things back
[    3.819509@2] meson-i2c: probe of ffd1f000.i2c failed with error -22
[    3.828012@2] Error: Driver 'meson_reset' is already registered, aborting...
[    3.833660@2] aml_dma ff63e000.aml_dma: Aml dma
[    3.839597@2] aml_aes_dma ff63e000.aml_dma:aml_aes: Aml AES_dma
[    3.846511@2] aml_sha_dma ff63e000.aml_dma:aml_sha: Aml SHA1/SHA224/SHA256 dma
[    3.850938@2] meson-remote: Driver init
[    3.854436@2] meson-remote: remote_probe
[    3.858163@2] meson-remote ff808040.rc: protocol = 0x1
[    3.863279@2] meson-remote ff808040.rc: led_blink = 1
[    3.868290@2] meson-remote ff808040.rc: led_blink_frq  = 100
[    3.874010@2] meson-remote ff808040.rc: platform_data irq =49
[    3.879687@2] meson-remote ff808040.rc: custom_number = 3
[    3.885053@2] meson-remote ff808040.rc: ptable->map_size = 50
[    3.890740@2] meson-remote ff808040.rc: ptable->custom_name = amlogic-remote-1
[    3.897937@2] meson-remote ff808040.rc: ptable->custom_code = 0xfb04
[    3.904259@2] meson-remote ff808040.rc: ptable->release_delay = 80
[    3.910417@2] meson-remote ff808040.rc: fn_key_scancode not config yet
[    3.916913@2] meson-remote ff808040.rc: cursor_left_scancode not config yet
[    3.923842@2] meson-remote ff808040.rc: cursor_right_scancode not config yet
[    3.930864@2] meson-remote ff808040.rc: cursor_up_scancode not config yet
[    3.937622@2] meson-remote ff808040.rc: cursor_down_scancode not config yet
[    3.944557@2] meson-remote ff808040.rc: cursor_ok_scancode not config yet
[    3.951344@2] meson-remote ff808040.rc: ptable->map_size = 44
[    3.957034@2] meson-remote ff808040.rc: ptable->custom_name = amlogic-remote-2
[    3.964232@2] meson-remote ff808040.rc: ptable->custom_code = 0xfe01
[    3.970559@2] meson-remote ff808040.rc: ptable->release_delay = 80
[    3.976739@2] meson-remote ff808040.rc: ptable->map_size = 17
[    3.982431@2] meson-remote ff808040.rc: ptable->custom_name = amlogic-remote-3
[    3.989623@2] meson-remote ff808040.rc: ptable->custom_code = 0xbd02
[    3.995952@2] meson-remote ff808040.rc: ptable->release_delay = 80
[    4.002104@2] meson-remote ff808040.rc: fn_key_scancode not config yet
[    4.008602@2] meson-remote ff808040.rc: cursor_left_scancode not config yet
[    4.015535@2] meson-remote ff808040.rc: cursor_right_scancode not config yet
[    4.022556@2] meson-remote ff808040.rc: cursor_up_scancode not config yet
[    4.029316@2] meson-remote ff808040.rc: cursor_down_scancode not config yet
[    4.036247@2] meson-remote ff808040.rc: cursor_ok_scancode not config yet
[    4.043015@2] meson-remote ff808040.rc: default protocol = 0x1 and id = 0
[    4.049769@2] meson-remote ff808040.rc: reg=0x0, val=0x1f40190
[    4.055575@2] meson-remote ff808040.rc: reg=0x4, val=0x12c00c8
[    4.061384@2] meson-remote ff808040.rc: reg=0x8, val=0x960050
[    4.067104@2] meson-remote ff808040.rc: reg=0xc, val=0x480028
[    4.072821@2] meson-remote ff808040.rc: reg=0x10, val=0x70fa0013
[    4.078805@2] meson-remote ff808040.rc: reg=0x18, val=0x8616800
[    4.084695@2] meson-remote ff808040.rc: reg=0x1c, val=0x9f00
[    4.090337@2] meson-remote ff808040.rc: reg=0x20, val=0x0
[    4.095703@2] meson-remote ff808040.rc: reg=0x24, val=0x0
[    4.101075@2] meson-remote ff808040.rc: reg=0x28, val=0x0
[    4.107777@2] input: aml_keypad as /devices/platform/ff808040.rc/input/input1
[    4.114939@2] meson-remote: IR XMP protocol handler initialized
[    4.123591@2] ion_dev soc:ion_dev: assigned reserved memory node linux,ion-dev
[    4.127211@2] ge2d: ge2d_init_module
[    4.130538@2] ge2d: ge2d_dev major:235
[    4.134168@2] ge2d: clock source clk_ge2d_gate ed399f40
[    4.139304@2] ge2d: clock clk_ge2d source ed5eeb40
[    4.143919@2] ge2d: clock source clk_vapb_0 ed5ee9c0
[    4.148832@2] ge2d: ge2d init clock is 500000000 HZ, VPU clock is 666666656 HZ
[    4.156142@2] ge2d: ge2d clock is 499 MHZ
[    4.160020@2] ge2d: find address resource
[    4.164019@2] ge2d: map io source 0xff940000,size=65536 to 0xf1010000
[    4.170409@2] ge2d: reserved mem init failed
[    4.174662@2] ge2d: ge2d: pdev=ed6ec800, irq=57, clk=ed399f40
[    4.180417@2] ge2d: ge2d start monitor
[    4.184205@3] ge2d: ge2d workqueue monitor start
[    4.184726@2] [tsync_pcr_init]init success.
[    4.184959@2] amvideom vsync irq: 58
[    4.185001@2] create_ge2d_work_queue video task ok
[    4.185740@2] hdmitx: hdcp: hdmitx_hdcp_init
[    4.186379@2] vout: vout2: create vout2 attribute OK
[    4.186516@2] vout: vout2: vout2_fops_create OK
[    4.186707@2] vout: vout2: clktree_init
[    4.186712@2] vout: vout2: register server: nulldisp_vout2_server
[    4.186846@2] vout: vout2: init mode null set ok
[    4.186848@2] vout: vout2: aml_vout2_probe OK
[    4.186980@2] DI: di_module_init ok.
[    4.187211@2] DI: di_probe:
[    4.187215@2] DI: di_probe: major 509
[    4.187440@2] deinterlace deinterlace: assigned reserved memory node linux,di_cma
[    4.187447@2] di:flag_cma=1
[    4.187451@2] DI: CMA size 0x2800000.
[    4.187472@2] pre_irq:77
[    4.187483@2] post_irq:78
[    4.187486@2] DI: di_probe allocate rdma channel 0.
[    4.187493@2] di_get_vpu_clkb: get clk vpu error.
[    4.187497@2] DI: vpu clkb <334000000, 667000000>
[    4.187530@2] get clkb rate:333333328
[    4.187538@2] DI:enable vpu clkb.
[    4.187555@2] 0x000000e1:Y=e1,U=0,V=0
[    4.187558@2] 0x000000e2:Y=e2,U=0,V=0
[    4.187560@2] 0x000000e3:Y=e3,U=0,V=0
[    4.187561@2] 0x000000f0:Y=f0,U=0,V=0
[    4.187563@2] 0x000000f1:Y=f1,U=0,V=0
[    4.187565@2] 0x000000f2:Y=f2,U=0,V=0
[    4.187568@2] 0x000000f3:Y=f3,U=0,V=0
[    4.187569@2] 0x000000f4:Y=f4,U=0,V=0
[    4.187571@2] 0x000000f5:Y=f5,U=0,V=0
[    4.187573@2] 0x000000f6:Y=f6,U=0,V=0
[    4.187581@2] 0x000000f7:Y=f7,U=0,V=0
[    4.187583@2] 0x000000f8:Y=f8,U=0,V=0
[    4.187584@2] 0x000000f9:Y=f9,U=0,V=0
[    4.187586@2] 0x000000fa:Y=fa,U=0,V=0
[    4.187589@2] 0x000000fb:Y=fb,U=0,V=0
[    4.187590@2] 0x000000fc:Y=fc,U=0,V=0
[    4.187598@2] 0x000000fd:Y=fd,U=0,V=0
[    4.187600@2] 0x000000fe:Y=fe,U=0,V=0
[    4.187602@2] 0x000000ff:Y=ff,U=0,V=0
[    4.187603@2] 0x0000003a:Y=3a,U=0,V=0
[    4.187605@2] 0x0000003b:Y=3b,U=0,V=0
[    4.187607@2] 0x0000003c:Y=3c,U=0,V=0
[    4.187611@2] 0x0000003d:Y=3d,U=0,V=0
[    4.187612@2] 0x0000003e:Y=3e,U=0,V=0
[    4.187614@2] 0x0000003f:Y=3f,U=0,V=0
[    4.187617@2] DI: support multi decoding 61~62~63.
[    4.187827@2] DI: di_probe:Di use HRTIMER
[    4.187972@2] DI: di_probe:ok
[    4.188036@2] dim:dim_module_init
[    4.188402@2] dim:dim_module_init finish
[    4.188405@2] dil:dil_init.
[    4.188644@2] dil:dil_init ok.
[    4.188677@2] vdin_drv_init: major 508
[    4.192962@2] rdma_register, rdma_table_addr f1007000 rdma_table_addr_phy e384a000 reg_buf c93ae600
[    4.192966@2] rdma_register success, handle 3 table_size 512
[    4.192969@2] vdin_drv_probe:vdin.0 rdma hanld 3.
[    4.193253@2] vdin vdin0: assigned reserved memory node linux,vdin0_cma
[    4.193256@2] 
[    4.193256@2]  vdin memory resource done.
[    4.193261@2] vdin0 cma_mem_size = 64 MB
[    4.193265@2] vdin0 irq: 55 rdma irq: 2
[    4.193269@2] set_canvas_manual = 0
[    4.193300@2] get fclk_div5 err
[    4.193304@2] vdin_drv_probe: vdin cannot get msr clk !!!
[    4.193331@2] vdin_drv_probe: driver initialized ok
[    4.193430@2] rdma_register, rdma_table_addr f1009000 rdma_table_addr_phy e384b000 reg_buf c93aea00
[    4.193433@2] rdma_register success, handle 4 table_size 512
[    4.193437@2] vdin_drv_probe:vdin.1 rdma hanld 4.
[    4.193654@2] vdin vdin1: assigned reserved memory node linux,vdin1_cma
[    4.193656@2] 
[    4.193656@2]  vdin memory resource done.
[    4.193661@2] vdin1 cma_mem_size = 64 MB
[    4.193664@2] vdin1 irq: 56 rdma irq:  videosync_create_instance dev_s ed055c00,dev_s->dev ed076f00
[    4.199991@0] videosync_create_instance reg videosync.0
[    4.200074@0] aml_vecm_init:module init
[    4.200080@1] videosync_thread started
[    4.200454@0] 
[    4.200454@0]  VECM probe start
[    4.200785@0] Can't find  detect_colorbar.
[    4.200788@0] Can't find  detect_face.
[    4.200790@0] Can't find  detect_corn.
[    4.200792@0] Can't find  wb_sel.
[    4.200794@0] hdr:Can't find  cfg_en_osd_100.
[    4.200802@0] amlogic, vecm
[    4.200802@0] vlock dt support: 1
[    4.200804@0] vlock dt new_fsm: 0
[    4.200806@0] vlock dt hwver: 0
[    4.200808@0] vlock dt phlock_en: 0
[    4.200811@0] Can't find  vlock_en.
[    4.200812@0] Can't find  vlock_mode.
[    4.200816@0] Can't find  vlock_pll_m_limit.
[    4.200818@0] Can't find  vlock_line_limit.
[    4.200838@0] lcd vlock_en=1, vlock_mode=0x4
[    4.200848@0] param_config vlock_en:1 md=0x4
[    4.200853@0] vlock: maxLine 524,maxPixel 1715
[    4.200856@0] vlock_status_init vlock_en:1
[    4.200859@0] pixel_probe: vpp probe func error!
[    4.200866@0] aml_vecm_probe: ok
[    4.200931@0] amdolby_vision_init:module init
[    4.201367@0] 
[    4.201367@0]  amdolby_vision probe start & ver: 20181220
[    4.201375@0] 
[    4.201375@0]  cpu_id=2 tvmode=0
[    4.201548@0] dolby_vision_init_receiver(dvel)
[    4.201553@0] dolby_vision_init_receiver: dvel
[    4.201753@0] amdolby_vision_probe: ok
[    4.201762@0] g12 dovi disable in uboot
[    4.201829@0] prime_sl module init
[    4.202448@0] vm_init .
[    4.203609@0] meson-mmc: mmc driver version: 3.02, 2017-05-15: New Emmc Host Controller
[    4.204615@0] meson-mmc: >>>>>>>>hostbase f1042000, dmode 
[    4.204908@0] meson-mmc: actual_clock :400000, HHI_nand: 0x80
[    4.204911@0] meson-mmc: [meson_mmc_clk_set_rate_v3] after clock: 0x1000033c
[    4.206772@0] hdmitx: hdmitx_set_drm_pkt: tf=1, cf=1, colormetry=0
[    4.252231@0] meson-mmc: meson_mmc_probe() : success!
[    4.257368@1] meson-mmc: >>>>>>>>hostbase f10cc000, dmode 
[    4.257429@1] meson-mmc: gpio_cd = 1ca
[    4.298547@1] meson-mmc: meson_mmc_probe() : success!
[    4.299896@0] meson-mmc: >>>>>>>>hostbase f1156000, dmode 
[    4.300172@0] meson-mmc: actual_clock :400000, HHI_nand: 0x80
[    4.300177@0] meson-mmc: [meson_mmc_clk_set_rate_v3] after clock: 0x1000033c
[    4.341331@0] meson-aml-mmc ffe07000.emmc: divider requested rate 200000000 != actual rate 199999997: ret=0
[    4.341336@0] meson-mmc: actual_clock :199999997, HHI_nand: 0x80
[    4.341339@0] meson-mmc: [meson_mmc_clk_set_rate_v3] after clock: 0x10000245
[    4.341345@0] meson-mmc: Data 1 aligned delay is 0
[    4.341349@0] meson-mmc: emmc: clk 199999997 tuning start
[    4.342573@1] meson-mmc: meson_mmc_probe() : success!
[    4.343071@1] amlogic mtd driver init
[    4.344228@2] aml_vrtc rtc: rtc core: registered aml_vrtc as rtc0
[    4.344445@2] input: aml_vkeypad as /devices/platform/rtc/input/input2
[    4.345647@2] cectx ff80023c.aocec: cec driver date:2020/03/16:reduece no msg in sleep time
[    4.345647@2] 
[    4.345906@2] cectx ff80023c.aocec: compatible:amlogic, aocec-sm1
[    4.345909@2] cectx ff80023c.aocec: cecb_ver:0x2
[    4.345912@2] cectx ff80023c.aocec: line_reg:0x1
[    4.345914@2] cectx ff80023c.aocec: line_bit:0x3
[    4.345917@2] cectx ff80023c.aocec: ee_to_ao:0x1
[    4.346085@2] input: cec_input as /devices/virtual/input/input3
[    4.346226@2] cectx ff80023c.aocec: not find 'port_num'
[    4.346230@2] cectx ff80023c.aocec: using cec:1
[    4.346259@2] cectx ff80023c.aocec: no hdmirx regs
[    4.346262@2] cectx ff80023c.aocec: no hhi regs
[    4.347560@2] irq cnt:2, a:54, b53
[    4.347954@0] cectx ff80023c.aocec: wakeup_reason:0x0
[    4.348188@0] cectx ff80023c.aocec: cev val1: 0x0;val2: 0x0
[    4.348223@0] cectx ff80023c.aocec: aml_cec_probe success end
[    4.349531@0] unifykey: storage in base: 0xc5000000
[    4.349534@0] unifykey: storage out base: 0xc5040000
[    4.349536@0] unifykey: storage block base: 0xc5080000
[    4.349554@0] unifykey: probe done!
[    4.349649@0] meson-mmc: emmc: adj_win: < 0 1 2 3 4 >
[    4.349653@0] meson-mmc: _aml_sd_emmc_execute_tuning() d1_dly 0, window start 0, size 5
[    4.349658@0] meson-mmc: emmc: clk 199999997 tuning start
[    4.351733@0] unifykey: no efuse-version set, use default value: -1
[    4.351755@0] unifykey: key unify config unifykey-num is 18
[    4.352147@0] unifykey: key unify fact unifykey-num is 18
[    4.352182@0] unifykey: unifykey_devno: 1f200000
[    4.352786@2] unifykey: device unifykeys created ok
[    4.352841@2] unifykey: aml_unifykeys_init done!
[    4.353064@2] meson ts init
[    4.353118@2] tsensor id: 0
[    4.353254@2] tsensor trim info: 0xfa0080a2!
[    4.353258@2] tsensor hireboot: 0xc0ff2ae0
[    4.353339@2] meson ts init
[    4.353357@2] tsensor id: 1
[    4.353455@2] tsensor trim info: 0xfa0080a9!
[    4.353457@2] tsensor hireboot: 0xc0ff2ae0
[    4.353592@2] audio_dsp: [dsp]register dsp to char divece(257)
[    4.353773@2] amaudio: amaudio: driver amaudio init!
[    4.354283@2] amaudio: amaudio_init - amaudio: driver amaudio succuess!
[    4.355148@2] amlkaraoke init success!
[    4.355371@2] sysled: module init
[    4.355560@2] sysled: cust gpio register
[    4.355717@2] meson_wdt ffd0f0d0.watchdog: start watchdog
[    4.355720@2] meson_wdt ffd0f0d0.watchdog: creat work queue for watch dog
[    4.356035@2] meson_wdt ffd0f0d0.watchdog: AML Watchdog Timer probed done
[    4.356745@2] amlogic rfkill init
[    4.356925@2] enter bt_probe of_node
[    4.356945@2] not get gpio_en
[    4.356952@2] not get gpio_btwakeup
[    4.356958@2] power on valid level is high
[    4.356958@2] bt: power_on_pin_OD = 0;
[    4.356960@2] bt: power_off_flag = 1;
[    4.356963@2] dis power down = 0;
[    4.357514@0] meson-mmc: emmc: adj_win: < 0 1 2 3 4 >
[    4.357518@0] meson-mmc: _aml_sd_emmc_execute_tuning() d1_dly 1, window start 0, size 5
[    4.357523@0] meson-mmc: emmc: clk 199999997 tuning start
[    4.365072@0] meson-mmc: emmc: adj_win: < 0 1 2 3 4 >
[    4.365077@0] meson-mmc: _aml_sd_emmc_execute_tuning() d1_dly 2, window start 0, size 5
[    4.365081@0] meson-mmc: emmc: clk 199999997 tuning start
[    4.371228@0] meson-mmc: emmc: adj_win: < 0 2 3 4 >
[    4.371233@0] meson-mmc: emmc: best_win_start =2, best_win_size =4
[    4.371238@0] meson-mmc: emmc: sd_emmc_regs->gclock=0x10000245,sd_emmc_regs->gadjust=0x42000
[    4.371241@0] meson-mmc: delay1:0x0, delay2:0x0
[    4.371394@0] emmc: new HS200 MMC card at address 0001
[    4.371935@0] emmc: clock 199999997, 8-bit-bus-width
[    4.371935@0]  
[    4.371935@0] mmcblk0: emmc:0001 BWBD3R 29.1 GiB 
[    4.372135@0] mmcblk0boot0: emmc:0001 BWBD3R partition 1 4.00 MiB
[    4.372329@0] mmcblk0boot1: emmc:0001 BWBD3R partition 2 4.00 MiB
[    4.372526@0] mmcblk0rpmb: emmc:0001 BWBD3R partition 3 4.00 MiB
[    4.373449@0] meson-mmc: Enter aml_emmc_partition_ops
[    4.374063@0] meson-mmc: [mmc_read_partition_tbl] mmc read partition OK!
[    4.374066@0] meson-mmc: add_emmc_partition
[    4.374253@0] meson-mmc: [mmcblk0p01]           bootloader  offset 0x000000000000, size 0x000000400000 
[    4.374422@0] meson-mmc: [mmcblk0p02]             reserved  offset 0x000002400000, size 0x000004000000 
[    4.374610@0] meson-mmc: [mmcblk0p03]                cache  offset 0x000006c00000, size 0x000046000000 
[    4.374755@0] meson-mmc: [mmcblk0p04]                  env  offset 0x00004d400000, size 0x000000800000 
[    4.374894@0] meson-mmc: [mmcblk0p05]                 logo  offset 0x00004e400000, size 0x000000800000 
[    4.375030@0] meson-mmc: [mmcblk0p06]             recovery  offset 0x00004f400000, size 0x000001800000 
[    4.375179@0] meson-mmc: [mmcblk0p07]                 misc  offset 0x000051400000, size 0x000000800000 
[    4.375322@0] meson-mmc: [mmcblk0p08]                 dtbo  offset 0x000052400000, size 0x000000800000 
[    4.375468@0] meson-mmc: [mmcblk0p09]             cri_data  offset 0x000053400000, size 0x000000800000 
[    4.375609@0] meson-mmc: [mmcblk0p10]                param  offset 0x000054400000, size 0x000001000000 
[    4.375751@0] meson-mmc: [mmcblk0p11]                 boot  offset 0x000055c00000, size 0x000001000000 
[    4.375899@0] meson-mmc: [mmcblk0p12]                  rsv  offset 0x000057400000, size 0x000001000000 
[    4.376045@0] meson-mmc: [mmcblk0p13]             metadata  offset 0x000058c00000, size 0x000001000000 
[    4.376197@0] meson-mmc: [mmcblk0p14]               vbmeta  offset 0x00005a400000, size 0x000000200000 
[    4.376339@0] meson-mmc: [mmcblk0p15]                  tee  offset 0x00005ae00000, size 0x000002000000 
[    4.376491@0] meson-mmc: [mmcblk0p16]               vendor  offset 0x00005d600000, size 0x000046000000 
[    4.376647@0] meson-mmc: [mmcblk0p17]                  odm  offset 0x0000a3e00000, size 0x000008000000 
[    4.376795@0] meson-mmc: [mmcblk0p18]               system  offset 0x0000ac600000, size 0x000050000000 
[    4.376955@0] meson-mmc: [mmcblk0p19]              product  offset 0x0000fce00000, size 0x000008000000 
[    4.377109@0] meson-mmc: [mmcblk0p20]                 data  offset 0x000105600000, size 0x000642600000 
[    4.377130@0] card key: card_blk_probe.
[    4.377136@0] emmc_key_init:183 emmc key lba_start:0x12020,lba_end:0x12220
[    4.377140@0] emmc key: emmc_key_init:205 ok.
[    4.379090@0] meson-mmc: amlmmc_dtb_init: register dtb chardev
[    4.379090@0] meson-mmc: calc f22493e0, store f22493e0
[    4.380968@0] meson-mmc: calc f22493e0, store f22493e0
[    4.380973@0] meson-mmc: total valid 2
[    4.381272@0] meson-mmc: amlmmc_dtb_init: register dtb chardev OK
[    4.381272@0] meson-mmc: Exit aml_emmc_partition_ops OK.
[    4.386644@2] request_irq error ret=-22
[    4.386690@2] dev_pm_set_wake_irq failed: -22
[    4.387636@2] dmc_monitor_probe
[    4.387815@2] page_trace_module_init, create sysfs failed
[    4.388801@2] atv_demod: aml_atvdemod_init: OK, atv demod version: V2.15.
[    4.388980@2] defendkey ff630218.defendkey: Reserved memory is not enough!
[    4.388993@2] defendkey: probe of ff630218.defendkey failed with error -22
[    4.389296@0] bl40: bl40 probe
[    4.389730@1] usbcore: registered new interface driver snd-usb-audio
[    4.391204@1] aml_codec_T9015 ff632000.t9015: aml_T9015_audio_codec_probe
[    4.391228@1] T9015 acodec used by auge, tdmout:1
[    4.394197@1] asoc debug: aml_audio_controller_probe-130
[    4.394885@1] aml_tdm_platform_probe, tdm ID = 0, lane_cnt = 2
[    4.394912@1] snd_tdm ff660000.audiobus:tdm@0: lane_mask_out = 1, lane_oe_mask_out = 0
[    4.394976@1] snd_tdm ff660000.audiobus:tdm@0: neither mclk_pad nor mclk2pad set
[    4.395104@1] aml_tdm_platform_probe(), share en = 1
[    4.395104@1] No channel mask node Channel_Mask
[    4.395375@1] aml_tdm_platform_probe, tdm ID = 1, lane_cnt = 8
[    4.395463@1] TDM id 1 samesource_sel:3
[    4.395477@1] snd_tdm ff660000.audiobus:tdm@1: lane_mask_out = 1, lane_oe_mask_out = 0
[    4.395786@1] TDM id 1 output clk enable:1
[    4.395817@1] aml_tdm_platform_probe(), share en = 1
[    4.395817@1] No channel mask node Channel_Mask
[    4.395840@1] TDM id 1 tuning clk enable:1
[    4.396035@1] aml_tdm_platform_probe, tdm ID = 2, lane_cnt = 4
[    4.396058@1] snd_tdm ff660000.audiobus:tdm@2: lane_mask_out = 1, lane_oe_mask_out = 0
[    4.396256@1] aml_tdm_platform_probe(), share en = 1
[    4.396256@1] No channel mask node Channel_Mask
[    4.397527@1] Spdif id 0 tuning clk enable:1
[    4.397536@1] aml_spdif_platform_probe, register soc platform
[    4.397653@1] aml_spdif_platform_probe, register soc platform
[    4.398528@1] default set lane_mask_in as all lanes.
[    4.398533@1] aml_pdm_platform_probe pdm filter mode from dts:1
[    4.398545@1] aml_pdm_platform_probe, register soc platform
[    4.399027@1] audio-ddr-manager ff660000.audiobus:ddr_manager: 0, irqs toddr 37, frddr 41
[    4.399054@1] audio-ddr-manager ff660000.audiobus:ddr_manager: 1, irqs toddr 38, frddr 42
[    4.399080@1] audio-ddr-manager ff660000.audiobus:ddr_manager: 2, irqs toddr 39, frddr 43
[    4.399106@1] audio-ddr-manager ff660000.audiobus:ddr_manager: 3, irqs toddr 40, frddr 44
[    4.399638@1] datain_src:4, datain_chnum:2, datain_chumask:3
[    4.399642@1] datalb_src:1, datalb_chnum:2, datalb_chmask:3
[    4.399644@1] datain_lane_mask:0x1, datalb_lane_mask:0x1
[    4.399647@1] datalb_format: 1, chmask for lanes: 0x3
[    4.399885@1] loopback_platform_probe, p_loopback->id:0 register soc platform
[    4.400922@1] effect_platform_probe, line:569
[    4.401064@1] eqdrc_clk_set, src pll:399999993, clk:199999997
[    4.401070@1] effect_platform_probe  module:1, lane_mask:1, ch_mask:3
[    4.402136@1] vad_platform_probe vad data source sel:4, level:1
[    4.402320@1] input: vad_keypad as /devices/platform/soc/ff660000.audiobus/ff660000.audiobus:vad/input/input4
[    4.403207@0] Register vad
[    4.502629@1] meson-mmc: card IN
[    4.606921@1] meson-mmc: Uart in
[    4.614861@0] asoc-aml-card auge_sound: control 2:0:0:I2SIn CLK:0 is already present
[    4.614865@0] snd_tdm ff660000.audiobus:tdm@1: ASoC: Failed to add I2SIn CLK: -16
[    4.614868@0] aml_dai_tdm_probe, failed add snd tdm controls
[    4.614877@0] asoc-aml-card auge_sound: control 2:0:0:I2SIn CLK:0 is already present
[    4.614883@0] snd_tdm ff660000.audiobus:tdm@2: ASoC: Failed to add I2SIn CLK: -16
[    4.614885@0] aml_dai_tdm_probe, failed add snd tdm controls
[    4.614890@0] aml_dai_spdif_probe
[    4.614909@0] aml_dai_spdif_probe
[    4.614913@0] asoc debug: earc_dai_probe
[    4.614951@0] master_mode(1), binv(1), finv(0) out_skew(2), in_skew(3)
[    4.615711@0] asoc-aml-card auge_sound: multicodec <-> TDM-A mapping ok
[    4.615753@0] master_mode(1), binv(1), finv(1) out_skew(2), in_skew(3)
[    4.616354@0] asoc-aml-card auge_sound: multicodec <-> TDM-B mapping ok
[    4.616384@0] master_mode(1), binv(1), finv(1) out_skew(2), in_skew(3)
[    4.616976@0] asoc-aml-card auge_sound: dummy <-> TDM-C mapping ok
[    4.617498@0] asoc-aml-card auge_sound: dummy <-> ff660000.audiobus:pdm mapping ok
[    4.618122@0] asoc-aml-card auge_sound: dummy <-> SPDIF mapping ok
[    4.618546@0] asoc-aml-card auge_sound: dummy <-> SPDIF-B mapping ok
[    4.618552@0] asoc earc_dai_set_fmt, 0x4000, ed721d90
[    4.619162@0] asoc-aml-card auge_sound: dummy <-> ff663800.earc mapping ok
[    4.622983@0] snd_card_add_kcontrols card:ecc81010
[    4.623058@0] eq/drc v1 function enable
[    4.623065@0] no node audio_effect for eq/drc info!
[    4.623067@0] Failed to add audio effects v1 controls
[    4.623270@0] GACT probability NOT on
[    4.623282@0] Mirror/redirect action on
[    4.623289@0] u32 classifier
[    4.623291@0]     Actions configured
[    4.623296@0] Netfilter messages via NETLINK v0.30.
[    4.623532@0] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[    4.623801@0] ctnetlink v0.93: registering with nfnetlink.
[    4.624492@2] xt_time: kernel timezone is -0000
[    4.624575@2] ipip: IPv4 and MPLS over IPv4 tunneling driver
[    4.625041@2] IPv4 over IPsec tunneling driver
[    4.637878@2] ip_tables: (C) 2000-2006 Netfilter Core Team
[    4.638023@2] arp_tables: arp_tables: (C) 2002 David S. Miller
[    4.649267@2] Initializing XFRM netlink socket
[    4.649746@2] NET: Registered protocol family 10
[    4.650842@2] mip6: Mobile IPv6
[    4.650867@2] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    4.667114@0] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    4.668091@0] NET: Registered protocol family 17
[    4.668114@0] NET: Registered protocol family 15
[    4.668139@0] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    4.668245@0] Bluetooth: RFCOMM TTY layer initialized
[    4.668253@0] Bluetooth: RFCOMM socket layer initialized
[    4.668273@0] Bluetooth: RFCOMM ver 1.11
[    4.668281@0] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    4.668284@0] Bluetooth: BNEP filters: protocol multicast
[    4.668294@0] Bluetooth: BNEP socket layer initialized
[    4.668297@0] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    4.668305@0] Bluetooth: HIDP socket layer initialized
[    4.668328@0] l2tp_core: L2TP core driver, V2.0
[    4.668346@0] l2tp_ppp: PPPoL2TP kernel driver, V2.0
[    4.668347@0] l2tp_ip: L2TP IP encapsulation support (L2TPv3)
[    4.668367@0] l2tp_netlink: L2TP netlink interface
[    4.668395@0] l2tp_eth: L2TP ethernet pseudowire support (L2TPv3)
[    4.668416@0] l2tp_debugfs: L2TP debugfs support
[    4.668420@0] l2tp_ip6: L2TP IP encapsulation support for IPv6 (L2TPv3)
[    4.668457@0] NET: Registered protocol family 35
[    4.668508@0] Key type dns_resolver registered
[    4.670907@0] Registering SWP/SWPB emulation handler
[    4.670924@0] disable EAS feature
[    4.702251@0] registered taskstats version 1
[    4.713815@0] dwc3 ff500000.dwc3: Configuration mismatch. dr_mode forced to host
[    4.716592@0] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    4.716613@0] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[    4.716996@0] xhci-hcd xhci-hcd.0.auto: hcc params 0x0228fe6c hci version 0x110 quirks 0x20010010
[    4.717047@0] xhci-hcd xhci-hcd.0.auto: irq 29, io mem 0xff500000
[    4.717853@2] hub 1-0:1.0: USB hub found
[    4.717887@2] hub 1-0:1.0: 2 ports detected
[    4.718312@2] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    4.718323@2] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[    4.718407@2] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    4.718811@1] meson-mmc: JTAG in
[    4.719052@0] hub 2-0:1.0: USB hub found
[    4.719079@0] hub 2-0:1.0: 1 port detected
[    4.723859@0] aml_vrtc rtc: setting system clock to 2015-01-01 00:27:01 UTC (1420072021)
[    4.724320@0] dwc_otg: usb0: type: 2 speed: 0, config: 0, dma: 0, id: 0, phy: ffe09000, ctrl: 0
[    4.724323@0] dwc_otg_driver_probe host only, not probe usb_otg!!!
[    4.725004@0] lcd extern: key_valid: 0
[    4.725007@0] lcd extern: lcd_extern_get_config from dts
[    4.725020@0] lcd extern: error: failed to get extern_5
[    4.725062@0] lcd extern: aml_lcd_extern_probe ok
[    4.725619@0] bl: chip type/name: (8-sm1)
[    4.725622@0] bl: key_valid: 0
[    4.725625@0] bl: aml_bl_config_load from dts
[    4.725632@0] bl: load: backlight_0
[    4.725642@0] bl error: failed to get bl_power_attr
[    4.725651@0] bl: bl pwm_port: PWM_F(5)
[    4.725656@0] bl: find bl_pwm_en_sequence_reverse: 0
[    4.725660@0] bl: name              = backlight_pwm
[    4.725664@0] bl: method            = pwm(1)
[    4.725739@0] bl: register pwm_ch(5) 0xed0a20f0
[    4.726077@2] bl: probe OK
[    4.727117@2] meson_cdev probe
[    4.727206@2] meson_cdev index: 0
[    4.727400@2] meson_cdev index: 1
[    4.727406@2] cpucore_cooling_register, max_cpu_core_num:4
[    4.727531@2] meson_cdev index: 2
[    4.727558@2] meson_cdev index: 3
[    4.727601@2] find tzd id: 0
[    4.727735@2] find tzd id: 0
[    4.727781@2] meson_cdev probe done
[    4.728012@2] gxbb_pm: enter meson_pm_probe!
[    4.728028@2] no vddio3v3_en pin
[    4.728029@2] pm-meson aml_pm: Can't get switch_clk81
[    4.728064@2] gxbb_pm: meson_pm_probe done
[    4.728566@2] ALSA device list:
[    4.728570B    6.418816@0] meson_uart ff803000.serial: ttyS0 use xtal(24M) 24000000 change 115200 to 115200
[    6.526551@0] prepare_namespace() wait 79
[    6.526627@0] md: Waiting for all devices to be available before autodetect
[    6.531884@0] md: If you don't use raid, use raid=noautodetect
[    6.538587@2] md: Autodetecting RAID arrays.
[    6.541909@2] md: Scanned 0 and added 0 devices.
[    6.546536@2] md: autorun ...
[    6.549463@2] md: ... autorun DONE.
[    6.553830@2] EXT4-fs (mmcblk0p18): couldn't mount as ext3 due to feature incompatibilities
[    6.561646@2] EXT4-fs (mmcblk0p18): couldn't mount as ext2 due to feature incompatibilities
[    6.572417@2] EXT4-fs (mmcblk0p18): mounted filesystem without journal. Opts: (null)
[    6.577327@2] VFS: Mounted root (ext4 filesystem) readonly on device 179:18.
[    6.585825@0] devtmpfs: mounted
[    6.588235@0] Freeing unused kernel memory: 1024K
[    6.612711@2] init: init first stage started!
[    6.613519@2] init: Using Android DT directory /proc/device-tree/firmware/android/
[    6.623735@0] init: [libfs_mgr]fs_mgr_read_fstab_default(): failed to find device default fstab
[    6.682567@0] EXT4-fs (mmcblk0p17): mounted filesystem without journal. Opts: barrier=1,inode_readahead_blks=8
[    6.687482@0] init: [libfs_mgr]__mount(source=/dev/block/odm,target=/odm,type=ext4)=0: Success
[    6.698033@0] EXT4-fs (mmcblk0p19): mounted filesystem without journal. Opts: barrier=1,inode_readahead_blks=8
[    6.705639@0] init: [libfs_mgr]__mount(source=/dev/block/product,target=/product,type=ext4)=0: Success
[    6.717547@0] EXT4-fs (mmcblk0p16): mounted filesystem without journal. Opts: barrier=1,inode_readahead_blks=8
[    6.724860@0] init: [libfs_mgr]__mount(source=/dev/block/vendor,target=/vendor,type=ext4)=0: Success
[    6.734250@0] init: Skipped setting INIT_AVB_VERSION (not in recovery mode)
[    6.741186@0] init: Loading SELinux policy
[    6.931120@0] audit: type=1403 audit(1420072023.708:2): policy loaded auid=4294967295 ses=4294967295
[    6.934849@0] selinux: SELinux: Loaded policy from /odm/etc/selinux/precompiled_sepolicy
[    6.934849@0] 
[    6.952462@0] selinux: SELinux: Loaded file_contexts
[    6.952462@0] 
[    6.958104@2] init: init second stage started!
[    6.984142@0] init: Using Android DT directory /proc/device-tree/firmware/android/
[    6.991698@0] selinux: SELinux: Loaded file_contexts
[    6.991698@0] 
[    6.992699@0] init: Running restorecon...
[    7.004122@0] init: waitid failed: No child processes
[    7.009848@0] init: Couldn't load property file '/odm/default.prop': open() failed: No such file or directory: No such file or directory
[    7.020033@0] init: Created socket '/dev/socket/property_service', mode 666, user 0, group 0
[    7.025881@0] init: Forked subcontext for 'u:r:vendor_init:s0' with pid 2534
[    7.032778@0] init: Forked subcontext for 'u:r:vendor_init:s0' with pid 2535
[    7.039243@0] init: Parsing file /init.rc...
[    7.135566@0] ueventd: ueventd started!
[    7.140062@0] selinux: SELinux: Loaded file_contexts
[    7.140062@0] 
[    7.141282@0] ueventd: Parsing file /ueventd.rc...
[    7.141395@2] mali_kbase: loading out-of-tree module taints kernel.
[    7.145846@2] mali ffe40000.bifrost: Continuing without Mali regulator control
[    7.145936@2] mali ffe40000.bifrost: max pp is 2
[    7.145941@2] mali ffe40000.bifrost: set min pp to default 1
[    7.145943@2] mali ffe40000.bifrost: min pp is 1
[    7.145946@2] mali ffe40000.bifrost: set min clk default to 0
[    7.145949@2] mali ffe40000.bifrost: min clk  is 0
[    7.145966@2] mali ffe40000.bifrost: hiu io source  0xf15ad000
[    7.145976@2] mali ffe40000.bifrost: hiu io source  0xf15af000
[    7.145980@2] mali ffe40000.bifrost: num of pp used most of time 1
[    7.145986@2] mali ffe40000.bifrost: clock dvfs cfg table size is 6
[    7.146073@2] mali ffe40000.bifrost: max clk set 4
[    7.146076@2] mali ffe40000.bifrost: max clk  is 4
[    7.146082@2] mali ffe40000.bifrost: turbo clk set to 5
[    7.146085@2] mali ffe40000.bifrost: turbo clk  is 5
[    7.146089@2] mali ffe40000.bifrost: default clk set to 4
[    7.146091@2] mali ffe40000.bifrost: default clk  is 4
[    7.146097@2] mali ffe40000.bifrost: ====================0====================
[    7.146097@2] clk_freq= 285714285, clk_parent=fclk_div7, voltage=1150, keep_count=5, threshod=<100 190>, clk_sample=285
[    7.146102@2] mali ffe40000.bifrost: ====================1====================
[    7.146102@2] clk_freq= 400000000, clk_parent=fclk_div5, voltage=1150, keep_count=5, threshod=<152 207>, clk_sample=400
[    7.146106@2] mali ffe40000.bifrost: ====================2====================
[    7.146106@2] clk_freq= 500000000, clk_parent=fclk_div4, voltage=1150, keep_count=5, threshod=<180 220>, clk_sample=500
[    7.146111@2] mali ffe40000.bifrost: ====================3====================
[    7.146111@2] clk_freq= 666666666, clk_parent=fclk_div3, voltage=1150, keep_count=5, threshod=<210 236>, clk_sample=666
[    7.146117@2] mali ffe40000.bifrost: ====================4====================
[    7.146117@2] clk_freq= 846000000, clk_parent=  gp0_pll, voltage=1150, keep_count=5, threshod=<230 255>, clk_sample=846
[    7.146121@2] mali ffe40000.bifrost: ====================5====================
[    7.146121@2] clk_freq= 846000000, clk_parent=  gp0_pll, voltage=1150, keep_count=5, threshod=<230 255>, clk_sample=846
[    7.146125@2] mali ffe40000.bifrost: clock dvfs table size is 6
[    7.147636@2] mali_plat=bf05e2d8
[    7.147975@2] find tzd id: 0
[    7.148046@2] gpu cooling register okay with err=0
[    7.148229@2] find tzd id: 0
[    7.148259@2] gpu core cooling register okay with err=0
[    7.148290@2] shader_present=1, tiler_present=1, l2_present=1
[    7.148371@2] Mali_pwr_on:gpu_irq : 200
[    7.148747@2] hrtimer: interrupt took 18084 ns
[    7.149236@2] mali ffe40000.bifrost: GPU identified as 0x3 arch 7.0.9 r0p0 status 0
[    7.152920@2] mali ffe40000.bifrost: Probed as mali0
[    7.311846@2] ATBM: register atbm8881 demod driver version: V2.01 (Linux version 4.9.113-arm Jan 17 2020 17:28:22).
[    7.312451@2] ATBM: [atbm8881_fe..] probe ok.
[    7.356187@2] PPMGRVPP: info: RegisterTB_Function: gfunc   (null), func: bf0b3000, ver:TB detect: v2016.11.15a *** [ Tue Mar 19 19:21:39 CST 2019]-[ renjiang.han]-[* master]-[67f03d41e0612a58d1edd96db9bc8b92de1a59b1]-[Date: Wed Jul 4 00:44:57 2018 +0800]-[2]
[    7.437294@2] ueventd: Parsing file /vendor/ueventd.rc...
[    7.441701@2] ueventd: /vendor/ueventd.rc: 110: /sys/ lines must have 5 entries
[    7.448042@2] ueventd: Parsing file /odm/ueventd.rc...
[    7.453080@2] ueventd: Unable to read config file '/odm/ueventd.rc': open() failed: No such file or directory
[    7.463090@2] ueventd: Parsing file /ueventd.amlogic.rc...
[    7.468397@2] ueventd: Unable to read config file '/ueventd.amlogic.rc': open() failed: No such file or directory
[    7.985256@2] ueventd: Coldboot took 0.503 seconds
[    7.999586@1] audit: type=1400 audit(1420072024.776:3): avc:  denied  { write } for  pid=1 comm="init" name="alignment" dev="proc" ino=4026531967 scontext=u:r:init:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
[    8.013467@1] audit: type=1400 audit(1420072024.788:4): avc:  denied  { open } for  pid=1 comm="init" path="/proc/cpu/alignment" dev="proc" ino=4026531967 scontext=u:r:init:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
[    8.059223@2] audit: type=1400 audit(1420072024.836:5): avc:  denied  { write } for  pid=2534 comm="init" name="watermark_scale_factor" dev="proc" ino=11571 scontext=u:r:vendor_init:s0 tcontext=u:object_r:proc_vm_writable:s0 tclass=file permissive=1
[    8.099260@1] EXT4-fs (mmcblk0p20): Ignoring removed nomblk_io_submit option
[    8.162307@2] EXT4-fs (mmcblk0p20): mounted filesystem with ordered data mode. Opts: errors=remount-ro,nomblk_io_submit
[    8.309055@2] e2fsck: e2fsck 1.43.3 (04-Sep-2016)
[    8.309055@2] 
[    8.309813@2] e2fsck: /dev/block/data: clean, 2439/1643376 files, 285712/6563328 blocks
[    8.309813@2] 
[    8.321114@2] EXT4-fs (mmcblk0p20): Ignoring removed nomblk_io_submit option
[    8.334035@3] EXT4-fs (mmcblk0p20): mounted filesystem with ordered data mode. Opts: nodelalloc,nomblk_io_submit,errors=panic
[    8.341888@3] EXT4-fs (mmcblk0p3): Ignoring removed nomblk_io_submit option
[    8.350306@2] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: errors=remount-ro,nomblk_io_submit
[    8.407972@1] e2fsck: e2fsck 1.43.3 (04-Sep-2016)
[    8.407972@1] 
[    8.408736@1] e2fsck: /dev/block/cache: clean, 14/71712 files, 13057/286720 blocks
[    8.408736@1] 
[    8.419090@3] EXT4-fs (mmcblk0p3): Ignoring removed nomblk_io_submit option
[    8.427710@3] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: nodelalloc,nomblk_io_submit,errors=panic
[    8.437763@3] EXT4-fs (mmcblk0p13): Ignoring removed nomblk_io_submit option
[    8.445925@3] EXT4-fs (mmcblk0p13): mounted filesystem with ordered data mode. Opts: errors=remount-ro,nomblk_io_submit
[    8.502090@1] e2fsck: e2fsck 1.43.3 (04-Sep-2016)
[    8.502090@1] 
[    8.502882@1] e2fsck: /dev/block/metadata: clean, 12/4096 files, 1166/4096 blocks
[    8.502882@1] 
[    8.513195@3] EXT4-fs (mmcblk0p13): Ignoring removed nomblk_io_submit option
[    8.521010@3] EXT4-fs (mmcblk0p13): mounted filesystem with ordered data mode. Opts: nodelalloc,nomblk_io_submit,errors=panic
[    8.572970@3] e2fsck: e2fsck 1.43.3 (04-Sep-2016)
[    8.572970@3] 
[    8.573733@3] e2fsck: Pass 1: Checking inodes, blocks, and sizes
[    8.573733@3] 
[    8.581366@3] e2fsck: Pass 2: Checking directory structure
[    8.581366@3] 
[    8.588461@3] e2fsck: Pass 3: Checking directory connectivity
[    8.588461@3] 
[    8.597197@3] EXT4-fs (mmcblk0p10): Ignoring removed nomblk_io_submit option
[    8.605528@0] EXT4-fs (mmcblk0p10): mounted filesystem with ordered data mode. Opts: nodelalloc,nomblk_io_submit,errors=panic
[    8.657288@0] EXT4-fs (mmcblk0p15): Ignoring removed nomblk_io_submit option
[    8.660701@0] EXT4-fs (mmcblk0p15): mounted filesystem with ordered data mode. Opts: nodelalloc,nomblk_io_submit,errors=panic
[    8.671054@0] init: 10 output lines suppressed due to ratelimiting
[    8.685524@0] register clk_set_setting cpu[43]
[    8.690740@0] Registered firmware driver success.
[    8.692380@0] Try to load video/h264_enc.bin  ...
[    8.696961@0] load firmware size : 76288, Name : video/h264_enc.bin.
[    8.701767@0] Try to load video/video_ucode.bin  ...
[    8.725382@3] load firmware size : 1816576, Name : video/video_ucode.bin.
[    8.756041@3] audit: type=1400 audit(1420072025.532:6): avc:  denied  { read } for  pid=3092 comm="imageserver" name="vndbinder" dev="tmpfs" ino=14820 scontext=u:r:imageserver:s0 tcontext=u:object_r:vndbinder_device:s0 tclass=chr_file permissive=1
[    8.772401@3] audit: type=1400 audit(1420072025.552:7): avc:  denied  { write } for  pid=3092 comm="imageserver" name="vndbinder" dev="tmpfs" ino=14820 scontext=u:r:imageserver:s0 tcontext=u:object_r:vndbinder_device:s0 tclass=chr_file permissive=1
[    8.776140@2] Amlogic A/V streaming port init
[    8.779364@0] get gate demux control ok ed7fae80
[    8.779382@0] get gate parser_top control ok ed7fa780
[    8.779413@0] get gate vdec control ok ed7fab80
[    8.779446@0] get gate clk_81 control ok ed7fa2c0
[    8.779485@0] get gate clk_vdec_mux control ok ed7fa400
[    8.779529@0] get gate clk_hcodec_mux control ok ed7fac40
[    8.779580@0] get gate clk_hevc_mux control ok ed7fa800
[    8.779636@0] get gate clk_hevcb_mux control ok ed7fa7c0
[    8.779658@0] get gate ahbarb0 control ok ed7faa40
[    8.779667@0] get gate asyncfifo control failed   (null)
[    8.801825@2] ammvdec_h264 module init
[    8.834614@2] ammvdec_mpeg12 module init
[    8.843713@2] ammvdec_mpeg4_driver_init_module 
[    8.860670@3] audit: type=1400 audit(1420072025.640:8): avc:  denied  { open } for  pid=3092 comm="imageserver" path="/dev/vndbinder" dev="tmpfs" ino=14820 scontext=u:r:imageserver:s0 tcontext=u:object_r:vndbinder_device:s0 tclass=chr_file permissive=1
[    8.874079@2] amvenc_avc_probe -- reserved memory config fail.
[    8.874082@2] amvenc_avc - cma memory pool size: 60 MB
[    8.874106@2] encode_wq_init.
[    8.874112@2] encode start monitor.
[    8.874228@0] encode workqueue monitor start.
[    8.879560@2] vpu_init
[    8.879828@2] vpu_probe
[    8.879832@2] HevcEnc reserved memory config fail.
[    8.879834@2] HevcEnc - cma memory pool size: 64 MB
[    8.879859@2] HevcEnc - wave420l_irq: 65
[    8.879929@2] vpu base address get from platform driver physical base addr=0xff610000, virtual base=0xf27cc000
[    8.880223@2] success to probe vpu device with video memory from cma
[    8.913457@2] audit: type=1400 audit(1420072025.684:9): avc:  denied  { setattr } for  pid=1 comm="init" name="slabinfo" dev="proc" ino=4026532028 scontext=u:r:init:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=1
[    8.962740@3] audit: type=1400 audit(1420072025.740:10): avc:  denied  { ioctl } for  pid=3092 comm="imageserver" path="/dev/vndbinder" dev="tmpfs" ino=14820 ioctlcmd=0x6209 scontext=u:r:imageserver:s0 tcontext=u:object_r:vndbinder_device:s0 tclass=chr_file permissive=1
[    8.988968@0] logd.auditd: start
[    9.128221@0] type=1400 audit(1420072025.904:11): avc: denied { setattr } for pid=2534 comm="init" name="droidota" dev="mmcblk0p20" ino=654085 scontext=u:r:vendor_init:s0 tcontext=u:object_r:update_data_file:s0 tclass=dir permissive=1
[    9.147708@0] type=1400 audit(1420072025.904:11): avc: denied { setattr } for pid=2534 comm="init" name="droidota" dev="mmcblk0p20" ino=654085 scontext=u:r:vendor_init:s0 tcontext=u:object_r:update_data_file:s0 tclass=dir permissive=1
[    9.164329@0] type=1400 audit(1420072025.904:12): avc: denied { setattr } for pid=2534 comm="init" name="log" dev="mmcblk0p20" ino=130822 scontext=u:r:vendor_init:s0 tcontext=u:object_r:log_file:s0 tclass=dir permissive=1
[    9.183966@0] type=1400 audit(1420072025.904:12): avc: denied { setattr } for pid=2534 comm="init" name="log" dev="mmcblk0p20" ino=130822 scontext=u:r:vendor_init:s0 tcontext=u:object_r:log_file:s0 tclass=dir permissive=1
[    9.203313@0] type=1400 audit(1420072025.924:13): avc: denied { setattr } for pid=2534 comm="init" name="media" dev="mmcblk0p20" ino=392452 scontext=u:r:vendor_init:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=1
[    9.231089@2] aml dvb init
[    9.283446@2] nn is disable,should not do probe continue
[    9.331154@0] logd.daemon: reinit
[    9.749313@3] healthd: BatteryTemperaturePath not found
[    9.749357@3] healthd: BatteryCycleCountPath not found
[    9.849979@3] unifykey: amlkey_init_gen() enter!
[    9.854856@3] emmc_key_read:114, read ok
[    9.854899@3] unifykey: amlkey_init_gen() storagekey_info.buffer=c5080000, storagekey_info.size = 40000!
[    9.869359@3] android.hardware.health@2.0-impl: wakealarm_init: timerfd_create failed
[    9.870674@3] healthd: battery l=42 v=4 t=42.4 h=2 st=2 c=1 fc=10000000 chg=u
[    9.875141@2] fb: osd_open, 1507, fb_index=0,fb_rmem_size=26738688
[    9.875266@2] fb: osd_open, 1507, fb_index=1,fb_rmem_size=1048576
[    9.875301@2] fb: osd_open, 1507, fb_index=2,fb_rmem_size=1048576
[    9.875474@2] fb: vpu clkc clock is 199 MHZ
[    9.875485@2] vpu: switch_vpu_mem_pd: unsupport vpu mod: 18
[    9.875488@2] vpu: switch_vpu_mem_pd: unsupport vpu mod: 22
[    9.875490@2] vpu: switch_vpu_mem_pd: unsupport vpu mod: 54
[    9.875498@2] fb: osd_open, 1507, fb_index=3,fb_rmem_size=8388608
[    9.956362@3] VID: VD1 off
[    9.957600@3] hdmitx: system: set hdcp_pwr 1
[    9.987153@2] vfm_map_store:rm default
[    9.988241@2] vfm_map_store:add default decoder ppmgr deinterlace amvideo
[   10.004617@3] hdmitx: system: restore hdcp_pwr 0
[   10.006208@2] file system registered
[   10.007695@1] hdmitx: system: sname = 1080p60hz
[   10.011819@1] hdmitx: system: char_clk = 148500
[   10.015628@2] assign_ffs_buffer FFS_BUFFER_MAX=100!!!
[   10.022655@1] hdmitx: system: cd = 4
[   10.023095@3] cpufreq_interactive: cpufreq_hmp_boost_start()
[   10.023097@3] cpufreq_interactive: no need to active hmp boost!
[   10.042858@1] hdmitx: system: cs = 2
[   10.046597@1] hdmitx: RX tmds clk: 150   Calc clk: 148
[   10.091487@3] dhd_module_init: in Dongle Host Driver, version 100.10.545.5 (r826445-20190922-1) (amlogic-20191015-3)
[   10.096449@3] ======== dhd_wlan_init_plat_data ========
[   10.101752@3] dhd_wlan_init_gpio: WL_HOST_WAKE=-1, oob_irq=79, oob_irq_flags=0x418
[   10.109170@3] dhd_wlan_init_gpio: WL_REG_ON=-1
[   10.113617@3] dhd_wifi_platform_load: Enter
[   10.117766@3] Power-up adapter 'DHD generic adapter'
[   10.122659@3] wifi_platform_set_power = 1, delay: 200 msec
[   10.128266@3] ======== PULL WL_REG_ON(-1) HIGH! ========
[   10.133557@3] aml_wifi wifi: [extern_wifi_set_enable] WIFI  Disable! 482
[   10.340442@3] aml_wifi wifi: [extern_wifi_set_enable] WIFI  Enable! 482
[   10.603277@2] aml_tdm_open
[   10.604916@1] aml_spdif_open
[   10.606204@2] aml_spdif_close
[   10.607166@2] aml_tdm_open
[   10.614265@1] earc_dai_startup
[   10.614304@1] asoc debug: earc_open
[   10.615920@1] earc_dai_shutdown
[   10.618593@1] asoc debug: earc_close
[   10.622664@1] aml_tdm_open
[   10.623432@2] type=1400 audit(1420072025.924:13): avc: denied { setattr } for pid=2534 comm="init" name="media" dev="mmcblk0p20" ino=392452 scontext=u:r:vendor_init:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=dir permissive=1
[   10.623465@2] type=1400 audit(1420072027.400:14): avc: denied { create } for pid=3284 comm="HwBinder:3284_1" scontext=u:r:hal_audio_default:s0 tcontext=u:r:hal_audio_default:s0 tclass=netlink_kobject_uevent_socket permissive=1
[   10.623991@2] type=1400 audit(1420072027.400:14): avc: denied { create } for pid=3284 comm="HwBinder:3284_1" scontext=u:r:hal_audio_default:s0 tcontext=u:r:hal_audio_default:s0 tclass=netlink_kobject_uevent_socket permissive=1
[   10.846558@1] wifi_platform_bus_enumerate device present 1
[   10.846595@1] ======== Card detection to detect SDIO card! ========
[   10.854045@0] meson-mmc: sdio: resp_timeout,vstat:0xa1ff2800,virqc:3fff
[   10.859234@0] meson-mmc: sdio: err: wait for irq service, bus_fsm:0x8
[   10.866996@0] meson-mmc: sdio: resp_timeout,vstat:0xa1ff2800,virqc:3fff
[   10.872231@0] meson-mmc: sdio: err: wait for irq service, bus_fsm:0x8
[   10.883259@0] meson-mmc: sdio: resp_timeout,vstat:0xa1ff2800,virqc:3fff
[   10.885239@0] meson-mmc: sdio: err: wait for irq service, bus_fsm:0x8
[   10.910575@1] meson-mmc: actual_clock :400000, HHI_nand: 0x80
[   10.910689@1] meson-mmc: [meson_mmc_clk_set_rate_v3] after clock: 0x1000033c
[   10.936457@1] sdio: queuing unknown CIS tuple 0x80 (2 bytes)
[   10.941534@1] sdio: queuing unknown CIS tuple 0x80 (7 bytes)
[   10.944883@1] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[   10.950560@1] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[   11.052076@1] meson-aml-mmc ffe03000.sdio: divider requested rate 150000000 != actual rate 142857141: ret=0
[   11.056297@1] meson-mmc: actual_clock :142857141, HHI_nand: 0x80
[   11.062230@1] meson-mmc: [meson_mmc_clk_set_rate_v3] after clock: 0x10000247
[   11.069279@1] meson-mmc: Data 1 aligned delay is 0
[   11.074007@1] meson-mmc: sdio: clk 142857141 tuning start
[   11.088115@1] meson-mmc: sdio: adj_win: < 0 2 3 4 5 6 >
[   11.088148@1] meson-mmc: sdio: best_win_start =2, best_win_size =6
[   11.093921@1] meson-mmc: sdio: sd_emmc_regs->gclock=0x10000247,sd_emmc_regs->gadjust=0x52000
[   11.102370@1] meson-mmc: delay1:0x0, delay2:0x0
[   11.112886@1] sdio: new ultra high speed SDR104 SDIO card at address 0001
[   11.114160@1] sdio: clock 142857141, 4-bit-bus-width
 [   11.120154@3] meson-mmc: [sdio_reinit] finish
[   11.140240@3] bcmsdh_register: register client driver
[   11.140462@3] bcmsdh_sdmmc_probe: Enter num=1
[   11.144214@3] bcmsdh_sdmmc_probe: Enter num=2
[   11.148362@3] bus num (host idx)=2, slot num (rca)=1
[   11.153279@3] found adapter info 'DHD generic adapter'
[   11.158428@3] Wifi: bcmdhd_mem_prealloc: sectoin 3, size 139264
[   11.164332@3] succeed to alloc static buf
[   11.168273@3] Wifi: bcmdhd_mem_prealloc: sectoin 4, size 0
[   11.173855@3] sdioh_attach: set sd_f2_blocksize 256
[   11.178689@3] sdioh_attach: sd clock rate = 0
[   11.183607@3] dhdsdio_probe : no mutex held. set lock
[   11.188297@3] F1 signature read @0x18000000=0x17014354
[   11.199442@2] F1 signature OK, socitype:0x1 chip:0x4354 rev:0x1 pkg:0x0
[   11.201209@3] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[   11.207587@3] Wifi: bcmdhd_mem_prealloc: sectoin 7, size 25064
[   11.213282@3] [dhd] dhd_conf_set_chiprev : chip=0x4354, chiprev=1
[   11.219398@3] Wifi: bcmdhd_mem_prealloc: sectoin 0, size 10320
[   11.225892@3] Wifi: bcmdhd_mem_prealloc: sectoin 5, size 65536
[   11.231434@3] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   11.239387@3] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   11.247775@3] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   11.256184@3] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   11.264599@3] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   11.273011@3] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   11.281410@3] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   11.289834@3] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   11.298403@3] Wifi: bcmdhd_mem_prealloc: sectoin 19, size 65652
[   11.304122@3] Wifi: bcmdhd_mem_prealloc: sectoin 20, size 262144
[   11.310130@3] Wifi: bcmdhd_mem_prealloc: sectoin 22, size 65536
[   11.315977@3] dhd_log_dump_init: kernel log buf size = 512KB; logdump_prsrv_tailsize = 80KB; limit prsrv tail size to = 76KB
[   11.327154@3] dhd_log_dump_init : Try to allocate memory total(4194304) special(8192)
[   11.334959@3] Wifi: bcmdhd_mem_prealloc: sectoin 15, size 4194304
[   11.341765@3] Wifi: bcmdhd_mem_prealloc: sectoin 16, size 8192
[   11.346967@3] dhd_attach(): thread:dhd_watchdog_thread:d64 started
[   11.353115@2] dhd_attach(): thread:dhd_dpc:d65 started
[   11.358288@2] dhd_attach(): thread:dhd_rxf:d66 started
[   11.363219@2] dhd_deferred_work_init: work queue initialized
[   11.368878@2] dhd_tcpack_suppress_set: TCP ACK Suppress mode 0 -> mode 2
[   11.375612@2] get_mem_val_from_file: File [/data/vendor/misc/wifi/.memdump.info] doesn't exist
[   11.384135@2] dhd_get_memdump_info: MEMDUMP ENABLED = 3
[   11.389352@2] Wifi: bcmdhd_mem_prealloc: sectoin 1, size 10300
[   11.395156@2] Wifi: bcmdhd_mem_prealloc: sectoin 2, size 65536
[   11.401051@2] dhdsdio_probe_init: making DHD_BUS_DOWN
[   11.406214@2] sdioh_cis_read: func_cis_ptr[0]=0x10ac
[   11.428211@0] Dongle Host Driver, version 100.10.545.5 (r826445-20190922-1) (amlogic-20191015-3)
[   11.432540@0] Register interface [wlan0]  MAC: 90:b6:86:6d:af:e1
[   11.432540@0] 
[   11.439226@0] dhd_dbg_detach_pkt_monitor, 2099
[   11.443530@0] dhd_bus_devreset: == Power OFF ==
[   11.448456@3] dhd_bus_stop: making DHD_BUS_DOWN
[   11.452520@3] bcmsdh_oob_intr_unregister: Enter
[   11.456960@3] bcmsdh_oob_intr_unregister: irq is not registered
[   11.462871@3] dhd_bus_devreset: making dhdpub up FALSE
[   11.467960@3] dhd_txglom_enable: enable 0
[   11.471941@3] dhd_bus_devreset: making DHD_BUS_DOWN
[   11.476808@3] dhd_bus_devreset:  WLAN OFF DONE
[   11.481311@3] wifi_platform_set_power = 0, delay: 0 msec
[   11.486532@3] ======== PULL WL_REG_ON(-1) LOW! ========
[   11.486558@0] vout: aml_tvout_mode_work: monitor_timeout
[   11.497016@3] dhd_ifname: ifidx 16 out of range
[   11.501498@3] <if_bad>: set cur_etheraddr failed
[   11.506091@3] dhd_ifname: ifidx 16 out of range
[   11.510616@3] dhd_register_if: _dhd_set_mac_address() failed
[   11.517221@3] Register interface [wlan1]  MAC: 92:b6:86:6d:af:e1
[   11.517221@3] 
[   11.523881@3] dhdsdio_probe : the lock is released.
[   11.528958@3] dhd_module_init: Exit err=0
[   11.537571@3] vout: vout_io_open
console:/ $ [   11.595832@2] [DI] load 0x3e00 pq table len 424 later.
[   11.629702@2] read descriptors
[   11.629746@2] read strings
[   12.023273@3] init: Could not find service hosting interface vendor.amlogic.hardware.hdmicec@1.0::IDroidHdmiCEC/default
[   12.035405@3] vout: vout_io_open
[   12.035440@3] vout: vout_ioctl: cmd_dir = 0x2, cmd_nr = 0x0
[   12.038679@3] vout: vout_io_release
[   12.586979@0] capability: warning: `main' uses 32-bit capabilities (legacy support in use)
[   12.671163@0] avc open
[   12.671190@0] amvenc_avc  check CMA pool success, max instance: 3.
[   12.675838@0] allocating phys 0x64c00000, size 20480k, wq:eb808800.
[   12.680457@0] amvenc_avc  memory config success, buff start:0x64c00000, size is 0x1400000, wq:eb808800.
[   12.690033@0] avc release, wq:eb808800
[   12.693538@0] remove  encode_work_queue eb808800 success, _destroy_encode_work_queue line 3724.
[   12.702673@0] [+] vpu_open
[   12.708017@0] allocating phys 0x64c00000, virt addr 0x0, size 65536k
[   12.711507@0] [-] vpu_open, ret: 0
[   12.714600@0] vpu_release
[   12.717190@0] vpu_free_buffers
[   12.720196@0] vpu_free_instances
[   12.723387@0] vpu_release, s_video_memory 0x64c00000
[   13.973324@1] early_suspend_state=0
[   15.159500@1] healthd: battery l=42 v=4 t=42.4 h=2 st=2 c=1 fc=10000000 chg=u
[   15.162433@1] healthd: battery l=42 v=4 t=42.4 h=2 st=2 c=1 fc=10000000 chg=u
[   15.197871@2] healthd: battery l=42 v=4 t=42.4 h=2 st=2 c=1 fc=10000000 chg=u
[   15.397473@3] type=1400 audit(1420072029.004:20): avc: denied { net_admin } for pid=3279 comm="HwBinder:3279_2" capability=12 scontext=u:r:hdmicecd:s0 tcontext=u:r:hdmicecd:s0 tclass=capability permissive=1
[   15.412155@3] type=1400 audit(1420072032.172:21): avc: denied { read } for pid=3553 comm="android.ui" name="state" dev="sysfs" ino=10094 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs_amhdmitx:s0 tclass=file permissive=1
[   15.431888@3] type=1400 audit(1420072032.172:21): avc: denied { read } for pid=3553 comm="android.ui" name="state" dev="sysfs" ino=10094 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs_amhdmitx:s0 tclass=file permissive=1
[   15.450838@3] type=1400 audit(1420072032.184:22): avc: denied { read open } for pid=3553 comm="android.ui" path="/sys/devices/virtual/amhdmitx/amhdmitx0/hdmi/state" dev="sysfs" ino=10094 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs_amhdmitx:s0 tclass=file permissive=1
[   15.475609@3] type=1400 audit(1420072032.184:22): avc: denied { read open } for pid=3553 comm="android.ui" path="/sys/devices/virtual/amhdmitx/amhdmitx0/hdmi/state" dev="sysfs" ino=10094 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs_amhdmitx:s0 tclass=file permissive=1
[   15.500137@3] type=1400 audit(1420072032.184:23): avc: denied { getattr } for pid=3553 comm="android.ui" path="/sys/devices/virtual/amhdmitx/amhdmitx0/hdmi/state" dev="sysfs" ino=10094 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs_amhdmitx:s0 tclass=file permissive=1
[   15.950421@1] acc_open
[   15.950459@1] acc_release
[   16.220665@3] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   16.224457@3] eth0: device MAC address 90:0e:b3:2c:ea:da
[   16.317145@3] meson6-dwmac ff3f0000.ethernet eth0: fail to init PTP.
[   16.328178@1] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   16.328556@1] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   16.337912@3] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   16.380357@0] video_inuse return 0,set 1
[   16.380797@0] is_reset=0
[   16.381283@0] The fw has been loaded.
[   16.384979@0] vdec_init, dev_name:ammvdec_h264, vdec_type=VDEC_TYPE_FRAME_BLOCK
[   16.396466@0] H264 sysinfo: 1920x1080 duration=3200, pts_outside=1
[   16.398649@0] [LOCAL], the fw (h264_multi) will be loaded.
[   16.404530@1] ppmgr local_init
[   16.406845@1] di_receiver_event_fun: vframe provider reg ppmgr
[   16.413671@1] DI: reg f
[   16.415271@0] ppmgr local_init
[   16.415316@2] PPMGRVPP: info: y5fld[0] is NULL!
[   16.423368@0] vdec->port_flag=0x102, port_flag=0x10b
[   16.450156@2] aml_tdm_open
[   16.451205@3] hdmitx: audio: aout notify format CT_PCM
[   16.452357@3] hdmitx: hw: set audio
[   16.454851@2] PPMGRVPP: info: tb first frame type: 0
[   16.456353@2] PPMGRVPP: info: tb cma memory 64e80000, size 18000, item 8
[   16.456459@2] DI: di_wr_cue_int:finish
[   16.456462@2] di: di_init_buf -S
[   16.456483@2] di: di_init_buf -E
[   16.478017@3] hdmitx: hw: hdmitx tx_aud_src = 0
[   16.483339@3] hdmitx: fs = 3, cd = 4, tmds_clk = 148352
[   16.487732@3] hdmitx: hw: aud_n_para = 5824
[   16.491845@0] di_cma_alloc:alloc 10 buffer use 36 ms(4294683688~4294683724)
[   16.496886@2] pre_de_buf_config:4294683728ms 1th source change: 0x0/0/0/0=>0x9000/1920/1080/0
[   16.502430@0] video first pts = bba
[   16.510939@2] hdmitx: hw: set channel status
[   16.515111@2] hdmitx: audio: Audio Type: PCM
[   16.519383@2] hdmitx: audio: set audio param
[   16.519998@0] videosync_open
[   16.520033@0] omx need drop 0
[   16.546434@3] videosync_open
[   16.554032@2] asoc-aml-card auge_sound: tdm playback enable
[   16.555317@3] fb: osd[0] enable: 1 scale:0x10001 (HwBinder:3295_1)
[   16.560272@0] fb: osd[0] enable: 1 scale:0x10001 (HwBinder:3295_1)
[   16.569710@2] fb: free_scale_switch to fb0, mode: 0x10001
[   16.571814@0] fb: set logo loaded
[   16.691700@0] sdcardfs version 2.0
[   16.691738@0] sdcardfs: dev_name -> /data/media
[   16.695592@0] sdcardfs: options -> fsuid=1023,fsgid=1023,multiuser,derive_gid,default_normal,mask=6,userid=0,gid=1015
[   16.710084@0] sdcardfs: mnt -> ea9a1e10
[   16.710222@0] sdcardfs: mounted on top of /data/media type ext4
[   16.716676@0] Remount options were mask=23,gid=9997 for vfsmnt ea9a1310.
[   16.726020@0] sdcardfs : options - debug:1
[   16.726052@0] sdcardfs : options - gid:9997
[   16.730728@0] sdcardfs : options - mask:23
[   16.739492@0] Remount options were mask=7,gid=9997 for vfsmnt ea9a0610.
[   16.740995@0] sdcardfs : options - debug:1
[   16.744870@0] sdcardfs : options - gid:9997
[   16.749588@0] sdcardfs : options - mask:7
[   17.149543@3] dhd_open: Enter wlan0
[   17.149596@3] dhd_open : no mutex held. set lock
[   17.152487@3] 
[   17.152487@3] Dongle Host Driver, version 100.10.545.5 (r826445-20190922-1) (amlogic-20191015-3)
[   17.162905@3] [dhd-wlan0] wl_android_wifi_on : in g_wifi_on=0
[   17.169399@3] wifi_platform_set_power = 1, delay: 200 msec
[   17.173989@3] ======== PULL WL_REG_ON(-1) HIGH! ========
[   17.179150@3] aml_wifi wifi: [extern_wifi_set_enable] WIFI  Disable! 482
[   17.399343@3] aml_wifi wifi: [extern_wifi_set_enable] WIFI  Enable! 482
[   17.870864@0] BT_RADIO going: on
[   17.870906@0] AML_BT: going ON
[   18.094567@1] sdio_reset_comm():
[   18.094759@1] meson-mmc: actual_clock :400000, HHI_nand: 0x80
[   18.097939@1] meson-mmc: [meson_mmc_clk_set_rate_v3] after clock: 0x1000023c
[   18.130637@0] meson-mmc: actual_clock :400000, HHI_nand: 0x80
[   18.130754@0] meson-mmc: [meson_mmc_clk_set_rate_v3] after clock: 0x1000023c
[   18.157543@0] sdio: queuing unknown CIS tuple 0x80 (2 bytes)
[   18.163342@1] sdio: queuing unknown CIS tuple 0x80 (7 bytes)
[   18.166244@3] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[   18.183637@1] sdio: queuing unknown CIS tuple 0x80 (3 bytes)
[   18.287061@0] meson_uart ffd24000.serial: ttyS1 use xtal(24M) 24000000 change 0 to 9600
[   18.289999@1] meson_uart ffd24000.serial: ttyS1 use xtal(24M) 24000000 change 9600 to 9600
[   18.297895@0] meson_uart ffd24000.serial: ttyS1 use xtal(24M) 24000000 change 9600 to 115200
[   18.312938@2] meson_uart ffd24000.serial: ttyS1 use xtal(24M) 24000000 change 115200 to 2000000
[   18.321629@3] meson-aml-mmc ffe03000.sdio: divider requested rate 150000000 != actual rate 142857141: ret=0
[   18.326082@3] meson-mmc: actual_clock :142857141, HHI_nand: 0x80
[   18.331837@3] meson-mmc: [meson_mmc_clk_set_rate_v3] after clock: 0x10000247
[   18.338882@3] meson-mmc: Data 1 aligned delay is 0
[   18.343830@3] meson-mmc: sdio: clk 142857141 tuning start
[   18.358631@3] meson-mmc: sdio: adj_win: < 0 2 3 4 5 6 >
[   18.358666@3] meson-mmc: sdio: best_win_start =2, best_win_size =6
[   18.364456@3] meson-mmc: sdio: sd_emmc_regs->gclock=0x10000247,sd_emmc_regs->gadjust=0x52000
[   18.372913@3] meson-mmc: delay1:0x0, delay2:0x0
[   18.377666@3] sdioh_start: set sd_f2_blocksize 256
[   18.382885@3] 
[   18.382885@3] 
[   18.382885@3] dhd_bus_devreset: == Power ON ==
[   18.390813@3] F1 signature read @0x18000000=0x17014354
[   18.415240@1] F1 signature OK, socitype:0x1 chip:0x4354 rev:0x1 pkg:0x0
[   18.417489@1] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[   18.423542@3] dhd_bus_devreset: making DHD_BUS_DOWN
[   18.428431@3] dhdsdio_probe_init: making DHD_BUS_DOWN
[   18.434403@3] dhd_os_open_image1: /vendor/etc/wifi/buildin/config.txt (102 bytes) open success
[   18.442449@0] [dhd] dhd_conf_read_sdio_params : dhd_slpauto = 0
[   18.448574@0] [dhd] dhd_conf_read_country_list : ccode = XS
[   18.453535@0] [dhd] dhd_conf_read_country_list : regrev = 0
[   18.460091@0] [dhd] dhd_conf_set_path_params : Final fw_path=/vendor/etc/wifi/buildin/fw_bcm4354a1_ag.bin
[   18.468826@0] [dhd] dhd_conf_set_path_params : Final nv_path=/vendor/etc/wifi/buildin/nvram_ap6354.txt
[   18.479214@0] [dhd] dhd_conf_set_path_params : Final clm_path=/vendor/etc/wifi/buildin/clm_bcm4354a1_ag.blob
[   18.489522@0] [dhd] dhd_conf_set_path_params : Final conf_path=/vendor/etc/wifi/buildin/config.txt
[   18.500889@3] dhd_os_open_image1: /vendor/etc/wifi/buildin/fw_bcm4354a1_ag.bin (654038 bytes) open success
[   18.684261@2] dhd_os_open_image1: /vendor/etc/wifi/buildin/nvram_ap6354.txt (3043 bytes) open success
[   18.688737@3] NVRAM version:  HS2754_NVRAM_V1.3_20190819 
[   18.698029@2] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
[   18.740014@0] dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
[   18.741047@3] bcmsdh_oob_intr_register: HW_OOB irq=79 flags=0x8
[   18.746651@0] get_mem_val_from_file: File [/data/vendor/misc/wifi/.memdump.info] doesn't exist
[   18.755390@0] dhd_get_memdump_info: MEMDUMP ENABLED = 3
[   18.761929@3] dhd_tcpack_suppress_set: TCP ACK Suppress mode 2 -> mode 1
[   18.767807@3] dhd_apply_default_clm: Ignore clm file /vendor/etc/wifi/buildin/clm_bcm4354a1_ag.blob
[   18.778918@3] Firmware up: op_mode=0x0005, MAC=90:b6:86:6d:af:e1
[   18.786996@3] dhd_preinit_ioctls: event_log_max_sets: 26 ret: -23
[   18.796792@3]   Driver: 100.10.545.5 (r826445-20190922-1) (amlogic-20191015-3)
[   18.796792@3]   Firmware: wl0: May 31 2019 10:45:27 version 7.36.79.7 (r) FWID 01-be34f5a0
[   18.796792@3]   CLM: 7.9.0 (2019-05-31 10:44:59) 
[   18.812068@3] dhd_preinit_ioctls failed -23
[   18.815912@3] dhd_txglom_enable: enable 1
[   18.819484@3] [dhd] dhd_conf_set_txglom_params : txglom_mode=copy
[   18.825554@3] [dhd] dhd_conf_set_txglom_params : txglomsize=36, deferred_tx_len=0
[   18.833048@3] [dhd] dhd_conf_set_txglom_params : txinrx_thres=128, dhd_txminmax=-1
[   18.840685@3] [dhd] dhd_conf_set_txglom_params : tx_max_offset=0, txctl_tmo_fix=300
[   18.848242@3] [dhd] dhd_conf_get_disable_proptx : fw_proptx=1, disable_proptx=-1
[   18.856874@3] dhd_wlfc_hostreorder_init(): successful bdcv2 tlv signaling, 64
[   18.864202@1] dhd_pno_init: Support Android Location Service
[   18.904546@3] dhd_rtt_init : FTM is not supported
[   18.905186@2] dhd_rtt_ftm_config : failed to set config
[   18.923418@3] dhd_preinit_ioctls: Failed to get preserve log # !
[   18.924114@3] [dhd] dhd_conf_set_country : set country XS, revision 0
[   18.933379@0] [dhd] dhd_conf_set_country : Country code: XS (XS/0)
[   18.942480@2] [dhd-wlan0] wl_android_wifi_on : Success
[   18.992180@2] meson_uart ffd24000.serial: ttyS1 use xtal(24M) 24000000 change 2000000 to 115200
[   19.004095@3] dhd_open : the lock is released.
[   19.004128@3] dhd_open: Exit wlan0 ret=0
[   19.006938@3] [wlan0] tx queue started
[   19.078014@3] P2P interface registered
[   19.078045@3] wl_cfgp2p_add_p2p_disc_if: wdev: eafb9c00, wdev->net:   (null)
[   19.092629@2] WLC_E_IF: NO_IF set, event Ignored

[   19.183852@3] Random MAC OUI to be used - da:1:19
[   19.187950@2] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.189811@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.196116@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.200078@2] meson_uart ffd24000.serial: ttyS1 use xtal(24M) 24000000 change 115200 to 2000000
[   19.211220@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.217530@2] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.223847@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.230140@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.236466@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.243030@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.249049@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.255570@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.261690@2] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.269108@2] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.276617@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.280707@2] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.287171@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.293363@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.299722@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.306261@2] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.312543@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.318804@2] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.324988@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.331457@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.337617@3] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.344009@2] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.350470@1] dhd_dbg_set_event_log_tag set log tag iovar failed -23
[   19.359092@0] dhd_dbg_attach_pkt_monitor, 1501
[   19.391424@1] meson6-dwmac ff3f0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   19.394882@1] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   19.401313@1] [dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
[   28.693763@2] is_reset=1
[   28.694818@1] PPMGRVPP: info: task: quit
[   28.694927@1] PPMGRVPP: info: tb cma free addr is 64e80000, size is 18000
[   28.701729@1] ppmgr local_init
[   28.705057@1] DI: di_receiver_event_fun: unreg
[   28.708889@1] DI: provider name:(null)
[   28.712630@1] di:no w
[   28.712641@3] keep exit is di
[   28.712651@3] video_vf_unreg_provider: vd1 used: true, vd2 used: false, keep_ret:2, black_out:0, cur_dispbuf:c19303b8
[   28.712659@3] video first pts = 0
[   28.712667@3] VD1 AFBC 0x0.
[   28.712684@3] pattern detected = 1, pts_enter_pattern_cnt =2, pts_exit_pattern_cnt =1
[   28.712789@3] di:retry cnt=0
[   28.713379@3] di_cma_release:release 8 buffer use 0 ms(4294695944~4294695944)
[   28.752201@3] DI: unreg f
[   28.756616@3] is_reset=1
[   28.757246@3] The fw has been loaded.
[   28.760926@3] vdec_init, dev_name:ammvdec_h264, vdec_type=VDEC_TYPE_FRAME_BLOCK
[   28.772917@1] H264 sysinfo: 1920x1080 duration=3200, pts_outside=1
[   28.774474@1] [LOCAL], the fw (h264_multi) will be loaded.
[   28.780157@1] ppmgr local_init
[   28.782860@1] di_receiver_event_fun: vframe provider reg ppmgr
[   28.788664@1] DI: reg f
[   28.791221@3] ppmgr local_init
[   28.794411@3] vdec->port_flag=0x102, port_flag=0x10b
[   28.799197@3] is_reset=0
[   28.803680@2] is_reset=1
[   28.804203@3] PPMGRVPP: info: task: quit
[   28.808004@2] ppmgr local_init
[   28.811047@2] DI: di_receiver_event_fun: unreg
[   28.815443@2] DI: provider name:(null)
[   28.819183@2] di:no w
[   28.819188@3] keep exit is di
[   28.819194@3] video_vf_unreg_provider: vd1 used: true, vd2 used: false, keep_ret:2, black_out:0, cur_dispbuf:c19303b8
[   28.819198@3] VD1 AFBC 0x0.
[   28.819273@3] di:retry cnt=0
[   28.819291@3] di_cma_release:release 0 buffer use 0 ms(4294696052~4294696052)
[   28.847708@2] DI: unreg f
[   28.851265@2] is_reset=1
[   28.852750@2] The fw has been loaded.
[   28.856433@2] vdec_init, dev_name:ammvdec_h264, vdec_type=VDEC_TYPE_FRAME_BLOCK
[   28.866286@0] H264 sysinfo: 1920x1080 duration=3200, pts_outside=1
[   28.869968@0] [LOCAL], the fw (h264_multi) will be loaded.
[   28.875717@0] ppmgr local_init
[   28.878316@0] di_receiver_event_fun: vframe provider reg ppmgr
[   28.884362@0] DI: reg f
[   28.886710@2] ppmgr local_init
[   28.889983@2] vdec->port_flag=0x102, port_flag=0x10b
[   28.894639@2] is_reset=0
[   28.898866@0] PPMGRVPP: info: task: quit
[   28.901042@0] ppmgr local_init
[   28.904022@0] DI: di_receiver_event_fun: unreg
[   28.908421@0] DI: provider name:(null)
[   28.912171@0] di:no w
[   28.912180@2] keep exit is di
[   28.912186@2] video_vf_unreg_provider: vd1 used: true, vd2 used: false, keep_ret:2, black_out:0, cur_dispbuf:c19303b8
[   28.912190@2] VD1 AFBC 0x0.
[   28.912265@2] di:retry cnt=0
[   28.912283@2] di_cma_release:release 0 buffer use 0 ms(4294696144~4294696144)
[   28.940684@0] DI: unreg f
[   28.950615@2] set video_inuse val:0
[   28.977221@2] audio_dsp: dts_dec_control/0x0
[   28.977964@0] VID: VD1 set global output as 0
[   28.980291@0] VID: VD1 off
[   29.014180@3] asoc-aml-card auge_sound: tdm playback stop
[   29.020875@2] asoc-aml-card auge_sound: tdm playback enable
[   29.262121@3] binder: undelivered transaction 28078, process died.
[   29.262941@3] binder: undelivered transaction 28124, process died.
[   29.269529@3] binder: undelivered transaction 28161, process died.
[   29.275640@3] binder: undelivered transaction 28186, process died.
[   29.281797@3] binder: undelivered transaction 28206, process died.
[   29.287526@3] binder: undelivered transaction 27946, process died.
[   29.293520@2] zram0: detected capacity change from 0 to 268435456
[   29.332963@3] [dhd-wlan0] wl_run_escan : LEGACY_SCAN sync ID: 0, bssidx: 0
[   29.337615@3] mkswap: Swapspace size: 262140k, UUID=be4bcb3d-8b4e-4b37-9412-a585fdbbb97a
[   29.343337@3] Adding 262140k swap on /dev/block/zram0.  Priority:-1 extents:1 across:262140k SS
[   29.359135@1] selinux: SELinux: Skipping restorecon_recursive(/data/system_ce/0)
[   29.359135@1] 
[   29.508407@2] selinux: SELinux: Skipping restorecon_recursive(/data/misc_ce/0)
[   29.508407@2] 
[   29.542597@2] type=1400 audit(1420072032.184:23): avc: denied { getattr } for pid=3553 comm="android.ui" path="/sys/devices/virtual/amhdmitx/amhdmitx0/hdmi/state" dev="sysfs" ino=10094 scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs_amhdmitx:s0 tclass=file permissive=1
[   29.573434@1] audit: audit_lost=1 audit_rate_limit=5 audit_backlog_limit=64
[   29.573438@1] audit: rate limit exceeded
[   29.592782@3] type=1400 audit(1420072046.316:24): avc: denied { read execute } for pid=4128 comm="test_flag.sh" path="/system/bin/sh" dev="mmcblk0p18" ino=788 scontext=u:r:test_flag:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1
[   29.614417@3] type=1400 audit(1420072046.316:24): avc: denied { read execute } for pid=4128 comm="test_flag.sh" path="/system/bin/sh" dev="mmcblk0p18" ino=788 scontext=u:r:test_flag:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1
[   29.636024@3] type=1400 audit(1420072046.320:25): avc: denied { getattr } for pid=4128 comm="test_flag.sh" path="/system/bin/sh" dev="mmcblk0p18" ino=788 scontext=u:r:test_flag:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1
[   29.656600@3] type=1400 audit(1420072046.320:25): avc: denied { getattr } for pid=4128 comm="test_flag.sh" path="/system/bin/sh" dev="mmcblk0p18" ino=788 scontext=u:r:test_flag:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1
[   29.677528@3] type=1400 audit(1420072046.324:26): avc: denied { read execute } for pid=4129 comm="preinstall.sh" path="/system/bin/sh" dev="mmcblk0p18" ino=788 scontext=u:r:preinstall:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1
[   29.701529@3] type=1400 audit(1420072046.324:26): avc: denied { read execute } for pid=4129 comm="preinstall.sh" path="/system/bin/sh" dev="mmcblk0p18" ino=788 scontext=u:r:preinstall:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1
[   29.720925@3] type=1400 audit(1420072046.328:27): avc: denied { getattr } for pid=4129 comm="preinstall.sh" path="/system/bin/sh" dev="mmcblk0p18" ino=788 scontext=u:r:preinstall:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1
[   29.742093@3] type=1400 audit(1420072046.328:27): avc: denied { getattr } for pid=4129 comm="preinstall.sh" path="/system/bin/sh" dev="mmcblk0p18" ino=788 scontext=u:r:preinstall:s0 tcontext=u:object_r:shell_exec:s0 tclass=file permissive=1
[   29.763722@3] type=1400 audit(1420072046.348:28): avc: denied { dac_override } for pid=4128 comm="test_flag.sh" capability=1 scontext=u:r:test_flag:s0 tcontext=u:r:test_flag:s0 tclass=capability permissive=1


console:/ $ 

console:/ $ 

console:/ $ 

console:/ $ 

console:/ $ su

[   31.601979@3] asoc-aml-card auge_sound: tdm playback stop
console:/ # 

console:/ # 

console:/ # 

console:/ # 

console:/ # 

console:/ # [   32.538619@3] aml_dai_tdm_hw_free(), disable mclk for TDM-B[   32.717162@3] audit: audit_lost=15 audit_rate_limit=5 audit_backlog_limit=64
[   32.718624@3] audit: rate limit exceeded
ifconf[   33.763118@2] [dhd] CFG80211-ERROR) wl_notify_rx_mgmt_frame : WLC_GET_BSSID error -17
ig[   34.049163@1] [dhd] CFG80211-ERROR) wl_notify_rx_mgmt_frame : WLC_GET_BSSID error -17
[   34.211026@2] [dhd] CFG80211-ERROR) wl_notify_rx_mgmt_frame : WLC_GET_BSSID error -17
[   34.231749@1] [dhd] CFG80211-ERROR) wl_notify_rx_mgmt_frame : WLC_GET_BSSID error -17


wlan0     Link encap:Ethernet  HWaddr 90:b6:86:6d:af:e1  Driver bcmsdh_sdmmc
[   34.445094@0] [dhd] CFG80211-ERROR) wl_notify_rx_mgmt_frame : WLC_GET_BSSID error -17
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:188 

eth0      Link encap:Ethernet  HWaddr 90:0e:b3:2c:ea:da  Driver meson6-dwmac
          inet6 addr: fe80::920e:b3ff:fe2c:eada/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:24 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:4232 
          Interrupt:28 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0 
          inet6 addr: ::1/128 Scope: Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:33 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:33 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1 
          RX bytes:4216 TX bytes:4216 

console:/ #

从以上LOG 信息当中

[    0.931186@0]  TX Checksum insertion supported
[    0.931195@0]  Wake-Up On Lan supported
[    0.931273@0]  Enable RX Mitigation via HW Watchdog Timer
[    0.934375@0] libphy: stmmac: probed
[    0.934395@0] eth%d: PHY ID 02430c20 at 2 IRQ POLL (stmmac-0:02) active
[    0.936413@0] PPP generic driver version 2.4.2
[    0.936694@0] PPP BSD Compression module registered
[    0.936710@0] PPP Deflate Compression module registered
[    0.936738@0] PPP MPPE Compression module registered
[    0.936751@0] NET: Registered protocol family 24

我们看到我们的驱动加载后,ID 已经匹配上了

console:/ # ifconfig -a

wlan0     Link encap:Ethernet  HWaddr 90:b6:86:6d:af:e1  Driver bcmsdh_sdmmc
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:188 

ip6_vti0  Link encap:UNSPEC  
          NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1 
          RX bytes:0 TX bytes:0 

eth0      Link encap:Ethernet  HWaddr 90:0e:b3:2c:ea:da  Driver meson6-dwmac
          inet6 addr: fe80::920e:b3ff:fe2c:eada/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:47 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:8300 
          Interrupt:28 

ip6tnl0   Link encap:UNSPEC  
          NOARP  MTU:1452  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1 
          RX bytes:0 TX bytes:0 

wlan1     Link encap:Ethernet  HWaddr 92:b6:86:6d:af:e1  Driver bcmsdh_sdmmc
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 

sit0      Link encap:IPv6-in-IPv4  
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1 
          RX bytes:0 TX bytes:0 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0 
          inet6 addr: ::1/128 Scope: Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:51 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:51 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1 
          RX bytes:6544 TX bytes:6544 

tunl0     Link encap:UNSPEC  
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1 
          RX bytes:0 TX bytes:0 

ip_vti0   Link encap:UNSPEC  
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1 
          RX bytes:0 TX bytes:0 


console:/sys/devices/platform/ff3f0000.ethernet/mdio_bus/stmmac-0/stmmac-0:02 # 
cat phy_id                                                                                                                                  

[  113.087726@2] 0: 0x1140
[  113.087795@2] 1: 0x796d
[  113.087873@2] 2: 0x243
[  113.089353@2] 3: 0xc20
[  113.091759@2] 4: 0xde1
[  113.094031@2] 5: 0xc5e1
[  113.096510@2] 6: 0xf
[  113.098664@2] 7: 0x2801
[  113.101129@2] 8: 0x4cba
[  113.103570@2] 9: 0x700
[  113.105818@2] 10: 0x78ff
[  113.108406@2] 11: 0x0
[  113.110650@2] 12: 0x0
[  113.112839@2] 13: 0x0
[  113.115127@2] 14: 0x31b
[  113.117617@2] 15: 0x3000
[  113.120155@2] 16: 0x3ba8
[  113.122758@2] 17: 0xd000
[  113.125596@2] 18: 0x9f01
[  113.127921@2] 19: 0x1da0
[  113.130628@2] 20: 0x0
[  113.132338@2] 21: 0x8d15
[  113.134979@2] 22: 0xb1c
[  113.137315@2] 23: 0x2d
[  113.139700@2] 24: 0x4000
[  113.142131@2] 25: 0xd16d
[  113.144677@2] 26: 0x0
[  113.146950@2] 27: 0xffc8
[  113.149428@2] 28: 0xec40
[  113.152001@2] 29: 0x1767
[  113.154472@2] 30: 0x4a
[  113.156821@2] 31: 0x0
phy reg 0x0 = 0x1140

看到这些信息后,可以确认我们添加的IP1001C 驱动是没有问题的

接下来我们测试,发现100M 网络已经通了,但是1000M 网络不通,这个可能和主控的PHY 控制器有关,接下来我们找一下主控调试PHY的寄存器资料

 通过以上资料,我们知道主控有2个寄存器涉及调试1000M 的寄存器

分别为

ff634540  mc_val 对应tx_delay

根据上图组合有:

1601   1621 1641 1661

1609   1629 1649  1669 

ff634544  cali_val 对应rx_clk_delay

  10000 ~F0000

最终我们通过寄存器控制

echo ff634544 >/sys/kernel/debug/aml_reg/paddr
console:/vendor/bin # cat /sys/kernel/debug/aml_reg/paddr
[0xff634544] = 0xC0000

1.echo ff634544  10000 >/sys/kernel/debug/aml_reg/paddr      #测试ETHERNET  10000~f0000
cat  /sys/kernel/debug/aml_reg/paddr

2.echo ff634540 >/sys/kernel/debug/aml_reg/paddr
# 1601  1621 1641  1661   
#位翻转参数
# 1609  1629 1649  1669
                                
cat  /sys/kernel/debug/aml_reg/paddr
console:/ # cat  /sys/kernel/debug/aml_reg/paddr
[0xff634540] = 0x1629


得到的理想值为:
&ethmac {
        status = "okay";
        pinctrl-names = "external_eth_pins";
        pinctrl-0 = <&external_eth_pins>;
        mc_val = <0x1621>;
        cali_val = <0x50000>;
//      rx_delay = <1>;
//      auto_cali_idx = <1>;
        internal_phy=<0>;
};



将DTS 更新后,我们查看参数是否已经设置成功

g12a_u212_v1#fdt addr $dtb_mem_addr;fdt print /ethernet
ethernet@ff3f0000 {
        compatible = "amlogic, g12a-eth-dwmac", "snps,dwmac";
        reg = <0xff3f0000 0x00010000 0xff634540 0x00000008 0xff64c000 0x000000a0 0xffd01008 0x00000004>;
        reg-names = "eth_base", "eth_cfg", "eth_pll", "eth_reset";
        interrupts = <0x00000000 0x00000008 0x00000001>;
        interrupt-names = "macirq";
        status = "okay";
        clocks = <0x00000002 0x00000038>;
        clock-names = "ethclk81";
        pll_val = <0x09c0040a 0x927e0000 0xac5f49e5>;
        analog_val = <0x20200000 0x0000c000 0x00000023>;
        pinctrl-names = "external_eth_pins";
        pinctrl-0 = <0x00000011>;
        mc_val = <0x00001621>;
        cali_val = <0x00050000>;
        internal_phy = <0x00000000>;
        phandle = <0x0000009a>;
};

函数已经写进去

目前将测试结果,添加进DTS 进行烧录2PCS 机器,1PCS 正常,1PCS 无法联1000M 网,待分析问题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Keep Coding...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值