cp command¶
Synopsis¶
cp source target count
cp.b source target count
cp.w source target count
cp.l source target count
cp.q source target count
Description¶
The cp command is used to copy count chunks of memory from the source address to the target address. If the target address points to NOR flash, the flash is programmed.
The number bytes in one chunk is defined by the suffix defaulting to 4 bytes:
suffix |
chunk size |
---|---|
.b |
1 byte |
.w |
2 bytes |
.l |
4 bytes |
.q |
8 bytes |
<none> |
4 bytes |
- source
source address, hexadecimal
- target
target address, hexadecimal
- count
number of words to be copied, hexadecimal
Examples¶
The example device has a NOR flash where the lower part of the flash is protected. We first copy to RAM, then to unprotected flash. Last we try to write to protectd flash.
=> mtd list
List of MTD devices:
* nor0
- device: flash@0
- parent: root_driver
- driver: cfi_flash
- path: /flash@0
- type: NOR flash
- block size: 0x20000 bytes
- min I/O: 0x1 bytes
- 0x000000000000-0x000002000000 : "nor0"
=> cp.b 4020000 5000000 200000
=> cp.b 4020000 1e00000 20000
Copy to Flash... done
=> cp.b 4020000 0 20000
Copy to Flash... Can't write to protected Flash sectors
=>
Configuration¶
The cp command is available if CONFIG_CMD_MEMORY=y. Support for 64 bit words (cp.q) depends on CONFIG_MEM_SUPPORT_64BIT_DATA=y. Copying to flash depends on CONFIG_MTD_NOR_FLASH=y.
Return value¶
The return value $? is set to 0 (true) if the command was successfully, 1 (false) otherwise.