Some code cleans and formatting fixes
authorPiotr Dymacz <pepe2k@gmail.com>
Fri, 13 Nov 2015 02:01:44 +0000 (03:01 +0100)
committerPiotr Dymacz <pepe2k@gmail.com>
Fri, 13 Nov 2015 02:01:44 +0000 (03:01 +0100)
Includes:
- cleaning in ap121.c and db12x.c (remove unused code, formatting)
- get rid of board related stuff in board.c, formating, minor changes
- formating and minor changes in bootstrap_board.c
- add some missing functions definitions in common.h header

u-boot/board/ar7240/ap121/ap121.c
u-boot/board/ar7240/db12x/db12x.c
u-boot/include/common.h
u-boot/lib_bootstrap/bootstrap_board.c
u-boot/lib_mips/board.c

index 9ae5c40c9a27c0e951eab51a670d8a8c491a4d04..12c213d9e9729ef9507df8f0f20eb888ae26412c 100644 (file)
@@ -1,9 +1,9 @@
+#include <config.h>
 #include <common.h>
 #include <command.h>
 #include <asm/mipsregs.h>
 #include <asm/addrspace.h>
-#include <config.h>
-#include <version.h>
+
 #include "ar7240_soc.h"
 
 #if !defined(COMPRESSED_UBOOT)
@@ -15,7 +15,8 @@ extern void hornet_ddr_tap_init(void);
 
 #define SETBITVAL(val, pos, bit) do {ulong bitval = (bit) ? 0x1 : 0x0; (val) = ((val) & ~(0x1 << (pos))) | ( (bitval) << (pos));} while(0)
 
-void led_toggle(void){
+void led_toggle(void)
+{
        unsigned int gpio;
 
        gpio = ar7240_reg_rd(AR7240_GPIO_OUT);
@@ -49,7 +50,8 @@ void led_toggle(void){
        ar7240_reg_wr(AR7240_GPIO_OUT, gpio);
 }
 
-void all_led_on(void){
+void all_led_on(void)
+{
        unsigned int gpio;
 
        gpio = ar7240_reg_rd(AR7240_GPIO_OUT);
@@ -106,7 +108,8 @@ void all_led_on(void){
        ar7240_reg_wr(AR7240_GPIO_OUT, gpio);
 }
 
-void all_led_off(void){
+void all_led_off(void)
+{
        unsigned int gpio;
 
        gpio = ar7240_reg_rd(AR7240_GPIO_OUT);
@@ -167,7 +170,8 @@ void all_led_off(void){
 #ifndef GPIO_RST_BUTTON_BIT
        #error "GPIO_RST_BUTTON_BIT not defined!"
 #endif
-int reset_button_status(void){
+int reset_button_status(void)
+{
        unsigned int gpio;
 
        gpio = ar7240_reg_rd(AR7240_GPIO_IN);
@@ -187,29 +191,30 @@ int reset_button_status(void){
        }
 }
 
-void gpio_config(void){
+int gpio_init(void)
+{
 #if defined(CONFIG_FOR_8DEVICES_CARAMBOLA2)
-    /* Disable clock obs
-     * clk_obs1(gpio13/bit8),  clk_obs2(gpio14/bit9), clk_obs3(gpio15/bit10),
-     * clk_obs4(gpio16/bit11), clk_obs5(gpio17/bit12)
-     * clk_obs0(gpio1/bit19), 6(gpio11/bit20)
-     */
-    ar7240_reg_wr(AR7240_GPIO_FUNC, (ar7240_reg_rd(AR7240_GPIO_FUNC) & ~((0x1f<<8)|(0x3<<19))));
+       /* Disable clock obs
+        * clk_obs1(gpio13/bit8),  clk_obs2(gpio14/bit9), clk_obs3(gpio15/bit10),
+        * clk_obs4(gpio16/bit11), clk_obs5(gpio17/bit12)
+        * clk_obs0(gpio1/bit19), 6(gpio11/bit20)
+        */
+       ar7240_reg_wr(AR7240_GPIO_FUNC, (ar7240_reg_rd(AR7240_GPIO_FUNC) & ~((0x1f<<8)|(0x3<<19))));
 
 
-    /* Enable eth Switch LEDs */
-    ar7240_reg_wr(AR7240_GPIO_FUNC, (ar7240_reg_rd(AR7240_GPIO_FUNC) | (0x1f<<3)));
+       /* Enable eth Switch LEDs */
+       ar7240_reg_wr(AR7240_GPIO_FUNC, (ar7240_reg_rd(AR7240_GPIO_FUNC) | (0x1f<<3)));
 
 
-    //Turn on status leds:
-    //set output enable
-    ar7240_reg_wr(AR7240_GPIO_OE, (ar7240_reg_rd(AR7240_GPIO_OE) |(1<<0)));
+       //Turn on status leds:
+       //set output enable
+       ar7240_reg_wr(AR7240_GPIO_OE, (ar7240_reg_rd(AR7240_GPIO_OE) |(1<<0)));
 
-    //set WLAN LED output to low (reverse polarity LED)
-    //ar7240_reg_wr(AR7240_GPIO_CLEAR, (1<<0));
+       //set WLAN LED output to low (reverse polarity LED)
+       //ar7240_reg_wr(AR7240_GPIO_CLEAR, (1<<0));
 
-    /* Clear AR7240_GPIO_FUNC BIT2 to ensure that software can control LED5(GPIO16) and LED6(GPIO17)  */
-    ar7240_reg_wr(AR7240_GPIO_FUNC, (ar7240_reg_rd(AR7240_GPIO_FUNC) & ~(0x1<<2)));
+       /* Clear AR7240_GPIO_FUNC BIT2 to ensure that software can control LED5(GPIO16) and LED6(GPIO17)  */
+       ar7240_reg_wr(AR7240_GPIO_FUNC, (ar7240_reg_rd(AR7240_GPIO_FUNC) & ~(0x1<<2)));
 #else
        /* Disable clock obs 
         * clk_obs1(gpio13/bit8),  clk_obs2(gpio14/bit9), clk_obs3(gpio15/bit10),
@@ -415,9 +420,11 @@ void gpio_config(void){
 #else
        #error "Custom GPIO config in gpio_config() not defined!"
 #endif
+       return 0;
 }
 
-int ar7240_mem_config(void){
+int ar7240_mem_config(void)
+{
 #ifndef CONFIG_SKIP_LOWLEVEL_INIT
        #ifndef COMPRESSED_UBOOT
        hornet_ddr_init();
@@ -428,7 +435,6 @@ int ar7240_mem_config(void){
        ar7240_reg_wr(AR7240_DDR_TAP_CONTROL1, CFG_DDR_TAP1_VAL);
 #endif
 
-       gpio_config();
        all_led_off();
 
 #ifndef CONFIG_SKIP_LOWLEVEL_INIT
@@ -436,51 +442,10 @@ int ar7240_mem_config(void){
 #endif
 
        // return memory size
-       return(ar7240_ddr_find_size());
+       return ar7240_ddr_find_size();
 }
 
-long int initdram(){
-       return((long int)ar7240_mem_config());
-}
-
-#ifndef COMPRESSED_UBOOT
-int checkboard(void){
-       printf(BOARD_CUSTOM_STRING"\n\n");
-       return(0);
-}
-#endif
-
-/*
- * Returns a string with memory type preceded by a space sign
- */
-const char* print_mem_type(void){
-/*
- * WR720N v3 (CH version) has wrong bootstrap configuration,
- * so the memory type cannot be recognized automatically
- */
-#if defined(CONFIG_FOR_TPLINK_WR720N_V3)
-       return " DDR 16-bit";
-#else
-       unsigned int reg_val;
-
-       reg_val = (ar7240_reg_rd(HORNET_BOOTSTRAP_STATUS) & HORNET_BOOTSTRAP_MEM_TYPE_MASK) >> HORNET_BOOTSTRAP_MEM_TYPE_SHIFT;
-
-       switch(reg_val){
-               case 0:
-                       return " SDRAM";
-                       break;
-
-               case 1:
-                       return " DDR 16-bit";
-                       break;
-
-               case 2:
-                       return " DDR2 16-bit";
-                       break;
-
-               default:
-                       return "";
-                       break;
-       }
-#endif /* defined(CONFIG_FOR_TPLINK_WR720N_V3) */
+long int dram_init()
+{
+       return (long int)ar7240_mem_config();
 }
index 08d6234fba7c0a485a5e4cf216ff5ef9d6b3d8d8..6967bdeeb008a8614a7417d24ebc9fe389c13863 100644 (file)
@@ -11,7 +11,8 @@ extern int ar7240_ddr_find_size(void);
 
 #define SETBITVAL(val, pos, bit) do {ulong bitval = (bit) ? 0x1 : 0x0; (val) = ((val) & ~(0x1 << (pos))) | ( (bitval) << (pos));} while(0)
 
-void led_toggle(void){
+void led_toggle(void)
+{
        unsigned int gpio;
 
        gpio = ar7240_reg_rd(AR934X_GPIO_OUT);
@@ -29,7 +30,8 @@ void led_toggle(void){
        ar7240_reg_wr(AR934X_GPIO_OUT, gpio);
 }
 
-void all_led_on(void){
+void all_led_on(void)
+{
        unsigned int gpio;
 
        gpio = ar7240_reg_rd(AR934X_GPIO_OUT);
@@ -81,7 +83,8 @@ void all_led_on(void){
        ar7240_reg_wr(AR934X_GPIO_OUT, gpio);
 }
 
-void all_led_off(void){
+void all_led_off(void)
+{
        unsigned int gpio;
 
        gpio = ar7240_reg_rd(AR934X_GPIO_OUT);
@@ -137,27 +140,29 @@ void all_led_off(void){
 #ifndef GPIO_RST_BUTTON_BIT
        #error "GPIO_RST_BUTTON_BIT not defined!"
 #endif
-int reset_button_status(void){
+int reset_button_status(void)
+{
        unsigned int gpio;
 
        gpio = ar7240_reg_rd(AR934X_GPIO_IN);
 
        if(gpio & (1 << GPIO_RST_BUTTON_BIT)){
 #if defined(GPIO_RST_BUTTON_IS_ACTIVE_LOW)
-               return(0);
+               return 0;
 #else
-               return(1);
+               return 1;
 #endif
        } else {
 #if defined(GPIO_RST_BUTTON_IS_ACTIVE_LOW)
-               return(1);
+               return 1;
 #else
-               return(0);
+               return 0;
 #endif
        }
 }
 
-void ath_set_tuning_caps(void){
+void ath_set_tuning_caps(void)
+{
        typedef struct {
                u_int8_t pad[0x28];
                u_int8_t params_for_tuning_caps[2];
@@ -189,7 +194,8 @@ void ath_set_tuning_caps(void){
        return;
 }
 
-int wasp_mem_config(void){
+int wasp_mem_config(void)
+{
 #ifndef CONFIG_SKIP_LOWLEVEL_INIT
        unsigned int reg32;
 
@@ -212,47 +218,15 @@ int wasp_mem_config(void){
 
 #endif
        // return memory size
-       return(ar7240_ddr_find_size());
+       return ar7240_ddr_find_size();
 }
 
-long int initdram(){
-       return((long int)wasp_mem_config());
+int gpio_init(void)
+{
+       return 0;
 }
 
-#ifndef COMPRESSED_UBOOT
-int checkboard(void){
-       printf(BOARD_CUSTOM_STRING"\n\n");
-       return(0);
+long int dram_init()
+{
+       return (long int)wasp_mem_config();
 }
-#endif
-
-/*
- * Returns a string with memory type preceded by a space sign
- */
-const char* print_mem_type(void){
-       unsigned int reg;
-
-       reg = ar7240_reg_rd(WASP_BOOTSTRAP_REG);
-
-       // if SDRAM is disabled -> we are using DDR
-       if(reg & WASP_BOOTSTRAP_SDRAM_DISABLE_MASK){
-
-               // 1 -> DDR1
-               if(reg & WASP_BOOTSTRAP_DDR_SELECT_MASK){
-                       if(reg & WASP_BOOTSTRAP_DDR_WIDTH_MASK){
-                               return " DDR 32-bit";
-                       } else {
-                               return " DDR 16-bit";
-                       }
-               } else {
-                       if(reg & WASP_BOOTSTRAP_DDR_WIDTH_MASK){
-                               return " DDR2 32-bit";
-                       } else {
-                               return " DDR2 16-bit";
-                       }
-               }
-
-       } else {
-               return " SDRAM";
-       }
-}
\ No newline at end of file
index 06f1ffceaa1fe4251fc43b74e7abd4449565bf5e..2274b04d78fb321451c275cdbdd4480ed49a6f43 100644 (file)
@@ -164,8 +164,16 @@ typedef void (interrupt_handler_t)(void *);
 void hang(void) __attribute__ ((noreturn));
 
 /* */
-long int initdram(void);
-void print_size(ulong, const char *);
+long int dram_init(void);
+int      timer_init(void);
+int      gpio_init(void);
+void     all_led_on(void);
+void     all_led_off(void);
+void     print_size(ulong, const char *);
+void     print_board_info(void);
+void     macaddr_init(unsigned char *);
+void     flash_print_name(void);
+unsigned int main_cpu_clk(void);
 
 /* common/main.c */
 void   main_loop               (void);
index 25e160add8f694b8de2da383eba2bc40efb27265..c39048d076fad098fd727fb11848de13ea9082ff 100644 (file)
 #include <tinf.h>
 #include "LzmaWrapper.h"
 
-//#define DEBUG_ENABLE_BOOTSTRAP_PRINTF
+/*#define DEBUG_ENABLE_BOOTSTRAP_PRINTF*/
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#if (((CFG_ENV_ADDR+CFG_ENV_SIZE) < BOOTSTRAP_CFG_MONITOR_BASE) || (CFG_ENV_ADDR >= (BOOTSTRAP_CFG_MONITOR_BASE + CFG_MONITOR_LEN)) ) || defined(CFG_ENV_IS_IN_NVRAM)
-#define        TOTAL_MALLOC_LEN        (CFG_MALLOC_LEN + CFG_ENV_SIZE)
+#if (((CFG_ENV_ADDR+CFG_ENV_SIZE) < BOOTSTRAP_CFG_MONITOR_BASE) || \
+        (CFG_ENV_ADDR >= (BOOTSTRAP_CFG_MONITOR_BASE + CFG_MONITOR_LEN))) \
+        || defined(CFG_ENV_IS_IN_NVRAM)
+       #define TOTAL_MALLOC_LEN        (CFG_MALLOC_LEN + CFG_ENV_SIZE)
 #else
-#define        TOTAL_MALLOC_LEN        CFG_MALLOC_LEN
+       #define TOTAL_MALLOC_LEN        CFG_MALLOC_LEN
 #endif
 
 #undef DEBUG
@@ -60,9 +62,9 @@ static ulong mem_malloc_brk;
 /*
  * The Malloc area is immediately below the monitor copy in DRAM
  */
-static void mem_malloc_init(ulong dest_addr){
-//     ulong dest_addr = BOOTSTRAP_CFG_MONITOR_BASE + gd->reloc_off;
-
+static void mem_malloc_init(ulong dest_addr)
+{
+       /* ulong dest_addr = BOOTSTRAP_CFG_MONITOR_BASE + gd->reloc_off; */
        mem_malloc_end = dest_addr;
        mem_malloc_start = dest_addr - TOTAL_MALLOC_LEN;
        mem_malloc_brk = mem_malloc_start;
@@ -70,29 +72,32 @@ static void mem_malloc_init(ulong dest_addr){
        memset((void *)mem_malloc_start, 0, mem_malloc_end - mem_malloc_start);
 }
 
-void *malloc(unsigned int size){
-       if(size < (mem_malloc_end - mem_malloc_start)){
+void *malloc(unsigned int size)
+{
+       if (size < (mem_malloc_end - mem_malloc_start)) {
                mem_malloc_start += size;
-
-               return((void *)(mem_malloc_start - size));
+               return (void *)(mem_malloc_start - size);
        }
 
-       return(NULL);
+       return NULL;
 }
 
-void *realloc(void *src, unsigned int size){
-       return(NULL);
+void *realloc(void *src, unsigned int size)
+{
+       return NULL;
 }
 
-void free(void *src){
+void free(void *src)
+{
        return;
 }
 
-static int init_func_ram(void){
-       if((gd->ram_size = initdram()) > 0){
-               return(0);
-       }
-       return(1);
+static int init_func_ram(void)
+{
+       if ((gd->ram_size = dram_init()) > 0)
+               return 0;
+
+       return 1;
 }
 
 /*
@@ -118,53 +123,50 @@ static int init_func_ram(void){
 typedef int(init_fnc_t)(void);
 
 init_fnc_t *init_sequence[] = { timer_init,
-                                init_func_ram,
-                                NULL, };
+                                                               init_func_ram,
+                                                               NULL, };
 
-void bootstrap_board_init_f(ulong bootflag){
+void bootstrap_board_init_f(ulong bootflag)
+{
        gd_t gd_data, *id;
        bd_t *bd;
        init_fnc_t **init_fnc_ptr;
        ulong addr, addr_sp, len = (ulong)&uboot_end_bootstrap - BOOTSTRAP_CFG_MONITOR_BASE;
        ulong *s;
 
-       /* Pointer is writable since we allocated a register for it.
-        */
+       /* Pointer is writable since we allocated a register for it */
        gd = &gd_data;
 
-       /* compiler optimization barrier needed for GCC >= 3.4 */
+       /* Compiler optimization barrier needed for GCC >= 3.4 */
        __asm__ __volatile__("": : :"memory");
 
        memset((void *)gd, 0, sizeof(gd_t));
 
-       for(init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr){
-               if((*init_fnc_ptr)() != 0){
+       for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
+               if ((*init_fnc_ptr)() != 0)
                        hang();
-               }
        }
 
        /*
         * Now that we have DRAM mapped and working, we can
-        * relocate the code and continue running from DRAM.
+        * relocate the code and continue running from DRAM
         */
        addr = CFG_SDRAM_BASE + gd->ram_size;
 
        /*
-        * We can reserve some RAM "on top" here.
-        * round down to next 4 kB limit.
+        * We can reserve some RAM "on top" here,
+        * round down to next 4 kB limit
         */
        addr &= ~(4096 - 1);
 
        /*
-        * Reserve memory for U-Boot code, data & bss
+        * Reserve memory for U-Boot code, data & bss,
         * round down to next 16 kB limit
         */
        addr -= len;
        addr &= ~(16 * 1024 - 1);
 
-       /*
-        * Reserve memory for malloc() arena.
-        */
+       /* Reserve memory for malloc() arena */
        addr_sp = addr - TOTAL_MALLOC_LEN;
 
        /*
@@ -178,17 +180,15 @@ void bootstrap_board_init_f(ulong bootflag){
        addr_sp -= sizeof(gd_t);
        id = (gd_t *)addr_sp;
 
-       /*
-        * Reserve memory for boot params.
-        */
+       /* Reserve memory for boot params */
        addr_sp -= CFG_BOOTPARAMS_LEN;
        bd->bi_boot_params = addr_sp;
 
        /*
-        * Finally, we set up a new (bigger) stack.
+        * Finally, we set up a new (bigger) stack
         *
-        * Leave some safety gap for SP, force alignment on 16 byte boundary
-        * Clear initial stack frame
+        * Leave some safety gap for SP, force alignment on 16 byte boundary,
+        * clear initial stack frame
         */
        addr_sp -= 16;
        addr_sp &= ~0xF;
@@ -198,15 +198,16 @@ void bootstrap_board_init_f(ulong bootflag){
        addr_sp = (ulong)s;
 
        /*
-        * Save local variables to board info struct
+        * Save local variables to board info struct:
+        * - start of DRAM memory
+        * - size  of DRAM memory in bytes
         */
-       bd->bi_memstart = CFG_SDRAM_BASE;       /* start of  DRAM memory */
-       bd->bi_memsize = gd->ram_size;          /* size  of  DRAM memory in bytes */
+       bd->bi_memstart = CFG_SDRAM_BASE;
+       bd->bi_memsize  = gd->ram_size;
 
        memcpy(id, (void *)gd, sizeof(gd_t));
 
        bootstrap_relocate_code(addr_sp, id, addr);
-
        /* NOTREACHED - relocate_code() does not return */
 }
 
@@ -219,7 +220,8 @@ void bootstrap_board_init_f(ulong bootflag){
  *
  ************************************************************************
  */
-void bootstrap_board_init_r(gd_t *id, ulong dest_addr){
+void bootstrap_board_init_r(gd_t *id, ulong dest_addr)
+{
        int i;
        ulong addr;
        ulong data, len, checksum;
@@ -228,15 +230,14 @@ void bootstrap_board_init_r(gd_t *id, ulong dest_addr){
        unsigned int destLen;
        int (*fn)(int);
 
-       /* initialize malloc() area */
+       /* Initialize malloc() area */
        mem_malloc_init(dest_addr);
 
        addr = (ulong)((char *)(BOOTSTRAP_CFG_MONITOR_BASE + ((ulong)&uboot_end_data_bootstrap - dest_addr)));
        memmove(&header, (char *)addr, sizeof(image_header_t));
 
-       if(ntohl(hdr->ih_magic) != IH_MAGIC){
+       if (ntohl(hdr->ih_magic) != IH_MAGIC)
                return;
-       }
 
        data = (ulong)&header;
        len = sizeof(image_header_t);
@@ -244,9 +245,8 @@ void bootstrap_board_init_r(gd_t *id, ulong dest_addr){
        checksum = ntohl(hdr->ih_hcrc);
        hdr->ih_hcrc = 0;
 
-       if(tinf_crc32((unsigned char *)data, len) != checksum){
+       if (tinf_crc32((unsigned char *)data, len) != checksum)
                return;
-       }
 
        data = addr + sizeof(image_header_t);
        len = ntohl(hdr->ih_size);
@@ -261,10 +261,8 @@ void bootstrap_board_init_r(gd_t *id, ulong dest_addr){
 #ifdef CONFIG_LZMA
        i = lzma_inflate((unsigned char *)data, len, (unsigned char*)ntohl(hdr->ih_load), (int *)&destLen);
 
-       if(i != LZMA_RESULT_OK){
-               //do_reset(cmdtp, flag, argc, argv);
+       if (i != LZMA_RESULT_OK)
                return;
-       }
 #endif
 
        fn = (void *)ntohl(hdr->ih_load);
@@ -274,6 +272,8 @@ void bootstrap_board_init_r(gd_t *id, ulong dest_addr){
        hang();
 }
 
-void hang(void){
-       for(;;);
+void hang(void)
+{
+       for (;;)
+               ;
 }
index 5577459c383ea4c0bf66ddd63b08cb319e30ddc5..1350239cd48efef573287d86315a7b9d30dfb18c 100644 (file)
 #include <version.h>
 #include <net.h>
 #include <environment.h>
-#include "ar7240_soc.h"
-#include "../board/ar7240/common/ar7240_flash.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
-//#define      BOARD_DEBUG
+/*#define      BOARD_DEBUG*/
 
-#if ( ((CFG_ENV_ADDR+CFG_ENV_SIZE) < CFG_MONITOR_BASE) || (CFG_ENV_ADDR >= (CFG_MONITOR_BASE + CFG_MONITOR_LEN)) ) || defined(CFG_ENV_IS_IN_NVRAM)
-#define        TOTAL_MALLOC_LEN        (CFG_MALLOC_LEN + CFG_ENV_SIZE)
+#if (((CFG_ENV_ADDR+CFG_ENV_SIZE) < CFG_MONITOR_BASE) || \
+        (CFG_ENV_ADDR >= (CFG_MONITOR_BASE + CFG_MONITOR_LEN))) \
+        || defined(CFG_ENV_IS_IN_NVRAM)
+       #define TOTAL_MALLOC_LEN        (CFG_MALLOC_LEN + CFG_ENV_SIZE)
 #else
-#define        TOTAL_MALLOC_LEN        CFG_MALLOC_LEN
+       #define TOTAL_MALLOC_LEN        CFG_MALLOC_LEN
 #endif
 
-#define CHECK_BIT(var,pos)     ((var) & (1<<(pos)))
-
 extern ulong uboot_end_data;
 extern ulong uboot_end;
 
-extern int timer_init(void);
-
-extern void all_led_on(void);
-extern void all_led_off(void);
-extern const char* print_mem_type(void);
-#ifdef CONFIG_WASP
-extern void ar7240_sys_frequency(u32 *cpu_freq, u32 *ddr_freq, u32 *ahb_freq);
-#else
-extern void ar933x_sys_frequency(u32 *cpu_freq, u32 *ddr_freq, u32 *ahb_freq);
-#endif
-
 ulong monitor_flash_len;
 
-const char version_string[] = U_BOOT_VERSION"  (" __DATE__ ", " __TIME__ ")";
+const char version_string[] = U_BOOT_VERSION;
 
-// Begin and End of memory area for malloc(), and current "brk"
+/* Begin and end of memory area for malloc(), and current "brk" */
 static ulong mem_malloc_start;
 static ulong mem_malloc_end;
 static ulong mem_malloc_brk;
 
-// The Malloc area is immediately below the monitor copy in DRAM
-static void mem_malloc_init(void){
+/* The Malloc area is immediately below the monitor copy in DRAM */
+static void mem_malloc_init(void)
+{
        ulong dest_addr = CFG_MONITOR_BASE + gd->reloc_off;
 
        mem_malloc_end = dest_addr;
@@ -79,60 +67,64 @@ static void mem_malloc_init(void){
        memset((void *)mem_malloc_start, 0, mem_malloc_end - mem_malloc_start);
 }
 
-void *sbrk(ptrdiff_t increment){
+void *sbrk(ptrdiff_t increment)
+{
        ulong old = mem_malloc_brk;
        ulong new = old + increment;
 
-       if((new < mem_malloc_start) || (new > mem_malloc_end)){
+       if ((new < mem_malloc_start) || (new > mem_malloc_end)) {
                printf("## Error: sbrk: out of memory (%d requested > %d available)\n",
-                      increment, mem_malloc_end - old);
-               return((void*)MORECORE_FAILURE);
+                       increment, mem_malloc_end - old);
+
+               return (void*)MORECORE_FAILURE;
        }
+
        mem_malloc_brk = new;
-       return((void *)old);
+
+       return (void *)old;
 }
 
-static int display_banner(void){
-#ifndef CONFIG_SKIP_LOWLEVEL_INIT
-       printf("\n\n*********************************************\n*   %s   *\n*********************************************\n\n", version_string);
-#else
-       printf("\n\n*********************************************\n");
-       printf("*                                           *\n");
-       printf("*                RAM VERSION                *\n");
-       printf("*                                           *\n");
-       printf("*********************************************\n*   %s   *\n*********************************************\n\n", version_string);
+static int display_banner(void)
+{
+       puts("\n");
+
+#ifdef CONFIG_SKIP_LOWLEVEL_INIT
+       puts("\n***************************************"
+                "\n*                                     *"
+                "\n*             RAM VERSION             *"
+                "\n*                                     *");
 #endif
-       return(0);
+
+       printf("\n***************************************"
+                  "\n*        %s        *"
+                  "\n*        " __DATE__ ", " __TIME__ "        *"
+                  "\n***************************************\n\n",
+                       version_string);
+
+       return 0;
 }
 
-static int init_baudrate(void){
+static int baudrate_init(void)
+{
        char *s;
 
-       if((s = getenv("baudrate")) != NULL){
+       if ((s = getenv("baudrate")) != NULL) {
                gd->baudrate = simple_strtoul(s, NULL, 10);
        } else {
                gd->baudrate = CONFIG_BAUDRATE;
        }
-       return(0);
+
+       return 0;
 }
 
 #ifndef COMPRESSED_UBOOT
-static int init_func_ram(void){
-       puts("DRAM:   ");
-
-       if((gd->ram_size = initdram()) > 0){
-#ifndef CONFIG_SKIP_LOWLEVEL_INIT
-               print_size(gd->ram_size, print_mem_type());
-#else
-               // TODO: fix me!
-               print_size(gd->ram_size + 1024*1024, print_mem_type());
-#endif
-               puts("\n");
-               return(0);
-       }
+static int init_func_ram(void)
+{
+       if ((gd->ram_size = dram_init()) > 0)
+               return 0;
 
        puts("## Error on RAM initialization!\n");
-       return(1);
+       return 1;
 }
 #endif
 
@@ -160,21 +152,22 @@ typedef int(init_fnc_t)(void);
 
 #ifndef COMPRESSED_UBOOT
 init_fnc_t *init_sequence[] = { timer_init,
-                                env_init,              /* initialize environment */
-                                init_baudrate, /* initialze baudrate settings */
-                                serial_init,   /* serial communications setup */
-                                console_init_f,
-                                display_banner,        /* say that we are here */
-                                checkboard,
-                                init_func_ram,
-                                NULL, };
+                                                               env_init,
+                                                               baudrate_init,
+                                                               gpio_init,
+                                                               serial_init,
+                                                               console_init_f,
+                                                               display_banner,
+                                                               init_func_ram,
+                                                               NULL, };
 #else
-init_fnc_t *init_sequence[] = { env_init,              /* initialize environment */
-                                                               init_baudrate,  /* initialze baudrate settings */
-                                                               serial_init,    /* serial communications setup */
-                                                               console_init_f, /* initialize console */
-                                                               display_banner, /* say that we are here -> print baner */
-                                                               NULL, };
+init_fnc_t *init_sequence[] = { env_init,
+                                                               baudrate_init,
+                                                               gpio_init,
+                                                               serial_init,
+                                                               console_init_f,
+                                                               display_banner,
+                                                               NULL, };
 #endif
 
 /*
@@ -182,51 +175,41 @@ init_fnc_t *init_sequence[] = { env_init,         /* initialize environment */
  * BOARD INITIALIZATION
  *
  */
-void board_init_f(ulong bootflag){
+void board_init_f(ulong bootflag)
+{
        gd_t gd_data, *id;
        bd_t *bd;
        init_fnc_t **init_fnc_ptr;
        ulong addr, addr_sp, len = (ulong)&uboot_end - CFG_MONITOR_BASE;
        ulong *s;
 
-       // Pointer is writable since we allocated a register for it.
+       /* Pointer is writable since we allocated a register for it */
        gd = &gd_data;
 
-       /* compiler optimization barrier needed for GCC >= 3.4 */
+       /* Compiler optimization barrier needed for GCC >= 3.4 */
        __asm__ __volatile__("": : :"memory");
 
        memset((void *)gd, 0, sizeof(gd_t));
 
-       // loop trough init_sequence
-       for(init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr){
-               if((*init_fnc_ptr)() != 0){
+       /* Loop trough init_sequence */
+       for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
+               if ((*init_fnc_ptr)() != 0)
                        hang();
-               }
        }
 
 #ifdef COMPRESSED_UBOOT
-       // print BOARD_CUSTOM_STRING
-       puts(BOARD_CUSTOM_STRING"\n\n");
-
-       // count ram size and print it
        gd->ram_size = bootflag;
-       puts("DRAM:   ");
-       print_size(gd->ram_size, print_mem_type());
-       puts("\n");
 #endif
 
        /*
         * Now that we have DRAM mapped and working, we can
-        * relocate the code and continue running from DRAM.
+        * relocate the code and continue running from DRAM
         */
        addr = CFG_SDRAM_BASE + gd->ram_size;
 
        /*
-        * We can reserve some RAM "on top" here.
-        */
-
-       /*
-        * round down to next 4 kB limit.
+        * We can reserve some RAM "on top" here,
+        * round down to next 4 kB limit
         */
        addr &= ~(4096 - 1);
 
@@ -235,7 +218,7 @@ void board_init_f(ulong bootflag){
 #endif
 
        /*
-        * Reserve memory for U-Boot code, data & bss
+        * Reserve memory for U-Boot code, data & bss,
         * round down to next 16 kB limit
         */
        addr -= len;
@@ -245,9 +228,7 @@ void board_init_f(ulong bootflag){
        printf("Reserving %ldk for U-Boot at: %08lX\n", len >> 10, addr);
 #endif
 
-       /*
-        * Reserve memory for malloc() arena.
-        */
+       /* Reserve memory for malloc() arena */
        addr_sp = addr - TOTAL_MALLOC_LEN;
 
 #ifdef BOARD_DEBUG
@@ -273,8 +254,7 @@ void board_init_f(ulong bootflag){
        printf("Reserving %d Bytes for Global Data at: %08lX\n", sizeof(gd_t), addr_sp);
 #endif
 
-       /* Reserve memory for boot params.
-        */
+       /* Reserve memory for boot params */
        addr_sp -= CFG_BOOTPARAMS_LEN;
        bd->bi_boot_params = addr_sp;
 
@@ -283,10 +263,10 @@ void board_init_f(ulong bootflag){
 #endif
 
        /*
-        * Finally, we set up a new (bigger) stack.
+        * Finally, we set up a new (bigger) stack
         *
-        * Leave some safety gap for SP, force alignment on 16 byte boundary
-        * Clear initial stack frame
+        * Leave some safety gap for SP, force alignment on 16 byte boundary,
+        * clear initial stack frame
         */
        addr_sp -= 16;
        addr_sp &= ~0xF;
@@ -300,11 +280,14 @@ void board_init_f(ulong bootflag){
 #endif
 
        /*
-        * Save local variables to board info struct
+        * Save local variables to board info struct:
+        * - start of DRAM memory
+        * - size  of DRAM memory in bytes
+        * - console baudrate
         */
-       bd->bi_memstart = CFG_SDRAM_BASE;       /* start of  DRAM memory */
-       bd->bi_memsize  = gd->ram_size;         /* size  of  DRAM memory in bytes */
-       bd->bi_baudrate = gd->baudrate;         /* Console Baudrate */
+       bd->bi_memstart = CFG_SDRAM_BASE;
+       bd->bi_memsize  = gd->ram_size;
+       bd->bi_baudrate = gd->baudrate;
 
        memcpy(id, (void *)gd, sizeof(gd_t));
 
@@ -321,48 +304,37 @@ void board_init_f(ulong bootflag){
  *
  ************************************************************************
  */
-void board_init_r(gd_t *id, ulong dest_addr){
+void board_init_r(gd_t *id, ulong dest_addr)
+{
        cmd_tbl_t *cmdtp;
-       ulong size;
        extern void malloc_bin_reloc(void);
 #ifndef CFG_ENV_IS_NOWHERE
-       extern char * env_name_spec;
+       extern char *env_name_spec;
 #endif
        bd_t *bd;
        char *s;
-#if defined(OFFSET_MAC_ADDRESS)
-       unsigned char buffer[6];
-#endif
-       unsigned int ahb_freq, ddr_freq, cpu_freq, spi_freq;
 
        gd = id;
-       gd->flags |= GD_FLG_RELOC; /* tell others: relocation done */
+
+       /* Tell others: relocation done */
+       gd->flags |= GD_FLG_RELOC;
 
        /* bd -> board data */
        bd = gd->bd;
 
-       /* get CPU/RAM/AHB clocks */
-#ifdef CONFIG_WASP
-       ar7240_sys_frequency(&cpu_freq, &ddr_freq, &ahb_freq);
-#else
-       ar933x_sys_frequency(&cpu_freq, &ddr_freq, &ahb_freq);
-#endif
-
-       /* set bi_cfg_hz */
-       bd->bi_cfg_hz = (unsigned long)(cpu_freq >> 1);
-
 #ifdef BOARD_DEBUG
        printf("Now running in RAM - U-Boot at: %08lX\n", dest_addr);
 #endif
 
+       /* We need (half of the) main CPU clock for udelay */
+       bd->bi_cfg_hz = (u32)(main_cpu_clk() >> 1);
+
        gd->reloc_off = dest_addr - CFG_MONITOR_BASE;
 
        monitor_flash_len = (ulong)&uboot_end_data - dest_addr;
 
-       /*
-        * We have to relocate the command table manually
-        */
-       for(cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++){
+       /* We have to relocate the command table manually */
+       for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) {
                ulong addr;
 
                addr = (ulong)(cmdtp->cmd) + gd->reloc_off;
@@ -372,101 +344,51 @@ void board_init_r(gd_t *id, ulong dest_addr){
                addr = (ulong)(cmdtp->name) + gd->reloc_off;
                cmdtp->name = (char *)addr;
 
-               if(cmdtp->usage){
+               if (cmdtp->usage) {
                        addr = (ulong)(cmdtp->usage) + gd->reloc_off;
                        cmdtp->usage = (char *)addr;
                }
+
 #ifdef CFG_LONGHELP
-               if(cmdtp->help){
+               if (cmdtp->help) {
                        addr = (ulong)(cmdtp->help) + gd->reloc_off;
                        cmdtp->help = (char *)addr;
                }
 #endif
        }
 
-       /* there are some other pointer constants we must deal with */
+       /* There are some other pointer constants we must deal with */
 #ifndef CFG_ENV_IS_NOWHERE
        env_name_spec += gd->reloc_off;
 #endif
 
-       /* configure available FLASH banks */
-       size = flash_init();
-
+       /* Configure available FLASH banks */
        bd->bi_flashstart = CFG_FLASH_BASE;
-       bd->bi_flashsize = size;
-
-       // calculate SPI clock (we need to set bit 0 to 1 in SPI_FUNC_SELECT to access SPI registers)
-       ar7240_reg_wr(AR7240_SPI_FS, 0x01);
-       spi_freq = ahb_freq / (((ar7240_reg_rd(AR7240_SPI_CLOCK) & 0x3F) + 1) * 2);
-       ar7240_reg_wr(AR7240_SPI_FS, 0x0);
-
-       // make MHz from Hz
-       cpu_freq /= 1000000;
-       ddr_freq /= 1000000;
-       ahb_freq /= 1000000;
-       spi_freq /= 1000000;
-
-       printf("CLOCKS: %d/%d/%d/%d MHz (CPU/RAM/AHB/SPI)\n", cpu_freq, ddr_freq, ahb_freq, spi_freq);
-       puts("\n");
+       bd->bi_flashsize  = flash_init();
 
 #if CFG_MONITOR_BASE == CFG_FLASH_BASE
-       bd->bi_flashoffset = monitor_flash_len; /* reserved area for U-Boot */
+       /* Reserved area for U-Boot */
+       bd->bi_flashoffset = monitor_flash_len;
 #else
        bd->bi_flashoffset = 0;
 #endif
 
-       /* initialize malloc() area */
+       /* Initialize malloc() area */
        mem_malloc_init();
        malloc_bin_reloc();
 
-       /* relocate environment function pointers etc. */
+       /* Relocate environment function pointers etc. */
        env_relocate();
 
-       /* board MAC address */
-#if defined(OFFSET_MAC_ADDRESS)
-       memcpy(buffer, (void *)(CFG_FLASH_BASE + OFFSET_MAC_DATA_BLOCK + OFFSET_MAC_ADDRESS), 6);
-
-       /*
-        * check first LSBit (I/G bit) and second LSBit (U/L bit) in MSByte of vendor part
-        * both of them should be 0:
-        * I/G bit == 0 -> Individual MAC address (unicast address)
-        * U/L bit == 0 -> Burned-In-Address (BIA) MAC address
-        */
-       if(CHECK_BIT((buffer[0] & 0xFF), 0) != 0 || CHECK_BIT((buffer[0] & 0xFF), 1) != 0){
-               // 00-03-7F (Atheros Communications, Inc.)
-               bd->bi_enetaddr[0] = 0x00;
-               bd->bi_enetaddr[1] = 0x03;
-               bd->bi_enetaddr[2] = 0x7f;
-               bd->bi_enetaddr[3] = 0x09;
-               bd->bi_enetaddr[4] = 0x0b;
-               bd->bi_enetaddr[5] = 0xad;
-
-               printf("## Error: MAC is invalid, using fixed!\n\n");
-       }
-#else
-       // fake MAC
-       // 00-03-7F (Atheros Communications, Inc.)
-       bd->bi_enetaddr[0] = 0x00;
-       bd->bi_enetaddr[1] = 0x03;
-       bd->bi_enetaddr[2] = 0x7f;
-       bd->bi_enetaddr[3] = 0x09;
-       bd->bi_enetaddr[4] = 0x0b;
-       bd->bi_enetaddr[5] = 0xad;
-
-       printf("** Warning: using fixed MAC address!\n\n");
-#endif
-
-       /* IP Address */
+       /* Local device IP address */
        bd->bi_ip_addr = getenv_IPaddr("ipaddr");
 
 #if defined(CONFIG_PCI)
-       /*
-        * Do pci configuration
-        */
+       /* Do pci configuration */
        pci_init();
 #endif
 
-       /** leave this here (after malloc(), environment and PCI are working) **/
+       /* Leave this here (after malloc(), environment and PCI are working) */
        /* Initialize devices */
        devices_init();
 
@@ -474,38 +396,39 @@ void board_init_r(gd_t *id, ulong dest_addr){
 
        /* Initialize the console (after the relocation and devices init) */
        console_init_r();
-       /** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** **/
 
        /* Initialize from environment */
-       if((s = getenv("loadaddr")) != NULL){
+       if ((s = getenv("loadaddr")) != NULL)
                load_addr = simple_strtoul(s, NULL, 16);
-       }
 
 #if (CONFIG_COMMANDS & CFG_CMD_NET)
-       if((s = getenv("bootfile")) != NULL){
+       if ((s = getenv("bootfile")) != NULL)
                copy_filename(BootFile, s, sizeof(BootFile));
-       }
-#endif /* CFG_CMD_NET */
+#endif
 
-       /* blink all available LEDs */
-       printf("LED on during eth initialization...\n\n");
-       all_led_on();
+       /* Init MAC address in board data info */
+       macaddr_init(bd->bi_enetaddr);
+
+       /* Print some information about board */
+       print_board_info();
 
 #if (CONFIG_COMMANDS & CFG_CMD_NET)
+       all_led_on();
        eth_initialize(gd->bd);
-#endif
-
        all_led_off();
+#endif
 
-       /* main_loop() can return to retry autoboot, if so just run it again. */
-       for(;;){
+       /* main_loop() can return to retry autoboot, if so just run it again */
+       for (;;)
                main_loop();
-       }
 
        /* NOTREACHED - no way out of command loop except booting */
 }
 
-void hang(void){
+void hang(void)
+{
        puts("## ERROR ##\n");
-       for(;;);
+
+       for (;;)
+               ;
 }