zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    win10 uwp 弹起键盘不隐藏界面元素
    win10 uwp 存放网络图片到本地
    win10 uwp 存放网络图片到本地
    sublime Text 正则替换
    sublime Text 正则替换
    win10 uwp 绘图 Line 控件使用
    win10 uwp 绘图 Line 控件使用
    AJAX 是什么?
    什么是 PHP SimpleXML?
    PHP XML DOM:DOM 是什么?
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/5615273.html
Copyright © 2011-2022 走看看