diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2019-12-09 15:29:52 +0900 |
---|---|---|
committer | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2019-12-09 16:23:07 +0900 |
commit | 55e3b2f45880faaf06f3c660ca9e8a6d9aa14bce (patch) | |
tree | 6392fd201a51ff0f6dc0e474803e6f3b20919504 /wiki/Chat_log/20150901-core-chatlog | |
parent | 5d9e1b983faf7645ddc3d45d28e612d2ac4179c0 (diff) |
wiki: Porting wiki: Porting Chat Log
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Diffstat (limited to 'wiki/Chat_log/20150901-core-chatlog')
-rw-r--r-- | wiki/Chat_log/20150901-core-chatlog | 454 |
1 files changed, 454 insertions, 0 deletions
diff --git a/wiki/Chat_log/20150901-core-chatlog b/wiki/Chat_log/20150901-core-chatlog new file mode 100644 index 0000000..9dfc6a6 --- /dev/null +++ b/wiki/Chat_log/20150901-core-chatlog @@ -0,0 +1,454 @@ +11:02 #periperi: < geertu> Welcome to the Core Group Chat Session! +11:02 #periperi: < uli___> good morning +11:02 #periperi: < horms> Thanks, nice to be back +11:02 #periperi: < geertu> Today's agenda: +11:02 -!- Irssi: Pasting 5 lines to #periperi. Press Ctrl-K if you wish to do this or Ctrl-C to cancel. +11:02 #periperi: < geertu> 1. Upcoming Gen3 development for the Core group, +11:02 #periperi: < geertu> 2. Topic/branch/merge organization of Gen3 work, +11:02 #periperi: < geertu> 3. DMA topology, +11:02 #periperi: < geertu> 4. CPG and boot mode via syscon (or not), +11:02 #periperi: < geertu> 5. Status check for tasks from last meeting - what is remaining? +11:03 #periperi: < morimoto> dammsan: which port is bock-w ? +11:04 #periperi: < dammsan> morimoto: 8004 +11:04 #periperi: < morimoto> # this is not core topic, but now we have 2 board, and I will send it to Europe engineer +11:05 #periperi: < morimoto> # but because of papwer work, it will be next week +11:05 #periperi: < morimoto> dammsan: thanks +11:06 #periperi: < horms> morimoto: i use bockw sometimes, so lets co-ordinate here if you want to use the board +11:06 #periperi: < horms> uli___: +11:06 #periperi: < horms> uli___ also uses it, but usually while we are ase +11:06 #periperi: < horms> uli___ also uses it, but usually while we are ase +11:06 #periperi: < horms> uli___ also uses it, but usually while we are asleep +11:06 #periperi: < uli___> indeed +11:06 #periperi: < horms> (typing disaster!) +11:06 #periperi: < geertu> Topic 1. Upcoming Gen3 development for the Core group, +11:07 #periperi: < dammsan> geertu: right +11:07 #periperi: < dammsan> i intend to update the cpg series and the integration series +11:08 #periperi: < dammsan> and also work on irqc +11:08 #periperi: < dammsan> but i hope to keep the integration series small until we can stabilize the cpg and the pfc +11:08 #periperi: < dammsan> so focus must be on stabilizing pfc and cpg +11:09 #periperi: < geertu> Integration is the hardest w.r.t. merge conflicts (but that's actually topic 2) +11:09 #periperi: < horms> I plan to put integration series's into topic branches as they appear; only addrssing apply and build time dependencies +11:09 #periperi: < horms> (sorry, lets talk about that in topic2) +11:10 #periperi: < dammsan> (yeah, sorry, so what shall we talk about for topic1?) +11:10 #periperi: < geertu> Stabilize CPG and PFC +11:10 #periperi: < dammsan> ok =) +11:10 #periperi: < geertu> It seems dropping clock-output-names was not such a good idea... +11:10 #periperi: < dammsan> i did it because it seemed that mike turquette wanted us to do so +11:10 #periperi: < dammsan> but perhaps i misunderstood +11:11 #periperi: < geertu> No respnse from Mike yet (although he's alive, sent pull request, and replied to me in other personal email) +11:11 #periperi: < horms> I saw him last week; he was also alive then! +11:11 #periperi: < dammsan> i think we can work around things by registering names using in-driver generated names +11:11 #periperi: < dammsan> not exposing names in DT seems like a fine idea to me +11:12 #periperi: < geertu> Nope, all fixed-factor-clocks rely on clock-output-names in the parent clocks +11:12 #periperi: < dammsan> geertu: sure +11:12 #periperi: < dammsan> but can't we work around that somehow? +11:12 #periperi: < dammsan> by providing clock-output-name equivalent but from the driver? +11:12 #periperi: < geertu> the scif driver "works" (for scif2) as it assumes 115200 baud and doesn't program registers +11:13 #periperi: < dammsan> sure, i think that is the state of the entire CPG series +11:13 #periperi: < geertu> clk_of_get_parent_clock_name() looks in DT, it doesn't follow in-kernel clock topology +11:13 #periperi: < dammsan> maybe it should? +11:13 #periperi: < geertu> That's one option. +11:14 #periperi: < dammsan> so say it would work, then isn't omitting that parameter from DT a good idea? +11:14 #periperi: < geertu> I think "no clock-output-names" is meant for clocks with a single output, where the node name can be used instead +11:14 #periperi: < dammsan> ok i see +11:14 #periperi: < dammsan> so we could have one node per clock instead +11:14 #periperi: < geertu> It may be a good idea if the driver knows (like cpg) +11:14 #periperi: < dammsan> or perhaps we should extend the core to support index? +11:15 #periperi: < geertu> For mstp the driver doesn't know, so it comes up with mstp3.10 +11:15 #periperi: < geertu> I'd like to wait for the clock people's response +11:15 #periperi: < dammsan> the cpg driver could do the same +11:15 #periperi: < dammsan> since we have the strings there anyway +11:15 #periperi: < geertu> Clocks work again just by re-adding clock-output-names to the dtsi only (no driver update needed) +11:16 #periperi: < dammsan> waiting for maintainer feedback is of course a good plan +11:16 #periperi: < dammsan> but is there something we could do in the meantime? +11:16 #periperi: < dammsan> we could re-add clock-output-names like you say +11:16 #periperi: < dammsan> or just fix the code in the cpg driver +11:16 #periperi: < geertu> It's not a problem in the cpg driver +11:16 #periperi: < geertu> and it can't be fixed there +11:17 #periperi: < geertu> only in core clock code +11:17 #periperi: < dammsan> oh, but this only triggers in the case of CPG and not in MSTP, right? +11:17 #periperi: < geertu> It doesn't trigger in mstp, because the only users of mstp clocks are devices, where clk_get() will do the right thing. +11:18 #periperi: < geertu> If you register e.g. a fixed-factor-clock as a child of an mstp clock, it will fail, too +11:18 #periperi: < dammsan> ok then consider me convinced =) +11:18 #periperi: < horms> +1 +11:19 #periperi: < geertu> Basically it fails for every clock in DT where the parent has multiple clock outputs +11:19 #periperi: < dammsan> so we should wait for feedback? +11:20 #periperi: < dammsan> or does anyone feel like cooking up some core CCF code? =) +11:20 #periperi: < dammsan> maybe i simply misunderstood mike turquette +11:20 #periperi: < geertu> Not me, because I think the "no clock-output-names rule" is flawed +11:22 #periperi: < geertu> Any other upcoming gen3 work (irqc is already in the task list)? +11:22 #periperi: < shimoda> we should prepare thermal driver in Sep. +11:22 #periperi: < dammsan> does it make sense to pick up the GPIO stuff? +11:23 #periperi: < geertu> I have it included in today's renesas-drivers +11:23 #periperi: < dammsan> i think i prefer to keep the integration patch set small (and that's topic2 sorry) +11:23 #periperi: < shimoda> gen3 thermal seems not compatible with gen2 :) +11:23 #periperi: < geertu> Indeed, but thermal is I/O, not Core? +11:25 #periperi: < dammsan> geertu: how shall we split the core work then? +11:25 #periperi: < horms> possibly but the next I/O group meeting is not for 2 weeks, there won't be much September left then +11:25 #periperi: < horms> perhaps it is a topic for email? +11:25 #periperi: < shimoda> oops, my sheet is written as core +11:25 #periperi: < geertu> gpio lacks power-domains properties, but for now that works due to an obsolete CONFIG_ARCH_SHMOBILE_MULTI check in drivers/sh/pm_runtime.c +11:26 #periperi: < geertu> dammsan: what do you mean with "how shall we split the core work then?" +11:27 #periperi: < shimoda> horms: I will send thermal topic to periperi ml +11:27 #periperi: < geertu> I have PFC and CPG in renesas-drivers#topic/... +11:27 #periperi: < dammsan> i can deal with igeertu: i meant how to handle development of PFC and CPG +11:28 #periperi: < dammsan> morimoto: are you doing ok with PFC? +11:28 #periperi: < dammsan> do you need any help? +11:28 #periperi: < geertu> Simon has integration in renesas#topic/... +11:28 #periperi: < morimoto> I think I can send next version of PFC tommorrow +11:28 #periperi: < morimoto> I need to check PFC macro on BockW +11:28 #periperi: < dammsan> morimoto: why don't you reorder things to add your cleanup as incremental patch? +11:29 #periperi: < dammsan> or does the code become better if you make the cleanup first? +11:29 #periperi: < geertu> TOpic 2. Topic/branch/merge organization of Gen3 work, +11:29 #periperi: < dammsan> i guess i don't understand the need for the dependency +11:29 #periperi: < dammsan> geertu: can we discuss CPG development later? +11:29 #periperi: < geertu> The cleanup changes the name of a macro +11:30 #periperi: < geertu> sure +11:30 #periperi: < geertu> (in topic 4?) +11:30 #periperi: < dammsan> sure, sorry!! +11:31 #periperi: < dammsan> it is of course up to morimoto-san to decide about his cleanups +11:31 #periperi: < geertu> Apart from the macro cleanup, I think PFC should switch to an incremental model, at least for inclusion in renesas-drivers +11:31 #periperi: < geertu> same for integration +11:32 #periperi: < horms> geertu: can you clarify what you mean by incremental? +11:32 #periperi: < dammsan> geertu: from when? +11:32 #periperi: < geertu> What's ultimately submitted would be an interactive rebase result of the initial patches and the incrementals +11:32 #periperi: < dammsan> that means you consider it stable enough soon? +11:32 #periperi: < geertu> It doesn't make sense to keep on resubmitting (almost) the same series to the list, with a few pingroup entries (pfc) or device nodes (dtsi) added +11:33 #periperi: < horms> true +11:33 #periperi: < geertu> No one's gonna take patches before rc1 is released +11:33 #periperi: < horms> from my pov a small(ish) base patch is a good start that can be reviewed +11:33 #periperi: < geertu> while we want to keep developing, not rebasing and resubmitting +11:33 #periperi: < horms> as can any incremental patches that add needed support +11:34 #periperi: < horms> that way we review what we are using (which is probably smaller than everything) +11:34 #periperi: < horms> and by implication deffer reviewing the rest +11:34 #periperi: < geertu> So I'm happy seeing e.g. topic/gen3-cpg-v5 +11:34 #periperi: < horms> in my opinion that makes sense particularly at this busy time +11:35 #periperi: < dammsan> i'm confused +11:35 #periperi: < dammsan> =) +11:35 #periperi: < dammsan> so what would you prefer? can you repeat please? +11:35 #periperi: < geertu> Of course we must make sure to have the base (refferred to by device nodes) covered, which is interrupts, clocks, and dmas +11:36 #periperi: < dammsan> geertu: but the base is not yet stable right? +11:36 #periperi: < geertu> It more or less is. +11:36 #periperi: < geertu> Except for the pesky clock-output-names +11:36 #periperi: < dammsan> yes, and that is used by every node =) +11:36 #periperi: < geertu> if we have to re-add them to the mstp nodes, that means it affects many patches +11:37 #periperi: < dammsan> right +11:37 #periperi: < dammsan> PFC seems much close at this point +11:37 #periperi: < geertu> indeed +11:38 #periperi: < geertu> For supporting other devices, there are usually two parts: +11:38 #periperi: < geertu> a. driver update (can be just a new DT compatible value added to the bindings) +11:38 #periperi: < geertu> b. integration (dtsi and defconfig) +11:38 #periperi: < geertu> a. is fairly independent, and I can take that in renesas-drivers#topic/... +11:39 #periperi: < geertu> b. is for Simon's renesas#topic/... +11:39 #periperi: < dammsan> b probably needs to be ordered right? +11:39 #periperi: < geertu> but usually each new patch depends contextually on the previous one +11:39 #periperi: < horms> yes, that seems likely +11:39 #periperi: < geertu> which means it must be "correct" when Simon applies it. +11:40 #periperi: < geertu> While a. I can easily update/replace +11:41 #periperi: < dammsan> we need to expose both a and b to a larger audience IMO +11:41 #periperi: < geertu> Right now the b.'s are stuck on clock-output-names +11:41 #periperi: < dammsan> yes +11:41 #periperi: < geertu> so all of them may need rework +11:41 #periperi: < dammsan> i agree with that observation +11:42 #periperi: < dammsan> but upstreaming of "a" can happen independently anyway +11:42 #periperi: < geertu> The a.'s can follow the standard patch submission rules to maintainers when deemed stable +11:42 #periperi: < geertu> yep +11:42 #periperi: < dammsan> so where are we with the core driver bits ("a")? +11:42 #periperi: < geertu> The b.'s have to go in through Simon's tree, right +11:43 #periperi: < horms> that is their upstream path +11:43 #periperi: < horms> for topic branches things are less fixed imho +11:43 #periperi: < geertu> scif just needs a vinding update +11:43 #periperi: < geertu> s/vinding/binding/ +11:43 #periperi: < geertu> so that can go upstream after rc1 +11:43 #periperi: < dammsan> geertu: the silliness of SCIF2 is that included in that summary? =) +11:44 #periperi: < geertu> same for gpio +11:44 #periperi: < shimoda> dammsan: some timers and dmaengnie? +11:44 #periperi: < dammsan> shimoda: sure +11:44 #periperi: < horms> is scif2 secret; if so should it be omitted from mainline? +11:44 #periperi: < dammsan> secred irda, haha, what is this, 1984? +11:44 #periperi: < geertu> it's the console. So we have a secret black box the user is interacting with :-) +11:45 #periperi: < horms> figures +11:45 #periperi: < dammsan> but seriously, how do we handle DT in case of SCIF2? +11:45 #periperi: < dammsan> is that a I/O group problem perhaps? =) +11:45 #periperi: < geertu> We have the missing interrupt from an older datasheet, and the driver needs it +11:46 #periperi: < geertu> DT is integration, not I/O ;-) +11:46 #periperi: < geertu> so byebye secrecy +11:46 #periperi: < horms> sounds awkward +11:46 #periperi: < dammsan> hm, i thought every per-driver DT binding doc was part of driver development +11:47 #periperi: < dammsan> i was also hoping geert to make sure the r8a7795 SCIF DT binding doc went upstream +11:47 #periperi: < dammsan> together with the DMA bits +11:47 #periperi: < geertu> sure, after rc1 +11:47 #periperi: < dammsan> sure, no stress +11:47 #periperi: < geertu> GregKH may already take scif-misc-v3, but only after rc1 +11:48 #periperi: < dammsan> ok +11:48 #periperi: < horms> so this secreat irq, would be described in dt +11:48 #periperi: < geertu> What special DT binding is there for SCIF2? +11:48 #periperi: < geertu> The driver needs an IRQ +11:48 #periperi: < dammsan> so we don't have any particular devices to focus on now except the CPG and PFC? +11:48 #periperi: < horms> was that circulated publicly before we found out it was secret? +11:48 #periperi: < horms> (we can punt this topic if you like) +11:48 #periperi: < dammsan> geertu: i meant that we may have to special case it +11:49 #periperi: < dammsan> in the DT binding doc +11:49 #periperi: < dammsan> if it is special somehow +11:49 #periperi: < dammsan> (reminds me that i have to resend that CMT series) +11:49 #periperi: < geertu> v0.50 is from end of July, right? +11:49 #periperi: < horms> yes, iirc +11:49 #periperi: < horms> 21st July iirc +11:50 #periperi: < geertu> First public scif2 in r8a7795.dtsi is from Aug 6 +11:50 #periperi: < dammsan> isn't it easy just to omit SCIF2? +11:50 #periperi: < geertu> So Morimoto-san should have known ;-) +11:50 #periperi: < dammsan> we can use HSCIF instead? +11:50 #periperi: < geertu> It's the console +11:50 #periperi: < dammsan> sometimes we can use other SCIF block on same pins +11:51 #periperi: < geertu> No, serial-0 only does scif2, I think +11:51 #periperi: < dammsan> wtf +11:51 #periperi: < dammsan> so shall we aim for DEBUG1 then? =) +11:52 #periperi: < dammsan> but seriously, what a mess +11:52 #periperi: < geertu> we can bitbang SDHI2 WP/CD on those lines +11:52 #periperi: < geertu> or GPIO ;-) +11:52 #periperi: < geertu> U-boot uses scif2 +11:52 #periperi: < dammsan> hehe, must be better +11:52 #periperi: < dammsan> but u-boot is not interrupt driven =) +11:53 #periperi: < geertu> Obviously the interrupt is working +11:53 #periperi: < horms> if a patch can already be found by google then it ain't no secret anymore +11:53 #periperi: < dammsan> maybe we should just ask for update for the SCIF2 interrupt +11:53 #periperi: < dammsan> update for the deocumentation +11:53 #periperi: < dammsan> shimoda: morimoto: can we request update? +11:53 #periperi: < dammsan> this is silly +11:54 #periperi: < geertu> Are we actually using scif2, or are we using irda? +11:54 #periperi: < geertu> The MSTP clock indicates irda +11:54 #periperi: < geertu> and irda usually is scif-compatible +11:54 #periperi: < dammsan> we have non-SCIF compatible IRDA as well +11:54 #periperi: < shimoda> dammsan: sure, I or Morimoto-san request it +11:55 #periperi: < dammsan> shimoda: thanks please check about SCIF2 interrupt +11:55 #periperi: < dammsan> so it seems that the integration series is blocked on both CPG and SCIF2 +11:56 #periperi: < geertu> hurray +11:56 #periperi: < geertu> Hence incrementals for now +11:56 #periperi: < dammsan> at least we have hardware now +11:56 #periperi: < geertu> BTW, who's "Europe engineer"? +11:56 #periperi: < dammsan> geertu: i think i should do one major resend in v9 +11:57 #periperi: < dammsan> to fix up the things you requested +11:57 #periperi: < horms> we just meed sw to complete the set +11:57 #periperi: < dammsan> or do you prefer to get individual patches? +11:57 #periperi: < dammsan> i mean incremental ones? +11:58 #periperi: < geertu> v9 is integration, so that's up to Simon ;-) +11:58 #periperi: < dammsan> ok, about CPG you prefer incremental then? +11:58 #periperi: < horms> i prefer a fresh patchset if existing patches need updating +11:58 #periperi: < dammsan> ok, fresh patchset it will be then +11:58 #periperi: < horms> incremental is fine for new stuff +11:59 #periperi: < horms> thanks +11:59 #periperi: < geertu> For CPG, you would only update 2/5 clk: shmobile: Add Renesas R-Car Gen3 CPG support? +11:59 #periperi: < geertu> I don't mind if you just send that one +11:59 #periperi: < dammsan> sure, but i think i also missed your comment about 4/5 or something +11:59 #periperi: < dammsan> so > 1 patch -> resend series +12:00 #periperi: < geertu> yep +12:00 #periperi: < geertu> sounds fine +12:00 #periperi: < geertu> Next topic? +12:00 #periperi: < dammsan> if <=1 patch - resend individual patch +12:01 #periperi: < dammsan> sure +12:01 #periperi: < geertu> Topic 3. DMA topology, +12:02 #periperi: < geertu> we have dummy dma nodes now, so "dmas" can be added (albeit untested) +12:02 -!- Irssi: Pasting 8 lines to #periperi. Press Ctrl-K if you wish to do this or Ctrl-C to cancel. +12:02 #periperi: < geertu> R-Car Gen2 had two DMA controllers, which were equivalent. +12:02 #periperi: < geertu> As we dropped the shdma dma-multiplexer when implementing rcar-dmac, +12:02 #periperi: < geertu> DMA slaves were tied to a single DMA controller in .dtsi only. +12:02 #periperi: < geertu> On R-Car Gen3 the three DMA controllers are not equivalent: some DMA slaves +12:02 #periperi: < geertu> can be tied to channels 0-15 (the first instance) only, others can be tied to +12:02 #periperi: < geertu> channels 16-47 (i.e. the second or third instance) only. +12:02 #periperi: < geertu> For the latter, I used the second instance in .dtsi. +12:03 #periperi: < geertu> Do we have a plan to use the third dmac (on Gen3), or the second dmac (on Gen2) +12:03 #periperi: < geertu> ? +12:03 #periperi: < geertu> Is Laurent here? +12:03 #periperi: < dammsan> i have no special policy setting plan, but i'd like to describe the hardware via DT +12:04 #periperi: < geertu> Which means "dmas" should link to all relevant dmac nodes +12:04 #periperi: < geertu> and not just the first one +12:04 #periperi: < dammsan> yes, isn't that what we said during the montpellier peripericon? +12:04 #periperi: < dammsan> hurray for another unstable DTS bit! =) +12:05 #periperi: < geertu> In Montpellier, we said we'd start with links to one dmac, and see how to resolve the rest later +12:05 #periperi: < dammsan> now seems like a great time then +12:06 #periperi: < dammsan> adding more links to DT without driver support does not hurt, does it? +12:06 #periperi: < geertu> How? +12:06 #periperi: < geertu> Now we have +12:06 #periperi: < geertu> dmas = <&dmac1 0x31>, <&dmac1 0x30>; +12:06 #periperi: < geertu> dma-names = "tx", "rx"; +12:07 #periperi: < geertu> We can't easily extend that +12:07 #periperi: < geertu> Would this actually work? +12:07 #periperi: < dammsan> we can not have multiple identical dma-names? +12:07 #periperi: < geertu> dmas = <&dmac1 0x31>, <&dmac1 0x30>, <&dmac2 0x31>, <&dmac2 0x30>; +12:07 #periperi: < geertu> dma-names = "tx", "rx", "tx", "rx"; +12:07 #periperi: < geertu> I'm afraid not +12:07 #periperi: < dammsan> that's how i pictured it +12:08 #periperi: < geertu> It's also related to DMA load balancing +12:08 #periperi: < geertu> And the third dmac may be secret on Gen3 ;-) +12:08 #periperi: < dammsan> we could add some "dma-peer" property to the dma controller to point to the peers +12:08 #periperi: < geertu> Yes, that was one of the options we discussed in Montpellier +12:09 #periperi: < geertu> Perhaps the only sane one +12:09 #periperi: < geertu> Let's hope there are no "evil" DMA slaves that can be tied to the first and second dmac on gen3 +12:09 #periperi: < geertu> while all others tie to second and third +12:10 #periperi: < geertu> or the the first exclusively +12:10 #periperi: < geertu> Anyway, without Laurent I think we should postpone this? +12:10 #periperi: < dammsan> the identical-dma-name proposal would support anything, right? +12:10 #periperi: < geertu> Yes +12:11 #periperi: < geertu> Probably needs updates the core DMA framework +12:11 #periperi: < dammsan> probably yes +12:12 #periperi: < geertu> Topic 4. CPG and boot mode via syscon (or not), +12:12 #periperi: < geertu> Laurent wanted to have a generic (also for non-shmobile) framework to obtain a boot mode value +12:13 #periperi: < geertu> instead +12:14 #periperi: < dammsan> that could perhaps be in gen4 if we have done that upfront +12:14 #periperi: < geertu> yeah +12:14 #periperi: < dammsan> i thought your syscon idea was great +12:15 #periperi: < geertu> The major disadvantage of the syscon idea is that we don't know yet how else we'll use the RST module +12:15 #periperi: < dammsan> but this may slightly overlap with the ES revision bits +12:15 #periperi: < geertu> w.r.t. CPU core management +12:15 #periperi: < dammsan> right +12:15 #periperi: < geertu> THE es bits in a different register on Gen3? +12:15 #periperi: < dammsan> i'm also concerned about RST of I/O devices +12:16 #periperi: < geertu> That's in the MSTP module? +12:16 #periperi: < dammsan> maybe so +12:16 #periperi: < geertu> i.e. more registers for each MSTP node +12:16 #periperi: < dammsan> but how do we perform actual reset? +12:17 #periperi: < dammsan> it is more of a question about how to perform reset instead of DT hardware description +12:17 #periperi: < dammsan> and i think that is similar to the boot mode discussion +12:17 #periperi: < dammsan> we need to figure out how to let the driver get the information +12:17 #periperi: < dammsan> and separate from that +12:17 #periperi: < dammsan> also need to figure out how to describe the hardware in DT +12:17 #periperi: < geertu> You mean resetting individual I/O devices, not the whole system? +12:17 #periperi: < dammsan> yes +12:18 #periperi: < geertu> What's the use case for that? +12:18 #periperi: < dammsan> similar to power domain, but without power savings +12:18 #periperi: < dammsan> it may be nice to get a clean start before probe() =) +12:19 #periperi: < dammsan> no special use case apart from that +12:19 #periperi: < geertu> So each device would have a power-domains property linking to the (generalized) MSTPx.y, not only for clock, but also for reset handling? +12:19 #periperi: < dammsan> at least for boot mode we have a need =) +12:19 #periperi: < dammsan> reset-domains +12:20 #periperi: < geertu> Actually we can have that in power-domains +12:20 #periperi: < dammsan> there is certainly overlap +12:20 #periperi: < geertu> Actually each MSTP clock has a corresponding module reset bit +12:20 #periperi: < dammsan> maybe the MSTP driver an hook up a notifier if there are reset registers present +12:21 #periperi: < geertu> perhaps +12:21 #periperi: < geertu> Sounds like for Gen-4 +12:21 #periperi: < dammsan> and do stuff on BIND and UNBIND or similar +12:21 #periperi: < dammsan> sure +12:21 #periperi: < dammsan> but not _that_ difficult +12:21 #periperi: < dammsan> so about boot mode +12:21 #periperi: < dammsan> what do we do? +12:22 #periperi: < geertu> We can do the syscon way now. +12:22 #periperi: < geertu> Patches are available, need a small update for Gen3 +12:22 #periperi: < geertu> It's easy to decide, in the absence of Laurent +12:22 #periperi: < geertu> ;-) +12:22 #periperi: < dammsan> so with the ES version we decided to go with DT compat string suffix +12:22 #periperi: < dammsan> to handle workarounds for special ES versions +12:23 #periperi: < dammsan> we never got around to runtime modify the DT bits based on ES version though +12:23 #periperi: < geertu> We haven't implemented changing the DT compat string based on probed ES version yet +12:23 #periperi: < dammsan> bingo +12:23 #periperi: < dammsan> =) +12:23 #periperi: < geertu> Do we have a need for ES now? +12:24 #periperi: < dammsan> so if we do that, then can we just deal with the boot mode there instead? +12:24 #periperi: < dammsan> but using syscon may be better +12:24 #periperi: < dammsan> no need for ES handling right now, but it may come up +12:25 #periperi: < dammsan> i'm totally fine with syscon, especially if we use SoC specific compat strings +12:25 #periperi: < geertu> "boot mode there" means purely in C, no DT update needed? +12:25 #periperi: < dammsan> yeah, detecting boot mode from C and stashing it in DT while modifying for ES anyway +12:25 #periperi: < geertu> I can update my syscon patch for Gen3, and resend? +12:26 #periperi: < dammsan> sounds good! +12:26 #periperi: < dammsan> so what is the risk for going the syscon route? +12:26 #periperi: < dammsan> apart from ticking off laurent =) +12:26 #periperi: < dammsan> you mentioned CPU reset +12:27 #periperi: < geertu> + rst: reset-controller@e616000 { +12:27 #periperi: < geertu> + compatible = "renesas,rst-r8a7790", "syscon"; +12:27 #periperi: < geertu> + reg = <0 0xe6160000 0 0x0100>; +12:27 #periperi: < geertu> + }; +12:27 #periperi: < dammsan> looking good!! +12:27 #periperi: < geertu> Does that pose a risk? +12:27 #periperi: < geertu> for future RST use? +12:28 #periperi: < dammsan> not what i can tell +12:28 #periperi: < geertu> cpg node needs +12:28 #periperi: < geertu> renesas,modemr = <&rst 0x60>; +12:29 #periperi: < geertu> Will cook up an incremental patch +12:29 #periperi: < dammsan> seems good to me +12:29 #periperi: < dammsan> thanks! +12:30 #periperi: < geertu> One minute left for +12:30 #periperi: < geertu> Topic 5. Status check for tasks from last meeting - what is remaining? +12:30 #periperi: < dammsan> thanks for uli___ and horms help with GPIO +12:30 #periperi: < horms> i did little +12:30 #periperi: < geertu> Add full (H)SCIF nodes to DT is partially done (need to re-add HSCIF pfc bits to make it work again) +12:30 #periperi: < horms> but its nice to see it moving forwards +12:30 #periperi: < geertu> Add gpio nodes to DT is done, modulo power-domains +12:31 #periperi: < uli___> should i resend that with clock-output-names restored now? :) +12:31 #periperi: < geertu> pfc Add r8a7795 support is wip +12:31 #periperi: < geertu> uli___: please wait, unless you want to game mailing list statistics +12:31 #periperi: < geertu> No changes for other tasks? +12:32 #periperi: < geertu> https://osdr.renesas.com/projects/linux-kernel-development/wiki/Core-todo-list +12:33 #periperi: < dammsan> not from me +12:34 #periperi: < shimoda> no update from me +12:36 #periperi: < geertu> OK, thanks for joining! +12:36 #periperi: < morimoto> geertu: my "Europe engineer" was 1st attack : for Laurent, Geert. 2nd attack Ulirch Wolfram +12:36 #periperi: < morimoto> We can send one board to Simon, but there is no paper work for him :) +12:37 #periperi: < dammsan> geertu: about CPG, i wonder what the next step really is +12:37 #periperi: < geertu> No paperwork means no fun, less earned value ;-) +12:37 #periperi: < geertu> dammsan: submit to clock maintainers? +12:38 #periperi: < morimoto> No paperwork No life :P +12:38 #periperi: < geertu> morimoto So Simon can just take a board on a plane? +12:38 #periperi: < dammsan> geertu: about the clks array handling, i think a static array is just fine +12:38 #periperi: < dammsan> in my mind apart from removing a spinlock +12:39 #periperi: < dammsan> it is just about figuring out how to deal with(out) clock-output-names +12:39 #periperi: < geertu> yeah, initially I though it was an array of "struct clk", not pointers +12:39 #periperi: < geertu> s/though/thought/ +12:39 #periperi: < geertu> Wasting a few pointers isn't that important. +12:39 #periperi: < dammsan> we will expand NR if needed on new SoCs ight? +12:39 #periperi: < geertu> I also thought about dropping clock-indices, like Laurent suggested. +12:39 #periperi: < dammsan> and may use a subset of the indices +12:40 #periperi: < geertu> But the reason for them is future expansion, right? +12:40 #periperi: < dammsan> i like having them there +12:40 #periperi: < dammsan> yes +12:40 #periperi: < geertu> Time for lunch here... +12:40 #periperi: < geertu> Bye! +12:40 #periperi: < dammsan> and i also like being able to search in DT files to figure out how things are connected +12:40 #periperi: < dammsan> ok bye bye +12:41 #periperi: < morimoto> geertu: Simon can get board from delivery car +12:41 #periperi: < shimoda> bye! +12:41 #periperi: < morimoto> bye +12:41 -!- morimoto [~user@relprex2.renesas.com] has left #periperi ["ERC Version 5.3 (IRC client for Emacs)"] +12:41 #periperi: < uli___> bye +12:54 #periperi: < horms> sorry to miss the last few minutes of the meeting: i had a minor baby crisis to attend to +13:46 -!- horms [~horms@121-80-213-238f1.hyg1.eonet.ne.jp] has quit [Quit: Leaving] +13:58 #periperi: < pinchartl> geertu: what bothers me with syscon for boot mode handling is that the register isn't part of the syscon IP core +13:59 #periperi: * pinchartl is back in Finland now +14:17 #periperi: < geertu> Welcome back (sort of)! +14:22 #periperi: < pinchartl> sorry for missing today's meeting +14:36 #periperi: < geertu> pinchartl: It is according to Figure 11.1 Block Diagram of RST (Gen3) +14:36 #periperi: < geertu> And 11.1.1 11.1.1 Features +14:36 #periperi: < geertu> The following functions are implemented by RST. +14:36 #periperi: < geertu> Latching of the levels on mode pins when PRESET# is negated +14:36 #periperi: < geertu> Mode monitoring register +14:40 #periperi: * geertu mutex_lock(salvator-x) +14:42 -!- shimoda [~shimoda@relprex3.renesas.com] has quit [Quit: WeeChat 0.4.2] +14:49 #periperi: < pinchartl> geertu: is RST a "syscon" ? +14:49 #periperi: < pinchartl> we have a SYSC IP core +14:49 #periperi: < pinchartl> that one is documented as system controller :-) +14:50 #periperi: < pinchartl> although it looks like a power controller +14:51 #periperi: < pinchartl> syscon is really a mean to stuff all kind of miscellaneous stuff in a catch-all API when standardizing an API would be difficult due to very system-specific features +14:51 #periperi: < geertu> Documentation/devicetree/bindings/mfd/syscon.txt +14:51 -!- Irssi: Pasting 8 lines to #periperi. Press Ctrl-K if you wish to do this or Ctrl-C to cancel. +14:51 #periperi: < geertu> System controller node represents a register region containing a set +14:51 #periperi: < geertu> of miscellaneous registers. The registers are not cohesive enough to +14:51 #periperi: < geertu> represent as any specific type of device. The typical use-case is for +14:51 #periperi: < geertu> some other node's driver, or platform-specific code, to acquire a +14:51 #periperi: < geertu> reference to the syscon node (e.g. by phandle, node path, or search +14:51 #periperi: < geertu> using a specific compatible value), interrogate the node (or associated +14:51 #periperi: < geertu> OS driver) to determine the location of the registers, and access the +14:51 #periperi: < geertu> registers directly. +14:51 #periperi: < pinchartl> the boot mode pins, on the other hand, seems like a quite well-defined function to me +14:51 #periperi: < pinchartl> yes, exactly +14:51 #periperi: < geertu> The watchdog will need alink to one of the RST registers, too +14:52 #periperi: < pinchartl> syscon is really a hack to access registers in unrelated IP cores when creating an API isn't worth it +14:53 #periperi: < pinchartl> by the way +14:53 #periperi: < pinchartl> the syscon driver is registered as a postcore_initcall() +14:54 #periperi: < pinchartl> and the CPG driver uses CLK_OF_DECLARE() +14:54 #periperi: < pinchartl> have you checked the ordering ? +14:55 #periperi: < geertu> The syscon driver is not instantiated +14:56 #periperi: < pinchartl> on ARM64, start_kernel() -> time_init() -> of_clk_init() -> CLK_OF_DECLARE callbacks +14:56 #periperi: < geertu> See syscon_regmap_lookup_by_phandle +14:57 #periperi: < pinchartl> indeed +14:57 #periperi: < geertu> And the node will still bind to a future renesas,rst-r8a7795 driver +14:58 #periperi: < pinchartl> there should be a big red flashing HACK sign in front of that code :-) |