ms02-nv.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  *      Copyright (c) 2001 Maciej W. Rozycki
  3.  *
  4.  *      This program is free software; you can redistribute it and/or
  5.  *      modify it under the terms of the GNU General Public License
  6.  *      as published by the Free Software Foundation; either version
  7.  *      2 of the License, or (at your option) any later version.
  8.  */
  9. #include <linux/ioport.h>
  10. #include <linux/mtd/mtd.h>
  11. /* MS02-NV iomem register offsets. */
  12. #define MS02NV_CSR 0x400000 /* control & status register */
  13. /* MS02-NV memory offsets. */
  14. #define MS02NV_DIAG 0x0003f8 /* diagnostic status */
  15. #define MS02NV_MAGIC 0x0003fc /* MS02-NV magic ID */
  16. #define MS02NV_RAM 0x000400 /* general-purpose RAM start */
  17. /* MS02-NV diagnostic status constants. */
  18. #define MS02NV_DIAG_SIZE_MASK 0xf0 /* RAM size mask */
  19. #define MS02NV_DIAG_SIZE_SHIFT 0x10 /* RAM size shift (left) */
  20. /* MS02-NV general constants. */
  21. #define MS02NV_ID 0x03021966 /* MS02-NV magic ID value */
  22. #define MS02NV_SLOT_SIZE 0x800000 /* size of the address space
  23.    decoded by the module */
  24. typedef volatile u32 ms02nv_uint;
  25. struct ms02nv_private {
  26. struct mtd_info *next;
  27. struct {
  28. struct resource *module;
  29. struct resource *diag_ram;
  30. struct resource *user_ram;
  31. struct resource *csr;
  32. } resource;
  33. u_char *addr;
  34. size_t size;
  35. u_char *uaddr;
  36. };