fwm

A command of the separate bcma command line; see Commands for other chip families.

Firmware Management command.

fwm query <fpkg_file>
load [Processor=<procname>[.<inst>]] <fpkg_file> [<op1> [<op2> ...]]
exec <fwname>[.<inst>] [<op1> [<op2> ...]]
status
start <procname>[.<inst>]
stop <procname>[.<inst>]
reset <procname>[.<inst>]
read [Format=x1|x2|x4] <procname>[.<inst>] <addr>
write [Format=x1|x2|x4] <procname>[.<inst>] <addr> <value>
dump [Format=x1|x2|x4] <procname>[.<inst>] <addr> <count>
log <procname>[.<inst>] init|showheap show

Built-in help

query  - Query information contained in the specified firmware package
         file. For example, firmware name, version, supported chips,
         image format, supported operations for this firmware, etc.

load   - Load firmware contained in the specified firmware package to
         the processor and optionally perform operations after loaded.
         If a processor instance is specified by Processor=, it will
         be loaded to that processor; otherwise, default processor
         specified in the firmware package file will be used instead.
         The processor should be specified in the format of
         <processor>[.<instance>]. For convenience, processor instance
         is not case sensitive and '.0' can be omitted for the first
         instance. For example, M0 and m0.0 refer to the same thing.
         Optional operations can be specified following the package
         file. The operations will be performed right after firmware
         is loaded. This is to avoid the delay with separate commands.
         See help of sub command 'exec' for more details on
         operations.

exec   - Perform specified operation(s) on a loaded firmware instance.
         Operations are provided by firmware feature for controlling
         the behavior, such as start it or change a parameter.
         An operation can be supplied with an optional integer
         argument (depending on the design of the operation) in the
         format of <operation>[=<value>]. Default value is 0 if not
         specified. For example, fwm exec LED.0 mode=1.
         Multiple operations can be specified in the same command and
         they will be executed in the order they're specified.
         Operations are performed on the specified firmware instance
         in the format of <firmware>[.<instance>]. For convenience,
         the firmware instance is not case sensitive and '.0' can be
         omitted for the first instance. For example, LED or led.0.
         Information on loaded firmware instances can be retrieved by
         sub command 'status'. If no operation is specifed, available
         operations provided by the specified firmware will be listed.

status - Show status of all processors and loaded firmware instances.

start  - Start the specified processor.
         See 'load' for the format to specify the processor.
         To get a list of available processor instances, use 'status'.
         Note that these commands that work with processors directly
         are provided for debugging purpose. To start/stop firmware or
         control firmware behavior, use operations provided by the
         firmware with 'exec' or 'load' command.

stop   - Stop the specified processor.
         See 'load' for the format to specify the processor.

reset  - Reset the specified processor.
         See 'load' for the format to specify the processor.

read   - Read a value from memory of the specified processor.
         <addr> is the address to read in processor view.
         Format=x1: in bytes (8-bit).
         Format=x2: in halfwords (16-bit).
         Format=x4: in words (32-bit). It's the default.
         See 'load' for the format to specify the processor.

write  - Write a value to memory of the specified processor.
         See 'read' for the format of <addr> and data width.
         See 'load' for the format to specify the processor.

dump   - Dump values from memory of the specified processor.
         See 'read' for the format of <addr> and data width.
         See 'load' for the format to specify the processor.
log    - Initialize and show debug log for the specified processor.
         The logging interface should normally be initialized before
         processor is started.heap   - Show the status of all the heaps.

Built-in examples

query firmware.fpkg
load firmware.fpkg start startmsg
load p=R5.0 firmware.fpkg start
exec led
exec LED start
exec led.1 disable mode=2 enable
status
start CM0.0
stop cm0.1
reset CM0
read CM0.0 0x1000
write f=x1 m0 0x1000 0xaa
dump Format=x2 M0 0x1000 0x100
log cm0.3 init
log cm0.3 showheap show