导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. zhangya
    Z
    • 资料
    • 关注 0
    • 粉丝 0
    • 我的积分 391
    • 主题 4
    • 帖子 8
    • 最佳 0
    • 群组 0

    zLV 3

    @zhangya

    391
    积分
    0
    声望
    3
    资料浏览
    8
    帖子
    0
    粉丝
    0
    关注
    注册时间 最后登录

    zhangya 取消关注 关注

    zhangya 发布的最新帖子

    • 将网卡的MAC保存i2c的EEPROM

      T507的板子,在sunxi-gamc.c文件中,网卡获取到随机的mac地址后,我想写入到i2c挂载的eeprom中,一直有问题,显示写入和读取成功,但是读出来一直是FF。
      这个是驱动里面操作读写的地方。

      static void geth_check_addr(struct net_device *ndev, unsigned char *mac)
      {
          int i;
          int ret;
          char *p = mac;
      
          struct i2c_adapter *adapter = NULL;
          struct i2c_client client;
          u8 write_data[ETH_ALEN];
          u8 read_data[ETH_ALEN];
          struct i2c_msg msgs[2];  // 修改为两个I2C消息
      
          if (!is_valid_ether_addr(ndev->dev_addr)) {
              for (i = 0; i < ETH_ALEN; i++, p++) {
                  ndev->dev_addr[i] = simple_strtoul(p, &p, 16);
              }
              if (!is_valid_ether_addr(ndev->dev_addr)) {
                  random_ether_addr(ndev->dev_addr);
                  printk("%s: Use random MAC address\n", ndev->name);
      
                  adapter = i2c_get_adapter(0);
                  if (!adapter) {
                      pr_err("Failed to get I2C adapter\n");
                      return;
                  }
      
                  /* 设置 i2c 设备地址和组件信息 */
                  client.addr = 0x0050;  
                  client.adapter = adapter;
                  client.flags = 0;
                  //.driver = NULL,
                  client.dev.platform_data = NULL;
      
                  /* 将 MAC 地址数据写入 I2C 设备 */
                  memcpy(write_data, ndev->dev_addr, ETH_ALEN);
      
                  msgs[0].addr = client.addr;
                  msgs[0].flags = 0;
                  msgs[0].len = ETH_ALEN;
                  msgs[0].buf = write_data;
      
                  ret = i2c_transfer(client.adapter, msgs, 1);
                  if (ret != 1) {
                      pr_err("Failed to write MAC address to I2C device\n");
                  } else {
                      printk("Succeeded to write MAC address to I2C device\n");
      				print_mac_address(write_data);
          			printk("\n");
                  }
      
                  /* 从 I2C 设备读取 MAC 地址数据 */
                  msgs[1].addr = client.addr;
                  msgs[1].flags = I2C_M_RD;
                  msgs[1].len = ETH_ALEN;
                  msgs[1].buf = read_data;
      
                  ret = i2c_transfer(client.adapter, msgs + 1, 1);
                  if (ret != 1) {
                      pr_err("Failed to read MAC address from I2C device\n");
                  } else {
                      printk("Succeeded to read MAC address from I2C device\n");
                  	print_mac_address(read_data);
      				}
              }
          }
      
          if (adapter)
              i2c_put_adapter(adapter);
      }
      

      日志显示的读写一直不一致
      8f14695f-62f8-42b9-948d-c1e5a37b20df-image.png
      这个问题一直没有解决思路和办法,想请教一下✍

      发布在 Linux
      Z
      z
    • 回复: T507的SPI Flash设备,解析分区时出现错误,解析sunxi_gpt(GUID Partition Table)失败。

      @whycanservice 您好,请问[ 1.349938] sunxipart: failed to parse sunxi_gpt!这个是没有手动选择nor flash的原因吗?

      发布在 其它全志芯片讨论区
      Z
      z
    • 回复: T507的SPI Flash设备,解析分区时出现错误,解析sunxi_gpt(GUID Partition Table)失败。

      @zhangya 没人用过吗😕 😕 😕

      发布在 其它全志芯片讨论区
      Z
      z
    • T507的SPI Flash设备,解析分区时出现错误,解析sunxi_gpt(GUID Partition Table)失败。
      [    1.327510] m25p80 spi1.0: m25p80-nonjedec (1024 Kbytes)
      [    1.333550] sunxi_spi_check_cs     cs_id= 0, sspi->cs_bitmap = 3
      [    1.340420] sunxi_spi_check_cs     cs_id= 0, sspi->cs_bitmap = 3
      [    1.349931] sunxi_spi_check_cs     cs_id= 0, sspi->cs_bitmap = 3
      [    1.349938] sunxipart: failed to parse sunxi_gpt!
      [    1.349945] mtd: failed to find partitions; one or more parsers reports errors (-22)
      [    1.352016] static int __init spidev_init(void)  static int __init spidev_init(void)  static int __init spidev_init(void)
      

      上面是核启动时关于SPI设备的一些输出,解析分区时出现错误,解析sunxi_gpt(GUID Partition Table)失败。这是什么原因,请指教一下。

      发布在 其它全志芯片讨论区
      Z
      z
    • 回复: T507的IIC总线都不支持 block read 操作

      @whycan 别的总线上block read也都不可以

      发布在 其它全志芯片讨论区
      Z
      z
    • 回复: T507的IIC总线都不支持 block read 操作

      @whycan 对用的是这个驱动

      发布在 其它全志芯片讨论区
      Z
      z
    • T507的IIC总线都不支持 block read 操作

      在twi3下面挂在了一个块设备,但是查询到所有的总线下都出现不支持block read操作

      99b705ca-8993-441d-8183-c712e2d76a44-image.png

      356ee50f-d605-4b22-955a-82f416bfd04f-image.png

      发布在 其它全志芯片讨论区
      Z
      z