+ u16 *flash;
+ u32 i;
+ u8 start;
+
+ /* memory mapping of interrupt vectors to static ram */
+
+ //mmap_init(MMAP_RAM);
+
+ /* uart initialization */
+
+ //uart0_init();
+
+ PINSEL0=0x05; // pin select -> tx, rx
+ UART0_FCR=0x07; // enable fifo
+ UART0_LCR=0x83; // set dlab + word length
+ UART0_DLL=0x10; // br: 9600 @ 10/4 mhz
+ UART0_DLM=0x00;
+ UART0_LCR=0x03; // unset dlab
+
+ /* external memory init */
+
+ //BCFG0=;
+ //BCFG2=;
+ flash=(u16 *)BANK0;
+
+ /* wait for fwdump to send transmit start character */
+ start=0;
+ while(start!=0x23) {
+ while(!(UART0_LSR&(1<<0)))
+ continue;
+ start=UART0_RBR;
+ }
+
+ /* transmit 1 mb of data */
+ for(i=0;i<524288;i++) {
+ while(!(UART0_LSR&(1<<5)))
+ continue;
+ UART0_THR=((*flash&0xff00)>>8);
+ while(!(UART0_LSR&(1<<5)))
+ continue;
+ UART0_THR=(*flash&0xff);
+ flash++;
+ }
+
+ return 0;
+}
+
+/*
+ * functions
+ */
+
+void mmap_init(u8 memtype) {
+
+ MEMMAP=memtype;