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
|
Core-chat-meeting-2018-05-09
09:37 < geertu> Welcome to today's Core Group Chat!
09:37 < geertu> Agenda:
09:37 < geertu> 1. Status Updates
09:37 < geertu> 2. Discussion Topics
09:37 < geertu> a. New U-Boot on R-Car Gen2 changes the FLASH layout.
09:37 < geertu> b. [PATCH/RFC] ARM: shmobile: defconfig: Enable LPAE
09:37 < geertu> (https://www.spinics.net/lists/arm-kernel/msg648585.html)
09:37 < geertu> Topic 1. Status updates
09:37 < geertu> Marek worked on U-Boot (R8A7792 DT clock driver, cleanups, pre-release
09:37 < geertu> testing).
09:37 < geertu> Morimoto-san enjoyed GW, worked on DMAC error handling for
09:37 < geertu> virtualization, and is working on a new tool "periject".
09:37 < geertu> Niklas replaced hardcoded SYSC numbers for M3-N, and helped to fix
09:37 < geertu> hickups on dual-CPU systems.
09:37 < geertu> Shimoda-san resubmitted clk and dts[i] support for R-Car E3, enabled
09:37 < geertu> usb2.0 ch3 dts on H3 ES2.0, and updated IPMMU material.
09:37 < geertu> Simon posted some misc enablement and cleanup patches.
09:37 < geertu> Geert reposted BD9571 DDR Backup Mode, made rcar-gpio interrupts work on
09:37 < geertu> qemu+kvm, enabled the PMU on R-Car Gen2, RZ/A1, and RZ/G1, and updated
09:37 < geertu> periupport for v4.17-rc4.
09:38 < geertu> B) What we plan to do till next time:
09:38 < geertu> Kaneko-san will upport M3-N WDT support.
09:38 < geertu> Marek will continue working on U-Boot (new DM/DT capable I2C driver, and
09:38 < geertu> E3 Ebisu support).
09:38 < geertu> Morimoto-san will design the new "periject" tool.
09:38 < geertu> Shimoda-san will update rcar-sysc for R-Car E3, and pave the way forward
09:38 < geertu> for IPMMU.
09:38 < geertu> Geert will send clk and pfc pull requests for v4.18, do periupport
09:38 < geertu> analysis and upporting, and handle CPG/MSSR and SYSC errata.
09:39 < geertu> C) Problems we have currently:
09:39 < geertu> Morimoto-san wants to know each member's opinion about periject.
09:39 < geertu> ---
09:39 < geertu> Anything I missed?
09:40 < geertu> Topic 2. Discussion Topics
09:40 < geertu> a. New U-Boot on R-Car Gen2 changes the FLASH layout.
09:41 < geertu> Unfortunately Marek is at the dentist.
09:41 < Marex> not yet
09:41 < Marex> but almost
09:41 < geertu> OK ;-)
09:41 < Marex> so yeah, thoughts ?
09:41 < geertu> But the issue is that the new and improved U-Boot for R-Car Gen2 needs more space in FLASH ROM than allowed by the current partitioning in DT
09:42 < geertu> Hence the partitioning should be changed to accomodate that.
09:43 < Marex> yes
09:44 < geertu> Marex: I assume this is for the "loader" partition?
09:44 < dammsan> as long as it is documented on a public wiki i am alright with that
09:44 < geertu> It seems most boards use 256 KiB for loader
09:45 < geertu> But Koelsch and Stout use 512 KiB
09:45 < geertu> Ah, Stout calls the partitions loader/uboot/uboot-env/flash
09:45 < Marex> sec
09:45 < geertu> All others use loader/user/flash
09:46 < Marex> https://elinux.org/R-Car/Boards/U-Boot-Gen2
09:46 < Marex> see at the end
09:46 < Marex> "Flashing U-Boot"
09:48 < Marex> I would say we reserve the first 0x200000 bytes for U-Boot and go with that, if we decide to change flash layout
09:48 < dammsan> thanks - looking good
09:48 < neg> Marex: I like the ip address 'tftp 0x50000000 192.168.1.300:u-boot-spl.bin' :-)
09:48 < Marex> the original layout had 0x40000 bytes for U-Boot , which 0x40000 for the SPI loader (of which 16 kiB were used, but due to SPI NOR erase size of 64 kiB, that's what it is) and then used 8 bytes from another 64 kiB sector
09:49 < Marex> what I would like to have is even an improvement of what's in the wiki
09:49 < geertu> neg: Copied from a movie?
09:49 < Marex> first 64 KiB for U-Boot SPL, then four sectors for env , spare sector for env , redundant env , spare sector for redundant env and then three sectors for U-Boot
09:49 < geertu> neg: Does it crash U-Boot?
09:50 < Marex> that should be future-proof enough
09:50 < geertu> What's "redundant env"?
09:50 < wsa_> gotta run, cya guys!
09:50 -!- wsa_ [~wsa@p54B334D6.dip0.t-ipconnect.de] has quit [Quit: ...]
09:50 < Marex> geertu: another copy of env, in case the first copy gets corrupted
09:50 < geertu> Changing the partitioning in upstream DTS means that we do break anyone who has stored real data in his FLASH
09:51 < geertu> sector=64KiB?
09:51 < Marex> geertu: yes, if they update bootloader now, they should also update the layout
09:51 < Marex> yes
09:51 < dammsan> hm..
09:51 < Marex> and we can pass that layout through the kernel command like via mtdparts=
09:51 < dammsan> wouldn't it make sense if U-Boot could pass the layout to the kernel?
09:51 < geertu> Marex: If they don't update U-Boot, but fetch tomorrow's upstream, their data is inaccessible, too
09:51 < Marex> yes, and remove it from DT
09:52 < dammsan> seems inline with the memory detection topic
09:52 < geertu> Having to remember to pass mtdparts= all the time is cumbersome.
09:52 < Marex> geertu: er, sector = 256 kiB on that flash, not 64 kiB
09:53 < geertu> And will lead to someone overwriting his/her boot loader when doing a FLASH test on Linux
09:53 < dammsan> oh, so no runtime patching like with memory nodes?
09:53 < Marex> flash partitioning isn't a HW property, so why would it be in DT ?
09:53 < dammsan> manually passing it seems cumbersome
09:53 < Marex> geertu: you can set bootargs to contain mtdparts
09:53 < geertu> dammsan: How to detect partitioning without a partition table on the medium?
09:54 < geertu> Marex: "four sectors for env" = 4 x 256 KiB = 1 MiB?
09:54 < dammsan> u-boot needs to be aware of it, so it can share this information?
09:54 < Marex> geertu: yes
09:54 < Marex> geertu: you cannot get below that with redundant env and spare sectors
09:55 < dammsan> obviously if we had a partition table that might be helpful with all the different boot stack components
09:55 < geertu> Marex: OK, I don't have anything large and valuable stored in that FLASH
09:55 < Marex> dammsan: U-Boot can be made aware of it and it can pass that information, sure
09:56 < dammsan> geertu: what do you think?
09:56 < geertu> dammsan: I think partition info in DTS is fragile
09:56 < dammsan> for sure
09:56 < dammsan> so where to put it?
09:57 < geertu> While even you don't really use the FLASH, you do want to have the partition info, so you can run a FLASH test on Linux (read-only everywhere, write to all but the boot loader partition)
09:57 < Marex> mtdparts on kernel command line ?
09:57 < geertu> s/even/even if/
09:57 < Marex> with the first 1 MiB marked ro ?
09:58 < geertu> Marex: That's not sufficiently safe, IMHO
09:58 < dammsan> makes sense
09:58 < geertu> First MiB marked ro sounds good to me
09:58 < geertu> Marex: I mean that I regularly boot kernels with
09:58 < geertu> CONFIG_CMDLINE="ignore_loglevel root=/dev/ram"
09:59 < geertu> CONFIG_CMDLINE_FORCE=y
09:59 < geertu> (for using initrd on remote boards)
09:59 < dammsan> i suppose there is no way we can store a partition table somewhere?
09:59 < dammsan> one physical sector minimum per copy, 2 copies
09:59 < geertu> So the partition info must be stored in the board-spcific part
09:59 < geertu> dammsan: yes we can.
10:00 < dammsan> since it is a runtime configuration item it makes sense to separate that from DTS
10:00 < geertu> dammsan: We do have the SPI loader in the first 16KiB, but some partitioning schemes can have the part table elsewhere (not at the start of the device_
10:00 < dammsan> aligning to the end of the flash?
10:01 < geertu> E.g. Amiga RDB can be anywhere in the first 2 cylinders (yeah, legacy naming)
10:01 < dammsan> must be possible to probe for the size somehow
10:02 < geertu> Size is known from FLASH type (even SPI NOR autoprobing)
10:02 < dammsan> ok
10:02 < dammsan> so either at the end or using some offset
10:03 < dammsan> if we are inconveniently disturbing the users with a partition chance
10:03 < dammsan> change i mean
10:03 < dammsan> then we may as well go all the way?
10:03 < geertu> Yep
10:03 < dammsan> or am i being overly difficulat as usual =)
10:03 < dammsan> probably =)
10:04 < geertu> No, if you do it wrong, the board needs JTAG rescue
10:04 < geertu> Better safe than sorry
10:04 < geertu> Next topic?
10:04 < dammsan> yeah so doing a generation jump with several features at once is probably good
10:04 < geertu> b. [PATCH/RFC] ARM: shmobile: defconfig: Enable LPAE
10:04 < geertu> (https://www.spinics.net/lists/arm-kernel/msg648585.html)
10:05 < dammsan> i think for 32-bit arm we need two configs
10:05 < dammsan> if we should bother about lpae
10:05 < horms> This is not the first time this has come up
10:05 < geertu> The RZ/G1 crew wants to have LPAE enabled, but that's incompatible with older SoCss
10:05 < geertu> Indeed, multi_v7_defconfig also doesn't have LPAE because of that
10:05 < Marex> geertu: so what is the decision ?
10:05 < horms> The last time, iirc, the answer was it'll all be awesome with fragments
10:05 < horms> but I guess fragments never got committed to mainline
10:05 < Marex> geertu: U-Boot generally uses mtdparts and I dont think it supports any of this partitioning stuff in flash ...
10:06 < geertu> Marex: On-FLASH partition table?
10:06 < Marex> geertu: I see, I don't think U-Boot supports it, so I'd have to check how that can be added
10:06 < dammsan> Marek: please
10:07 < geertu> horms: kernel/configs/ has some fragments
10:07 < horms> ok, can we add an lpae fragment?
10:07 < Marex> geertu: also, noone really uses that sort of thing, the systems I am aware of all use mtdparts passing on the kernel command line
10:07 < horms> would that solve the problem?
10:07 < horms> would it be more than one line long?
10:07 < geertu> I guess so, and Arnd will be happy, too, if it can be used with e.g. multi_v7_defconfig, too
10:07 < Marex> geertu: I guess we can have our special solution though
10:07 < Marex> dammsan: yes ?
10:08 < geertu> Marex: From one side, if everybody else uses mtdparts, I thinkl we should use it, too.
10:08 < dammsan> Marex: seems both geertu and i like the idea of on-flash partition table
10:08 < horms> geertu: ok, then I suggest we try that. I could make a patch and the RZ/G guys could test it.
10:08 < geertu> But there are too many use cases for kernels that cannot receive bootargs from U-Boot (uImage/zImage with appeneded DTB, CONFIG_CMDLINE_FORCE, ...)
10:09 < Marex> dammsan: then again, everyone else uses mtdparts and I have yet to see a recent system with on-flash partition table
10:09 < dammsan> sure
10:10 < dammsan> just feels like a sane thing to move towards
10:10 < dammsan> but the offset for the partition table needs to be described somewhere
10:10 < geertu> Given the SPI loader is 16 KiB, but the block size is 64 KiB, you have 48 KiB for partitioning?
10:10 < dammsan> both for U-Boot and Linux
10:11 < dammsan> geertu: we probably want dedicated physical sectors?
10:11 < dammsan> to be more fail safe
10:11 < geertu> dammsan: That's safer, yes
10:11 < Marex> dammsan: it wastes another sector of the SPI NOR too
10:11 < Marex> dammsan: while if it's in mtdparts, it could be stored alongside the other U-Boot environment
10:12 < dammsan> true
10:12 < dammsan> not having it in DTS must be good at least
10:12 < dammsan> we can agree on that
10:12 < Marex> and you can adjust it in U-Boot with setenv mtdparts instead of having a custom solution in some sector with custom command to set it up
10:12 < Marex> yes, it doesn't describe hardware, it shouldn't be in DT
10:12 < dammsan> sure makes sense
10:13 < dammsan> so how to move forward?
10:14 < dammsan> 1. remove DTS partion info from upstream
10:14 < Marex> I think U-Boot could be tweaked to pass mtdparts via bootargs automatically, which would solve geerts's problem with custom bootargs without mtdparts ?
10:14 < geertu> Marex: Nope, U-Boot cannot pass bootargs with uImage/zImage with appeneded DTB, or CONFIG_CMDLINE_FORCE
10:14 < dammsan> geertu: i understand your problem
10:15 < Marex> geertu: assume mainline U-Boot, which yes, can, if you don't use the uImage/zImage hack
10:15 < dammsan> but would on-flash partition help in such case?
10:15 < geertu> Marex: uImage/zImage with appeneded DTB is indeed mainly a workaround for old U-Boot
10:15 < geertu> Marex: CONFIG_CMDLINE_FORCE is a workaround for people changing bootargs on shared boards in a farm
10:16 < geertu> Although I could just add a "setenv bootargs" to my scripts
10:16 < geertu> Anyway, we ran out of time (no pinchartl to kick us out ;-)
10:17 * Marex gotta run too to make it for the train
10:18 < geertu> Anything else to discuss?
10:18 < dammsan> not from my side at this point
10:18 < neg> Not from me but the flash layout discussion was educational :-)
10:19 < geertu> Thanks for joining, and have a nice continued day!
|