www.pudn.com > mizi_vivi.rar > suns.c
/* * vivi/arch/sa1100/suns.c: * * This code is GPL * * Author: Janghoon Lyu* Date : $Date: 2003/02/13 03:10:54 $ * * $Revision: 1.10 $ * */ #include "config.h" #include "machine.h" #include "hardware.h" #include "priv_data.h" #include "command.h" #include "mtd/map.h" #include "boot_kernel.h" #include "vivi.h" #include "time.h" #define KILO(x) ((x)<<10) // 2 chips, 32M flash config. #define SUNS_FLASH_SIZE SZ_32M #define E_BLOCK(x) (KILO(256) * x) #define VIVI_SIZE E_BLOCK(1) // 256K #define PARAM_SIZE E_BLOCK(1) // 256K #define KERNEL_SIZE E_BLOCK(3) // 768K #define ROOT_SIZE E_BLOCK(5) // 1M + 512K #define VIVI_OFFSET (0) #define PARAM_OFFSET (VIVI_OFFSET + VIVI_SIZE) #define KERNEL_OFFSET (PARAM_OFFSET + PARAM_SIZE) #define ROOT_OFFSET (KERNEL_OFFSET + KERNEL_SIZE) #define USR_OFFSET (ROOT_OFFSET + ROOT_SIZE) #define USR_SIZE (SUNS_FLASH_SIZE - USR_OFFSET) mtd_partition_t default_mtd_partitions[] = { { name: "vivi", offset: VIVI_OFFSET, size: VIVI_SIZE, flag: MF_LOCKED }, { name: "param", offset: PARAM_OFFSET, size: PARAM_SIZE, flag: 0 }, { name: "kernel", offset: KERNEL_OFFSET, size: KERNEL_SIZE, flag: 0 }, { name: "root", offset: ROOT_OFFSET, size: ROOT_SIZE, flag: 0 }, { name: "usr", offset: USR_OFFSET, size: USR_SIZE, flag: MF_JFFS2 } }; int default_nb_part = ARRAY_SIZE(default_mtd_partitions); vivi_parameter_t default_vivi_parameters[] = { { "mach_type", MACH_TYPE, NULL }, { "media_type", MT_NOR_FLASH, NULL }, { "boot_mem_base", 0xC0000000, NULL }, { "baudrate", UART_BAUD_RATE, NULL }, { "xmodem", 1, NULL }, { "xmodem_one_nak", 0, NULL }, { "xmodem_initial_timeout", 300000, NULL }, { "xmodem_timeout", 10000000, NULL }, { "boot_delay", 0x1000000, NULL } }; int default_nb_params = ARRAY_SIZE(default_vivi_parameters); char linux_cmd[] = "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySA0"; void set_vpp(struct map_info *map, int vpp) { SA1100_GPIO_GPDR_SET(0x00200000); if (vpp) { SA1100_GPIO_GPSR_SET(0x00200000); } else { SA1100_GPIO_GPCR_SET(0x00200000); } } void set_gpios(void) { } int board_init(void) { init_time(); set_gpios(); return 0; } int misc(void) { return 0; }