1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
|
Geert Uytterhoeven 11:01 AM
Good morning/afternoon!
Magnus Damm 11:01 AM
Hey Geert!
Simon Horman 11:01 AM
Hi
Yoshihiro Shimoda 11:01 AM
Good afternoon! Geertsan!
Kuninori Morimoto 11:01 AM
Hi
Ulrich Hecht 11:01 AM
hello
Laurent Pinchart 11:02 AM
hello
Geert Uytterhoeven 11:02 AM
Cool, looks like it's working
Some people need pictures
Laurent Pinchart 11:03 AM
Are we having an audio conference ?
or just text ?
Geert Uytterhoeven 11:03 AM
Just text
Laurent Pinchart 11:03 AM
then why not irc ???
Geert Uytterhoeven 11:04 AM
Good question...
Ulrich Hecht 11:04 AM
i was, in fact, even prepared for video
Geert Uytterhoeven 11:04 AM
Google Hangout is good for chat archival
Laurent Pinchart 11:04 AM
so is IRC, logs are easy
and there's more screen real estate
Geert Uytterhoeven 11:04 AM
Maybe next time on irc
Laurent Pinchart 11:04 AM
GH is a toy for text chat
Geert Uytterhoeven 11:05 AM
Well, this is a first try.
Agenda for first session:
1. IPMMU,
2. SMP DT,
3. Legacy board phase out.
A. Magnus' todo list format?
Magnus Damm 11:05 AM
Oh right
Geert Uytterhoeven 11:06 AM
I'd like to limit this to 1h30, so 20' per item?
Let's start with IPMMU.
Laurent Pinchart 11:06 AM
speaking of IRC, I believe it would be interesting to create a channel for our team. can we add that to the
agenda ?
it won't take long
Simon Horman 11:07 AM
Perhaps we can tackle that last if we have time
I agree it shouldn't take long
Geert Uytterhoeven 11:08 AM
I think IPMMU is (mostly) Laurent's kettle of fish?
Laurent Pinchart 11:08 AM
yes
what would you like to know about it ?
Magnus Damm 11:09 AM
we want to define tasks
Geert Uytterhoeven 11:09 AM
Apparently there's an issue with using IPMMU with (some) devices, cfr. Shimodasan's email
Magnus Damm 11:09 AM
and some back ground would be nice too
Geert Uytterhoeven 11:09 AM
What devices do we know IPMMU works with?
Laurent Pinchart 11:10 AM
it's not an IPMMU issue
it's a DMAC issue
we know about one IPMMU issue
Geert Uytterhoeven 11:10 AM
What devices do we know IPMMU doesn't work with?
Laurent Pinchart 11:10 AM
or rather one DMAC + IPMMU issue
Geert Uytterhoeven 11:10 AM
So I should have written IPMMU/DMAC
Laurent Pinchart 11:10 AM
in that DMAC channel 0 doesn't work properly with the IPMMU
I've raised that a long time ago
and got no feedback
Geert Uytterhoeven 11:11 AM
But we have a workaround for that, right?
Laurent Pinchart 11:11 AM
we don't know whether it has been fixed on Gen3
the workaround is to not use channel 0
so we're losing hardware
the second issue that Shimodasan raised is not caused by the IPMMU itself
Geert Uytterhoeven 11:12 AM
It's integration DMAC/IPMMU?
Laurent Pinchart 11:12 AM
but by the DMAC driver configuring the DMAC to issue bus master requests to a physical address even when
the accesses are translated by the IPMMU
it's a DMAC driver issue
or possibly a DMA slave driver issue
Geert Uytterhoeven 11:13 AM
Do you know how other DMAC drivers handle this? I'd assume IPMMU or not should be transparent.
Apparently all DMA slave drivers use the physical address when accessing device registers.
Laurent Pinchart 11:14 AM
as far as I can see, they don't, they're all broken
Magnus Damm 11:14 AM
From my side it looks like none of our DMA Engine slave drivers can work with IPMMU asis today, right?
But it may "only" be an issue of fixing the DMAC driver
Laurent Pinchart 11:14 AM
correct
Magnus Damm 11:15 AM
thanks for confirming my suspicion
Laurent Pinchart 11:15 AM
the DMA engine API passes the slave address as a dma_addr_t
but our drivers pass a physical address
so either we map the physical address to a DMA address in the slave drivers
or we modify the DMA engine API to pass a phys_addr_t and map the address in the DMAC driver
Geert Uytterhoeven 11:16 AM
yes, dma_slave_config uses dma_addr_t. but the docs say it's a physical address. And it's been like that since
its introduction
Magnus Damm 11:17 AM
it looks to me like the DMA Engine slave drivers are supposed to perform something similar to ioremap() to get
a virtual bus address
I think PCI device drivers tend to do something like that
but not for DMA Engine purpose
Laurent Pinchart 11:18 AM
the API documentation is incoherent
we first need to define what API we need
and then to fix the side that is broken
Magnus Damm 11:19 AM
sounds like a good plan
Geert Uytterhoeven 11:19 AM
I'm wondering why nobody else has that problem.
Magnus Damm 11:19 AM
we may want to cook up a prototype too so we can check if we can get it working at all
Geert Uytterhoeven 11:20 AM
At least on PowerPC/Cell, the IOMMU is mandatory.
Magnus Damm 11:20 AM
No one is using DMA Engine with IOMMU?
Geert Uytterhoeven 11:20 AM
On PS3, that was hidden by the hypervisor.
But on other Cell platorms, it should apply.
Magnus Damm 11:20 AM
Onchip devices with bus mastering capability is kind of common, right?
Geert Uytterhoeven 11:21 AM
spidernet doesn't use dma engine config (only dma to ring buffers)
Laurent Pinchart 11:21 AM
it could be that on some systems the DMA engine can bypass the IOMMU when it accesses slave devices, I
don't know
Geert Uytterhoeven 11:21 AM
Looking for other cell drivers...
Yoshihiro Shimoda 11:21 AM
I'm not sure but IOMMU ML is discussing PCI enviromnet
http://lists.linuxfoundation.org/pipermail/iommu/2015May/013052.html
Magnus Damm 11:22 AM
dma_map_resource()
Geert Uytterhoeven 11:22 AM
yep
Magnus Damm 11:22 AM
maybe similar to ioremap() but for devices?
Laurent Pinchart 11:22 AM
we don't need to map the whole resource, just part of it in our case
Magnus Damm 11:22 AM
right
Laurent Pinchart 11:23 AM
but in practice we can't map areas smaller than a page anyway
Geert Uytterhoeven 11:23 AM
indeed
Laurent Pinchart 11:23 AM
which, from an isolation point of view, is an issue
if we want to isolate devices, especially in virtual environment, we need to use PIO
Magnus Damm 11:23 AM
we will get a whole ton of these issues with security and virtualization
but lets save those for later
Geert Uytterhoeven 11:24 AM
I don't see any devices where we need a granularity smaller than 4 KiB?
Laurent Pinchart 11:24 AM
all of them ?
we're talking about DMA access to a hardware register
Magnus Damm 11:25 AM
i thought we sort of assigned one side at a time for the DMA API
so the CPU and the IOMMU should not be able to map at the same time
Geert Uytterhoeven 11:26 AM
Yes. What's the problem with accessing the other registers in the register block? It's the same device.
Magnus Damm 11:26 AM
writecombining?
Laurent Pinchart 11:26 AM
can you guarantee that the 4kB around the hardware register will always belong to the same device ?
Magnus Damm 11:26 AM
perhaps depends on the topology?
i think we can assume that
Geert Uytterhoeven 11:26 AM
I had a quick look at r8a7791.dtsi
(before I said "I don't see any devices where we need a granularity smaller than 4 KiB?")
CPU uses the plain MMU
DMA uses the IOMMU
Magnus Damm 11:27 AM
I think we can assume they are pagealigned
Geert Uytterhoeven 11:27 AM
Both can map the same register block ("4 KiB") at the same time
If a VM can use e.g. QSPI, it can map the registers using both MMU and IOMMU.
That's the idea, right?
Laurent Pinchart 11:28 AM
anyway, that's not an API issue, it's a hardware design issue
if multiple devices share the same 4kB page there's nothing we can do
Magnus Damm 11:28 AM
right
Laurent Pinchart 11:28 AM
and we don't need to take that into account in the API
Geert Uytterhoeven 11:28 AM
If the OS implementer is too stupid to DMA to other QSPI registers, that's his problem. He can write to these
registers using PIO too
Laurent Pinchart 11:29 AM
any other question regarding the IPMMU isssue ?
Magnus Damm 11:29 AM
i have one about the API
not about stupid users in virtualized environments
but the DMA API where I believe the "user" of a certain device is passed around and can either be the CPU or
the device
not both at the same time
so if we have a device using IOMMU with DMAC to access the hardware then is it OK to access other control
registers from the CPU?
Laurent Pinchart 11:31 AM
all the mappings will be noncacheable, so that's fine
Magnus Damm 11:32 AM
but the API described by Documentation/DMAAPI.txt allows more detailed control than that
but yes, we can treat it in a simple way for now, and more advanced usage may require different 4K pages for
different I/O areas within the save device
and in such case our hardware design may not be good enough
but shall we leave that for later?
Laurent Pinchart 11:34 AM
I'm not sure to see where the problem is
so let's leave it for later
Magnus Damm 11:34 AM
good
Laurent Pinchart 11:35 AM
no other question ?
Magnus Damm 11:35 AM
what needs to be done?
Laurent Pinchart 11:36 AM
I was going to mention that
action points for this item ?
Magnus Damm 11:36 AM
I think we need to cook up some prototype code
Laurent Pinchart 11:36 AM
1. finally get feedback from the hardware developers regarding the IPMMU + DMAC channel 0 issue
Magnus Damm 11:36 AM
to see if we can get _anything_ working at all
(haha, good luck)
Laurent Pinchart 11:37 AM
2. discuss API changes on the dmaengine mailing list
3. fix the code
1. is for Magnus
Magnus Damm 11:37 AM
I don't think so
if for anyone it would be the "Renesas interface person"
Geert Uytterhoeven 11:37 AM
Morimotosan?
Simon Horman 11:37 AM
I thought we agreed not to assign people to taks
Laurent Pinchart 11:38 AM
congratulations, you've just been appointed as the Renesas interface person !
Yoshihiro Shimoda 11:38 AM
I will do the 1.
Geert Uytterhoeven 11:38 AM
Right
Laurent Pinchart 11:38 AM
Simon: did we ? ok
so, 3 actions points
Magnus Damm 11:38 AM
I expect both Shimodasan and Morimotosan to help out as Renesas interface for the core group
Simon Horman 11:38 AM
I may be mistaken
Laurent Pinchart 11:38 AM
1 is standalone, 3 depends on 2
Magnus Damm 11:38 AM
thanks for stepping up, shimodasan
prototype is standalone too
Geert, can you collect these please?
Geert Uytterhoeven 11:39 AM
Sure, 3 is prototype?
Magnus Damm 11:40 AM
i thought 3 was proper implementation?
after determining the proper API
without knowing if the hardware works we can't do anything IMO
Geert Uytterhoeven 11:40 AM
Ah, so 0 is prototype
1.5 is prototype?
Magnus Damm 11:41 AM
that's better! (for me at least)
Geert Uytterhoeven 11:41 AM
BTW http://lists.infradead.org/pipermail/linuxarmkernel/2013April/165411.html
Laurent Pinchart 11:41 AM
I don't see a need for a prototype
Geert Uytterhoeven 11:41 AM
Arnd: The dma engine driver must know the address in its dma space, while the
slave driver has it available in physical space. These two are often the
same, but there is no generic way to convert between the two, especially
if the dma engine resides behind an IOMMU.
The best assumption we can make is that the dma engine driver knows
how to convert between the two. Interestingly the documentation for
dma_slave_config talks about "physical address", while the structure
itself uses a dma_addr_t. Linus Walleij introduced the structure in
c156d0a5b0 "DMAENGINE: generic slave channel control v3", so I assume
he can shed some light on what he was thinking. I assume the documentation
is right but the structure is not and should be converted to use
phys_add_t or resource_size_t.
Simon Horman 11:41 AM
I think it is likely some kind of loop between discuss and implement may emerge
Magnus Damm 11:42 AM
Laurent: have you tried DMA Slave API with IOMMU?
Laurent Pinchart 11:42 AM
Simon: agreed
Geert Uytterhoeven 11:42 AM
(Arnd should know, as he did PowerPC/Cell before, where the IOMMU is mandatory. Some scanning in the
sources makes me think it was al handled by the (real) Open Firmware on Cell)
Laurent Pinchart 11:42 AM
Magnus: no, and I'm not worried about it. it's an API issue
Magnus Damm 11:43 AM
I'm worried that we found it out at this timing.
I thought it was tested and ready to integrate
Geert Uytterhoeven 11:43 AM
Yes
Magnus Damm 11:44 AM
I agree that a proper API is needed
Geert Uytterhoeven 11:44 AM
Hence my question "
What devices do we know IPMMU works with?" in the beginning
But we're running out of time for this topic?
Laurent Pinchart 11:44 AM
ok, there's a discussion of the issue in that email thread
Magnus Damm 11:44 AM
I've tested the IPMMU with the DU
Geert Uytterhoeven 11:44 AM
s/we're running/we ran/
Laurent Pinchart 11:44 AM
we need to study it and revive it
Yoshihiro Shimoda 11:45 AM
I have tested the IPMMU with xhci
Laurent Pinchart 11:45 AM
DU, VSP1 and DMAC (in mem to mem mode) have been tested
Magnus Damm 11:45 AM
I also tested USBHS
with some prototype patches
Simon Horman 11:45 AM
by tested, is the implication that they work?
Magnus Damm 11:45 AM
at least it may work
I believe USBHS needs more work
Yoshihiro Shimoda 11:46 AM
xhci works, I think
Magnus Damm 11:46 AM
but it is separate from the DMAC issue that sort of holds back a whole range of devices
But with USBHS I've seen that the hardware seems to work
I never seen anything like that for DMAC and IPMMU combo with DMA Engine slave
so may I add a prototype task just to test the hardware?
Laurent Pinchart 11:48 AM
Magnus: I think that's overkill
the DMA engine API needs to be fixed anyway
Magnus Damm 11:49 AM
Well, I don't want to flame, but I expected you to do this for your MMCIF work last summer after the IOMMU
and DMAC work
sure
Im not arguing against fixing the API
Laurent Pinchart 11:49 AM
that's interesting, because I'm pretty sure I've tested MMCIF
Magnus Damm 11:50 AM
So i thought it was tested
but it seems to not work at all
I should have tested on my side
so no blame on you
Laurent Pinchart 11:50 AM
I clearly remember running into issues with channel 0 + IOMMU with MMCIF
and not with channel 1
Magnus Damm 11:50 AM
But looking at it now it seems that it couldn't ever work
Geert Uytterhoeven 11:50 AM
cfg.src_addr = res>start + MMCIF_CE_DATA;
Magnus Damm 11:51 AM
laurent: i'm not trying to get you to write a prototype
just saying that we need to do it
actual assignment is a different matter
Geert Uytterhoeven 11:51 AM
We just ran out of time for topic 2
Magnus Damm 11:52 AM
haha
Geert Uytterhoeven 11:52 AM
Topic 2. SMP DT,
Magnus Damm 11:52 AM
So what does the Core Group leader say about prototyping?
Geert Uytterhoeven 11:52 AM
I wrote down:
Magnus Damm 11:52 AM
I will follow our leader penguin
Geert Uytterhoeven 11:52 AM
1. finally get feedback from the hardware developers regarding the IPMMU + DMAC channel 0 issue
2. implement prototype
3. discuss API changes on the dmaengine mailing list
4. implement proper solution
Kuninori Morimoto 11:52 AM
About quetion to HW team,
I can ask to HW team any quetion, but then I need "original question mail" from you guys.
It is difficult to create it by myself, since I don't know detail of this issue/background/problem.
Then, please send question email to my or shimodasan.
We can convert it English > Japanese, and ask to HW team. then feedback to you guys.
Is that OK ?
Magnus Damm 11:53 AM
Morimotosan, I think you can get history from Shimodasan
or me
Geert Uytterhoeven 11:53 AM
If the original answer is VHDL, please don't translate VHDL > Japanese > English
Topic 2. SMP DT
Magnus Damm 11:53 AM
ok
Geert Uytterhoeven 11:55 AM
This is about properly handling this with DT support, which is not backwards compatible with old DT
And it hinders topic 3. Legacy board phase out.
Magnus, you had patches to move forward?
Magnus Damm 11:55 AM
(Only if we want to)
Yeah, I think it is fine to disconnect the DT SMP enablement from the board phaseout
Simon Horman 11:56 AM
From my point of view the key is to undersand how we can move forward with the new DT SMP properties.
Magnus Damm 11:56 AM
This because DT SMP is likely to take quite a bit of time
Simon Horman 11:56 AM
While handling backwards compatibility in some controlled fashion
Magnus Damm 11:56 AM
Especially if we are going to open the can of worms with challenging the current API
Geert Uytterhoeven 11:57 AM
Yes
Magnus Damm 11:57 AM
s/API/DT style/g
Simon Horman 11:57 AM
And from my point of view r8a7779/marzen is a particularly interesting/difficult case
Magnus Damm 11:58 AM
I think it is a silly case, because we have nothing to share code with for r8a7779
at least for RCar Gen2 we can use a new DT format to enable SMP on remaining SoCs
r8a7779 is breakage only without upside. complete wank
Geert Uytterhoeven 11:59 AM
And we don't care about DT backward compatibility for RCar Gen1
Magnus Damm 11:59 AM
Well..
We have some freedom
Simon Horman 12:00 PM
[to summarise the interesting/difficult big] we have an SoC (r8a7779) compat string which does not support
SMP while we have board (marzen, marzenreference) compat strings which do support SMP. And the default
configuration gives the latter.
s/big/bit/
Magnus Damm 12:01 PM
What's the upside of doing SMP DT first?
(or doing it at all)
I mean compared to phasing out board support first
Geert Uytterhoeven 12:02 PM
For Gen1 or Gen2?
Magnus Damm 12:02 PM
r8a7779
Geert Uytterhoeven 12:02 PM
We don't break SMP
Magnus Damm 12:02 PM
We do require DTB update for the existing boards, no?
which equals breakage
Geert Uytterhoeven 12:03 PM
Yes. So we have to update the DTB to keep SMP.
Magnus Damm 12:03 PM
if we do SMP DT first
Simon Horman 12:03 PM
taking a step back
Geert Uytterhoeven 12:04 PM
I understand there will be only one mandatory DT upgrade instead of two?
Simon Horman 12:04 PM
I believe we already support SMP for marzen using multiplatform
Magnus Damm 12:04 PM
simon: correct SMP is already supported by boardmarzenreference.c
Geert: I don't see the number of required updates?
Geert Uytterhoeven 12:06 PM
Forget about it, I think I'm mixing up with something else
Magnus Damm 12:06 PM
So adding a DT SMP dependency just delays things from my point of view
and by "things" i mean board cleanup
Laurent: Can you explain your concern?
Laurent Pinchart 12:07 PM
if we add SMP support through the machine description first
Simon Horman 12:07 PM
and by cleanup, your mean removal, right?
Geert Uytterhoeven 12:07 PM
For r8a7779 we may do without SMP DT. What prevents us from adding .smp =
smp_ops(r8a7779_smp_ops), to setupr88a7770.c?
Laurent Pinchart 12:07 PM
and then later move to DTbased SMP support
we'll have a regression
Magnus Damm 12:08 PM
laurent: we only have a regression when we decide to remove backwardsupport
Geert Uytterhoeven 12:08 PM
(setupr8a7779.c, of course)
Laurent Pinchart 12:08 PM
Magnus: of course
and I'd like to remove that
or, rather, not introduce it in the first place
Magnus Damm 12:08 PM
simon: cleanup = removal, yes
but we already have that for the board case, no?
so it is a matter of when to remove it?
Laurent Pinchart 12:09 PM
it's bad enough when we only have to deal with backward compat for unforeseen issues
if we already know that bindings will become deprecated before using them, it's even worse
Magnus Damm 12:10 PM
i thought we already were using them?
Laurent Pinchart 12:10 PM
on some platforms yes
my point is about new platforms
Magnus Damm 12:10 PM
on all r8a7779 systems
new platforms of course
but r8a7779 is not new
Geert Uytterhoeven 12:11 PM
I think ignoring DT SMP for r8a7779 makes sense. We already have enough to do for Gen2
(and Gen3)
Magnus Damm 12:11 PM
We can perhaps keep an incremental DT SMP for r8a7779 task around?
But not let that block board phase out
Geert Uytterhoeven 12:11 PM
yes
task added
What about Gen2?
Magnus Damm 12:12 PM
We should add SMP DT before adding SMP support for new SoCs
Simon Horman 12:12 PM
magnus: would that retain the current beaviour where multiplatform supports SMP for marzen?
Magnus Damm 12:12 PM
but before adding SMP DT I want to discuss the DT format with ARM SoC maintainers
Geert Uytterhoeven 12:12 PM
Yes, else we're "too late", and stuck with more backward compatibility
Magnus Damm 12:13 PM
simon and geert: i'm confused with mix of marzen and Gen2, please rephrase
Simon Horman 12:13 PM
perhaps I am confused. Geert, did you have a proposal?
Geert Uytterhoeven 12:14 PM
If we add SMP support for new SoCs before adding SMP DT, we're "too late", and stuck with more backward
compatibility
Magnus Damm 12:14 PM
Geert: we will not
we have the "old way" for r8a7790 and r8a7791
Geert Uytterhoeven 12:14 PM
not add support? Not be late?
Laurent Pinchart 12:14 PM
if we go strought for SMP DT for new SoCs I'll be happy, I don't need more
s/strought/straight/
Magnus Damm 12:15 PM
Laurent: of course, i thought that's what we're doing
perhaps I'm wrong, but I thought newer SoCs don't include SMP support at this point
Simon Horman 12:15 PM
I think that is the nub of the issue
Magnus Damm 12:15 PM
Ulrich: do you know hte current state?
Geert Uytterhoeven 12:15 PM
Does that include the option to use new SMP DT (with a new DT of course) on '90/'91?
Simon Horman 12:15 PM
We should use the latest way to handle new SoCs.
Magnus Damm 12:15 PM
yes of course
Ulrich Hecht 12:16 PM
of what?
Magnus Damm 12:16 PM
if newer kernel suport for SoCs include SMP support or not? I don't remember latest state, but i believe you
hacked on it
My series "[PATCH 00/04] ARM: shmobile: APMU DT support via SMP Enable method" is intended to upgrade
SMP DT on r8a7790 and r8a7791, and be the only format for newer SoCs
Laurent Pinchart 12:17 PM
Geert: for 90 and 91, I'd like to add support for SMP DT and deprecate smp_ops. we'll have to keep them for
backward compatibility of course, and hopefully phase them out at some point
Ulrich Hecht 12:17 PM
no, i'm not aware
Geert Uytterhoeven 12:17 PM
OK
Magnus Damm 12:18 PM
ulrich: ok
Laurent Pinchart 12:18 PM
it looks like we all agree, don't we ?
Magnus Damm 12:18 PM
i think so
good
Simon Horman 12:18 PM
can we clafiry what we agreed on
?
Magnus Damm 12:18 PM
but i still want to discuss with ARM SoC maintainers about the existing format
Laurent Pinchart 12:18 PM
action points ? discuss SMP DT bindings with ARM SoC maintainers ?
Magnus Damm 12:18 PM
yeah
Geert Uytterhoeven 12:18 PM
Running out of time
Magnus Damm 12:18 PM
that is one task for sure
another task is APMU DT support
Simon Horman 12:19 PM
ok, geert, perhaps you could summarise things in an email
Geert Uytterhoeven 12:19 PM
My task list is
1. discuss SMP DT bindings with ARM SoC maintainers
2. Add DT SMP support for new SoCs (r8a7793/r8a7794)
A. Plan phaseout of old smp_ops for r8a7790/r8a7791
B. DT SMP for r8a7779
Magnus Damm 12:19 PM
sweet, thanks!!
Geert Uytterhoeven 12:19 PM
Isn't APMU DT included?
Magnus Damm 12:19 PM
it is part of 2
Geert Uytterhoeven 12:20 PM
I mean, needed for seconary bringup?
Magnus Damm 12:20 PM
currently C structures encode the base address of the APMU
DT is on the way
Geert Uytterhoeven 12:20 PM
yes, that needs to move to DT
Magnus Damm 12:20 PM
but I rather handle it together with the silly "enablemethod" or whatnot
Geert Uytterhoeven 12:21 PM
yep
Topic 3. Legacy board phase out.
r8a7740 and sh73a0 are gone
r8a7778 and r8a7779 are next
Simon Horman 12:22 PM
is anything blocking the Gen1 boards?
Geert Uytterhoeven 12:22 PM
(esp. r8a7779 would make SYSC PM domains less work)
Kuninori Morimoto 12:22 PM
Can we remove r8a7778/r8a7779 support from driver then ? if so it is very good for me
Simon Horman 12:22 PM
I know we just talked about SMP for the 79. But anying else?
Magnus Damm 12:22 PM
Now when r8a7779 SMP DT has been agreed then we can fix that
I will resubmit patches
Geert Uytterhoeven 12:23 PM
we still need '78/'79 support in drivers, but only DT based
bockw mostly needs vin etc?
Simon Horman 12:23 PM
morimotosan: we are talking about removing legacy (nonmultiplatform) support. Not all support.
Kuninori Morimoto 12:24 PM
sorry
Simon Horman 12:24 PM
Ok, so some vin bindings are a dependency for removing bockw legacy?
Magnus Damm 12:24 PM
can anyone volunteer to get rid of r8a7778 legacy?
and finalize the conversion?
Geert Uytterhoeven 12:25 PM
The pins are in the dts, but not the vin enablement
Magnus Damm 12:25 PM
in reverse order?
How many BockW boards do we have?
Laurent Pinchart 12:25 PM
what are the missing pieces beyond vin ?
Magnus Damm 12:25 PM
I have one
Simon Horman 12:25 PM
I could look into that
Geert Uytterhoeven 12:25 PM
usb is missing
Simon Horman 12:26 PM
ok, so its enabled in board code but not in DT?
Geert Uytterhoeven 12:26 PM
yep
Simon Horman 12:26 PM
ok
Geert Uytterhoeven 12:26 PM
(was the same on armadillo, there it was known borken)
Laurent Pinchart 12:26 PM
are we missing USB DT support completely, or is it just a matter of enabling it ?
Simon Horman 12:26 PM
how about I start by looking at exactly what is missing: so far the list is vin and usb DT enablement
Laurent Pinchart 12:26 PM
how about the FPGA IRQ controller ?
Geert Uytterhoeven 12:27 PM
task added
Simon Horman 12:27 PM
i have (remote) access to the hw. so that is a start
Magnus Damm 12:27 PM
simon: ok, but pretty useless for USB and VIN
Simon Horman 12:27 PM
i also suspect ethernet is broken all over the place for gen1. that could be another task.
Magnus Damm 12:27 PM
and real physical hardware seems like a waste of time
in general r8a7778 seems like a waste of time to me
but that's just me
Simon Horman 12:28 PM
ok
shold we jsut remove it from mainline entirely?
Magnus Damm 12:28 PM
add a task: give magnus coffee to make him less grumpy
Simon Horman 12:28 PM
or leave it there without usb and vin enabled?
Magnus Damm 12:28 PM
Simon, you are interested in fixing it up?
is it possible to do so remotely?
Geert Uytterhoeven 12:29 PM
fpga is in both boardbockw.c and boardbockwreference.c
Magnus Damm 12:29 PM
and is that our only board?
Geert Uytterhoeven 12:29 PM
needed for sound and ethernet?
Simon Horman 12:29 PM
usb sounds possible to me
vin, perhaps not
Magnus Damm 12:30 PM
so perhaps USB and VIN shall be moved to I/O and Multimedia discussions?
and we can decide to either wait for those or just remove regardless
Simon Horman 12:30 PM
good idea
I'm interested in getting bockw fixd to whatever level we agree is sane.
Magnus Damm 12:30 PM
Maybe we can vote on what level is sane?
Simon Horman 12:31 PM
I would not object
Geert Uytterhoeven 12:31 PM
Before we can vote, we need
Simon Horman 12:31 PM
anyway, i will look at what is missing
Geert Uytterhoeven 12:31 PM
1. Identify missing support in multiplatform r8a7778
(VIN, USB, FPGA IRQ?)
2. Identify missing support in multiplatform r8a7779
Then
3. Add support for valuable devices to multiplatform r8a7778
4. Add support for valuable devices to multiplatform r8a7779
sorry, 2b vote
Simon Horman 12:32 PM
sounds good
Magnus Damm 12:32 PM
Geert: Sure, that is true, but there are cleanups needed before 1 too
Geert Uytterhoeven 12:32 PM
6. Drop legacy r8a7778/bockw
7. Drop legacy r8a7779/marzen
Simon Horman 12:32 PM
shall I take 1 and 2(a) ?
Magnus Damm 12:32 PM
for instance, for r8a7779 we can remove the boardmarzenreference.c
and for r8a7778 I think we have split DTSI still?
Simon Horman 12:32 PM
cleanups required to identify what is incomplete?
Magnus Damm 12:33 PM
no my 0 cleaups are independent
i'll fix r8a7779
Geert Uytterhoeven 12:33 PM
Yes r8a7778bockw.dts and r8a7778bockwreference.dts
Magnus Damm 12:33 PM
but someone needs to fix r8a7778
who had r8a7779 multiplatform as task?
Simon Horman 12:33 PM
it should not be as difficule at 79
Magnus Damm 12:33 PM
i mean r8a7778 multiplat
Simon Horman 12:33 PM
as its UP, right?
Laurent Pinchart 12:34 PM
Magnus: don't we also miss r8a7779_init_irq_extpin ?
Magnus Damm 12:34 PM
laurent: it has been fixed already
Laurent Pinchart 12:34 PM
it's called from boardmarznreference.c
ah ok
Magnus Damm 12:34 PM
quite recently
so the boardmzref.c is ready to go after some minor SMP bit
but r8a7778 is more messy
Laurent Pinchart 12:35 PM
where's the fix ?
Magnus Damm 12:35 PM
it should have been picked up by simon
it was in the same series as where you questioned the SMP DT order for r8a7779.
let me find it
Laurent Pinchart 12:36 PM
"[PATCH v2 01/06] ARM: shmobile: r8a7779: Configure IRLM mode via DT" ?
Magnus Damm 12:36 PM
yes
Geert Uytterhoeven 12:36 PM
We ran out of time
Laurent Pinchart 12:36 PM
ok, I didn't realize it was about that
Magnus Damm 12:36 PM
once all contents of "[PATCH v2 00/06] ARM: shmobile: r8a7779 IRQ update and Marzen cleanup V2" are in i
intend to remove legacy code too
Laurent Pinchart 12:37 PM
by the way the commit message says "Adjust the r8a7779 SoC DTS and the Marzen Reference
C board code to use DTS only for INTCIRQPIN IRLM setup."
Magnus Damm 12:37 PM
but step by step
Laurent Pinchart 12:37 PM
but the patch doesn't touch C board code
Magnus Damm 12:37 PM
the board removal patch takes care of that i think
Laurent Pinchart 12:37 PM
yes it does
Magnus Damm 12:38 PM
so who can do r8a7778?
who did it initially?
Ulrich Hecht 12:38 PM
r8a7778 MP was me
but i don't have a board, making usb and vin difficult
Geert Uytterhoeven 12:38 PM
We found a winner
Magnus Damm 12:38 PM
you have a core developer task, right?
Ulrich Hecht 12:39 PM
me? yes, i do
Magnus Damm 12:39 PM
if so, can you move the multiplatform support forward?
like getting rid of that duplicated DTS setup
and things that do not depend on vin and usb
Geert Uytterhoeven 12:40 PM
Guys, we're running late. And my daughters want me to join lunch
Ulrich Hecht 12:40 PM
i just checked, and i think the list of missing stuff is conclusive. so apart from usb and vin, there's the fpga
Magnus Damm 12:40 PM
ok ok
Geert Uytterhoeven 12:40 PM
I will send the task list to periperi for final review
Magnus Damm 12:40 PM
thanks a lot everyone
Geert Uytterhoeven 12:40 PM
yes, thanks a lot.
Magnus Damm 12:40 PM
and thanks for preparing the task list geert!!
and arranging this meeting
Simon Horman 12:40 PM
Likewise, thanks everyine
Geert Uytterhoeven 12:41 PM
Will send out an invitation and RFC for topics for next chat
Magnus Damm 12:41 PM
wonderful
Laurent Pinchart 12:41 PM
what about the todo list format ? next time ?
Ulrich Hecht 12:41 PM
thanks, too. and if someone can give me a hint as to how to handle the fpga, i'd appreciate it
Magnus Damm 12:41 PM
ulrich: you can probably merge DTS independently of FPGA
Geert Uytterhoeven 12:41 PM
the fpga seems to be needed for Ethernet
Laurent Pinchart 12:41 PM
Ulrich: you might need to write a driver for the FPGA I'm afraid
Ulrich Hecht 12:41 PM
yes, of course
Laurent Pinchart 12:41 PM
I can assist with that
Ulrich Hecht 12:42 PM
that would be helpful. i couldn't find anything similar on other platforms
Laurent Pinchart 12:42 PM
we can discuss it later. on IRC maybe ?
Geert Uytterhoeven 12:42 PM
bye! (I'll keep the chat window open, though)
Magnus Damm 12:42 PM
bye bye!
Ulrich Hecht 12:43 PM
i'd prefer something more asynchronous, like email
Simon Horman 12:43 PM
I also need to attend to family matters, but will leave this window open. I expect to be back in 20min or so
Laurent Pinchart 12:43 PM
Ulrich: that works too
Ulrich Hecht 12:43 PM
ok, thanks a lot
Kuninori Morimoto 12:47 PM
Bye, I go back to my home
Yoshihiro Shimoda 12:50 PM
Bye! I also go back to my home
|