@@ -246,23 +246,27 @@ <h3 class="Ss" id="Scrambling_algorithm"><a class="permalink" href="#Scrambling_
246246 NP-complete problem known as "bin packing", so
247247 < code class ="Nm "> rgblink</ code > does not attempt to find the optimal
248248 solution, but instead uses a "first-fit" heuristic to find a good
249- one in a reasonable amount of time. There are no guarantees about where this
250- algorithm will place sections, apart from the bank, address, and alignment
251- constraints manually specified for the sections.) </ p >
249+ one in a reasonable amount of time.) There are no guarantees about where
250+ this algorithm will place sections, apart from the bank, address, and
251+ alignment constraints manually specified for the sections.</ p >
252252< p class ="Pp "> “Scrambling” instead places sections into a given
253253 pool of banks, trying to minimize the number of sections sharing a given
254254 bank. This is useful to catch broken bank assumptions, such as expecting two
255255 different sections to land in the same bank (that is not guaranteed unless
256- both are manually assigned the same bank number).</ p >
256+ both are manually assigned the same bank number). There are still no
257+ guarantees about where this algorithm will place sections, apart from the
258+ bank pool size and any manually specified section constraints.</ p >
257259< p class ="Pp "> A scrambling spec is a comma-separated list of region specs. A
258260 trailing comma is allowed, as well as whitespace between all specs and their
259261 components. Each region spec has the following form:</ p >
260262< div class ="Bd
261263 Bd-indent "> < var class ="Ar "> region</ var > [=< var class ="Ar "> size</ var > ]</ div >
262- < var class ="Ar "> region</ var > must be one of the following (case-insensitive),
263- while < var class ="Ar "> size</ var > must be a positive decimal integer between 1
264- and the corresponding maximum. Certain regions allow omitting the size, in
265- which case it defaults to its max value.
264+ < var class ="Ar "> region</ var > specifies the section type, and
265+ < var class ="Ar "> size</ var > specifies the number of banks in the pool for that
266+ section type. < var class ="Ar "> region</ var > must be one of the following
267+ (case-insensitive), while < var class ="Ar "> size</ var > must be a positive
268+ decimal integer between 1 and the corresponding maximum. Certain regions allow
269+ omitting the size, in which case it defaults to its maximum value.
266270< table class ="Bl-column ">
267271 < tr >
268272 < td > Region name</ td >
@@ -288,10 +292,10 @@ <h3 class="Ss" id="Scrambling_algorithm"><a class="permalink" href="#Scrambling_
288292< p class ="Pp "> A < var class ="Ar "> size</ var > of 0 disables scrambling for that
289293 region.</ p >
290294< p class ="Pp "> For example,
291- ‘< code class ="Li "> romx=64,wramx=4</ code > ’ will scramble
295+ ‘< code class ="Li "> romx=64,wramx,sram =4</ code > ’ will scramble
292296 < code class ="Ic "> ROMX</ code > sections among ROM banks 1 to 64,
293- < code class ="Ic "> WRAMX</ code > sections among RAM banks 1 to 4 , and will not
294- scramble < code class ="Ic "> SRAM</ code > sections.</ p >
297+ < code class ="Ic "> WRAMX</ code > sections among RAM banks 1 to 7 , and
298+ < code class ="Ic "> SRAM</ code > sections among SRAM banks 0 to 3 .</ p >
295299< p class ="Pp "> Later region specs override earlier ones; for example,
296300 ‘< code class ="Li "> romx=42, Romx=0</ code > ’ disables scrambling
297301 for < code class ="Cm "> romx</ code > .</ p >
0 commit comments