I.MX6 MAC Address hacking

/**************************************************************************
 *                       I.MX6 MAC Address hacking
 * 说明:
 *     本文记录I.MX6驱动是如何获取MAC地址的。
 *
 *                                  2016-6-24 深圳 南山平山村 曾剑锋
 **************************************************************************/

/*
 * initialize __mach_desc_MX6Q_SABRESD data structure.
 */
MACHINE_START(MX6Q_SABRESD, "Freescale i.MX 6Quad/DualLite/Solo Sabre-SD Board")
    /* Maintainer: Freescale Semiconductor, Inc. */
    .boot_params = MX6_PHYS_OFFSET + 0x100,
    .fixup = fixup_mxc_board,
    .map_io = mx6_map_io,
    .init_irq = mx6_init_irq,
    .init_machine = mx6_sabresd_board_init,        --------------+
    .timer = &mx6_sabresd_timer,                                 |
    .reserve = mx6q_sabresd_reserve,                             |
MACHINE_END                                                      |
                                                                 |
                                                                 |
static void __init mx6_sabresd_board_init(void)    <-------------+
{
    ......
    imx6_init_fec(fec_data);                       --------------------+
    ......                                                             |
}                                                                      |
                                                                       |
void __init imx6_init_fec(struct fec_platform_data fec_data)      <----+
{
    fec_get_mac_addr(fec_data.mac);                      ----------+
    if (!is_valid_ether_addr(fec_data.mac))                        |
        random_ether_addr(fec_data.mac);                           |
                                                                   |
    if (cpu_is_mx6sl())                                            |
        imx6sl_add_fec(&fec_data);                                 |
    else                                                           |
        imx6q_add_fec(&fec_data);                                  |
}                                                                  |
                                                                   |
static int fec_get_mac_addr(unsigned char *mac)         <----------+
{
    unsigned int value;

    value = readl(MX6_IO_ADDRESS(OCOTP_BASE_ADDR) + HW_OCOTP_MACn(0));
    mac[5] = value & 0xff;
    mac[4] = (value >> 8) & 0xff;
    mac[3] = (value >> 16) & 0xff;
    mac[2] = (value >> 24) & 0xff;
    value = readl(MX6_IO_ADDRESS(OCOTP_BASE_ADDR) + HW_OCOTP_MACn(1));
    mac[1] = value & 0xff;
    mac[0] = (value >> 8) & 0xff;

    return 0;
}

 

时间: 2024-07-29 14:45:17

I.MX6 MAC Address hacking的相关文章

OK335xS mac address hacking

/*********************************************************************** * OK335xS mac address hacking * 声明: * 在一般的嵌入式产品中,一般mac地址都是存在于CPU芯片中,不过有时候 * 我们也许会表示怀疑,因为我们可能更希望知道那些东西到底存在哪里,以一 * 种什么样的形式存在. * * 2016-2-1 深圳 南山平山村 曾剑锋 ***************************

I.MX6 MAC Address 导致的系统崩溃

/**************************************************************************** * I.MX6 MAC Address 导致的系统崩溃 * 说明: * 修改了I.MX6的MAC地址之后,忘了提前设置好MAC地址,结果系统崩溃了,通过 * Logcat能看到更多的详细信息,这里就不贴出来了. * * 2016-7-26 深圳 南山平山村 曾剑锋 ***************************************

I.MX6 U-boot imxotp MAC address 写入

/***************************************************************************** * I.MX6 U-boot imxotp MAC address 写入 * 说明: * I.MX6DL默认是没有MAC地址的,从代码来看,是由自动生成MAC地址的,但是在 * U-boot阶段是可以通过imxotp进行MAC地址的写入的. * * 2016-6-24 深圳 南山平山村 曾剑锋 ***********************

I.MX6 MAC地址修改

/*********************************************************************** * I.MX6 MAC地址修改 * 说明: * I.MX6并没有设置好默认的MAC地址,虽然有自动生成MAC地址的方法,但 * 如果出货量大的话,还是可能照成重复的,记录一下怎么设定MAC地址. * * 2016-6-24 深圳 南山平山村 曾剑锋 ****************************************************

I.MX6 recovery mode hacking

/******************************************************************************** * I.MX6 recovery mode hacking * 说明: * 看一下i.MX6 Recovery模式是怎么工作的. * * 2017-6-12 深圳 龙华樟坑村 曾剑锋 ****************************************************************************

I.MX6 U-boot GPIO hacking

/******************************************************************************* * I.MX6 U-boot GPIO hacking * 说明: * 本文主要记录I.MX6 U-boot是如何设置GPIO口输入输出的,主要是考虑到这个阶段 * 并没有像Linux内核中的gpio_request一系列函数使用. * * 2016-3-7 深圳 南山平山村 曾剑锋 **************************

I.MX6 mfgtool2-android-mx6q-sabresd-emmc.vbs hacking

/******************************************************************** * I.MX6 mfgtool2-android-mx6q-sabresd-emmc.vbs hacking * 说明: * 以前用的mfgtool2是直接执行MfgTool2.exe就行了,现在的NXP将其封 * 装在vbs文件内,这是左栋告诉我的,这里记录一下命令行参数的本质. * * 2016-9-18 深圳 南山平山村 曾剑锋 ***********

I.MX6 gpio-keys driver hacking

/**************************************************************************** * I.MX6 gpio-keys driver hacking * 说明: * 1. 本文解读gpio-keys驱动是如何注册,最终处理函数在哪里. * 2. 从最后生成的设备节点来看,我们直接可以通过操作该设备节点来来让系统 * 进行相关操作,譬如关机.挂起等操作. * * 2016-3-17 深圳 南山平山村 曾剑锋 *********

I.MX6 bq27441 driver hacking

/************************************************************************* * I.MX6 bq27441 driver hacking * 声明: * 本文主要是记录对电池计量芯片bq27441芯片驱动注册过程进行代码跟踪. * * 2016-2-19 深圳 南山平山村 曾剑锋 ************************************************************************