X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=betty%2Ffwflash.c;h=30237891ea4da610d72400b5c1855c12380dbe45;hb=ed474ffa00e2e35babccb09d039a7a65939097a0;hp=8b89941d247a1c799d918cfe63c666673ea13c37;hpb=6c971d9882182e2760171231cec0317d539eb979;p=my-code%2Farm.git diff --git a/betty/fwflash.c b/betty/fwflash.c index 8b89941..3023789 100644 --- a/betty/fwflash.c +++ b/betty/fwflash.c @@ -22,7 +22,7 @@ #define BANK2 0x82000000 #define BANK_SIZE 0x00100000 #define BOOTLOADER 0x7fffe000 -#define BL_SIZE 0x00000800 +#define BL_SIZE 0x00002000 /* flash cmd addresses - flash[0-18] <--> arm[1-19]*/ #define B0F555 (*((volatile unsigned long *)(BANK0|0xaaa))) // 0x555 @@ -54,12 +54,25 @@ void mmap_init(u8 memtype) { MEMMAP=memtype; } +void pll_init(void) { + + /* configuration */ + PLLCFG=0x02; // multiplier = 2 + PLLCON=0x03; // enable and set as clk source for the lpc + /* feed sequence */ + PLLFEED=0xaa; + PLLFEED=0x55; + /* wait for lock */ + while(!(PLLSTAT&(1<<10))) + continue; +} + void uart0_init(void) { 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_DLL=0x04; // br: 38400 @ 10/4 mhz UART0_DLM=0x00; UART0_LCR=0x03; // unset dlab } @@ -97,7 +110,7 @@ void uart0_send_buf16(u16 *buf,int len) { i=0; - for(i=0;i=BANK0)&(addr+datalen=BANK0)&(addr+datalen<=BANK0+BANK_SIZE)) uart0_send_buf16((u16 *)addr,datalen); - if((addr>=BANK2)&(addr+datalen=BANK2)&(addr+datalen<=BANK2+BANK_SIZE)) uart0_send_buf16((u16 *)addr,datalen); - if((addr>=BOOTLOADER)&(addr+datalen=BOOTLOADER)&(addr+datalen<=BOOTLOADER+BL_SIZE)) uart0_send_buf32((u32 *)addr,datalen); break; case CMD_CHIP_ERASE: