flash-defines.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /*
  2. * U-Boot - flash-defines.h
  3. *
  4. * Copyright (c) 2005-2007 Analog Devices Inc.
  5. *
  6. * (C) Copyright 2000-2004
  7. * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  8. *
  9. * SPDX-License-Identifier: GPL-2.0+
  10. */
  11. #ifndef __FLASHDEFINES_H__
  12. #define __FLASHDEFINES_H__
  13. #include <common.h>
  14. #define V_ULONG(a) (*(volatile unsigned long *)( a ))
  15. #define V_BYTE(a) (*(volatile unsigned char *)( a ))
  16. #define BUFFER_SIZE 0x80000
  17. #define NO_COMMAND 0
  18. #define GET_CODES 1
  19. #define RESET 2
  20. #define WRITE 3
  21. #define FILL 4
  22. #define ERASE_ALL 5
  23. #define ERASE_SECT 6
  24. #define READ 7
  25. #define GET_SECTNUM 8
  26. #define FLASH_START_L 0x0000
  27. #define FLASH_START_H 0x2000
  28. #define FLASH_TOT_SECT 40
  29. #define FLASH_SIZE 0x220000
  30. #define FLASH_MAN_ST 2
  31. #define CONFIG_SYS_FLASH0_BASE 0x20000000
  32. #define CONFIG_SYS_FLASH1_BASE 0x20200000
  33. #define RESET_VAL 0xF0
  34. flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS];
  35. int get_codes(void);
  36. int poll_toggle_bit(long lOffset);
  37. void reset_flash(void);
  38. int erase_flash(void);
  39. int erase_block_flash(int, unsigned long);
  40. void unlock_flash(long lOffset);
  41. int write_data(long lStart, long lCount, uchar *pnData);
  42. int FillData(long lStart, long lCount, long lStride, int *pnData);
  43. int read_data(long lStart, long lCount, long lStride, int *pnData);
  44. int read_flash(long nOffset, int *pnValue);
  45. int write_flash(long nOffset, int nValue);
  46. void get_sector_number(long lOffset, int *pnSector);
  47. int GetSectorProtectionStatus(flash_info_t * info, int nSector);
  48. int GetOffset(int nBlock);
  49. #define WRITESEQ1 0x0AAA
  50. #define WRITESEQ2 0x0554
  51. #define WRITESEQ3 0x0AAA
  52. #define WRITESEQ4 0x0AAA
  53. #define WRITESEQ5 0x0554
  54. #define WRITESEQ6 0x0AAA
  55. #define WRITEDATA1 0xaa
  56. #define WRITEDATA2 0x55
  57. #define WRITEDATA3 0x80
  58. #define WRITEDATA4 0xaa
  59. #define WRITEDATA5 0x55
  60. #define WRITEDATA6 0x10
  61. #define PriFlashABegin 0
  62. #define SecFlashABegin 32
  63. #define SecFlashBBegin 36
  64. #define PriFlashAOff 0x0
  65. #define PriFlashBOff 0x100000
  66. #define SecFlashAOff 0x200000
  67. #define SecFlashBOff 0x280000
  68. #define INVALIDLOCNSTART 0x20270000
  69. #define INVALIDLOCNEND 0x20280000
  70. #define BlockEraseVal 0x30
  71. #define UNLOCKDATA1 0xaa
  72. #define UNLOCKDATA2 0x55
  73. #define UNLOCKDATA3 0xa0
  74. #define GETCODEDATA1 0xaa
  75. #define GETCODEDATA2 0x55
  76. #define GETCODEDATA3 0x90
  77. #define SecFlashASec1Off 0x200000
  78. #define SecFlashASec2Off 0x204000
  79. #define SecFlashASec3Off 0x206000
  80. #define SecFlashASec4Off 0x208000
  81. #define SecFlashAEndOff 0x210000
  82. #define SecFlashBSec1Off 0x280000
  83. #define SecFlashBSec2Off 0x284000
  84. #define SecFlashBSec3Off 0x286000
  85. #define SecFlashBSec4Off 0x288000
  86. #define SecFlashBEndOff 0x290000
  87. #define SECT32 32
  88. #define SECT33 33
  89. #define SECT34 34
  90. #define SECT35 35
  91. #define SECT36 36
  92. #define SECT37 37
  93. #define SECT38 38
  94. #define SECT39 39
  95. #define FLASH_SUCCESS 0
  96. #define FLASH_FAIL -1
  97. #endif