Please follow the instructions, all of them, in order, none left out.
Do not use pflash before the reset after the bootldr is written to
flash.
I prefer these instructions:
ftp://ftp.handhelds.org/pub/linux/compaq/ipaq/v0.20/install.html
Go to step 14 of those instructions, do the spot check. If it looks OK,
then reboot, then check qflash. If it does not look OK or you are
worried, repeat step 12 which installs the bootldr, then do the
spotcheck, then reset, then qflash. You should also be able to oneline
help if you can connect to IRC chat at irc.openprojects.net /join
#handhelds.org
Thanks,
Jamey
> -----Original Message-----
> From: Rob [mailto:rob@bobby.demon.co.uk]
> Sent: Wednesday, June 13, 2001 2:15 PM
> To: familiar@handhelds.org
> Subject: [Familiar] iPAQ flash Write-protect
>
>
> Hi,
>
> I've got as far as writing bootldr 2.14.8 to the flash of an
> iPAQ 3630, and
> everything went smoothly until I checked the write-protect
> for the bootldr
> flash area using "qflash 2". It returns all zero instead of
> 00010001. I tried
> to set it manually (several times) using "pflash 0 0xffff 1",
> but to no
> avail. The entire session text is included below. I'm a little nervous
> about hard-resetting the iPAQ without write-protect on the
> bootldr flash
> area, so thus far I've only rebooted using the "boot"
> command, which works,
> and I assume means that
> the bootldr image HAS been successfully burned into flash. Do
> you have any
> idea
> why the write-protect appears not to set? If not, could you tell me a
> little more about what qflash does? (I'm a little puzzled by the "2"
> argument -is that the address offset of the flash status
> register, or the
> flash sector number...?) Hope you can advise.
>
> Rob Duffy
>
> CLIENTCLIENTMap Flash virtual section to DRAM at: C1E00000
> flashword=50000000
> btflash_init: mfrid=00890089
> devid=00170017
> walking flash descriptors
> btflash_init: found flash 28F640J3A
> flashDescriptor=C002FA74
> flashSectors=C002F870
> nsectors=00000080
> flash_size=02000000
> flash_address_mask=01FFFFFF
> dram_size: 02000000
>
> >> Compaq OHH BootLoader, Rev 02.09.00
> >> 00-08-15_23:13
> >> ARM Processor Rev=6901B116
> >> CPSR=6000001F
> >> (c) 2000 Compaq Cambridge Research Laboratory
> Press Return to start the OS now, any other key for monitor menu
> eval param blk
> booting flash...
> boot_magic=EA0003FE
> kernel_image_first_word=00000000
> Corrupt kernel image
> boot> help
> Available Commands:
> ?
> help <command>
> <command> help
> boot [flash|nfsroot|altkernel]
> display
> load [kernel | ramdisk | bootldr | params | usercode | ram]
> save [all | bootldr | debugger | flash | kernel | ramdisk | params |
> usercode |
> world | altkernel]
> peek ram|flash|int|short|byte <addr>
> poke ram|flash|int|short|byte <addr>
> breakpoint
> qflash [cfi|id] <waddr> -- query flash
> eflash <sectoraddr>|chip -- erase sector or chip
> pflash <sectoraddr>|chip -- protect sector or chip
> physaddr <vaddr> -- returns <paddr>
> call <addr> args
> jump <addr>
> set <param> <value>
> show [<param>]
> evalparams
> params [eval|show|save|reset]
> flash_type <flashtype>
> boot> peek flash 0x0
> addr = 00000000
> value = EA0003FE
> boot> load bootldr
> loading flash region bootldr
> using xmodem
> ready for xmodem download..
>
> boot> peek flash 0x0
> addr = 00000000
> value = EA0003FE
> boot> help
> Available Commands:
> ?
> help <command>
> <command> help
> boot [flash|nfsroot|altkernel]
> display
> load [kernel | ramdisk | bootldr | params | usercode | ram]
> save [all | bootldr | debugger | flash | kernel | ramdisk | params |
> usercode |
> world | altkernel]
> peek ram|flash|int|short|byte <addr>
> poke ram|flash|int|short|byte <addr>
> breakpoint
> qflash [cfi|id] <waddr> -- query flash
> eflash <sectoraddr>|chip -- erase sector or chip
> pflash <sectoraddr>|chip -- protect sector or chip
> physaddr <vaddr> -- returns <paddr>
> call <addr> args
> jump <addr>
> set <param> <value>
> show [<param>]
> evalparams
> params [eval|show|save|reset]
> flash_type <flashtype>
> boot> load bootldr
> loading flash region bootldr
> using xmodem
> ready for xmodem download..
> Download Successful
> 00018A80 bytes loaded to C0000400
> BSD sum value is: 00000000
>
> programming flash...erasing ...
> Erasing sector 00000000
> len=00018A80
> writing flash..
> addr: 00000000 data: EA00008E
> addr: 00010000 data: E5DE2004
> verifying ... done.
> boot> peek flash 0x0
> addr = 00000000
> value = EA00008E
> boot> peek flash 0x020
> addr = 00000020
> value = 646C7462
> boot> help
> Available Commands:
> ?
> help <command>
> <command> help
> boot [flash|nfsroot|altkernel]
> display
> load [kernel | ramdisk | bootldr | params | usercode | ram]
> save [all | bootldr | debugger | flash | kernel | ramdisk | params |
> usercode |
> world | altkernel]
> peek ram|flash|int|short|byte <addr>
> poke ram|flash|int|short|byte <addr>
> breakpoint
> qflash [cfi|id] <waddr> -- query flash
> eflash <sectoraddr>|chip -- erase sector or chip
> pflash <sectoraddr>|chip -- protect sector or chip
> physaddr <vaddr> -- returns <paddr>
> call <addr> args
> jump <addr>
> set <param> <value>
> show [<param>]
> evalparams
> params [eval|show|save|reset]
> flash_type <flashtype>
> boot> help
> Available Commands:
> ?
> help <command>
> <command> help
> boot [flash|nfsroot|altkernel]
> display
> load [kernel | ramdisk | bootldr | params | usercode | ram]
> save [all | bootldr | debugger | flash | kernel | ramdisk | params |
> usercode |
> world | altkernel]
> peek ram|flash|int|short|byte <addr>
> poke ram|flash|int|short|byte <addr>
> breakpoint
> qflash [cfi|id] <waddr> -- query flash
> eflash <sectoraddr>|chip -- erase sector or chip
> pflash <sectoraddr>|chip -- protect sector or chip
> physaddr <vaddr> -- returns <paddr>
> call <addr> args
> jump <addr>
> set <param> <value>
> show [<param>]
> evalparams
> params [eval|show|save|reset]
> flash_type <flashtype>
> boot> help
> Available Commands:
> ?
> help <command>
> <command> help
> boot [flash|nfsroot|altkernel]
> display
> load [kernel | ramdisk | bootldr | params | usercode | ram]
> save [all | bootldr | debugger | flash | kernel | ramdisk | params |
> usercode |
> world | altkernel]
> peek ram|flash|int|short|byte <addr>
> poke ram|flash|int|short|byte <addr>
> breakpoint
> qflash [cfi|id] <waddr> -- query flash
> eflash <sectoraddr>|chip -- erase sector or chip
> pflash <sectoraddr>|chip -- protect sector or chip
> physaddr <vaddr> -- returns <paddr>
> call <addr> args
> jump <addr>
> set <param> <value>
> show [<param>]
> evalparams
> params [eval|show|save|reset]
> flash_type <flashtype>
> boot> ?
> Available Commands:
> ?
> help <command>
> <command> help
> boot [flash|nfsroot|altkernel]
> display
> load [kernel | ramdisk | bootldr | params | usercode | ram]
> save [all | bootldr | debugger | flash | kernel | ramdisk | params |
> usercode |
> world | altkernel]
> peek ram|flash|int|short|byte <addr>
> poke ram|flash|int|short|byte <addr>
> breakpoint
> qflash [cfi|id] <waddr> -- query flash
> eflash <sectoraddr>|chip -- erase sector or chip
> pflash <sectoraddr>|chip -- protect sector or chip
> physaddr <vaddr> -- returns <paddr>
> call <addr> args
> jump <addr>
> set <param> <value>
> show [<param>]
> evalparams
> params [eval|show|save|reset]
> flash_type <flashtype>
> boot> boot
> booting flash...
> boot_magic=EA0003FE
> kernel_image_first_word=00000000
> Corrupt kernel image
> boot> qflash 2
> value = 00000000
> boot> pflash 0 0xffff 1
> addr=00000000
> len=0000FFFF
> protect=00000001
> Protecting sector 00000000
> boot> qflash 2
> value = 00000000
> boot> ?
> Available Commands:
> ?
> help <command>
> <command> help
> boot [flash|nfsroot|altkernel]
> display
> load [kernel | ramdisk | bootldr | params | usercode | ram]
> save [all | bootldr | debugger | flash | kernel | ramdisk | params |
> usercode |
> world | altkernel]
> peek ram|flash|int|short|byte <addr>
> poke ram|flash|int|short|byte <addr>
> breakpoint
> qflash [cfi|id] <waddr> -- query flash
> eflash <sectoraddr>|chip -- erase sector or chip
> pflash <sectoraddr>|chip -- protect sector or chip
> physaddr <vaddr> -- returns <paddr>
> call <addr> args
> jump <addr>
> set <param> <value>
> show [<param>]
> evalparams
> params [eval|show|save|reset]
> flash_type <flashtype>
> boot> qflash 0
> value = 00890089
> boot> qflash 1
> value = 00170017
> boot> qflash 0x0
> value = 00890089
> boot> help
> Available Commands:
> ?
> help <command>
> <command> help
> boot [flash|nfsroot|altkernel]
> display
> load [kernel | ramdisk | bootldr | params | usercode | ram]
> save [all | bootldr | debugger | flash | kernel | ramdisk | params |
> usercode |
> world | altkernel]
> peek ram|flash|int|short|byte <addr>
> poke ram|flash|int|short|byte <addr>
> breakpoint
> qflash [cfi|id] <waddr> -- query flash
> eflash <sectoraddr>|chip -- erase sector or chip
> pflash <sectoraddr>|chip -- protect sector or chip
> physaddr <vaddr> -- returns <paddr>
> call <addr> args
> jump <addr>
> set <param> <value>
> show [<param>]
> evalparams
> params [eval|show|save|reset]
> flash_type <flashtype>
> boot> display
>
> SA1100 Registers:
> SA1100_UART3: 80050000
> UTCR0 0x00 *0x80050000 == 00000008
> UTCR1 0x04 *0x80050004 == 00000000
> UTCR2 0x08 *0x80050008 == 00000001
> UTCR3 0x0c *0x8005000C == 00000003
> UTDR 0x10 *0x80050014 == 0000000D
> UTSR0 0x14 *0x8005001C == 00000004
> UTSR0+4 0x18 *0x8005002C == 00000000
> UTSR0+8 0x1c *0x8005003C == 00000000
> UTSR1 0x20 *0x80050020 == 00000001
> boot> pflash 0 0xffff 1
> addr=00000000
> len=0000FFFF
> protect=00000001
> Protecting sector 00000000
> boot> qflash 2
> value = 00000000
> boot> qflash 0
> value = 00890089
> boot> qflash 0x2
> value = 00000000
> boot> qflash 0x0
> value = 00890089
> boot> qflash 000
> value = 00890089
> boot> qflash 3
> value = 00000000
> boot> qflash 2
> value = 00000000
> boot> qflash 1
> value = 00170017
> boot> boot
> booting flash...
> boot_magic=EA0003FE
> kernel_image_first_word=00000000
> Corrupt kernel image
> boot> ?
> Available Commands:
> ?
> help <command>
> <command> help
> boot [flash|nfsroot|altkernel]
> display
> load [kernel | ramdisk | bootldr | params | usercode | ram]
> save [all | bootldr | debugger | flash | kernel | ramdisk | params |
> usercode |
> world | altkernel]
> peek ram|flash|int|short|byte <addr>
> poke ram|flash|int|short|byte <addr>
> breakpoint
> qflash [cfi|id] <waddr> -- query flash
> eflash <sectoraddr>|chip -- erase sector or chip
> pflash <sectoraddr>|chip -- protect sector or chip
> physaddr <vaddr> -- returns <paddr>
> call <addr> args
> jump <addr>
> set <param> <value>
> show [<param>]
> evalparams
> params [eval|show|save|reset]
> flash_type <flashtype>
> boot> show
> baudrate=57600;YÁ~;YÁEUR;YÁÀ;YÁdðÀ
> os=autoselect
> boot_type=flash
> download_kernel=0x00000000
> kernel_in_ram=0x00000000
> force_unzip=0x00000000
> noerase=0x00000000
> override=0x00000000
> entry=0xC0000000
> copy_ramdisk=0x00000000
> dram_size=0x02000000
> dcache_enabled=0x00000001
> icache_enabled=0x00000001
> memc_ctrl_reg=0x0000110C
> serial_number=0x000000FF
> system_rev=0x00000001
> linuxargs= root=/dev/ram initrd ramdisk_size=8192
> hostname=
> ipaddr=
> gateway=
> netmask=
> nfs_server_address=
> nfsroot=
> xmodem=0x00000001
> verbose=0x00000000
> boot> qflash 2
> value = 00000000
> boot> boot
> booting flash...
> boot_magic=EA0003FE
> kernel_image_first_word=00000000
> Corrupt kernel image
> boot> pflash 0 0xffff 1
> addr=00000000
> len=0000FFFF
> protect=00000001
> Protecting sector 00000000
> boot> qflash 2
> value = 00000000
> boot> peek flash 0x20
> addr = 00000020
> value = 646C7462
> boot> peek flash 2
> addr = 00000002
> value = EA00008E
> boot>
> _______________________________________________
> Familiar mailing list
> Familiar@handhelds.org
> http://handhelds.org/mailman/listinfo/familiar
> irc://irc.openprojects.net #familiar
>
Received on Wed Jun 13 11:19:57 2001
This archive was generated by hypermail 2.1.8 : Tue May 04 2004 - 09:38:26 EDT