diff options
Diffstat (limited to 'wiki/Chat_log/20160426-core-chatlog')
-rw-r--r-- | wiki/Chat_log/20160426-core-chatlog | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/wiki/Chat_log/20160426-core-chatlog b/wiki/Chat_log/20160426-core-chatlog new file mode 100644 index 0000000..4c81fe5 --- /dev/null +++ b/wiki/Chat_log/20160426-core-chatlog @@ -0,0 +1,254 @@ +Core-chat-meeting-2016-04-26 + +10:05 < geertu> Welcome all to today's Renesas Core Group Chat +10:05 < geertu> Agenda: +10:05 < geertu> 1. Upcoming Gen3 development for the Core group, +10:05 < geertu> 2. Reserved memory for AXI decompression area, +10:05 < geertu> 3. Status check for tasks from last meeting - what is remaining? +10:05 < geertu> Topic 1. Upcoming Gen3 development for the Core group +10:06 < geertu> My R-Car SYSC series has been applied by Simon +10:06 < geertu> I have a few more related commits in my local tree that I'm gonna clean up and send out. +10:08 < khiemnguyen> geertu: any restriction with current SYSC series ? I saw that Morimoto-san reported an issue of Audio driver. +10:09 < geertu> khiem: That was an issue with v4 of the series, which caused probe deferral of the DMA controllers +10:09 < morimoto> does it be solved on v5 ? +10:10 < geertu> Yes, v6 (which was applied) doesn't have this problem +10:10 < morimoto> OK, nice ! +10:10 < horms> I have queued up the changes. We are yet to see if the arm-soc team accepts them. But Arnd seems to be in a good mood this week. So hopefully things will progress smoothly. +10:11 < geertu> Good. +10:11 < geertu> Isn't Arnd ususally in a good mood w.r.t. merging? +10:12 < geertu> I guess Niklas is still waiting for Olof... +10:12 < khiemnguyen> geertu:: have you tested with some drivers using power domain like A3VP ? +10:12 < horms> My feeling is that Olof can be a bit more prickly with regards to merging. +10:12 < geertu> khiem: A3VP is turned on when e.g. reading from /dev/video0 +10:12 < neg> Yes I have not heard anything back from Olof, anyone have a feel of what he is thinking? +10:12 < horms> geertu: it is possible that I worry too much :) +10:12 < pinchartl> khiemnguyen: I've tested power domains with the VSP driver +10:13 < geertu> Probably he doesn't have an answer... +10:13 < geertu> Arnd is much more familiar with DMA +10:13 < horms> neg: perhaps you could ping Arnd somehow? +10:14 < geertu> Arnd definitely knows how the function to retrieve dmas from DT works. +10:14 < neg> horms: sure, I can send a ping to Arnd and ask his opinion on the patches +10:14 < horms> neg: that would be great, thanks +10:15 < neg> There where some comments that it was a bit silly to do it in so many patches, maybe i can squash them as one per SoC and resend and at the same time ask Arnd for his input? +10:15 < horms> Personally I'm fine with many patches. But squashing them as you suggest may make things a bit more managable. +10:16 < neg> I'm fine anyway, I only did lots of patches since it seemed like it was the way it was done in the past +10:17 < horms> possibly that was because patches were done over time. though possibly all applied in a bunch +10:17 < horms> anyway, i don't think the number of patches is the core issue +10:17 < geertu> Maintainer preference about granularity of patches may differ a lot... +10:17 < neg> OK, I will squash and resend +10:18 < horms> this maintainer is ok with that :) +10:18 < geertu> Best ask Arnd first, before squashing and resending +10:19 < neg> OK then I will ping Arnd asking his opinin and if he wants it reposted squashed +10:20 < geertu> Good, thx! +10:23 < neg> I also might have to rethink part of my IPMMU+DMAC parches, Christoph Hellwig have a point I use dma_mapping_error() which uses the debug_dma_* so I might need another way of signaling mapping error +10:23 < pinchartl> or maybe we could make debug_dma_* safe with resource DMA mappings ? +10:24 < neg> That would be a good solution yes +10:25 < neg> Will look into it +10:27 < neg> I was thinkig maybe to add a using check pfn_valid(pfn) and not call debug_dma_* from dma_mapping_error, or is that a bad idea? +10:28 < pinchartl> that seems like a bit of a hack +10:28 < pinchartl> but I don't know what else would be possible +10:30 < pinchartl> how about starting by checking the debug_dma_* call paths, and see which calls can be problematic with resources ? +10:30 < pinchartl> obviously ignoring the ones that can't be used with resources +10:31 < pinchartl> it looks like the core issue is the phys_addr() function +10:32 < pinchartl> if you add a dma_debug_resource type, you could special-case phys_addr() +10:32 < neg> that would be a better solution yes, I will have a look and se if I can figure it out +10:32 < pinchartl> and possibly return (entry->pfn << PAGE_SHIFT) + entry->offset +10:33 < pinchartl> it's just a very rough first analysis, there could be other issues +10:33 < pinchartl> but I think that's at least a good path to investigate +10:34 < neg> I agree, will do +10:36 < pinchartl> geertu: are you asleep ? :-) +10:36 < geertu> No +10:37 < geertu> Just waiting for your discussion to finish +10:37 < geertu> Any other Upcoming Gen3 development? +10:37 < horms> M3 +10:37 < horms> I plan to add basic support for M3, most likely based on what is in BSP v3.2.1, by the end of June. I am yet to make a start on this. +10:37 < geertu> dammsan should have M3 in his board farm soon, IIUC? +10:37 < dammsan> later this week +10:38 < geertu> And I'm gonna do CPG/MSSR and SYSC +10:38 < horms> superb +10:38 < horms> ok, it sounds like we will have to tag-team a bit +10:38 < horms> both for board access +10:38 < horms> and dependencies on each other +10:40 < geertu> Sure. We managed to do that before +10:40 * geertu notices the marzen semaphore in the topic line +10:41 < horms> yes, that may be a stale lock +10:41 < geertu> It's been a while I used the lock. Usually I just look at the marzen power state... +10:42 < geertu> But for M3 we'll have to be more strict again +10:43 < geertu> Any other Upcoming Gen3 development? +10:46 < geertu> Topic 2. Reserved memory for AXI decompression area +10:46 < geertu> shimoda-san: Can you explain a bit, please? +10:46 < shimoda> yes +10:47 < shimoda> Gen3 has specific HW IP in "14. AXI-BUS" +10:48 < shimoda> the IP will decompress memory when software writes data +10:49 < shimoda> So, if a software start the IP, other software (e.g. linux) must not use such area +10:49 < shimoda> about the detail, please look at an email that I sent :) +10:50 < shimoda> and then, I would like to discuss how to manage this on linux kernel +10:50 < geertu> All of this is determined by the firmware, right? +10:50 < shimoda> geertu: right +10:51 < geertu> Then I think the firmware should reserve the memory in the DTB it passes to the kernel +10:52 < shimoda> I see. The latest Gen3 BSP will do so. however, morimoto-san and magnus-san don't prefer it :) +10:53 < geertu> Does the BSP have the reserved area in the DTS, or does the bootloader modify the DTB? +10:53 < shimoda> oops, BSP has a specific DTS, no bootloader modify the DTB +10:53 < shimoda> sorry, I misunderstood your suggestion +10:54 < geertu> I think it's similar to how the bootloader modifies the DTB to pass the bootargs +10:54 < pinchartl> geertu: I agree, if the bootloader reserves memory for firmware usage, it should modify the DTB +10:55 < dammsan> i suspect that different firmware components are responsible for different things +10:55 < dammsan> so IPL may program the AXI +10:55 < dammsan> while U-boot is supposed to modify the DTB if I understand you guys correctly +10:55 < geertu> Yes +10:56 < dammsan> so the problem how to pass base registers between components still exists +10:56 < geertu> True. +10:56 < dammsan> i mean memory window parameters +10:57 < khiemnguyen> so, for upstream kernel, we should disable that feature ? +10:57 < geertu> Well, DT is supposed to describe the hardware +10:57 < geertu> Hence if some memory is unusable, it should say so. +10:57 < khiemnguyen> that feature is optional. +10:58 < geertu> "Non-Secure software (U-Boot/Linux) cannot access these registers" +10:58 < geertu> So as soon as the IPL implements protection, U-Boot/Linux cano no longer find out where the reserved area is? +10:59 < geertu> s/cano/can/ +10:59 < khiemnguyen> in future, we can get the information via OP-TEE call. But it has not been implemented yet. Just planning. +11:00 < morimoto> geertu: can I confirm ? +11:00 < shimoda> khiemnguyen: i see. +11:00 < morimoto> it will be implemented from v2.8.0 firmware. it is not yet implemented on v2.7.0. +11:01 < dammsan> i think we should ask IPL people to program version number in a specific location for read-only use +11:01 -!- khiemnguyen [d2a0fca9@gateway/web/cgi-irc/kiwiirc.com/ip.210.160.252.169] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client] +11:01 < morimoto> Do you mean it can be controlled by u-boot ? +11:01 -!- khiemnguyen [d2a0fca9@gateway/web/cgi-irc/kiwiirc.com/ip.210.160.252.169] has joined #periperi +11:01 < dammsan> like for instance MFIBTSTSR register +11:01 < geertu> morimoto: confirm what? +11:01 < morimoto> dammsan: it can be 1 solution +11:02 < dammsan> morimoto: yes +11:02 < morimoto> geertu: your opinion is uboot can control it ? (v2.7.0 / v2.8.0 etc) +11:03 < geertu> morimoto: That sounds like the logical place to me. +11:04 < geertu> How uboot obtains the knowledge is another question... +11:04 < morimoto> I wounder does it mean we need updated uboot ? +11:05 < geertu> I think so +11:06 < khiemnguyen> geertu: You want updated uboot to control memory decompress, right ? +11:06 < morimoto> This means, if people has old uboot, but use new kernel, it will... ? +11:06 < geertu> Go bang +11:07 < morimoto> This v2.8.0 firmware will sets its start address and size on specific area. Can kernel use it and reserve ? +11:07 < morimoto> inside kernel. +11:07 < geertu> khiemnguyen: No, if memory decompress is enabled, U-boot should tell the kernel by adding the reserved area to the DTB +11:07 < morimoto> then, old uboot is no issue +11:08 < geertu> If there's a reliable way for the kernel to find out, yes. +11:08 < dammsan> seems we need a short term and a long term solution really +11:08 < dammsan> regardless IPL need to be able to expose functionality +11:09 < dammsan> which may be the same reliable way as geertu is aksing about +11:09 < geertu> Yes. Cfr. " +11:09 < geertu> - Non-Secure software (U-Boot/Linux) cannot access these registers. +11:09 < geertu> - For now, these registers can be accessed from non-secure. (In other words, in the future, an IPL will prevent the registers' access.) +11:09 < geertu> " +11:09 < dammsan> just hoping the components will work together may not be suitable +11:10 < geertu> :-) +11:10 < dammsan> ok that's good +11:10 < geertu> So the BSP has +11:10 < geertu> reserved-memory { +11:10 < geertu> #address-cells = <2>; +11:10 < geertu> #size-cells = <2>; +11:10 < geertu> ranges; +11:10 < geertu> /* device specific region for Lossy Decompression */ +11:10 < geertu> linux,lossy_decompress { +11:10 < geertu> compatible = "shared-dma-pool"; +11:10 < geertu> reusable; +11:10 < geertu> reg = <0x00000000 0x54000000 0x0 0x03000000>; +11:10 < geertu> }; +11:10 < geertu> [...] +11:10 < geertu> }; +11:12 < geertu> Don't know if the "reusable" property is appropriate, as Linux doesn't control the AXI controller? +11:12 < shimoda> also about the default v2.8.0 said: +11:12 < shimoda> NOTICE: BL2: Lossy Decomp areas +11:12 < shimoda> NOTICE: Entry 0: DCMPAREACRAx:0x80000540 DCMPAREACRBx:0x570 +11:12 < shimoda> NOTICE: Entry 1: DCMPAREACRAx:0x40000000 DCMPAREACRBx:0x0 +11:12 < shimoda> NOTICE: Entry 2: DCMPAREACRAx:0x20000000 DCMPAREACRBx:0x0 +11:12 < khiemnguyen> geertu: This is fixed address, IPL v2.8.0 also set memory decompress for that phys address +11:13 < pinchartl> I'm curious though, how/why is the decompression feature used by the secure firmware ? +11:13 < khiemnguyen> shimoda: Currently, only Entry 0 is valid, other Entry are invalid. +11:14 < dammsan> pinchartl: good question +11:14 < shimoda> pinchartl: If my understanding is correct, a reason is "in the future, an IPL will prevent the registers' access" +11:14 < shimoda> by non-secure software. it seems hw design issue :) +11:15 < khiemnguyen> Currently, almost System-level registers are controlled by secure firmware. +11:15 < pinchartl> shimoda: right, but why is image decompression used as a security feature ? +11:16 < pinchartl> the system RAM protection feature is understandably related to security +11:16 < shimoda> pinchartl: no. some "multimedia software" will use it on linux +11:16 < dammsan> pinchartl: i guess no one has figured out how to virtualise the interface +11:16 < pinchartl> ok +11:16 < pinchartl> so the IPL will program it and disable access to the registers +11:16 < pinchartl> but the feature will be used by Linux +11:17 < pinchartl> it's just that the memory area won't be selectable by Linux as the IPL will disable access to the registers +11:17 < pinchartl> correct ? +11:18 < shimoda> pinchartl: correct +11:18 < dammsan> pinchartl: and the area may move in the future +11:19 < geertu> dammsan: If it may move, and that's controlled by The Firmware, The Firmware should inform the kernel. +11:19 < shimoda> by the way, the IPL will writes a magic in some DDR area +11:19 < shimoda> out of linux memory +11:20 < dammsan> geertu: as long as we can handle things during runtime somehow we will be fine +11:21 < geertu> dammsan: Sure, "informing" can be done in several ways. But the means should be fixed rather sooner than later. +11:21 < dammsan> but 3 different components with hard coded windows and DTB dependency seems the wrong way +11:21 < dammsan> geertu: i agree +11:25 < geertu> So more design work to do? +11:25 < geertu> Topic 3. Status check for tasks from last meeting - what is remaining? +11:26 < geertu> "SYSC,v4.7,prototype,geert,R-Car SYSC PM Domain support" is public +11:26 < geertu> I'm re-adding "GPIO-RCAR,?,?,?,Fix Runtime PM with GPIO interrupts (depends on irqchip PM)" +11:26 < geertu> as the previous solution had issues and was reverted +11:27 < khiemnguyen> CPUFreq, I'm composing the patches now. Will try to send early next week. +11:28 < shimoda> about "r8a7795,v4.7,prototype,shimoda,Investigate SYS-DMAC2", it is fixed by IPL v2.8.0 :) +11:28 < horms> khiemnguyen: did you have a chance to ask the fw team about the cpu0 hotplug issue we discussed in the previous edition of this meeting? +11:29 < khiemnguyen> horms: they are very busy with other tasks, follow customer requests. And they put low priority on this item. +11:30 < horms> khiemnguyen: thanks, got it +11:30 < khiemnguyen> In the meantime, I think they focus on M3 support and implement new System Suspend-to-RAM operation mode. +11:31 < geertu> With v270, s2ram no longer fails with an error, but the system suspends, immediately resumes, and afterwards NFS fails (no more interrupts?). +11:32 < geertu> So that's actually a regression, as before trying s2ram didn't make the system unusable. +11:32 < dammsan> i would prefer if bugs were fixed before features were added +11:32 < geertu> True. +11:32 < dammsan> but i'm just a grumpy old man +11:33 < geertu> The same for trying to unplug CPU0: before it failed with an error, now it locks up the system. +11:33 < khiemnguyen> geertu: NFS fails, it seems ethernet driver has not handle s2ram well. +11:33 < geertu> khiemnguyen: That's another possibility. +11:34 < khiemnguyen> I meant suspend/resume callbacks in ethernet driver. +11:34 < dammsan> khiemnguyen: are you aware of any roadmap for firmware features? +11:34 * pinchartl has to run +11:34 < pinchartl> I'm late for my lunch time meeting +11:35 < geertu> pinchartl: Bye, thx for joining! +11:35 < khiemnguyen> dammsan: the roadmap is changing rapidly... +11:36 < dammsan> khiemnguyen: that may cause problems for everyone +11:36 < pinchartl> ping me this afternoon if you have any question for me +11:36 < dammsan> it would be nice to improve the situation somehow +11:37 < khiemnguyen> I think so too. Sometimes, the bottleneck is in secure firmware support. +11:38 < khiemnguyen> We have not encountered this in Gen2, but Gen3 use secure firmware, as universal solution for ARMv8. +11:38 < khiemnguyen> I guess developers for other SoC platform also have same issues. +11:38 < dammsan> must be +11:39 < khiemnguyen> we have to accept it, right ? :) +11:39 < dammsan> i think we have to improve the situation =) +11:39 < dammsan> i wonder if we can arrange some f2f meeting inside renesas to request more clear feature prediction? +11:41 < horms> +1 +11:41 < dammsan> anyway, scope is outside this meeting space +11:41 < dammsan> i think we can build leverage by not merging soem features in upstream and request help from superiors +11:42 < dammsan> so lets keep upstream M3 support minimal please +11:42 < horms> dammsan: lets have a f2f meeting about that :) +11:42 < dammsan> sure +11:43 < geertu> dammsan: One problem is that we didn't do anything for e.g. s2ram. +11:43 < geertu> dammsan: If the firmware advertises it's available, it can be used/ +11:43 < dammsan> geertu: that's fine, its an incremental thing +11:44 < dammsan> we can't opt-out by default? +11:44 < geertu> dammsan: If hot-unplugging cpu0 suddenly locks the system instead of reporting an error, there's nothing we can do in the kernel. +11:44 < geertu> I don't think so. +11:44 < dammsan> that's why we should only enable it when we know it is working +11:44 < geertu> PSCI is enabled by default on arm64. +11:44 < dammsan> right +11:45 < dammsan> if we could retrieve firmware version somehow we could disable certain things during run time +11:46 < geertu> The good news is that restart works now (with v270). +11:47 < geertu> We got flamed by Mark Rutland that it didn't work in v230, as that version was not PSCI-compliant. +11:47 < geertu> But there's nothing the kernel did to make that work or not work. +11:48 < dammsan> it is just the cpu node integration order +11:48 < geertu> "trusted" means "it's something you have to trust" (because you have no choice) +11:48 < dammsan> apart from that nothing i agree +11:49 < dammsan> it would be good to have certain features documented though +11:49 < geertu> Time to conclude? +11:49 < dammsan> sure +11:49 < geertu> Thanks for joining, and CU! +11:50 < horms> bye +11:50 < shimoda> thanks, bye! +11:50 < uli___> bye +11:50 < neg> bye all, thanks +11:50 < dammsan> thanks +11:50 < khiemnguyen> bye |