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 {
2.1 --- a/board-nanonote.h Sat Jun 06 23:29:51 2015 +0200
2.2 +++ b/board-nanonote.h Sat Jun 06 23:55:31 2015 +0200
2.3 @@ -1,6 +1,7 @@
2.4 #ifndef __BOARD_NANONOTE_H__
2.5 #define __BOARD_NANONOTE_H__
2.6
2.7 +void load_args(void);
2.8 void gpio_init(void);
2.9 void gpio_init2(void);
2.10 void cpm_init(void);
3.1 --- a/stage1.c Sat Jun 06 23:29:51 2015 +0200
3.2 +++ b/stage1.c Sat Jun 06 23:55:31 2015 +0200
3.3 @@ -18,50 +18,7 @@
3.4 * this program. If not, see <http://www.gnu.org/licenses/>.
3.5 */
3.6
3.7 -#include "jz4740.h"
3.8 #include "board-nanonote.h"
3.9 -#include "usb_boot_defines.h"
3.10 -#include "nanonote.h"
3.11 -
3.12 -/* These arguments are initialised by usbboot and are defined in...
3.13 - /etc/xburst-tools/usbboot.cfg. */
3.14 -
3.15 -struct fw_args *fw_args;
3.16 -volatile u32 CPU_ID;
3.17 -volatile u32 UART_BASE;
3.18 -volatile u32 CONFIG_BAUDRATE;
3.19 -volatile u8 SDRAM_BW16;
3.20 -volatile u8 SDRAM_BANK4;
3.21 -volatile u8 SDRAM_ROW;
3.22 -volatile u8 SDRAM_COL;
3.23 -volatile u8 CONFIG_MOBILE_SDRAM;
3.24 -volatile u32 CFG_CPU_SPEED;
3.25 -volatile u32 CFG_EXTAL;
3.26 -volatile u8 PHM_DIV;
3.27 -volatile u8 IS_SHARE;
3.28 -
3.29 -void load_args(void)
3.30 -{
3.31 - /* Get the fw args from memory. See head.S for the memory layout. */
3.32 -
3.33 - fw_args = (struct fw_args *)0x80002008;
3.34 - CPU_ID = fw_args->cpu_id ;
3.35 - CFG_EXTAL = (u32)fw_args->ext_clk * 1000000;
3.36 - CFG_CPU_SPEED = (u32)fw_args->cpu_speed * CFG_EXTAL ;
3.37 - if (CFG_EXTAL == 19000000) {
3.38 - CFG_EXTAL = 19200000;
3.39 - CFG_CPU_SPEED = 192000000;
3.40 - }
3.41 - PHM_DIV = fw_args->phm_div;
3.42 - UART_BASE = UART0_BASE + fw_args->use_uart * 0x1000;
3.43 - CONFIG_BAUDRATE = fw_args->boudrate;
3.44 - SDRAM_BW16 = fw_args->bus_width;
3.45 - SDRAM_BANK4 = fw_args->bank_num;
3.46 - SDRAM_ROW = fw_args->row_addr;
3.47 - SDRAM_COL = fw_args->col_addr;
3.48 - CONFIG_MOBILE_SDRAM = fw_args->is_mobile;
3.49 - IS_SHARE = fw_args->is_busshare;
3.50 -}
3.51
3.52 void c_main(void)
3.53 {
4.1 --- a/stage2.c Sat Jun 06 23:29:51 2015 +0200
4.2 +++ b/stage2.c Sat Jun 06 23:55:31 2015 +0200
4.3 @@ -18,29 +18,11 @@
4.4 * this program. If not, see <http://www.gnu.org/licenses/>.
4.5 */
4.6
4.7 -#include "jz4740.h"
4.8 #include "board-nanonote.h"
4.9 -#include "nanonote.h"
4.10 -
4.11 -/* These arguments are initialised by usbboot and are defined in...
4.12 - /etc/xburst-tools/usbboot.cfg. */
4.13 -
4.14 -struct fw_args *fw_args;
4.15 -volatile u32 CPU_ID;
4.16 -volatile u32 UART_BASE;
4.17 -volatile u32 CONFIG_BAUDRATE;
4.18 -volatile u8 SDRAM_BW16;
4.19 -volatile u8 SDRAM_BANK4;
4.20 -volatile u8 SDRAM_ROW;
4.21 -volatile u8 SDRAM_COL;
4.22 -volatile u8 CONFIG_MOBILE_SDRAM;
4.23 -volatile u32 CFG_CPU_SPEED;
4.24 -volatile u32 CFG_EXTAL;
4.25 -volatile u8 PHM_DIV;
4.26 -volatile u8 IS_SHARE;
4.27
4.28 void c_main(void)
4.29 {
4.30 + load_args();
4.31 gpio_init2();
4.32 cpm_init();
4.33 rtc_init();