微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > S5PV210(TQ210)学习笔记——Nand驱动之HWECC

S5PV210(TQ210)学习笔记——Nand驱动之HWECC

时间:11-28 来源:互联网 点击:

  1. nand_chip->nand_chip->ecc.write_page=s5p_nand_write_page;
  2. nand_chip->ecc.size=512;
  3. nand_chip->ecc.bytes=4;
  4. nand_chip->ecc.strength=1;
  5. nand_chip->ecc.layout=&s5p_nand_oob_64;
  6. s5p_mtd_info->priv=nand_chip;
  7. s5p_mtd_info->owner=THIS_MODULE;
  8. //扫描Nandflash设备
  9. if(nand_scan(s5p_mtd_info,1)){
  10. dev_dbg(&pdev->dev,"nandscanerror");
  11. gotoerr_free_info;
  12. }
  13. //添加分区信息
  14. ret=mtd_device_parse_register(s5p_mtd_info,NULL,NULL,s5p_nand_partions,ARRAY_SIZE(s5p_nand_partions));
  15. if(!ret)
  16. return0;
  17. err_free_info:
  18. kfree(s5p_mtd_info);
  19. err_free_chip:
  20. kfree(nand_chip);
  21. err_clk_put:
  22. clk_disable(s5p_nand_clk);
  23. clk_put(s5p_nand_clk);
  24. err_iounmap:
  25. iounmap(s5p_nand_regs);
  26. err_exit:
  27. returnret;
  28. }
  29. staticints5p_nand_remove(structplatform_device*pdev){
  30. nand_release(s5p_mtd_info);
  31. kfree(s5p_mtd_info);
  32. kfree(nand_chip);
  33. clk_disable(s5p_nand_clk);
  34. clk_put(s5p_nand_clk);
  35. iounmap(s5p_nand_regs);
  36. return0;
  37. }
  38. staticstructplatform_drivers5p_nand_drv={
  39. .driver={
  40. .owner=THIS_MODULE,
  41. .name="s5p-nand",
  42. },
  43. .probe=s5p_nand_probe,
  44. .remove=s5p_nand_remove,
  45. };
  46. module_platform_driver(s5p_nand_drv);
  47. MODULE_LICENSE("GPL");

接下来的几天我会继续调试一下8位HWECC,不知道能不能调好,从天嵌技术支持那里获悉,天嵌技术人员当时也调试过8位HWECC,他们从三星的某个资料中发现S5PV210的HWECC模块只能使用1位HWECC,不知道是不是真的,我要自己来验证一下。

如果有什么问题欢迎留言讨论,转载原来那篇HWECC文章的朋友请自己修正一下吧。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top