--- /dev/null
+/*
+ * flash.h - header file for the low level flash handling
+ *
+ * author: hackbard@hackdaworld.org
+ *
+ */
+
+#ifndef FLASH_H
+#define FLASH_H
+
+#include "lpc2xxx.h"
+#include "types.h"
+
+/*
+ * defines
+ */
+
+#define BANK0 '0'
+#define BANK2 '2'
+#define FLASH_BANK0 0x80000000
+#define FLASH_BANK2 0x82000000
+#define FLASH_SIZE 0x00100000
+
+/* cmd addresses (shifted to left!) */
+#define FLASH_B0F555 (*((volatile unsigned short *)(FLASH_BANK0|0xaaa)))
+#define FLASH_B0F2AA (*((volatile unsigned short *)(FLASH_BANK0|0x554)))
+#define FLASH_B0F (*((volatile unsigned short *)(FLASH_BANK0)))
+#define FLASH_B2F555 (*((volatile unsigned short *)(FLASH_BANK2|0xaaa)))
+#define FLASH_B2F2AA (*((volatile unsigned short *)(FLASH_BANK2|0x554)))
+#define FLASH_B2F (*((volatile unsigned short *)(FLASH_BANK2)))
+
+/*
+ * function prototypes
+ */
+
+void flash_init(void);
+void flash_reset(u8 bank);
+void flash_sector_erase(u8 flash,u8 sector);
+void flash_chip_erase(u8 bank);
+void flash_unlock_bypass(u8 bank);
+void flash_unlock_bypass_reset(u8 bank);
+int flash_write_word(u32 addr,u16 data);
+int flash_write_buf(u32 addr,u16 *buf,int len);
+void flash_read_buf(u32 addr,u16 *buf,int len);
+
+#endif