|
@@ -32,27 +32,30 @@
|
|
* (easy to change)
|
|
* (easy to change)
|
|
*/
|
|
*/
|
|
|
|
|
|
-#define CONFIG_MPC5xxx 1 /* This is an MPC5xxx CPU */
|
|
|
|
-#define CONFIG_MPC5200 1 /* (more precisely an MPC5200 CPU) */
|
|
|
|
-#define CONFIG_TQM5200 1 /* ... on TQM5200 module */
|
|
|
|
-#undef CONFIG_TQM5200_REV100 /* define for revision 100 modules */
|
|
|
|
-#define CONFIG_STK52XX 1 /* ... on a STK52XX base board */
|
|
|
|
|
|
+#define CONFIG_MPC5xxx 1 /* This is an MPC5xxx CPU */
|
|
|
|
+#define CONFIG_MPC5200 1 /* (more precisely an MPC5200 CPU) */
|
|
|
|
+#define CONFIG_TQM5200 1 /* ... on TQM5200 module */
|
|
|
|
+#undef CONFIG_TQM5200_REV100 /* define for revision 100 modules */
|
|
|
|
|
|
-#define CFG_MPC5XXX_CLKIN 33000000 /* ... running at 33.000000MHz */
|
|
|
|
|
|
+#ifndef CONFIG_CAMERON /* On a Cameron board or ... */
|
|
|
|
+#define CONFIG_STK52XX 1 /* ... on a STK52XX board */
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#define CFG_MPC5XXX_CLKIN 33000000 /* ... running at 33.000000MHz */
|
|
|
|
|
|
-#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
|
|
|
-#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
|
|
|
|
|
+#define BOOTFLAG_COLD 0x01 /* Normal Power-On: Boot from FLASH */
|
|
|
|
+#define BOOTFLAG_WARM 0x02 /* Software reboot */
|
|
|
|
|
|
-#define CFG_CACHELINE_SIZE 32 /* For MPC5xxx CPUs */
|
|
|
|
|
|
+#define CFG_CACHELINE_SIZE 32 /* For MPC5xxx CPUs */
|
|
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
|
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
|
-# define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
|
|
|
|
|
+# define CFG_CACHELINE_SHIFT 5 /* log base 2 of the above value */
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/*
|
|
/*
|
|
* Serial console configuration
|
|
* Serial console configuration
|
|
*/
|
|
*/
|
|
-#define CONFIG_PSC_CONSOLE 1 /* console is on PSC1 */
|
|
|
|
-#define CONFIG_BAUDRATE 115200 /* ... at 115200 bps */
|
|
|
|
|
|
+#define CONFIG_PSC_CONSOLE 1 /* console is on PSC1 */
|
|
|
|
+#define CONFIG_BAUDRATE 115200 /* ... at 115200 bps */
|
|
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
|
|
#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, 230400 }
|
|
|
|
|
|
#ifdef CONFIG_STK52XX
|
|
#ifdef CONFIG_STK52XX
|
|
@@ -96,7 +99,7 @@
|
|
/*
|
|
/*
|
|
* Video console
|
|
* Video console
|
|
*/
|
|
*/
|
|
-#if 1
|
|
|
|
|
|
+#ifndef CONFIG_TQM5200S /* No graphics controller on TQM5200S */
|
|
#define CONFIG_VIDEO
|
|
#define CONFIG_VIDEO
|
|
#define CONFIG_VIDEO_SM501
|
|
#define CONFIG_VIDEO_SM501
|
|
#define CONFIG_VIDEO_SM501_32BPP
|
|
#define CONFIG_VIDEO_SM501_32BPP
|
|
@@ -129,10 +132,12 @@
|
|
#define ADD_USB_CMD 0
|
|
#define ADD_USB_CMD 0
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#ifndef CONFIG_CAMERON
|
|
/* POST support */
|
|
/* POST support */
|
|
#define CONFIG_POST (CFG_POST_MEMORY | \
|
|
#define CONFIG_POST (CFG_POST_MEMORY | \
|
|
CFG_POST_CPU | \
|
|
CFG_POST_CPU | \
|
|
CFG_POST_I2C)
|
|
CFG_POST_I2C)
|
|
|
|
+#endif
|
|
|
|
|
|
#ifdef CONFIG_POST
|
|
#ifdef CONFIG_POST
|
|
#define CFG_CMD_POST_DIAG CFG_CMD_DIAG
|
|
#define CFG_CMD_POST_DIAG CFG_CMD_DIAG
|
|
@@ -176,8 +181,8 @@
|
|
|
|
|
|
#define CONFIG_TIMESTAMP /* display image timestamps */
|
|
#define CONFIG_TIMESTAMP /* display image timestamps */
|
|
|
|
|
|
-#if (TEXT_BASE == 0xFC000000) /* Boot low */
|
|
|
|
-# define CFG_LOWBOOT 1
|
|
|
|
|
|
+#if (TEXT_BASE != 0xFFF00000)
|
|
|
|
+# define CFG_LOWBOOT 1 /* Boot low */
|
|
#endif
|
|
#endif
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -191,30 +196,38 @@
|
|
|
|
|
|
#undef CONFIG_BOOTARGS
|
|
#undef CONFIG_BOOTARGS
|
|
|
|
|
|
-#if defined(CONFIG_TQM5200_B)
|
|
|
|
-#define CONFIG_EXTRA_ENV_SETTINGS \
|
|
|
|
- "netdev=eth0\0" \
|
|
|
|
- "rootpath=/opt/eldk/ppc_6xx\0" \
|
|
|
|
- "ramargs=setenv bootargs root=/dev/ram rw\0" \
|
|
|
|
- "nfsargs=setenv bootargs root=/dev/nfs rw " \
|
|
|
|
- "nfsroot=${serverip}:${rootpath}\0" \
|
|
|
|
- "addip=setenv bootargs ${bootargs} " \
|
|
|
|
- "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}" \
|
|
|
|
- ":${hostname}:${netdev}:off panic=1\0" \
|
|
|
|
- "flash_self=run ramargs addip;" \
|
|
|
|
- "bootm ${kernel_addr} ${ramdisk_addr}\0" \
|
|
|
|
- "flash_nfs=run nfsargs addip;" \
|
|
|
|
- "bootm ${kernel_addr}\0" \
|
|
|
|
- "net_nfs=tftp 200000 ${bootfile};run nfsargs addip;bootm\0" \
|
|
|
|
- "bootfile=/tftpboot/tqm5200/uImage\0" \
|
|
|
|
- "load=tftp 200000 ${u-boot}\0" \
|
|
|
|
- "u-boot=/tftpboot/tqm5200/u-boot.bin\0" \
|
|
|
|
|
|
+#ifdef CONFIG_STK52XX
|
|
|
|
+# if defined(CONFIG_TQM5200_B)
|
|
|
|
+# if defined(CFG_LOWBOOT)
|
|
|
|
+# define ENV_UPDT \
|
|
"update=protect off FC000000 FC07FFFF;" \
|
|
"update=protect off FC000000 FC07FFFF;" \
|
|
"erase FC000000 FC07FFFF;" \
|
|
"erase FC000000 FC07FFFF;" \
|
|
"cp.b 200000 FC000000 ${filesize};" \
|
|
"cp.b 200000 FC000000 ${filesize};" \
|
|
- "protect on FC000000 FC07FFFF\0" \
|
|
|
|
- ""
|
|
|
|
|
|
+ "protect on FC000000 FC07FFFF\0"
|
|
|
|
+# else /* highboot */
|
|
|
|
+# define ENV_UPDT \
|
|
|
|
+ "update=protect off FFF00000 FFF7FFFF;" \
|
|
|
|
+ "erase FFF00000 FFF7FFFF;" \
|
|
|
|
+ "cp.b 200000 FFF00000 ${filesize};" \
|
|
|
|
+ "protect on FFF00000 FFF7FFFF\0"
|
|
|
|
+# endif /* CFG_LOWBOOT */
|
|
|
|
+# else /* !CONFIG_TQM5200_B */
|
|
|
|
+# define ENV_UPDT \
|
|
|
|
+ "update=protect off FC000000 FC05FFFF;" \
|
|
|
|
+ "erase FC000000 FC05FFFF;" \
|
|
|
|
+ "cp.b 200000 FC000000 ${filesize};" \
|
|
|
|
+ "protect on FC000000 FC05FFFF\0"
|
|
|
|
+# endif /* CONFIG_TQM5200_B */
|
|
|
|
+#elif defined (CONFIG_CAMERON)
|
|
|
|
+# define ENV_UPDT \
|
|
|
|
+ "update=protect off FC000000 FC03FFFF;" \
|
|
|
|
+ "erase FC000000 FC03FFFF;" \
|
|
|
|
+ "cp.b 200000 FC000000 ${filesize};" \
|
|
|
|
+ "protect on FC000000 FC03FFFF\0"
|
|
#else
|
|
#else
|
|
|
|
+# error "Unknown Carrier Board"
|
|
|
|
+#endif /* CONFIG_STK52XX */
|
|
|
|
+
|
|
#define CONFIG_EXTRA_ENV_SETTINGS \
|
|
#define CONFIG_EXTRA_ENV_SETTINGS \
|
|
"netdev=eth0\0" \
|
|
"netdev=eth0\0" \
|
|
"rootpath=/opt/eldk/ppc_6xx\0" \
|
|
"rootpath=/opt/eldk/ppc_6xx\0" \
|
|
@@ -224,20 +237,19 @@
|
|
"addip=setenv bootargs ${bootargs} " \
|
|
"addip=setenv bootargs ${bootargs} " \
|
|
"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}" \
|
|
"ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}" \
|
|
":${hostname}:${netdev}:off panic=1\0" \
|
|
":${hostname}:${netdev}:off panic=1\0" \
|
|
- "flash_self=run ramargs addip;" \
|
|
|
|
|
|
+ "addcons=setenv bootargs ${bootargs} " \
|
|
|
|
+ "console=ttyS0,${baudrate}\0" \
|
|
|
|
+ "flash_self=run ramargs addip addcons;" \
|
|
"bootm ${kernel_addr} ${ramdisk_addr}\0" \
|
|
"bootm ${kernel_addr} ${ramdisk_addr}\0" \
|
|
- "flash_nfs=run nfsargs addip;" \
|
|
|
|
|
|
+ "flash_nfs=run nfsargs addip addcons;" \
|
|
"bootm ${kernel_addr}\0" \
|
|
"bootm ${kernel_addr}\0" \
|
|
- "net_nfs=tftp 200000 ${bootfile};run nfsargs addip;bootm\0" \
|
|
|
|
|
|
+ "net_nfs=tftp 200000 ${bootfile};run nfsargs addip addcons;" \
|
|
|
|
+ "bootm\0" \
|
|
"bootfile=/tftpboot/tqm5200/uImage\0" \
|
|
"bootfile=/tftpboot/tqm5200/uImage\0" \
|
|
- "load=tftp 200000 ${u-boot}\0" \
|
|
|
|
"u-boot=/tftpboot/tqm5200/u-boot.bin\0" \
|
|
"u-boot=/tftpboot/tqm5200/u-boot.bin\0" \
|
|
- "update=protect off FC000000 FC05FFFF;" \
|
|
|
|
- "erase FC000000 FC05FFFF;" \
|
|
|
|
- "cp.b 200000 FC000000 ${filesize};" \
|
|
|
|
- "protect on FC000000 FC05FFFF\0" \
|
|
|
|
|
|
+ "load=tftp 200000 ${u-boot}\0" \
|
|
|
|
+ ENV_UPDT \
|
|
""
|
|
""
|
|
-#endif /* CONFIG_TQM5200_B */
|
|
|
|
|
|
|
|
#define CONFIG_BOOTCOMMAND "run net_nfs"
|
|
#define CONFIG_BOOTCOMMAND "run net_nfs"
|
|
|
|
|
|
@@ -319,45 +331,69 @@
|
|
#define CFG_MAX_FLASH_SECT 512 /* max num of sects on one chip */
|
|
#define CFG_MAX_FLASH_SECT 512 /* max num of sects on one chip */
|
|
#define CFG_FLASH_USE_BUFFER_WRITE 1
|
|
#define CFG_FLASH_USE_BUFFER_WRITE 1
|
|
|
|
|
|
-#if defined(CONFIG_TQM5200_B)
|
|
|
|
-#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x00080000)
|
|
|
|
|
|
+#if defined (CONFIG_CAMERON)
|
|
|
|
+# define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x00040000)
|
|
|
|
+#elif defined(CONFIG_TQM5200_B)
|
|
|
|
+# define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x00080000)
|
|
#else
|
|
#else
|
|
-#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x00060000)
|
|
|
|
-#endif /* CONFIG_TQM5200_B */
|
|
|
|
|
|
+# define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x00060000)
|
|
|
|
+#endif
|
|
|
|
+
|
|
#define CFG_MAX_FLASH_BANKS 1 /* max num of flash banks
|
|
#define CFG_MAX_FLASH_BANKS 1 /* max num of flash banks
|
|
(= chip selects) */
|
|
(= chip selects) */
|
|
|
|
|
|
/* Dynamic MTD partition support */
|
|
/* Dynamic MTD partition support */
|
|
#define CONFIG_JFFS2_CMDLINE
|
|
#define CONFIG_JFFS2_CMDLINE
|
|
#define MTDIDS_DEFAULT "nor0=TQM5200-0"
|
|
#define MTDIDS_DEFAULT "nor0=TQM5200-0"
|
|
-#if defined(CONFIG_TQM5200_B)
|
|
|
|
-#define MTDPARTS_DEFAULT "mtdparts=TQM5200-0:768k(firmware)," \
|
|
|
|
- "1280k(kernel)," \
|
|
|
|
|
|
+
|
|
|
|
+#ifdef CONFIG_STK52XX
|
|
|
|
+# if defined(CONFIG_TQM5200_B)
|
|
|
|
+# if defined(CFG_LOWBOOT)
|
|
|
|
+# define MTDPARTS_DEFAULT "mtdparts=TQM5200-0:1m(firmware)," \
|
|
|
|
+ "1536k(kernel)," \
|
|
|
|
+ "3584k(small-fs)," \
|
|
"2m(initrd)," \
|
|
"2m(initrd)," \
|
|
- "4m(small-fs)," \
|
|
|
|
- "16m(big-fs)," \
|
|
|
|
- "8m(misc)"
|
|
|
|
-#else
|
|
|
|
-#define MTDPARTS_DEFAULT "mtdparts=TQM5200-0:640k(firmware)," \
|
|
|
|
|
|
+ "8m(misc)," \
|
|
|
|
+ "16m(big-fs)"
|
|
|
|
+# else /* highboot */
|
|
|
|
+# define MTDPARTS_DEFAULT "mtdparts=TQM5200-0:2560k(kernel)," \
|
|
|
|
+ "3584k(small-fs)," \
|
|
|
|
+ "2m(initrd)," \
|
|
|
|
+ "8m(misc)," \
|
|
|
|
+ "15m(big-fs)," \
|
|
|
|
+ "1m(firmware)"
|
|
|
|
+# endif /* CFG_LOWBOOT */
|
|
|
|
+# else /* !CONFIG_TQM5200_B */
|
|
|
|
+# define MTDPARTS_DEFAULT "mtdparts=TQM5200-0:640k(firmware)," \
|
|
"1408k(kernel)," \
|
|
"1408k(kernel)," \
|
|
"2m(initrd)," \
|
|
"2m(initrd)," \
|
|
"4m(small-fs)," \
|
|
"4m(small-fs)," \
|
|
- "16m(big-fs)," \
|
|
|
|
- "8m(misc)"
|
|
|
|
-#endif /* CONFIG_TQM5200_B */
|
|
|
|
|
|
+ "8m(misc)," \
|
|
|
|
+ "16m(big-fs)"
|
|
|
|
+# endif /* CONFIG_TQM5200_B */
|
|
|
|
+#elif defined (CONFIG_CAMERON)
|
|
|
|
+# define MTDPARTS_DEFAULT "mtdparts=TQM5200-0:768k(firmware)," \
|
|
|
|
+ "1792k(kernel)," \
|
|
|
|
+ "3584k(small-fs)," \
|
|
|
|
+ "2m(initrd)," \
|
|
|
|
+ "8m(misc)," \
|
|
|
|
+ "16m(big-fs)"
|
|
|
|
+#else
|
|
|
|
+# error "Unknown Carrier Board"
|
|
|
|
+#endif /* CONFIG_STK52XX */
|
|
|
|
|
|
/*
|
|
/*
|
|
* Environment settings
|
|
* Environment settings
|
|
*/
|
|
*/
|
|
#define CFG_ENV_IS_IN_FLASH 1
|
|
#define CFG_ENV_IS_IN_FLASH 1
|
|
-#define CFG_ENV_SIZE 0x10000
|
|
|
|
|
|
+#define CFG_ENV_SIZE 0x4000 /* 16 k - keep small for fast booting */
|
|
#if defined(CONFIG_TQM5200_B)
|
|
#if defined(CONFIG_TQM5200_B)
|
|
#define CFG_ENV_SECT_SIZE 0x40000
|
|
#define CFG_ENV_SECT_SIZE 0x40000
|
|
#else
|
|
#else
|
|
#define CFG_ENV_SECT_SIZE 0x20000
|
|
#define CFG_ENV_SECT_SIZE 0x20000
|
|
|
|
+#endif /* CONFIG_TQM5200_B */
|
|
#define CFG_ENV_ADDR_REDUND (CFG_ENV_ADDR + CFG_ENV_SECT_SIZE)
|
|
#define CFG_ENV_ADDR_REDUND (CFG_ENV_ADDR + CFG_ENV_SECT_SIZE)
|
|
#define CFG_ENV_SIZE_REDUND (CFG_ENV_SIZE)
|
|
#define CFG_ENV_SIZE_REDUND (CFG_ENV_SIZE)
|
|
-#endif /* CONFIG_TQM5200_B */
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
* Memory map
|
|
* Memory map
|
|
@@ -385,12 +421,15 @@
|
|
# define CFG_RAMBOOT 1
|
|
# define CFG_RAMBOOT 1
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-#if defined(CONFIG_TQM5200_B)
|
|
|
|
-#define CFG_MONITOR_LEN (512 << 10) /* Reserve 512 kB for Monitor */
|
|
|
|
|
|
+#if defined (CONFIG_CAMERON)
|
|
|
|
+# define CFG_MONITOR_LEN (256 << 10) /* Reserve 256 kB for Monitor */
|
|
|
|
+#elif defined(CONFIG_TQM5200_B)
|
|
|
|
+# define CFG_MONITOR_LEN (512 << 10) /* Reserve 512 kB for Monitor */
|
|
#else
|
|
#else
|
|
-#define CFG_MONITOR_LEN (384 << 10) /* Reserve 384 kB for Monitor */
|
|
|
|
-#endif /* CONFIG_TQM5200_B */
|
|
|
|
-#define CFG_MALLOC_LEN (256 << 10) /* Reserve 256 kB for malloc() */
|
|
|
|
|
|
+# define CFG_MONITOR_LEN (384 << 10) /* Reserve 384 kB for Monitor */
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#define CFG_MALLOC_LEN (1024 << 10) /* Reserve 1024 kB for malloc() */
|
|
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
|
#define CFG_BOOTMAPSZ (8 << 20) /* Initial Memory map for Linux */
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -462,6 +501,10 @@
|
|
*/
|
|
*/
|
|
#define CFG_LONGHELP /* undef to save memory */
|
|
#define CFG_LONGHELP /* undef to save memory */
|
|
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
|
#define CFG_PROMPT "=> " /* Monitor Command Prompt */
|
|
|
|
+
|
|
|
|
+#define CFG_HUSH_PARSER 1 /* use "hush" command parser */
|
|
|
|
+#define CFG_PROMPT_HUSH_PS2 "> "
|
|
|
|
+
|
|
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
|
#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
|
|
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
|
#define CFG_CBSIZE 1024 /* Console I/O Buffer Size */
|
|
#else
|
|
#else
|
|
@@ -508,32 +551,25 @@
|
|
#define CFG_CS0_START CFG_FLASH_BASE
|
|
#define CFG_CS0_START CFG_FLASH_BASE
|
|
#define CFG_CS0_SIZE CFG_FLASH_SIZE
|
|
#define CFG_CS0_SIZE CFG_FLASH_SIZE
|
|
|
|
|
|
-/* automatic configuration of chip selects */
|
|
|
|
-#ifdef CONFIG_CS_AUTOCONF
|
|
|
|
#define CONFIG_LAST_STAGE_INIT
|
|
#define CONFIG_LAST_STAGE_INIT
|
|
-#endif
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
* SRAM - Do not map below 2 GB in address space, because this area is used
|
|
* SRAM - Do not map below 2 GB in address space, because this area is used
|
|
* for SDRAM autosizing.
|
|
* for SDRAM autosizing.
|
|
*/
|
|
*/
|
|
-#if defined (CONFIG_CS_AUTOCONF)
|
|
|
|
#define CFG_CS2_START 0xE5000000
|
|
#define CFG_CS2_START 0xE5000000
|
|
#define CFG_CS2_SIZE 0x100000 /* 1 MByte */
|
|
#define CFG_CS2_SIZE 0x100000 /* 1 MByte */
|
|
#define CFG_CS2_CFG 0x0004D930
|
|
#define CFG_CS2_CFG 0x0004D930
|
|
-#endif
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
* Grafic controller - Do not map below 2 GB in address space, because this
|
|
* Grafic controller - Do not map below 2 GB in address space, because this
|
|
* area is used for SDRAM autosizing.
|
|
* area is used for SDRAM autosizing.
|
|
*/
|
|
*/
|
|
-#if defined (CONFIG_CS_AUTOCONF)
|
|
|
|
#define SM501_FB_BASE 0xE0000000
|
|
#define SM501_FB_BASE 0xE0000000
|
|
#define CFG_CS1_START (SM501_FB_BASE)
|
|
#define CFG_CS1_START (SM501_FB_BASE)
|
|
#define CFG_CS1_SIZE 0x4000000 /* 64 MByte */
|
|
#define CFG_CS1_SIZE 0x4000000 /* 64 MByte */
|
|
#define CFG_CS1_CFG 0x8F48FF70
|
|
#define CFG_CS1_CFG 0x8F48FF70
|
|
#define SM501_MMIO_BASE CFG_CS1_START + 0x03E00000
|
|
#define SM501_MMIO_BASE CFG_CS1_START + 0x03E00000
|
|
-#endif
|
|
|
|
|
|
|
|
#define CFG_CS_BURST 0x00000000
|
|
#define CFG_CS_BURST 0x00000000
|
|
#define CFG_CS_DEADCYCLE 0x33333311 /* 1 dead cycle for flash and SM501 */
|
|
#define CFG_CS_DEADCYCLE 0x33333311 /* 1 dead cycle for flash and SM501 */
|