概述
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
得到的理想值为:
ðmac {
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 网,待分析问题。
最后
以上就是灵巧书包为你收集整理的S905X3 平台调试1000M 网络PHY IC IP1001C的全部内容,希望文章能够帮你解决S905X3 平台调试1000M 网络PHY IC IP1001C所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复