1.1 --- a/board-nanonote.c Sat Jun 06 23:29:51 2015 +0200
1.2 +++ b/board-nanonote.c Sat Jun 06 23:55:31 2015 +0200
1.3 @@ -23,6 +23,49 @@
1.4 #include "jz4740.h"
1.5 #include "configs.h"
1.6 #include "nanonote.h"
1.7 +#include "usb_boot_defines.h"
1.8 +
1.9 +/* These arguments are initialised by usbboot and are defined in...
1.10 + /etc/xburst-tools/usbboot.cfg. */
1.11 +
1.12 +struct fw_args *fw_args;
1.13 +volatile u32 CPU_ID;
1.14 +volatile u32 UART_BASE;
1.15 +volatile u32 CONFIG_BAUDRATE;
1.16 +volatile u8 SDRAM_BW16;
1.17 +volatile u8 SDRAM_BANK4;
1.18 +volatile u8 SDRAM_ROW;
1.19 +volatile u8 SDRAM_COL;
1.20 +volatile u8 CONFIG_MOBILE_SDRAM;
1.21 +volatile u32 CFG_CPU_SPEED;
1.22 +volatile u32 CFG_EXTAL;
1.23 +volatile u8 PHM_DIV;
1.24 +volatile u8 IS_SHARE;
1.25 +
1.26 +void load_args(void)
1.27 +{
1.28 + /* Get the fw args from memory. See head.S for the memory layout. */
1.29 +
1.30 + fw_args = (struct fw_args *)0x80002008;
1.31 + CPU_ID = fw_args->cpu_id ;
1.32 + CFG_EXTAL = (u32)fw_args->ext_clk * 1000000;
1.33 + CFG_CPU_SPEED = (u32)fw_args->cpu_speed * CFG_EXTAL ;
1.34 + if (CFG_EXTAL == 19000000) {
1.35 + CFG_EXTAL = 19200000;
1.36 + CFG_CPU_SPEED = 192000000;
1.37 + }
1.38 + PHM_DIV = fw_args->phm_div;
1.39 + UART_BASE = UART0_BASE + fw_args->use_uart * 0x1000;
1.40 + CONFIG_BAUDRATE = fw_args->boudrate;
1.41 + SDRAM_BW16 = fw_args->bus_width;
1.42 + SDRAM_BANK4 = fw_args->bank_num;
1.43 + SDRAM_ROW = fw_args->row_addr;
1.44 + SDRAM_COL = fw_args->col_addr;
1.45 + CONFIG_MOBILE_SDRAM = fw_args->is_mobile;
1.46 + IS_SHARE = fw_args->is_busshare;
1.47 +}
1.48 +
1.49 +/* Initialisation functions. */
1.50
1.51 void gpio_init(void)
1.52 {