Next step:
21074ef03c0816ae158721a78cabe9035938dddd (powerpc/dma: use the generic direct mapping bypass)
Code: Select all
git clone git://git.infradead.org/users/hch/misc.git -b powerpc-dma.6 a
Code: Select all
git checkout 21074ef03c0816ae158721a78cabe9035938dddd
Link to the Git:
powerpc-dma.6
I was able to compile the kernel for the AmigaOne X1000 (Nemo board with PA Semi PA6T-1682M SoC). It boots but the PA Semi onboard ethernet doesn't work.
dmesg:
Code: Select all
[ 12.698063] pasemi_mac 0000:00:14.3 enp0s20f3: renamed from eth0
[ 16.516966] IPv6: ADDRCONF(NETDEV_UP): enp0s20f3: link is not ready
[ 16.521025] pci 0000:00:1a.0: overflow 0x000000026a587802+1646 of DMA mask ffffffff bus mask 0
[ 16.521047] WARNING: CPU: 0 PID: 2318 at kernel/dma/direct.c:43 .dma_direct_map_page+0x11c/0x200
[ 16.521049] Modules linked in:
[ 16.521056] CPU: 0 PID: 2318 Comm: NetworkManager Not tainted 5.0.0-rc2-2_A-EON_AmigaOne_X1000_Nemo-54576-g21074ef-dirty #1
[ 16.521059] NIP: c00000000010395c LR: c000000000103a30 CTR: 0000000000000000
[ 16.521062] REGS: c00000026a1a29a0 TRAP: 0700 Not tainted (5.0.0-rc2-2_A-EON_AmigaOne_X1000_Nemo-54576-g21074ef-dirty)
[ 16.521064] MSR: 900000000202b032 <SF,HV,VEC,EE,FP,ME,IR,DR,RI> CR: 22002442 XER: 20000000
[ 16.521074] IRQMASK: 0
GPR00: c000000000103a30 c00000026a1a2c30 c000000001923f00 0000000000000052
GPR04: c00000026f206778 c00000026f20d458 c000000001ab1178 7063693a30303030
GPR08: 0000000000000007 0000000000000000 0000000000000000 0000000000000010
GPR12: 3a30303a31612e30 c000000001b10000 0000000000a79020 0000000000ace140
GPR16: 00000000fffdd958 0000000000000000 0000000000000000 c00000026be92220
GPR20: 0000000000000000 c00000026a470000 0000000000000000 0000000000000000
GPR24: 0000000000000800 c00000026a1c0000 c00000026bc69280 c00000026a1c0000
GPR28: c000000277b1f588 000000000000066e c00000026d3c68b0 0000000000000802
[ 16.521111] NIP [c00000000010395c] .dma_direct_map_page+0x11c/0x200
[ 16.521114] LR [c000000000103a30] .dma_direct_map_page+0x1f0/0x200
[ 16.521116] Call Trace:
[ 16.521120] [c00000026a1a2c30] [c000000000103a30] .dma_direct_map_page+0x1f0/0x200 (unreliable)
[ 16.521126] [c00000026a1a2cd0] [c00000000099b84c] .pasemi_mac_replenish_rx_ring+0x12c/0x2a0
[ 16.521131] [c00000026a1a2da0] [c00000000099dcc4] .pasemi_mac_open+0x384/0x7c0
[ 16.521137] [c00000026a1a2e40] [c000000000c6f4e4] .__dev_open+0x134/0x1e0
[ 16.521142] [c00000026a1a2ee0] [c000000000c6fa4c] .__dev_change_flags+0x1bc/0x210
[ 16.521147] [c00000026a1a2f90] [c000000000c6fae8] .dev_change_flags+0x48/0xa0
[ 16.521153] [c00000026a1a3030] [c000000000c8c8ec] .do_setlink+0x3dc/0xf60
[ 16.521158] [c00000026a1a31b0] [c000000000c8dde4] .__rtnl_newlink+0x5e4/0x900
[ 16.521163] [c00000026a1a35f0] [c000000000c8e16c] .rtnl_newlink+0x6c/0xb0
[ 16.521167] [c00000026a1a3680] [c000000000c89898] .rtnetlink_rcv_msg+0x2e8/0x3d0
[ 16.521172] [c00000026a1a3760] [c000000000cc0ff0] .netlink_rcv_skb+0x120/0x170
[ 16.521177] [c00000026a1a3820] [c000000000c87378] .rtnetlink_rcv+0x28/0x40
[ 16.521181] [c00000026a1a38a0] [c000000000cc0458] .netlink_unicast+0x208/0x2f0
[ 16.521186] [c00000026a1a3950] [c000000000cc0a08] .netlink_sendmsg+0x348/0x460
[ 16.521190] [c00000026a1a3a30] [c000000000c387d4] .sock_sendmsg+0x44/0x70
[ 16.521195] [c00000026a1a3ab0] [c000000000c3a7fc] .___sys_sendmsg+0x30c/0x320
[ 16.521199] [c00000026a1a3ca0] [c000000000c3c414] .__sys_sendmsg+0x74/0xf0
[ 16.521204] [c00000026a1a3d90] [c000000000cb4e00] .__se_compat_sys_sendmsg+0x40/0x60
[ 16.521210] [c00000026a1a3e20] [c00000000000a21c] system_call+0x5c/0x70
[ 16.521212] Instruction dump:
[ 16.521215] 60000000 f8610070 3d20ffff 6129fffe 79290020 e8e70000 7fa74840 409d00b8
[ 16.521222] 3d420001 892acb59 2f890000 419e00b8 <0fe00000> 382100a0 3860ffff e8010010
[ 16.521231] ---[ end trace 2129e4121bbdd0e9 ]---
I wasn't able to compile it for the AmigaOne X5000 (Cyrus+ board with Qoriq P5020 SoC). Error message:
Code: Select all
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CC arch/powerpc/sysdev/fsl_pci.o
arch/powerpc/sysdev/fsl_pci.c: In function 'fsl_pci_dma_set_mask':
arch/powerpc/sysdev/fsl_pci.c:142:21: error: 'dma_nommu_ops' undeclared (first use in this function)
set_dma_ops(dev, &dma_nommu_ops);
^
arch/powerpc/sysdev/fsl_pci.c:142:21: note: each undeclared identifier is reported only once for each function it appears in
scripts/Makefile.build:276: recipe for target 'arch/powerpc/sysdev/fsl_pci.o' failed
make[2]: *** [arch/powerpc/sysdev/fsl_pci.o] Error 1
scripts/Makefile.build:492: recipe for target 'arch/powerpc/sysdev' failed
make[1]: *** [arch/powerpc/sysdev] Error 2
Makefile:1049: recipe for target 'arch/powerpc' failed
make: *** [arch/powerpc] Error 2