[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <27148ac2-2a92-5536-d886-2c0971ab43d9@xenosoft.de>
Date: Tue, 15 Jan 2019 11:55:25 +0100
From: Christian Zigotzky <chzigotzky@...osoft.de>
To: Christoph Hellwig <hch@....de>
Cc: linux-arch@...r.kernel.org,
Darren Stevens <darren@...vens-zone.net>,
linux-kernel@...r.kernel.org, Julian Margetson <runaway@...dw.ms>,
linux-mm@...ck.org, iommu@...ts.linux-foundation.org,
Paul Mackerras <paulus@...ba.org>,
Olof Johansson <olof@...om.net>, linuxppc-dev@...ts.ozlabs.org
Subject: Re: use generic DMA mapping code in powerpc V4
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
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
Powered by blists - more mailing lists