![]() |
|
If you can't view the Datasheet, Please click here to try to view without PDF Reader . |
|
Datasheet File OCR Text: |
- 1 - sigmadesigns? smp863x wince bsp and development help 2007-2008 sigmadesigns(shenzhen) corporation. all rights reserved. v2.0.0.10 new 1 catalog 1 basi c platform ??????????????????????????????? .2. a) hardware platform b) software platform 2) how to build up the SMP8634 wince platform builder ???????? .8. 3) how to run the ce system on SMP8634 board ??????????? .9. a) make the ce bootloader b) make the SMP8634 specific ce nk.bin c) download the nk.bin to SMP8634 board d) make the ship mode SMP8634 ce nk.bin and boot it up without platform builder 4) how to make application for SMP8634 wince system ???????? .46. 5) how to test the SMP8634 wince feature ?????????????? .48. a) SMP8634 eth b) SMP8634 usb c) SMP8634 atapi d) SMP8634 pflash storage(disabled) e) SMP8634 ir remote control f) SMP8634 i2c g) SMP8634 smart card reader h) SMP8634 com serial i) SMP8634 ddi j) SMP8634 hw cursor k) SMP8634 wave device l) SMP8634 ddr ram m) SMP8634 rtc(realtime clock) n) SMP8634 gpio o) SMP8634 pwm p) SMP8634 hardware demux q) SMP8634 hardware jpeg decode r) SMP8634 lvds output s) SMP8634 multi-decoder t) SMP8634 vga output u) SMP8634 audio and video captures filter 6) how to upgrade/modify the ce boot loader ?????????????? .73. a) update boot.bin b) update xenv c) set the default value for boot loader 7) how to modify wince feature on SMP8634 ?????????????? .75. a) web server b) ftp server c) telnet server d) smb server e) hive-based registry f) ie 6.0 for windows ce g) media player h) microsoft network media device i) standard shell j) directdvd k) wire less ethernet 8) how to upgrade xos of SMP8634 chip ????????????????? .80. 9) how to get xos information ?????????????????????????? .80 10) how to make the boot screen ???????????????????? .80. 11) how to show a bitmap logo in boot screen ?????????????? .81. 12) how to show a progress in boot screen ?????????????? .81. 13) how to dynamic change video output ????????????????? .81. 14) current driver escape codes ???????????????????? .83. 15) extended project ???????????????????? .87. 16) about windows ce test kits(cetk) ???????????????????? .89. 17) bug list ?????????????????????????????????? .89. f o r s e e y o o o n l y free datasheet http://
- 2 - 1 basic platform a) hardware platform 1. SMP8634 envision board(es6 late version) or production board pflash recommend 64m bytes(nor flash) z if loading nk.bin from a ide device, it needs a 1m bytes nor flash only z if your boot screen is a big 24bit mode bitmap, it needs a 4m bytes nor flash ddr ram: recommend two 128m bytes ethernet card port: rtl8100cl(rtl8139 compatibility) enable (this device is for debug only) SMP8634 mac enable SMP8634 vantage board(es6 late version) pflash recommend 64m bytes(nor flash) z if loading nk.bin from a ide device, it needs a 1m bytes nor flash only z if your boot screen is a big 24bit mode bitmap, it needs a 4m bytes nor flash ddr ram: recommend two 128m bytes ethernet card port: SMP8634 mac enable rtl8100cl(rtl8139 compatibility) mini pci card (this device is for debug only) 2. SMP8634 peripheral: usb mouse usb keyboard serial debug card serial port link cable ir remote control crt or lcd tv monitor two ethernet link cables one mini pci rtl8100(rtl8139 compatibility) ethernet card (for vantage board only) 3. x86 pc 2.4g cpu 512m bytes memory 60g bytes hard disk 4. ethernet switcher 4 ports 10/100m bps b) software platform 1. microsoft windows xp sp2 system 2. microsoft windows ce platform builder 5.0 with mipsii bsp recommend install follow updates. a. ?windows ce 5.0 platform builde r yearly update (2007)? for mipsii file name: wincepb50-071231-product-update-rollup-mipsii.msi link: http://www.microsoft.com/downloads/ detai ls.aspx?familyid=a54779d5-f4a 5-49f0-9e36-979d461f536c&displaylang=en b: ?windows ce 5.0 platform builder monthly update (january 2008)? for mipsii file name: wincepb50-080131-2008m01-mipsii.msi link: http://www.microsoft.com/downloads/details.aspx?familyid=98f0906a-45c 6-4792-91fe-47a0e073a998&displaylang=en c: ?windows ce 5.0 platform builder monthly update (february 2008)? for mipsii file name: wincepb50-080229-2008m02-mipsii.msi link: http://www.microsoft.com/downloads/ detai ls.aspx?familyid=9ac7441f-3ad c-4e35-abd1-fa4fbb90a132&displaylang=en d: ?windows ce 5.0 platform builder monthly update (march 2008)? for mipsii file name: wincepb50-080331-2008m03-mipsii.msi link: http://www.microsoft.com/downloads/de tails.aspx?familyid=aacea4ae-e8c e-40c3-941c-d2a549a55deb&displaylang=en e: ?windows ce 5.0 platform builder monthly update (april 2008)? for mipsii file name: wincepb50-080430-2008m04-mipsii.msi f o r s e e y o o o n l y free datasheet http:// - 3 - link: http://www.microsoft.com/downloads/ details.aspx?familyid=4a3d4537-ab1 b-4e8f-b735-348a64a9d8d6&displaylang=en f. ?windows ce 5.0 networked media device feature pack? for mipsii file name: wincepb50-product- update-rollup-mipsii.msi link: http://www.microsoft.com/downloads/de tails.aspx?family id=bf17d6b0-471 6-494b-9018-7deee9b91832&displaylang=en g. ?wince 5.0 networked media device feature pack - cumulative product update rollup package (through 12/31/2007)? for mipsii file name: wincepb50_nmdfp-071231-product-update-rollup-mipsii.msi link: http://www.microsoft.com/downloads/de tails.aspx?familyid=81c5d9f3-a1d 1-4d0e-bf6a-d579d1c41077&displaylang=en h. ?windows ce 5.0 networked media device feature pack monthly update (january 2008)? for mipsii file name: wincepb50_nmdfp-080131-2008m01-mipsii.msi link: http://www.microsoft.com/downloads/details.aspx?fami lyid=d 64f66d4-9a4 b-443f-8118-8d4cca95ff68&displaylang=en 3. SMP8634 bsp a. current version:2.0.0.0 b. name: windowsce.5.0.bsp.2.0.0.0.zip c. directory structure: +2.0.0.0.bsp +cec -smp863x.cec -smp863x_atapi.cec -smp863x_ehci.cec -smp863x_eth.cec -smp863x_i2c.cec -smp863x_ohci.cec -smp863x_pflash.cec -smp863x_serial.cec -smp863x_smartcard.cec +pflash_tools -boot_stb.nb0 -dram_64.cmd -dram_128.cmd -genxenv.config -genxenv.exe -pflash_combo.config -pflash_combo.exe -pflash_cs2_64.mem -readme.txt -xenv_64.mem -xenv_128_64.mem -xreset.cmd -xrpc_xload_bootstrap_cs2_b1000000_es4_dev.bin -xrpc_xload_bootstrap_cs2_b1000000_es4_prod.bin +setxenv +setxenv -main.cpp -makefile -rmbasic.h -sources +xrpc -xrpc.exe -changes.txt -readme.txt -SMP8634-envision.2.0.0.0.msi d. bsp update 1) i2c update: this update is about setti ng speed for i2c device f o r s e e y o o o n l y free datasheet http:// - 4 - name: bsp_i2c.zip directory structure: +bsp_i2c +bsp_i2c_lib -bsp_i2c_lib.c -makefile -sources +dll -i2c_iisr.c -i2c_iisr.def -i2c_iisr.h -makefile -sources +sys -bsp_i2c.c -bsp_i2c.def -makefile -sources +test -main.cpp -makefile -sources -dirs 2) usb update: this update is about usb2.0 and it is for SMP8634 revc/es9 version chip only name: SMP8634_usb_revc_optimization.zip directory structure: +SMP8634_usb_revc_optimization +ehci86xx -ehci86xx.def -ehci86xx.reg -makefile -resource.h -rmver.rc -sources -system.c +ohci86xx -makefile -ohcd86xx.def -ohci86xx.reg -resource.h -rmver.rc -sources -system.c +usb11 +common -cdevice.cpp -cdevice.hpp -cphysmem.cpp -cphysmem.hpp -globals.hpp -hcd.cpp -hcd.hpp -hcddrv.cpp -makefile -pipeabs.hpp -sources -sync.cpp -sync.hpp +ohcd2 -chw.cpp -chw.hpp -cohcd.cpp -cohcd.hpp -cpipe.cpp -cpipe.hpp -makefile f o r s e e y o o o n l y free datasheet http:// - 5 - -sources -transfer.cpp -transfer.hpp -dirs +usb20 +ehci -cehcd.cpp -cehcd.h -chw.cpp -chw.h -cpipe.cpp -cpipe.h -ctd.cpp -ctd.h -makefile -sources -td.h -trans.cpp -trans.h -usb2lib.cpp -usb2lib.h +usb2com -cdevice.cpp -cdevice.hpp -cphysmem.cpp -cphysmem.hpp -globals.hpp -hcd.cpp -hcd.hpp -hcddrv.cpp -makefile -pipeabs.hpp -sources -sync.cpp -sync.hpp -dirs +version -rmver -readme.txt 3) rtc update your board must have the rtc(re altime clock) hardware support for this update to work. name: bsp_rtc-10-16-07.zip directory structure: + bsp_rtc-10-16-07 + wince500 + platform + smp863x +src +libs + bsp_rtc - makefile - readme.txt - rmbasic.h - rtc.c - sources - xos_xrpc.h - xpurtc_xtask_load_bin_dev.h - xpurtc_xtask_load_bin_prod.h - xpurtc_xtask_unload_bin_dev.h - xpurtc_xtask_unload_bin_prod.h 4. SMP8634 multimedia package a. current version: 2.0.0.10 b. name: multimedia.2.0.0.10.zip c. directory structure: +multimedia.2.0.0.10 +include - bitblt.h f o r s e e y o o o n l y free datasheet http:// - 6 - - ddi86xxesc.h - icapturesrc863x.h - ids863x.h - ihwdemux863x.h - itsdemux.h - jpeg_api.h - smp863x_formats.h - smp863x_ioctl.h - smp863x_restorefb.h +restorefb + dev - smp863x_restorefb.lib + prod - smp863x_restorefb.lib +retail - capsrc863x.map - ddi_86xx.map - ds863x.map - dswmapro.map - hdmi863x.map - hwdemux863x.map - smp863x.map - swjpeglib.map - tsdemux.map - wave863x.map - jpeg_api.lib - capsrc863x.pdb - ddi_86xx.pdb - ds863x.pdb - dswmapro.pdb - hdmi863x.pdb - hwdemux863x.pdb - jpeg_api.pdb - smp863x.pdb - swjpeglib.pdb - tsdemux.pdb - wave863x.pdb - capsrc863x.rel - ddi_86xx.rel - ds863x.rel - dswmapro.rel - hdmi863x.rel - hwdemux863x.rel - smp863x.rel - swjpeglib.rel - tsdemux.rel - wave863x.rel - capsrc863x.dll - ddi_86xx.dll - ds863x.dll - dswmapro.dll - hdmi863x.dll - hwdemux863x.dll - smp863x.dll - swjpeglib.dll - tsdemux.dll - wave863x.dll +samples +bootfb - main.cpp - makefile - rmbasic.h - sources +hwplayjpeg - hwplayjpeg.cpp - sources - hwplayjpeg.h - hwplayjpeg.rc f o r s e e y o o o n l y free datasheet http:// - 7 - - makefile - resource.h - readme_capturesrc863x.txt - readme_ddi_86xx.txt - readme_ds863x.txt - readme_dswmapro.txt - readme_hdmi863x.txt - readme_hwdemux863x.txt - readme_hwjpeg.txt - readme_smp863x.txt - readme_tsdemux.txt - readme_wave863x.txt - windows ce boot screen.txt -whatsnew.2.0.0.10.txt d. multimedia update 5. SMP8634 xos version version: e0 filename: xrpc_xload_xosu-xosme0-8634_es4_dev.bin 6. the different files for development chip(es6/es7/es9) and production chip(rev a/b/c) in bsp for follow files , there are two version in the bsp, one for development chip, one for production chip, if you use wrong version for your system, it can make the board fault, so please take careful when you use this mode file in your system. a. signed file xrpc_xload_bootstrap_cs2_b1000000_es4_dev.bin xrpc_xload_bootstrap_cs2_b1000000_es4_prod.bin b. framebuffer library smp863x_restorefb.lib f o r s e e y o o o n l y free datasheet http:// - 8 - 2) how to build up the SMP8634 wince platform builder a) build up a microsoft windows xp sp2 system on a x86 pc b) install microsoft windows ce platform builder 5.0 with mipsii bsp to the system as pic1 shows. - 9 - 3) how to run the ce system on SMP8634 board a) make the ce bootloader there is not a default combo ce bootloader in bsp, but all of the making bootloader tools are in pflash_tools directory. you can use them to make a ce bootloader. all exe files are dos mode command. 1. make the xenv file(xenv_128_128.mem) set genxenv.config as follow sample, and use this new genxenv.config to make a new xenv_128_128.mem file. the command line is " genxenv e xenv_128_128.mem genxenv.config ". # # hardware config file for smp863x platform (xenv) # default for SMP8634 stb board (a.k.a envision) # # ----------- # xos section # ----------- # boot xrpc/xload offset: x.boot = 0x8000 # dram stuffing # [29:20] - size of dram2, in mb, if present # [19:10] - size of dram1, in mb, if present # [ 9: 0] - size of dram0, in mb. #x.ds = 0x10040 # dram0 64m + dram1 64m x.ds = 0x20080 # dram0 128m + dram1 128m # dram timings/delays x.d0.cfg = 0xf34111ba # dram0 128m #x.d0.cfg = 0xe34111ba # dram0 64m #x.d0.dl0 = 0x000a4444 x.d1.cfg = 0xf34111ba # dram1 128m #x.d1.cfg = 0xe34111ba # dram1 64m #x.d1.dl0 = 0x000a4444 # dram test x.dt = 1 # pll setting #x.pll3 = 0x01020057 #x.mux = 0x201 # frequency setting x.csf = 0x2 2. make the pflash combo file(SMP8634ce128m.mem) set pflash_combo.config as follow sample,use this new config file to make the ce loader file(SMP8634ce128m.mem). the command is " pflash_combo SMP8634ce128m.mem pflash_combo.config ". # parallel flash memory configuration for xos versions > a0 # encripted boot stub located at offset 0x800 and pointed by x.boot=0x800 in xenv.mem # 0x00000000 xenv_128_128.mem 0x00008000 xrpc_xload_bootstrap_cs2_b1000000_es4_dev.bin 0x00010000 boot.nb0 the SMP8634ce128m.mem must be 576k bytes big size. the boot.nb0 file of each version bsp is different, so if bsp is upgraded, we must update the boot.nb0 too build a new ce project with new version bsp, get the boot.nb0 file, use it to replace the default boot.nb0 file or download boot.bin to SMP8634 board with ce platform builder. if the ce bootloader is made for a production SMP8634 board(rev a, rev b or rev c version), we must use xrpc_xload_bootstrap_cs2_b1000000_es4_prod.bin file to replace the xrpc_xload_bootstrap_cs2_b1000000_es4_dev.bin file. 3. write the ce bootloader(SMP8634ce128m.mem) to pflash0(boot flash) of SMP8634 board from begining address with yamon command or other tools. there are three ways to do that. a. use a external flash programmer to program the flash image directly to the flash. of course you have to remove the flash chip from the board first. b. use a jtag probe to do that, but it involves a us$2500 jtag hardware to do that. if you don't have it, you can ignore this option. f o r s e e y o o o n l y free datasheet http:// - 10 - c. use yamon prompt to program windowsce boot loader. i'll show you the step below. please be very careful when you do this . if the process fail in the middle, it will crash yamon and make your board not bootable, and you have to go back to option 1. here is how you program the file to on-board flash by yamon. assume i want to program file "f ile0.bin" to address 0 of flash. 1. uuencode the file by uuencode command in x86 linux. > uuencode file0.bin x > file0.bin.uuencode 2. in yamon promopt, run yamon> load uu 0xb0100000 3. now the yamon is waiting for the file from serial port. send the file0.bin.uuencode file to SMP8634 board through serial terminal. if you are using teraterm, you can do it by select "file->send file". (must with text mode) 4. when downloading is done, the file size of the received file is given in yamon. 5. compare the reported size to the filesize of file0.bin (not file0.bin.uuencode) and make sure they are exactly the same. no more, no less. 6. in yamon prompt, run yamon> pflash write 0x0 0xb0100000 - 11 - ? network multimedia support, ip media(wmt) via mms protocol(from windows media server), ip media(wmt, mpeg) via http protocol, media on smb server ? web server, ftp server, telnet server, smb sever 1. run ?new platform..? menu comma nd to wizard build ce project a. enter the name you would like to name the platform. - 12 - d. add/remove the networked drivers, finish the new platform wizard. - 13 - c. edit all device module as sample shows ? delete ?nmd ui? feature, add ?stand ard shell? feature to ce project - 14 - ? applications and services development - 15 - ? core os services - 16 - ? graphics and multimedia technologies - 17 - set the locale language support, use ?platform----settings?.? menu command to open ?platform settings? dialog, turn the ?locale? page, - 18 - ? security - 19 - - 20 - - 21 - the sample config.bib file is: memory irqhandler 90000000 00200000 reserved ;2mb for irq handler args 90200000 00000800 reserved ;2kb info from bootloader to system ide_dma 90200800 00002000 reserved ;8kb ide dma side buffer smp863x 90202800 01b00800 reserved ;27mb for smp863x driver nk 91d10000 02a00000 ramimage ;42mb for nk.bin image ram 94710000 032f0000 ram ;50mb for ce applications xos_private 97a00000 00600000 reserved ;6mb for xos >= a6 irqhandler the first 2mb of dram0 is reserved for usage by sigma designs. this is a requirement and must be respected. args this is a 2kb region used by the bootloader to send arguments to the kernel. this is a hard coded location coded in the bootloader an d the kernel. this should not be changed. ide_dma this is a reserved 8kb memory location to be used by the SMP8634 atapi driver. this location is hard coded in the driver, and shou ld not be changed unless the driver is changed accordingly. smp863x this is a reserved portion of memory to be used by the smp863x.dll driver. the location and size of this memory can changed. see the smp863x.dll documentation for more details. in this sample, it is set as 9 + 8 + 9 + 1 model, it?s all 27m bytes 9m ---- for ddi setting, 1920x1080x4+2048, less if your desk size is small 8m ---- for directdraw setting, less if you disable directdraw 9m ---- for second decoder, less if you disable second decoder 1m ---- for basic setting, it is must reserved extension_dram0 this part is disable in sample config.bib , if you don?t want use memory as this mode, please ignore this part extension_dram0 90303000 00e1d000 reserved ; 15mb extension dram this is a portion of memory that is used as an "extension" to the "ram" area. this area is seen by the kernel as available for use. the location and size of this memory can be changed, but it is hard coded in the /smp863x/src/kernel/oal/init.c file: #define extension_dram_start_address (0x10303000) #define extension_dram_length (0x00e1d000) if you change the location/size of this memory area, you must change init.c accrodingly and re-compile the kernel. nk this is where the kernel gets loaded. the location is hard coded in the files: smp863x\src\inc\image_cfg.h(32): #define image_wince_code_pa_start 0x1d10000 smp863x\src\kernel\kern\sources(14): exebase=0x91d10000 smp863x\src\kernel\kernkitl\sources(14): exebase=0x91d10000 smp863x\src\kernel\kernkitlprof\sources(13): exebase=0x91d10000 changing this location requires you to chan ge the appropriate files, and rebuilding the bootloader and kernel. f o r s e e y o o o n l y free datasheet http:// - 22 - ram this is the normal ram area the kernel sees. xos_private this is a special area reserved for use by xo s. the size and location can only be changed via xenv variables. it is advised to leave this default. the default location is the last 6mb of dram0. so, if dram0 had 128mb, the physical address start would be 0x17a00000. if dram0 had 64mb, the physical address start would be 0x13a00000. 8. open the platform.reg file in "\wince500\pbworkspace\(your ce project name)\reldir\smp863x_mipsii_release" directory, add follow registry settings to the end of file. ;gdi 2.0.0.10 verion [hkey_local_machine\system\gdi\drivers] "display"="ddi_86xx.dll" ; ; see smp863x_formats.h for the proper hex values for each video mode ; "digitaloutput"=dword:21 "digitalcolorspace"=dword:3 "mainanalogoutput"=dword:6f "mainanalogcolorspace"=dword:4 "componentanalogoutput"=dword:65 "componentmode"=dword:6 "componentorder"=dword:0 "componentcolorspace"=dword:4 "vgaoutput"=dword:0 ; 0 = disable vga output, 1 = enable vga output. ; also, when it's 1, need to se t componentanalogoutput to cvt_xxx or vesa_xxx, ; componentmode to rgb_scart, componentcolorspace to rgb_0_255 "screenwidth"=dword:00000500 ;1280 "screenheight"=dword:000002d0 ;720 "outputposx"=dword:100 ; output window position x "outputposy"=dword:100 ; output window position y "outputposwidth"=dword:e00 ; output window position width "outputposheight"=dword:e00 ; output window position height "memorysize"=dword:00800000 ; extra memory size for h/w acceleration, see note in the smp863x.reg ; regarding the primary_display_surface_drambank "enablehwcursor"=dword:1 ; 0 = disable, 1 = enable "livedetecthdmiconnection"=dword:1 ; 0 = driver won't do live hdmi detection, 1 = check live hdmi connection "enablehdcp"=dword:0 ; 0 = disable the hdcp, 1 = enable the hdcp "defaultkeycolor"=dword:00010101 ; in rgb format: r = 3rd byte, g = 2nd byte, b = 1st byte "enableediddetection"=dword:0 ; 0 = disable, 1 = enable. disable/enable the hdmi preferred mode. "hdmii2cmodule"=dword:2 ; 0 = software, 1 = hardware, 2 = built-in hdmi "invertclock"=dword:1 ; 0 = do not invert digital video clock, 1 = invert (default is inverted) "lvds_enable"=dword:0 "lvds_gpiofieldidoutput"=dword:b ; board dependent "lvds_gpiopanelon"=dword:e ; board dependent ; default custom digital output video mode - 720p59 [hkey_local_machine\system\gdi\d rivers\customdigitalvideomode] "pixelclock"=dword:46bd550 "hactive"=dword:500 "hfrontporch"=dword:6e "hsyncwidth"=dword:28 "hbackporch"=dword:dc "hsyncpolarity"=dword:1 ; true: positive, false: negative "vactive"=dword:2d0 "vfrontporch"=dword:5 "vsyncwidth"=dword:5 "vbackporch"=dword:14 "vsyncpolarity"=dword:1 ; true: positive, false: negative "interlaced"=dword:0 f o r s e e y o o o n l y free datasheet http:// - 23 - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; sigma designs built-in driver for low-level access ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [hkey_local_machine\driv ers\builtin\smp86xx] "dll"="smp863x.dll" "prefix"="sdh" "index"=dword:1 "order"=dword:1 "smp863x_reserved_start_dram0"=dword:10202800 ; starting address of reserved memory in dram0 "smp863x_reserved_dram0_size" =dword:01b00000 ; dram0 needs at 1mb (more if primary surface is allocated in dram0) "smp863x_reserved_start_dram1"=dword:0c000000 ; starting address of reserved memory in dram1 "smp863x_reserved_dram1_size" =dword:00000000 ; dram1 needs at 40mb (less if primary surface is allocated in dram0) "primary_display_surface_drambank"=dword:0 ; dram bank to allocate primary display surface (0 or 1) "default_aspect_ratio_x"=dword:1 0 ; default aspect ratio for the output, horizontal direction "default_aspect_ratio_y"=dword:9 ; default aspect ratio for the output, vertical direction ;;;;;;;;;; ds863x.dll ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; @cesysgen if quartz_image ; sigma designs renderer filter ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [hkey_classes_root\filter\{caa414f0-c7c3-11d4-a914-0080ad91bd94}] if initdshowfilternames @="sigma designs filter" endif ;"delaysettingcodectypes"=dword:1 ; delay se tting of the codec types - only enable this if you are using the .asx playlist "flushdisplayonstop"=dword:0 "flushdisplayonbeginflush"=dword:0 "flushdisplayondiscontinuity"=dword:0 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}] if initnodshowfilterclassnames ! @="sigma designs filter" endif "merit"=dword:00880001 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\inprocserv er32] @="ds863x.dll" [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video] ;"direction"=dword:00000000 ;"isrendered"=dword:00000001 "allowedzero"=dword:00000001 ;"allowedmany"=dword:00000000 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio] ;"direction"=dword:00000000 ;"isrendered"=dword:00000001 "allowedzero"=dword:00000001 ;"allowedmany"=dword:00000000 ;mediatype_video\media subtype_mpeg1payload [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{e436eb81-524f-11ce-9f53-0 020af0ba770}] f o r s e e y o o o n l y free datasheet http:// - 24 - ;mediatype_video\media subtype_mpeg2_video [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{e06d8026-db46-11cf-b4d1-0 0805f6cbbea}] ;mediatype_video\mediasubtype_sdmpeg4_video [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{8ab4d3d1-c812-11d5-be17 -00a0c90aa8a1}] ;mediatype_video\mediasubtype_divx_u_video [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{58564944-0000-0010-8000- 00aa00389b71}] ;mediatype_video\mediasubtype_divx_50_video [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{30355844-0000-0010-8000- 00aa00389b71}] ;mediatype_video\mediasu btype_divx_xvid_video [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{44495658-0000-0010-8000- 00aa00389b71}] ;mediatype_video\mediasubtype_divx_div3_video [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{33564944-0000-0010-8000- 00aa00389b71}] ;mediatype_video\mediasubtype_divx_mp43_video [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{3334504d-0000-0010-8000- 00aa00389b71}] ;mediatype_video\mediasubtype_divx_h264_video [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{34363248-0000-0010-8000- 00aa00389b71}] ;mediatype_video\mediasubtype_smp863x_capture_video [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{c6271d47-809e-4b79-a2a9-f 787e8266760}] ; windows media video 9 ; fourcc: 'wmv3' subtype: 33564d57-0000-0010-8000-00aa00389b71 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{33564d57-0000-0010-8000- 00aa00389b71}] ; windows media video 9 advanced profile ; fourcc: 'wmva' subtype: 41564d57-0000-0010-8000-00aa00389b71 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{41564d57-0000-0010-8000- 00aa00389b71}] f o r s e e y o o o n l y free datasheet http:// - 25 - ; windows media video advanced profile with no start codes [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t video\types\{73646976-0000-0010-8000-00aa00389b71}\{31435657-0000-0010-8000- 00aa00389b71}] ;mediatype_audio\media subtype_mpeg1payload [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{e436eb81-524f-11ce-9f53-0 020af0ba770}] ;mediatype_audio\mediasubtype_dolby_ac3 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{e06d802c-db46-11cf-b4d1-0 0805f6cbbea}] ;mediatype_audio\med iasubtype_audioac3 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{00002000-0000-0010-8000- 00aa00389b71}] ;mediatype_audio\media subtype_mpeg2_audio [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{e06d802b-db46-11cf-b4d1-0 0805f6cbbea}] ;mediatype_audio\mediasu btype_mpeg1audiopayload [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{00000050-0000-0010-8000- 00aa00389b71}] ;mediatype_audio\mediasu btype_sdmpeg4_pcmaudio [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{8ab4d3d2-c812-11d5-be17 -00a0c90aa8a1}] ;mediatype_audio\mediasubtype_pcm [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{00000001-0000-0010-8000- 00aa00389b71}] ;mediatype_audio\mediasubtype_divx_mp3 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{00000055-0000-0010-8000- 00aa00389b71}] ;mediatype_audio\mediasubtype_adts_aacaudio [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{341f3a28-4476-4277-adff- adeade3d1716}] ; windows media audio 9 and previous compatible versions ; format tag: 0x161 subtype: 00000161-0000-0010-8000-00aa00389b71 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{00000161-0000-0010-8000- 00aa00389b71}] f o r s e e y o o o n l y free datasheet http:// - 26 - ; windows media audio 9 professional ; format tag: 0x162 subtype: 00000162-0000-0010-8000-00aa00389b71 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{00000162-0000-0010-8000- 00aa00389b71}] ; windows media audio 9 lossless ; format tag: 0x163 subtype: 00000163-0000-0010-8000-00aa00389b71 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{00000163-0000-0010-8000- 00aa00389b71}] ; windows media audio 9 voice ; format tag: 0x00a subtype: 0000000a-0000-0010-8000-00aa00389b71 [hkey_classes_root\clsid\{caa414f0-c7c3-11d4-a914-0080ad91bd94}\pins\inpu t audio\types\{73647561-0000-0010-8000-00aa00389b71}\{0000000a-0000-0010-8000- 00aa00389b71}] ;; wma pro [hkey_classes_root\filter\{04a43571-24c5-474c-9504-7a315db89850}] if initdshowfilternames @="sigma designs wmapro decoder" endif [hkey_classes_root\clsid\{04a43571-24c5-474c-9504-7a315db89850}] if initnodshowfilterclassnames ! @="sigma designs wmapro decoder" endif "merit"=dword:00400000 [hkey_classes_root\clsid\{04a43571-24c5-474c-9504-7a315db89850}\inprocse rver32] @="dswmapro.dll" ; sigma designs 8634 wave built-in driver ; ; supports only wave out [hkey_local_machine\dr ivers\builtin\audio] "prefix"="wav" "dll"="wave863x.dll" "index"=dword:1 "order"=dword:1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; @cesysgen if quartz_image ; smp863x capture source filter ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [hkey_classes_root\filter\{9a036243-33fa-45c5-9d9d-a7d07c2fc670}] if initdshowfilternames @="smp86xx capture source filter endif [hkey_classes_root\clsid\{9a0 36243-33fa-45c5-9d9d-a7d07c2fc670}] if initnodshowfilterclassnames ! @="smp86xx capture source filter" endif "merit"=dword:00600000 [hkey_classes_root\clsid\{9a036243- 33fa-45c5-9d9d-a7d07c2fc670}\inprocser ver32] @="capsrc863x.dll" [hkey_classes_root\clsid\{9a036243-33f a-45c5-9d9d-a7d07c2fc670}\pins\video output] "direction"=dword:00000001 ;"isrendered"=dword:00000000 "allowedzero"=dword:00000001 f o r s e e y o o o n l y free datasheet http:// - 27 - ;"allowedmany"=dword:0000000 [hkey_classes_root\clsid\{9a036243-33f a-45c5-9d9d-a7d07c2fc670}\pins\audio output] "direction"=dword:00000001 ;"isrendered"=dword:00000000 "allowedzero"=dword:00000001 ;"allowedmany"=dword:0000000 ;mediatype_video\mediasubtype_smp863x_capture_video [hkey_classes_root\clsid\{9a036243-33f a-45c5-9d9d-a7d07c2fc670}\pins\video output\types\{73646976-0000-0010-8000-00aa00389b71}\{c6271d47-809e-4b79-a2a9 -f787e8266760}] ;mediatype_audio\mediasubtype_pcm [hkey_classes_root\clsid\{9a036243-33f a-45c5-9d9d-a7d07c2fc670}\pins\audio output\types\{73647561-0000-0010-8000-00aa00389b71}\{00000001-0000-0010-8000 -00aa00389b71}] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; sigma designs transport stream splitter for windows ce ;; ;; enter these lines into platform.reg (or any other .reg file) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [hkey_classes_root\filter\{674a6f9f -e8d4-436f-9498-462cbc7f0ddd}] if initdshowfilternames @="sigma designs ts splitter" endif [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}] if initnodshowfilterclassnames ! @="sigma designs ts splitter" endif "merit"=dword:00600000 [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}\inprocs erver32] @="tsdemux.dll" [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}\pins\in put] "direction"=dword:00000000 ;"isrendered"=dword:00000000 "allowedzero"=dword:00000000 ;"allowedmany"=dword:0000000 [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}\pins\in put\types\{e436eb83-524f-11ce-9f53-0020af 0ba770}\{00000000-0000-0000-0000-0000 00000000}] [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}\pins\in put\types\{e436eb83-524f-11ce-9f53-0020af0ba770}\{e436eb84-524f-11ce-9f53-0020af 0ba770}] [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}\pins\in put\types\{e436eb83-524f-11ce-9f53-0020af0ba770}\{e06d8022-db46-11cf-b4d1-00805 f6cbbea}] [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}\pins\in put\types\{e436eb83-524f-11ce-9f53-0020af0ba770}\{e06d8023-db46-11cf-b4d1-00805 f6cbbea}] [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}\pins\vid eo output] "direction"=dword:00000001 ;"isrendered"=dword:00000000 f o r s e e y o o o n l y free datasheet http:// - 28 - "allowedzero"=dword:00000001 ;"allowedmany"=dword:0000000 [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}\pins\vid eo output\types\{73646976-0000-0010-8000-00aa00389b71}\{e06d8026-db46-11cf-b4d1- 00805f6cbbea}] [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}\pins\au dio output] "direction"=dword:00000001 ;"isrendered"=dword:00000000 "allowedzero"=dword:00000001 ;"allowedmany"=dword:0000000 [hkey_classes_root\clsid\{674a6f9f-e8d4-436f-9498-462cbc7f0ddd}\pins\au dio output\types\{73647561-0000-0010-8000-00aa00389b71}\{00000050-0000-0010-8000 -00aa00389b71}] ;;;;;;;;;; hwdemux863x.dll ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; @cesysgen if quartz_image ; sigma designs hw demux filter ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [hkey_classes_root\filter\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}] if initdshowfilternames @="sigma designs hw ts demux" endif [hkey_classes_root\clsid\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}] if initnodshowfilterclassnames ! @="sigma designs hw ts demux" endif "merit"=dword:00200000 ; merit is set to do_not_use - your application must manually insert this filter [hkey_classes_root\clsid\{bfc6c826-4b 93-4a66-8f58-ed0b7047311c}\inprocser ver32] @="hwdemux863x.dll" [hkey_classes_root\clsid\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}\pins\input ] "direction"=dword:00000000 ;"isrendered"=dword:00000000 "allowedzero"=dword:00000000 ;"allowedmany"=dword:0000000 [hkey_classes_root\clsid\{bfc6c826-4b 93-4a66-8f58-ed0b7047311c}\pins\outp utvpayload] "direction"=dword:00000001 ;"isrendered"=dword:00000000 "allowedzero"=dword:00000001 ;"allowedmany"=dword:0000000 [hkey_classes_root\clsid\{bfc6c826-4b 93-4a66-8f58-ed0b7047311c}\pins\outp utapayload] "direction"=dword:00000001 ;"isrendered"=dword:00000000 "allowedzero"=dword:00000001 ;"allowedmany"=dword:0000000 [hkey_classes_root\clsid\{bfc6c826-4b93-4a66-8f58-ed0b7047311c}\pins\input \types\{e436eb83-524f-11ce-9f53-0020af0ba770}\{00000000-0000-0000-0000-0000000 00000}] ;mediatype_audio\mediasubtype_dolby_ac3 f o r s e e y o o o n l y free datasheet http:// - 29 - [hkey_classes_root\clsid\{bfc6c826-4b 93-4a66-8f58-ed0b7047311c}\pins\outp utapayload\types\{73647561-0000-0010-8000-00aa00389b71}\{e06d802c-db46-11cf-b 4d1-00805f6cbbea}] ;mediatype_video\media subtype_mpeg2_video [hkey_classes_root\clsid\{bfc6c826-4b 93-4a66-8f58-ed0b7047311c}\pins\outp utvpayload\types\{73646976-0000-0010-8000-00aa00389b71}\{e06d8026-db46-11cf-b 4d1-00805f6cbbea}] find the pflash device registry line. #include "$(_targetplatroot)\src\ drivers\pflash\pflash\pflash.reg" #include "$(_targetplatroot)\src\dr ivers\pflash\pflash2\pflash2.reg" disable it as follow sample. ; #include "$(_targetplatroot)\src\d rivers\pflash\pflash\pflash.reg" ; #include "$(_targetplatroot)\src\d rivers\pflash\pflash2\pflash2.reg" close and save the platform.reg file. 9. run ?build os----make run-time image? menu command to make a new nk.bin file. f o r s e e y o o o n l y free datasheet http:// - 30 - c) download the nk.bin to SMP8634 board link all SMP8634 ethernet ports and platform builder pc to a network with ethernet cable, link the SMP8634 serial debug card to pc serial com1 port with a serial cable, set the com1 port parameter as follow sample(pic28). - 31 - b. use "[3] select boot device? to set ?rtl rtl8139 ?? to be boot device. - 32 - select "download" and "transport" combobox to be"ethernet" select "debugger" combobox to "kdstub" click first "setting" button to open "et hernet download settings" dialog, - 33 - d. use ?platform----settings?.? menu command to open the ?platform settings? dialog, turn to ?build options? page set as pic38 sample shows. - 34 - in main menu of ce boot loader, select ?[7] smp863x setting? get the SMP8634 settings menu - 35 - - 36 - { retailmsg (1, (text("it is a 8 bit flash\n"))); flash8bit = 1; } else { // try 16 bit access // query command *((volatile rmuint16 *)(0xaa + flashbaseaddress)) = 0x98; cfi_data[0x20] = *((volatile rmuint8 *)(0x20 + flashbaseaddress)); cfi_data[0x22] = *((volatile rmuint8 *)(0x22 + flashbaseaddress)); cfi_data[0x24] = *((volatile rmuint8 *)(0x24 + flashbaseaddress)); flash8bit = 0; retailmsg (1, (text("it is a 16 bit flash\n"))); } if ((cfi_data[0x20] != 'q') || (cfi_data[0x22] != 'r') || (cfi_data[0x24] != 'y')) { // no flash found? return 0; } cfi_data[0x4e] = *((volatile rmuint8 *)(0x4e + flashbaseaddress)); retailmsg(1, (text("device size: %d\n"),1 << cfi_data[0x4e])); cfi_data[0x58] = *((volatile rmuint8 *)(0x58 + flashbaseaddress)); retailmsg(1, (text("number of regions: %d\n"),cfi_data[0x58])); cfi_data[0x5a] = *((volatile rmuint8 *)(0x5a + flashbaseaddress)); cfi_data[0x5c] = *((volatile rmuint8 *)(0x5c + flashbaseaddress)); cfi_data[0x5e] = *((volatile rmuint8 *)(0x5e + flashbaseaddress)); cfi_data[0x60] = *((volatile rmuint8 *)(0x60 + flashbaseaddress)); if((rmuint16)cfi_data[0x5c] == 0x1) { retailmsg(1, (text("region 1: %d * 0x%04x\n"),(cfi_data[0x5a]+1) * ((rmuint16)cfi_data[0x5c] + 1), ((rmuint16)cfi_data[0x5e] << 8) | ((rmuint16)cfi_data[0x60] << 16))); } else { retailmsg(1, (text("region 1: %d * 0x%04x\n"),cfi_data[0x5a]+1,((rmuint16)cfi_data[0x5c] << 0) | ((rmuint16)cfi_data[0x5e] << 8) | ((rmuint16)cfi_data[0x60] << 16))); } cfi_data[0x62] = *((volatile rmuint8 *)(0x62 + flashbaseaddress)); cfi_data[0x64] = *((volatile rmuint8 *)(0x64 + flashbaseaddress)); cfi_data[0x66] = *((volatile rmuint8 *)(0x66 + flashbaseaddress)); cfi_data[0x68] = *((volatile rmuint8 *)(0x68 + flashbaseaddress)); retailmsg(1, (text("region 2: %d * 0x%04x\n"),cfi_data[0x62]+1,((rmuint16)cfi_data[0x64] << 0) | ((rmuint16)cfi_data[0x66] << 8) | ((rmuint16)cfi_data[0x68] << 16))); cfi_data[0x6a] = *((volatile rmuint8 *)(0x6a + flashbaseaddress)); cfi_data[0x6c] = *((volatile rmuint8 *)(0x6c + flashbaseaddress)); cfi_data[0x6e] = *((volatile rmuint8 *)(0x6e + flashbaseaddress)); cfi_data[0x70] = *((volatile rmuint8 *)(0x70 + flashbaseaddress)); retailmsg(1, (text("region 3: %d * 0x%04x\n"),cfi_data[0x6a]+1,((rmuint16)cfi_data[0x6c] << 16) | ((rmuint16)cfi_data[0x6e] << 8) | ((rmuint16)cfi_data[0x70] << 0))); cfi_data[0x72] = *((volatile rmuint8 *)(0x72 + flashbaseaddress)); cfi_data[0x74] = *((volatile rmuint8 *)(0x74 + flashbaseaddress)); cfi_data[0x76] = *((volatile rmuint8 *)(0x76 + flashbaseaddress)); cfi_data[0x78] = *((volatile rmuint8 *)(0x78 + flashbaseaddress)); retailmsg(1, (text("region 4: %d * 0x%04x\n"), cfi_data[0x72]+1,((rmuint16)cfi_data[0x74] << 0) | ((rmuint16)cfi_data[0x76] << 8) | ((rmuint16)cfi_data[0x78] << 16))); // reset command f o r s e e y o o o n l y free datasheet http:// - 37 - if (flash8bit) { *((volatile rmuint8 *)(flashbaseaddress)) = 0xf0; } else { *((volatile rmuint16 *)(flashbaseaddress)) = 0xf0; } sleep (1000); retailmsg (1, (text("cfi_query_parameters end !\n"))); return ((rmint32)1 << cfi_data[0x4e]); } void cfi_erase (rmuint32 flashbaseaddress, rmuint32 addr, rmint32 len) { retailmsg(1, (text("cfi_erase begin !\n"))); rmuint8 tmp0, tmp1; rmuint32 i, s; rmuint32 n1, n2, n3, n4; rmuint32 l1, l2, l3, l4; rmuint32 start1, start2, start3, start4; g_bwriteok=0; if((rmuint16)cfi_data[0x5c] == 0x1) { n1 = (cfi_data[0x5a]+1) * ((rmuint16)cfi_data[0x5c] + 1); } else { n1 = cfi_data[0x5a]+1; } l1 = ((rmuint16)cfi_data[0x5c] << 0) | ((rmuint16)cfi_data[0x5e] << 8) | ((rmuint16)cfi_data[0x60] << 16); l1 &= ~1; start1 = 0; n2 = cfi_data[0x62]+1; l2 = ((rmuint16)cfi_data[0x64] << 0) | ((rmuint16)cfi_data[0x66] << 8) | ((rmuint16)cfi_data[0x68] << 16); l2 &= ~1; start2 = start1 + n1 * l1; n3 = cfi_data[0x6a]+1; l3 = ((rmuint16)cfi_data[0x6c] << 16) | ((rmuint16)cfi_data[0x6e] << 8) | ((rmuint16)cfi_data[0x70] << 0); l3 &= ~1; start3 = start2 + n2 * l2; n4 = cfi_data[0x72]+1; l4 = ((rmuint16)cfi_data[0x74] << 0) | ((rmuint16)cfi_data[0x76] << 8) | ((rmuint16)cfi_data[0x78] << 16); l4 &= ~1; start4 = start3 + n3 * l3; if ((addr >= start1) && (addr < start2) && l1) { s = start1; if(addr > s) f o r s e e y o o o n l y free datasheet http:// - 38 - { s=addr; } // region 1 for (i=0; i |