我从网上下载了pxa270 mainstone的blob源码,想自己编译修改,然后在自己的pxa270开发板上跑起来。
下载之后,我没有改什么东西,直接编译,烧录,然后启动,发现串口没有任何东西输出。后来发现,我使用的是串口2,而mainstone.h中定义的是串口1:
#define USE_SERIAL1 1
于是我修改成串口2:#define USE_SERIAL2 1
但是串口仍然没有输出。
后来发现我的开发板和Mainstone的开发板所用的SDRAM和Flash有所不同,我用的是J3的flash 32M,64MSDRAM。而Mainstone用的是64M的K3的flash和128M SDRAM。因此想是否应该将Flash的型号和容量修改过才行呢?
但是我找了半天也找不到再哪里修改flash的型号和容量,请做过mainstone的blob的高手帮忙一下。
我的pxa270的开发板硬件没有问题,跑wince完全OK,现在向自己移植一下Linux。请教大家移植的时候都要注意什么事项?
另外,烧录我用的是烧录wince bootloader的Jflash程序。
烧录wince bootloader需要四个文件,jflash.exe,bulbcx.dat,eboot.bin和Flash_18_2_32.dat。所以我烧录blob的时候也是用的同样的步骤,只是用blob替换了eboot.bin。但是我在网上看到linux所有的jflash-linux不需要最后一个flash_18_2_32.dat文件,因此我不知道我这样烧录是否有问题。
那位大侠可以给我一个在windows下使用的Jflash-linux程序?可以发到我的邮箱:
我是新手,谢谢大家了!
--------------------next---------------------
我看了Mainstone.h,实在是找不到那里有设置Flash和SDRAM的容量,请帮忙看看,谢谢!代码如下:
#ifndef BLOB_ARCH_MAINSTONE_H
#define BLOB_ARCH_MAINSTONE_H
/* Use FFUART */
#define USE_SERIAL1 1
#define TERMINAL_SPEED baud_115200
/* the base address were BLOB is loaded by the first stage loader */
#define BLOB_ABS_BASE_ADDR (0xa0300400)
/* where do various parts live in RAM */
#define BLOB_RAM_BASE (0xa0200000)
#define KERNEL_RAM_BASE (0xa0008000)
#define PARAM_RAM_BASE (0xa0210000)
#define RAMDISK_RAM_BASE (0xa0500000)
/* and where do they live in flash */
#define BLOB_FLASH_BASE (0x00000000)
#define BLOB_FLASH_LEN (256 * 1024)
#define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN)
#define PARAM_FLASH_LEN (0) /* no parameters */
#define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN)
#define KERNEL_FLASH_LEN (2 * 1024 * 1024)
#define LOAD_RAMDISK 0 /* load ramdisk into ram */
#define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN)
#define RAMDISK_FLASH_LEN (4 * 1024 * 1024)
/* the position of the kernel boot parameters */
#define BOOT_PARAMS (0xa0000100)
/* the size (in kbytes) to which the compressed ramdisk expands */
#define RAMDISK_SIZE (8 * 1024)
/* GPIO settings */
#undef GPSR0_VALUE
#undef GPSR1_VALUE
#undef GPSR2_VALUE
#undef GPSR3_VALUE
#undef GPDR0_VALUE
#undef GPDR1_VALUE
#undef GPDR2_VALUE
#undef GPDR3_VALUE
#undef GPCR0_VALUE
#undef GPCR1_VALUE
#undef GPCR2_VALUE
#undef GPCR3_VALUE
#undef GAFR0_L_VALUE
#undef GAFR0_U_VALUE
#undef GAFR1_L_VALUE
#undef GAFR1_U_VALUE
#undef GAFR2_L_VALUE
#undef GAFR2_U_VALUE
#undef GAFR3_L_VALUE
#undef GAFR3_U_VALUE
#define GPSR0_VALUE 0x00708800
#define GPSR1_VALUE 0x03cf0002
#define GPSR2_VALUE 0x0021FC00
#define GPSR3_VALUE 0x00000000
#define GPCR0_VALUE 0x00001000
#define GPCR1_VALUE 0x00000000
#define GPCR2_VALUE 0x00000000
#define GPCR3_VALUE 0x00000000
#define GPDR0_VALUE 0xC27B9C04
#define GPDR1_VALUE 0x00EFAA83
#define GPDR2_VALUE 0x0E23FC00
#define GPDR3_VALUE 0x001E1F81
#define GAFR0_L_VALUE 0x94F00000
#define GAFR0_U_VALUE 0x015A859A
#define GAFR1_L_VALUE 0x999A955A
#define GAFR1_U_VALUE 0x0005A4AA
#define GAFR2_L_VALUE 0x6AA00000
#define GAFR2_U_VALUE 0x55A8041A
#define GAFR3_L_VALUE 0x56AA955A
#define GAFR3_U_VALUE 0x00000001
/* Memory configuration */
#define MDREFR_VALUE 0x00000018
#define MDCNFG_VALUE 0x00000AC9
#define MDMRS_VALUE 0x00000000
/*
* #define MSC0_VALUE 0x39F2A7A3
*/
#define MSC1_VALUE 0x0000A691
#define MSC2_VALUE 0x0000B884
/* TFTP download RAM base */
#define TFTP_RAM_START 0xa1000000
/* FPGA */
#define MST_FPGA_BASE 0x08000000
#define MST_LEDDAT1 __REG(MST_FPGA_BASE + 0x10)
#define MST_LEDCTL __REG(MST_FPGA_BASE + 0x40)
#define MST_GPSWR __REG(MST_FPGA_BASE + 0x60)
#define MST_MSCWR1 __REG(MST_FPGA_BASE + 0x80)
#define MST_MSCWR2 __REG(MST_FPGA_BASE + 0x84)
/* USB client Soft-connect bit */
#define MST_USBC_SC (0x1<<4)
/* LED */
#define LED_ADDR (MST_FPGA_BASE + 0x40)
#define LED_ON (0x00FE)
#define LED_OFF (0x00FF)
/* SMC91c111 */
#define SMC_BASE (0x10000300)
#endif
--------------------next---------------------
阅读(544) | 评论(0) | 转发(0) |