Xmart = "old" en7523 NPU (this is also shared with the AN7552/AN7563 but with different initialization)
Xessor = "new" NPU (7581)
And there seem to be 2 types of NPU cores.
Xmart = "old" en7523 NPU (this is also shared with the AN7552/AN7563 but with different initialization)
Xessor = "new" NPU (7581)
I had already noticed that, using the exs27 code:
https://sirherobrine23.com.br/airoha_en7523/netgear_exs27/src/commit/0e0066b1750dee9dbbe507c751c8cc3e78826c01/target/linux/airoha/files/arch/arm/mach-econet/ecnt_npu.c#L137-L150
boot core is different
https://sirherobrine23.com.br/airoha_en7523/netgear_exs27/src/commit/0e0066b1750dee9dbbe507c751c8cc3e78826c01/target/linux/airoha/files/arch/arm/mach-econet/ecnt_npu.c#L284-L347
No idea. But with NPU support coming to AN7581 we should wait for that to be merged and stable. When that is done the EN7523 driver and integration can use similar infrastructure.
Currently it is not working on the W1700 so it is not mature enough.
No idea. But with NPU support coming to AN7581 we should wait for that to be merged and stable. When that is done the EN7523 driver and integration can use similar infrastructure.
Currently it is not working on the W1700 so it is not mature enough.
I was having trouble using the SDK's memory allocation size, i had to revert to the size specified by the AN7581. The entire system was crashing with the SDK's size
I was having trouble using the SDK's memory allocation size, i had to revert to the size specified by the AN7581. The entire system was crashing with the SDK's size
I found this gdma reference in the npu test code:
https://sirherobrine23.com.br/tplink_gpl/tplink-xx530v_v1/src/commit/0932f2c9b3e2f753d161f147e60fc59c0866a9ee/sdk/en7529/release_bsp/UNION_EN7523_GLIBC_7915_7915_ActiveEthWan_demo/modules/private/NPU/host/npu_host_test.c#L98-L100
https://sirherobrine23.com.br/tplink_gpl/tplink-xx530v_v1/src/commit/0932f2c9b3e2f753d161f147e60fc59c0866a9ee/sdk/en7529/release_bsp/UNION_EN7523_GLIBC_7915_7915_ActiveEthWan_demo/modules/private/NPU/host/npu_host_test.c#L735-L752
https://sirherobrine23.com.br/tplink_gpl/tplink-xx230v/src/commit/4d76b590398d1e510a2a893f6fc4c69bfedb5768/sdk/en7529/bootloader/Uboot/u-boot-2014.04-rc1/arch/arm/cpu/armv7/en7523/cpu_bus_test.c
The 384k block is used for read-only code and data and the 16k block is for rw data (heap etc).
The cores have access to 2 sram blocks:
npu_384k_sram : ORIGIN = 0x1e800000, LENGTH = 0x00060000
npu_16k_sram : ORIGIN = 0x1e900000, LENGTH = 0x00004000
The 384k block is used for read-only code and data and the 16k block is for rw data (heap etc).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
I think the amount of NPU cores should be moved out to the dts, maybe even other parameters. Other models have a varying amount of cores.
type this:
And there seem to be 2 types of NPU cores.
Xmart = "old" en7523 NPU (this is also shared with the AN7552/AN7563 but with different initialization)
Xessor = "new" NPU (7581)
I had already noticed that, using the exs27 code:
0e0066b175/target/linux/airoha/files/arch/arm/mach-econet/ecnt_npu.c (L137-L150)boot core is different
0e0066b175/target/linux/airoha/files/arch/arm/mach-econet/ecnt_npu.c (L284-L347)How problematic could this become when updating to
request_firmware_nowaiton the NPU?No idea. But with NPU support coming to AN7581 we should wait for that to be merged and stable. When that is done the EN7523 driver and integration can use similar infrastructure.
Currently it is not working on the W1700 so it is not mature enough.
I was having trouble using the SDK's memory allocation size, i had to revert to the size specified by the AN7581. The entire system was crashing with the SDK's size
You need to get them from the original firmware. Or use newer NPU bins. I'll add it on my TODO list to figure out the memory areas.
I'm using the rootfs firmware from the xx230v; I'm not using one from somewhere else that provides it
i get this npu files from xx230v v1 and xx530v v1
Sirherobrine23 referenced this issue2026-01-24 11:08:02 +00:00
I found this gdma reference in the npu test code:
4d76b59039/sdk/en7529/bootloader/Uboot/u-boot-2014.04-rc1/arch/arm/cpu/armv7/en7523/cpu_bus_test.cThe Generic DMA controller (and most of the hardware) can address the NPU sram.
The referenced code is basically a fast (uncached) memcpy.
The NPU cores are of these configurations:
RISCV_ARCH := rv32imac
RISCV_ABI := ilp32
The cores have access to 2 sram blocks:
npu_384k_sram : ORIGIN = 0x1e800000, LENGTH = 0x00060000
npu_16k_sram : ORIGIN = 0x1e900000, LENGTH = 0x00004000
The 384k block is used for read-only code and data and the 16k block is for rw data (heap etc).