lkml.org 
[lkml]   [2019]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: use generic DMA mapping code in powerpc V4
From
Date
Next step: 21074ef03c0816ae158721a78cabe9035938dddd (powerpc/dma: use 
the generic direct mapping bypass)

git clone git://git.infradead.org/users/hch/misc.git -b powerpc-dma.6 a

git checkout 21074ef03c0816ae158721a78cabe9035938dddd

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:

[   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:

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

-- Christian


On 15 January 2019 at 09:49AM, Christian Zigotzky wrote:
> Next step: 63a6e350e037a21e9a88c8b710129bea7049a80f (powerpc/dma: use
> the dma_direct mapping routines)
>
> git clone git://git.infradead.org/users/hch/misc.git -b powerpc-dma.6 a
>
> git checkout 63a6e350e037a21e9a88c8b710129bea7049a80f
>
> Error message:
>
> arch/powerpc/kernel/dma.o:(.data.rel.ro+0x0): undefined reference to
> `__dma_nommu_alloc_coherent'
> arch/powerpc/kernel/dma.o:(.data.rel.ro+0x8): undefined reference to
> `__dma_nommu_free_coherent'
> Makefile:1027: recipe for target 'vmlinux' failed
> make: *** [vmlinux] Error 1
>
> -- Christian
>
>
> On 15 January 2019 at 09:07AM, Christian Zigotzky wrote:
>> Next step: 240d7ecd7f6fa62e074e8a835e620047954f0b28 (powerpc/dma: use
>> the dma-direct allocator for coherent platforms)
>>
>> git clone git://git.infradead.org/users/hch/misc.git -b powerpc-dma.6 a
>>
>> git checkout 240d7ecd7f6fa62e074e8a835e620047954f0b28
>>
>> Link to the Git:
>> http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/powerpc-dma.6
>>
>> env LANG=C make CROSS_COMPILE=powerpc-linux-gnu- ARCH=powerpc zImage
>>
>> Error message:
>>
>> arch/powerpc/kernel/dma.o:(.data.rel.ro+0x0): undefined reference to
>> `__dma_nommu_alloc_coherent'
>> arch/powerpc/kernel/dma.o:(.data.rel.ro+0x8): undefined reference to
>> `__dma_nommu_free_coherent'
>> Makefile:1027: recipe for target 'vmlinux' failed
>> make: *** [vmlinux] Error 1
>>
>> -- Christian
>>
>>
>> On 12 January 2019 at 7:14PM, Christian Zigotzky wrote:
>>> Next step: 4558b6e1ddf3dcf5a86d6a5d16c2ac1600c7df39 (swiotlb: remove
>>> swiotlb_dma_supported)
>>>
>>> git clone git://git.infradead.org/users/hch/misc.git -b powerpc-dma.6 a
>>>
>>> git checkout 4558b6e1ddf3dcf5a86d6a5d16c2ac1600c7df39
>>>
>>> Output:
>>>
>>> You are in 'detached HEAD' state. You can look around, make
>>> experimental
>>> changes and commit them, and you can discard any commits you make in
>>> this
>>> state without impacting any branches by performing another checkout.
>>>
>>> If you want to create a new branch to retain commits you create, you
>>> may
>>> do so (now or later) by using -b with the checkout command again.
>>> Example:
>>>
>>>   git checkout -b <new-branch-name>
>>>
>>> HEAD is now at 4558b6e... swiotlb: remove swiotlb_dma_supported
>>>
>>> ----
>>>
>>> Link to the Git:
>>> http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/powerpc-dma.6
>>>
>>> Results: PASEMI onboard ethernet (X1000) works and the X5000 (P5020
>>> board) boots. I also successfully tested sound, hardware 3D
>>> acceleration, Bluetooth, network, booting with a label etc. The
>>> uImages work also in a virtual e5500 quad-core QEMU machine.
>>>
>>> -- Christian
>>>
>>>
>>> On 11 January 2019 at 03:10AM, Christian Zigotzky wrote:
>>>> Next step: 891dcc1072f1fa27a83da920d88daff6ca08fc02 (powerpc/dma:
>>>> remove dma_nommu_dma_supported)
>>>>
>>>> git clone git://git.infradead.org/users/hch/misc.git -b
>>>> powerpc-dma.6 a
>>>>
>>>> git checkout 891dcc1072f1fa27a83da920d88daff6ca08fc02
>>>>
>>>> Output:
>>>>
>>>> Note: checking out '891dcc1072f1fa27a83da920d88daff6ca08fc02'.
>>>>
>>>> You are in 'detached HEAD' state. You can look around, make
>>>> experimental
>>>> changes and commit them, and you can discard any commits you make
>>>> in this
>>>> state without impacting any branches by performing another checkout.
>>>>
>>>> If you want to create a new branch to retain commits you create,
>>>> you may
>>>> do so (now or later) by using -b with the checkout command again.
>>>> Example:
>>>>
>>>> git checkout -b <new-branch-name>
>>>>
>>>> HEAD is now at 891dcc1... powerpc/dma: remove dma_nommu_dma_supported
>>>>
>>>> ---
>>>>
>>>> Link to the Git:
>>>> http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/powerpc-dma.6
>>>>
>>>> Results: PASEMI onboard ethernet works and the X5000 (P5020 board)
>>>> boots. I also successfully tested sound, hardware 3D acceleration,
>>>> Bluetooth, network, booting with a label etc. The uImages work also
>>>> in a virtual e5500 quad-core QEMU machine.
>>>>
>>>> -- Christian
>>>>
>>>>
>>>> On 09 January 2019 at 10:31AM, Christian Zigotzky wrote:
>>>>> Next step: a64e18ba191ba9102fb174f27d707485ffd9389c (powerpc/dma:
>>>>> remove dma_nommu_get_required_mask)
>>>>>
>>>>> git clone git://git.infradead.org/users/hch/misc.git -b
>>>>> powerpc-dma.6 a
>>>>>
>>>>> git checkout a64e18ba191ba9102fb174f27d707485ffd9389c
>>>>>
>>>>> Link to the Git:
>>>>> http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/powerpc-dma.6
>>>>>
>>>>> Results: PASEMI onboard ethernet works and the X5000 (P5020 board)
>>>>> boots. I also successfully tested sound, hardware 3D acceleration,
>>>>> Bluetooth, network, booting with a label etc. The uImages work
>>>>> also in a virtual e5500 quad-core QEMU machine.
>>>>>
>>>>> -- Christian
>>>>>
>>>>>
>>>>> On 05 January 2019 at 5:03PM, Christian Zigotzky wrote:
>>>>>> Next step: c446404b041130fbd9d1772d184f24715cf2362f (powerpc/dma:
>>>>>> remove dma_nommu_mmap_coherent)
>>>>>>
>>>>>> git clone git://git.infradead.org/users/hch/misc.git -b
>>>>>> powerpc-dma.6 a
>>>>>>
>>>>>> git checkout c446404b041130fbd9d1772d184f24715cf2362f
>>>>>>
>>>>>> Output:
>>>>>>
>>>>>> Note: checking out 'c446404b041130fbd9d1772d184f24715cf2362f'.
>>>>>>
>>>>>> You are in 'detached HEAD' state. You can look around, make
>>>>>> experimental
>>>>>> changes and commit them, and you can discard any commits you make
>>>>>> in this
>>>>>> state without impacting any branches by performing another checkout.
>>>>>>
>>>>>> If you want to create a new branch to retain commits you create,
>>>>>> you may
>>>>>> do so (now or later) by using -b with the checkout command again.
>>>>>> Example:
>>>>>>
>>>>>>   git checkout -b <new-branch-name>
>>>>>>
>>>>>> HEAD is now at c446404... powerpc/dma: remove
>>>>>> dma_nommu_mmap_coherent
>>>>>>
>>>>>> -----
>>>>>>
>>>>>> Link to the Git:
>>>>>> http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/powerpc-dma.6
>>>>>>
>>>>>> Result: PASEMI onboard ethernet works and the X5000 (P5020 board)
>>>>>> boots.
>>>>>>
>>>>>> -- Christian
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>

\
 
 \ /
  Last update: 2019-01-15 11:56    [W:0.203 / U:0.680 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site