public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/3] drivers/sandbox: Introduce a simplified remoteproc framework
@ 2015-08-24 17:28 Nishanth Menon
  2015-08-24 17:28 ` [U-Boot] [PATCH 1/3] drivers: " Nishanth Menon
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Nishanth Menon @ 2015-08-24 17:28 UTC (permalink / raw)
  To: u-boot

Hi,

Many System on Chip(SoC) solutions are complex with multiple
processors on the same die dedicated to either general purpose of
specialized functions. Many examples do exist in today's SoCs from
various vendors. Typical examples are micro controllers such as an ARM
M3/M0 doing a offload of specific function such as event integration
or power management or controlling camera etc.

Traditionally, the responsibility of loading up such a processor with
a firmware and communication has been with a High Level Operating
System(HLOS) such as Linux. However, there exists classes of products
where Linux would need to expect services from such a processor or
the delay of Linux and operating system being able to load up such a
firmware is unacceptable.

The intent here is to introduce a simplified remoteproc framework
which can then be used to provide basic services to these remote
processors.

Nishanth Menon (3):
  drivers: Introduce a simplified remoteproc framework
  remoteproc: Introduce a sandbox dummy driver
  sandbox: Introduce dummy remoteproc nodes

 arch/sandbox/dts/test.dts                          |  13 +
 common/Kconfig                                     |   5 +
 common/Makefile                                    |   1 +
 common/cmd_remoteproc.c                            | 224 ++++++++++++
 configs/sandbox_defconfig                          |   2 +
 doc/device-tree-bindings/remoteproc/remoteproc.txt |  14 +
 doc/driver-model/remoteproc-framework.txt          | 163 +++++++++
 drivers/Kconfig                                    |   2 +
 drivers/Makefile                                   |   1 +
 drivers/remoteproc/Kconfig                         |  24 ++
 drivers/remoteproc/Makefile                        |  10 +
 drivers/remoteproc/rproc-uclass.c                  | 406 +++++++++++++++++++++
 drivers/remoteproc/sandbox_testproc.c              | 243 ++++++++++++
 include/dm/uclass-id.h                             |   1 +
 include/remoteproc.h                               |  81 ++++
 15 files changed, 1190 insertions(+)
 create mode 100644 common/cmd_remoteproc.c
 create mode 100644 doc/device-tree-bindings/remoteproc/remoteproc.txt
 create mode 100644 doc/driver-model/remoteproc-framework.txt
 create mode 100644 drivers/remoteproc/Kconfig
 create mode 100644 drivers/remoteproc/Makefile
 create mode 100644 drivers/remoteproc/rproc-uclass.c
 create mode 100644 drivers/remoteproc/sandbox_testproc.c
 create mode 100644 include/remoteproc.h

Simple test with test.dtb:
u-boot$ ./u-boot -d ./arch/sandbox/dts/test.dtb


U-Boot 2015.10-rc2-00067-g05997426fef2 (Aug 24 2015 - 17:23:58 +0000)

DRAM:  128 MiB
Using default environment

In:    serial
Out:   lcd
Err:   lcd
Net:   Net Initialization Skipped
eth0: eth at 10002000, eth5: eth at 10003000, eth1: eth at 10004000
=> help rproc
rproc - Control operation of remote processors in an SoC

Usage:
rproc  [init|list|load|start|stop|reset|ping]
		 Where:
		[addr] is a memory address
		<id> is a numerical identifier for the remote processor
		     provided by 'list' command.
		Note: Remote processors must be initalized prior to usage
		Note: Services are dependent on the driver capability
		      'list' command shows the capability of each device

	Subcommands:
	init   - Enumerate and initalize the remote processors
	list   - list available remote processors
	load <id> [addr] [size]- Load the remote processor with binary
			  image stored at address [addr] in memory
	start <id>	- Start the remote processor(must be loaded)
	stop <id>	- Stop the remote processor
	reset <id>	- Reset the remote processor
	is_running <id> - Reports if the remote processor is running
	ping <id>	- Ping the remote processor for communication

=> rproc init
=> rproc list
0 - Name:'proc_3_legacy' type:'internal memory mapped' supports: load start stop reset is_running ping 
1 - Name:'remoteproc-test-dev1' type:'internal memory mapped' supports: load start stop reset is_running ping 
2 - Name:'remoteproc-test-dev2' type:'internal memory mapped' supports: load start stop reset is_running ping 
=> rproc load 0 1 2  
Loading to 'proc_3_legacy' from address 0x00000001 size of 2 bytes
=> rproc ping 0
Pinging proc_3_legacy...
proc_3_legacy: No response.(Not started?)
=> rproc start 0
Starting proc_3_legacy...
=> rproc is_running 0
Checking if running: proc_3_legacy...
Remote processor is Running
=> rproc ping 0
Pinging proc_3_legacy...
Remote processor responds 'Pong'
=> rproc ping 1
Pinging remoteproc-test-dev1...
remoteproc-test-dev1: No response.(Not started?)
=> rproc is_running 1
Checking if running: remoteproc-test-dev1...
Remote processor is NOT Running
=> 

-- 
2.1.4

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2015-08-27 15:54 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-24 17:28 [U-Boot] [PATCH 0/3] drivers/sandbox: Introduce a simplified remoteproc framework Nishanth Menon
2015-08-24 17:28 ` [U-Boot] [PATCH 1/3] drivers: " Nishanth Menon
2015-08-25  5:04   ` Simon Glass
2015-08-25 15:44     ` Nishanth Menon
2015-08-26  2:26       ` Simon Glass
     [not found]         ` <CAGo_u6pb_BSzT0fXZ7uxoqEM1RzwKKL3dXq0wyrphAB80Yf-Nw@mail.gmail.com>
2015-08-27 15:49           ` Simon Glass
2015-08-27 15:54             ` Nishanth Menon
2015-08-24 17:28 ` [U-Boot] [PATCH 2/3] remoteproc: Introduce a sandbox dummy driver Nishanth Menon
2015-08-25  5:04   ` Simon Glass
2015-08-25 15:47     ` Nishanth Menon
2015-08-24 17:28 ` [U-Boot] [PATCH 3/3] sandbox: Introduce dummy remoteproc nodes Nishanth Menon
2015-08-25  5:04   ` Simon Glass
2015-08-25 15:47     ` Nishanth Menon
2015-08-25  5:04 ` [U-Boot] [PATCH 0/3] drivers/sandbox: Introduce a simplified remoteproc framework Simon Glass
2015-08-25 15:48   ` Nishanth Menon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox