<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm63xx/u-boot/arch/arc/lib, branch master</title>
<subtitle>Broadcom-s U-Boot</subtitle>
<id>https://git.openwrt.org/project/bcm63xx/u-boot/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/bcm63xx/u-boot/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/'/>
<updated>2019-05-18T12:15:35Z</updated>
<entry>
<title>CONFIG_SPL_SYS_[DI]CACHE_OFF: add</title>
<updated>2019-05-18T12:15:35Z</updated>
<author>
<name>Trevor Woerner</name>
</author>
<published>2019-05-03T13:41:00Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=1001502545ff0125c39232cf0e7f26d9213ab55f'/>
<id>urn:sha1:1001502545ff0125c39232cf0e7f26d9213ab55f</id>
<content type='text'>
While converting CONFIG_SYS_[DI]CACHE_OFF to Kconfig, there are instances
where these configuration items are conditional on SPL. This commit adds SPL
variants of these configuration items, uses CONFIG_IS_ENABLED(), and updates
the configurations as required.

Acked-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
Signed-off-by: Trevor Woerner &lt;trevor@toganlabs.com&gt;
[trini: Make the default depend on the setting for full U-Boot, update
more zynq hardware]
Signed-off-by: Tom Rini &lt;trini@konsulko.com&gt;
</content>
</entry>
<entry>
<title>ARC: Fix iteration in arc_xx_version()</title>
<updated>2019-01-25T05:40:53Z</updated>
<author>
<name>Alexey Brodkin</name>
</author>
<published>2019-01-22T16:33:59Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=7181a6d1cf71b9e97cfcf175400390f9eabde8a8'/>
<id>urn:sha1:7181a6d1cf71b9e97cfcf175400390f9eabde8a8</id>
<content type='text'>
"i" gets incremented before we're entering loop body
and effectively we iterate from 1 to 8 instead of 0 to 7.

This way we:
 a) Skip the first line of struct hs_versions
 b) Go over it and access memory beyond the structure

Signed-off-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Improve identification of ARC cores</title>
<updated>2018-12-03T11:26:18Z</updated>
<author>
<name>Alexey Brodkin</name>
</author>
<published>2018-11-27T06:46:57Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=85e529fdfcdff44789e4d0798c3523b9c1b3d3d6'/>
<id>urn:sha1:85e529fdfcdff44789e4d0798c3523b9c1b3d3d6</id>
<content type='text'>
1. Try to guess a ARC core template that was used
   i.e. not just name a core family but something more
   menaingful like "ARC HS38", "ARC EM11D" etc.

   We do it checking availability of the key differentiation
   features like:
    - Caches (we actually only check for L1 I$ fpr simplicity)
    - XY-memory
    - DSP extensions etc.

2. Identify ARC subsystems

3. Print core clock frequency

Signed-off-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: make generic print_cpuinfo() weak</title>
<updated>2018-10-12T12:14:40Z</updated>
<author>
<name>Alexey Brodkin</name>
</author>
<published>2018-10-10T10:59:33Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=ba9f56f3d463f9404f41958cefe2765c9a6bddcf'/>
<id>urn:sha1:ba9f56f3d463f9404f41958cefe2765c9a6bddcf</id>
<content type='text'>
This allows board to override print_cpuinfo() because
they might know better which ARChitect template was used.
This way we may not only derive base architecture type and
version but more meaningful things like "ARC EM7D" instead of
simple "ARC EM", "ARC HS36" instead of "ARC HS".

Signed-off-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Implement print_cpuinfo()</title>
<updated>2018-10-05T13:55:42Z</updated>
<author>
<name>Alexey Brodkin</name>
</author>
<published>2018-10-02T08:42:23Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=7fe46b969def8537729b4a73e82c93d431f0b752'/>
<id>urn:sha1:7fe46b969def8537729b4a73e82c93d431f0b752</id>
<content type='text'>
Once we enable DISPLAY_CPUINFO for ARC we'll see
ARC core family and version printed on boot.

Signed-off-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Enable unaligned access in hardware if compiler uses it</title>
<updated>2018-07-31T04:49:47Z</updated>
<author>
<name>Alexey Brodkin</name>
</author>
<published>2018-07-29T06:47:52Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=8f590063ba635264303b1713c421df331743fd46'/>
<id>urn:sha1:8f590063ba635264303b1713c421df331743fd46</id>
<content type='text'>
Even if ARC core might handle unaligned access to data this
hardware feature by default is disabled.

But GCC starting from 8.1.0 unconditionally uses it for ARC HS cores.
Which leads to quite strange and fatal run-time failures like the one
below if HW is not configured properly:
| hsdk# sf probe
| Misaligned data access exception @ 0xbff794d4
| ECR:    0x000d0000
| RET:    0xbff794d4
| BLINK:  0xbff79644
| STAT32: 0x00000800
| GP: 0x1003e000   r25: 0xbfd58f08
| BTA: 0xbff794a4  SP: 0xbfd58cd4  FP: 0xbfd58ef0
| LPS: 0xbff90240 LPE: 0xbff90244 LPC: 0x00000000
| r00: 0x00000000 r01: 0x00000003 r02: 0x000026bf
| r03: 0x00000000 r04: 0x00000100 r05: 0x00000000
| r06: 0x00000001 r07: 0x00000000 r08: 0x1dcd6500
| r09: 0x00000000 r10: 0x00200000 r11: 0x00000000
| r12: 0x1b3d4440 r13: 0xbff9eca4 r14: 0xbfd59d68
| r15: 0xbfd60cd0 r16: 0x00000000 r17: 0x00000000
| r18: 0xbff9ed14 r19: 0xbfd59c78 r20: 0xbfd58d40
| r21: 0xbfd58d44 r22: 0x00000000 r23: 0x00000000
| r24: 0xbfd59ba8
| Resetting CPU ...

Now we're checking for __ARC_UNALIGNED__ define emitted by the
compiler if it's going to use unaligned access and then we
force-enable it in hardware too.

Signed-off-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Reset: Implement weak reset_cpu()</title>
<updated>2018-05-31T17:13:29Z</updated>
<author>
<name>Alexey Brodkin</name>
</author>
<published>2018-05-30T09:19:54Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=eb5c853938cb784bbf83ab87847e94764c3cd00a'/>
<id>urn:sha1:eb5c853938cb784bbf83ab87847e94764c3cd00a</id>
<content type='text'>
This will allow for board-specific implementation of reset.
Default version will just stop execution with help of BRK instruction.

Signed-off-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Reset: Use __builtin_arc_brk() instead of open-coded ASM</title>
<updated>2018-05-31T17:13:29Z</updated>
<author>
<name>Alexey Brodkin</name>
</author>
<published>2018-05-30T08:31:07Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=8f187142e51634d6887ef397cd6abaa7fab14b21'/>
<id>urn:sha1:8f187142e51634d6887ef397cd6abaa7fab14b21</id>
<content type='text'>
For quite some time we have a GCC's built-in which inserts BRK
instruction so let's use it instead of simple insertion of in-line
assembly.

Signed-off-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Improve relocation fix-ups</title>
<updated>2018-05-31T17:13:29Z</updated>
<author>
<name>Alexey Brodkin</name>
</author>
<published>2018-05-29T15:09:55Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=ce3071287e9837b897d49d1be03e00e52050a33e'/>
<id>urn:sha1:ce3071287e9837b897d49d1be03e00e52050a33e</id>
<content type='text'>
We used to have the one and only linker script for all ARC boards
and so we relied on a particular order of symbols there.

Because of that we used __ivt_end as the marker of the end of all the
code which won't be true any longer if we move .ivt section to any other
place. That said we'd better check for each section separately.

A couple of other improvements:
 1. There's no point to include the marker of section end in interested
    range because its address is beyond the section, i.e. we should
    compare with "&lt;" but not "&lt;=".

 2. .ivt section for ARCv2 cores is just an array of 32-bit ints and
    they are not swapped even on little-endia cores while in case of
    ARCompact cores .ivt contains valid code so swapping is required.

 3. Just in case add check for ARC600 which is also ARCompact
    and its .ivt is normal code.

Signed-off-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
</content>
</entry>
<entry>
<title>ARC: Cache: Don't compare I$ and D$ line lengths</title>
<updated>2018-05-31T17:13:29Z</updated>
<author>
<name>Alexey Brodkin</name>
</author>
<published>2018-05-25T17:22:23Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/bcm63xx/u-boot/commit/?id=d0a5023a356ff1ca98b800af61f338691234fbf6'/>
<id>urn:sha1:d0a5023a356ff1ca98b800af61f338691234fbf6</id>
<content type='text'>
We don't care much about I$ line length really as there're
no per-line ops on I$ instead we only do full invalidation of it
on occasion of relocation and right before jumping to the OS.

Also as compared to Linux kernel where we don't support different
lengths of I$ and D$ lines in U-Boot we have to deal with such an
exotic configs if the target board is not supposed to run Linux kernel.

Signed-off-by: Alexey Brodkin &lt;abrodkin@synopsys.com&gt;
</content>
</entry>
</feed>
