Commit Graph

3 Commits

Author SHA1 Message Date
Jiwei.Fu
2abe654c77 AIR-12331: neutron: Merge dtcm and dtcm-ring buffer together
neutron requires more memory to support large size firmware, merge
dtcm and dtcm-ring buffer for larger contiguous memory.

Signed-off-by: Jiwei.Fu <jiwei.fu@nxp.com>
Reviewed-by: Forrest Shi <xuelin.shi@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Acked-by: Jason Liu <jason.hui.liu@nxp.com>
2024-11-19 16:15:29 +08:00
Jiwei Fu
11212ace7b LF-10551-8: neutron_rproc: add power-domains and enable pm_runtime
If neutron NPU is powered off, kernel will crash when calling probe()->neutron_rproc_addr_init()->writel(),
power up the NPU via power-management interface before calling neutron_rproc_addr_init() in probe().

This patch ensures that there are no erros when probing this rproc driver,
the full PM function is available in neutron driver (drivers/staging/neutron).
Without this patch, we would observe the following crash issue if NPU is power off.

[    1.217714] Hardware name: NXP i.MX95 19X19 board (DT)
[    1.217716] Call trace:
[    1.217718]  dump_backtrace+0x94/0xec
[    1.217726]  show_stack+0x18/0x24
[    1.217731]  dump_stack_lvl+0x48/0x60
[    1.217736]  dump_stack+0x18/0x24
[    1.217740]  panic+0x318/0x370
[    1.217745]  nmi_panic+0x8c/0x90
[    1.217749]  arm64_serror_panic+0x6c/0x78
[    1.217752]  arm64_is_fatal_ras_serror+0x3c/0xb4
[    1.217756]  do_serror+0x60/0x78
[    1.217759]  el1h_64_error_handler+0x34/0x4c
[    1.217765]  el1h_64_error+0x64/0x68
[    1.217768]  rproc_add+0x0/0x17c
[    1.217773]  platform_probe+0x68/0xd8
[    1.217779]  really_probe+0x110/0x280
[    1.217783]  __driver_probe_device+0x78/0x12c
[    1.217787]  driver_probe_device+0x3c/0x118
[    1.217790]  __driver_attach+0x74/0x124
[    1.217794]  bus_for_each_dev+0x78/0xe0
[    1.217797]  driver_attach+0x24/0x30
[    1.217800]  bus_add_driver+0xe4/0x1e8
[    1.217803]  driver_register+0x60/0x128
[    1.217807]  __platform_driver_register+0x28/0x34
[    1.217811]  neutron_rproc_driver_init+0x1c/0x28
[    1.217818]  do_one_initcall+0x70/0x1b8
[    1.217821]  kernel_init_freeable+0x1dc/0x2a4
[    1.217827]  kernel_init+0x24/0x12c
[    1.217831]  ret_from_fork+0x10/0x20

Signed-off-by: Jiwei Fu <jiwei.fu@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2023-12-06 10:45:55 +08:00
Jiwei Fu
0a2106439d LF-10551-1: drivers: remoteproc: add neutron remote-proc driver
NXP Neutron Neural Processing Unit (NPU) is a highly scalable accelerator
providing machine learning (ML) acceleration.

The Neutron NPU firmware is loaded via the remote-proc framework.

Signed-off-by: Jiwei Fu <jiwei.fu@nxp.com>
Acked-by: Peng Fan <peng.fan@nxp.com>
2023-12-04 14:41:54 +08:00