LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1250|回复: 1

PXA270 Mainstone blob修改

[复制链接]
发表于 2008-5-21 16:30:03 | 显示全部楼层 |阅读模式
我从网上下载了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程序?可以发到我的邮箱:jerry_zhang@99online.net
我是新手,谢谢大家了!
 楼主| 发表于 2008-5-22 17:05:11 | 显示全部楼层
我看了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
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表