<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/xtensa/include/asm/vectors.h, branch linux-4.4.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.4.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-11-03T14:19:39Z</updated>
<entry>
<title>xtensa: drop unused sections and remapped reset handlers</title>
<updated>2015-11-03T14:19:39Z</updated>
<author>
<name>Max Filippov</name>
</author>
<published>2015-10-16T15:30:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0d848afe117ac3e31b9d57b65553ff18ef9d288f'/>
<id>urn:sha1:0d848afe117ac3e31b9d57b65553ff18ef9d288f</id>
<content type='text'>
There are no .bootstrap or .ResetVector.text sections linked to the
vmlinux image, drop these sections from vmlinux.ld.S. Drop
RESET_VECTOR_VADDR definition only used for .ResetVector.text.

Drop remapped copies of primary and secondary reset vectors, as modern
gdb don't have problems stepping through instructions at arbitrary
locations. Drop corresponding sections from the corresponding linker
scripts.

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
</content>
</entry>
<entry>
<title>xtensa: fix secondary core boot in SMP</title>
<updated>2015-11-03T14:19:38Z</updated>
<author>
<name>Max Filippov</name>
</author>
<published>2015-10-16T14:01:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ab45fb145096799dabd18afc58bb5f97171017cd'/>
<id>urn:sha1:ab45fb145096799dabd18afc58bb5f97171017cd</id>
<content type='text'>
There are multiple factors adding to the issue in different
configurations:

- commit 17290231df16eeee ("xtensa: add fixup for double exception raised
  in window overflow") added function window_overflow_restore_a0_fixup to
  double exception vector overlapping reset vector location of secondary
  processor cores.
- on MMUv2 cores RESET_VECTOR1_VADDR may point to uncached kernel memory
  making code overlapping depend on cache type and size, so that without
  cache or with WT cache reset vector code overwrites double exception
  code, making issue even harder to detect.
- on MMUv3 cores RESET_VECTOR1_VADDR may point to unmapped area, as
  MMUv3 cores change virtual address map to match MMUv2 layout, but
  reset vector virtual address is given for the original MMUv3 mapping.
- physical memory region of the secondary reset vector is not reserved
  in the physical memory map, and thus may be allocated and overwritten
  at arbitrary moment.

Fix it as follows:

- move window_overflow_restore_a0_fixup code to .text section.
- define RESET_VECTOR1_VADDR so that it points to reset vector in the
  cacheable MMUv2 map for cores with MMU.
- reserve reset vector region in the physical memory map. Drop separate
  literal section and build mxhead.S with text section literals.

Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
</content>
</entry>
<entry>
<title>xtensa: nommu: provide correct KIO addresses</title>
<updated>2015-11-02T15:03:02Z</updated>
<author>
<name>Max Filippov</name>
</author>
<published>2015-09-24T20:36:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=260c64bbabdb8da7248c87e0cdd92023bd7b76c6'/>
<id>urn:sha1:260c64bbabdb8da7248c87e0cdd92023bd7b76c6</id>
<content type='text'>
KIO region location is different for noMMU cores. Provide different
default physical address and make KIO virtual address equal to physical.

Move xtensa_get_kio_paddr function close to XCHAL_KIO_PADDR definition
and define it not only for MMUv3, but for all MMU options except MMUv2.

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
</content>
</entry>
<entry>
<title>xtensa: nommu: fix load address definitions</title>
<updated>2014-10-21T09:28:53Z</updated>
<author>
<name>Max Filippov</name>
</author>
<published>2014-10-02T20:57:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=72bb305fdcb7b6ee14a283016e32f6bf4c864b44'/>
<id>urn:sha1:72bb305fdcb7b6ee14a283016e32f6bf4c864b44</id>
<content type='text'>
Change KERNELOFFSET, LOAD_MEMORY_ADDRESS and VIRTUAL_MEMORY_ADDRESS to be
relative to the start of physical memory in noMMU configuration, as
there's no uniform memory remapping to KSEG starting at 0xd0000000.

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
</content>
</entry>
<entry>
<title>xtensa: fix warning '"CONFIG_OF" is not defined'</title>
<updated>2014-01-19T15:29:13Z</updated>
<author>
<name>Max Filippov</name>
</author>
<published>2014-01-15T23:38:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9848e49a9a9aab075d79c5d2856abb879495f97f'/>
<id>urn:sha1:9848e49a9a9aab075d79c5d2856abb879495f97f</id>
<content type='text'>
The warning only shows up when building MMUv3 configuration with OF
support disabled.

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
</content>
</entry>
<entry>
<title>xtensa: remap io area defined in device tree</title>
<updated>2014-01-14T20:25:14Z</updated>
<author>
<name>Baruch Siach</name>
</author>
<published>2013-12-29T09:03:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6cb971114f633a0bf240c20b681d989b45e3ec56'/>
<id>urn:sha1:6cb971114f633a0bf240c20b681d989b45e3ec56</id>
<content type='text'>
Use the simple-bus node to discover the io area, and remap the cached and
bypass io ranges. The parent-bus-address value of the first triplet in the
"ranges" property is used. This value is rounded down to the nearest 256MB
boundary. The length of the io area is fixed at 256MB; the "ranges" property
length value is ignored.

Other limitations: (1) only the first simple-bus node is considered, and (2)
only the first triplet of the "ranges" property is considered.

See ePAPR 1.1 §6.5 for the simple-bus node description, and §2.3.8 for the
"ranges" property description.

Signed-off-by: Baruch Siach &lt;baruch@tkos.co.il&gt;
Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
</content>
</entry>
<entry>
<title>xtensa: avoid duplicate of IO range definitions</title>
<updated>2014-01-14T20:21:24Z</updated>
<author>
<name>Baruch Siach</name>
</author>
<published>2013-11-17T06:14:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4809bb468f140d561dfbb785e8dcdda5bae8c1f2'/>
<id>urn:sha1:4809bb468f140d561dfbb785e8dcdda5bae8c1f2</id>
<content type='text'>
Define IO addresses in a single place, to make it easier to change for
non-standard memory maps.

Signed-off-by: Baruch Siach &lt;baruch@tkos.co.il&gt;
Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
</content>
</entry>
<entry>
<title>xtensa: clean up include/asm/vectors.h</title>
<updated>2014-01-14T18:19:47Z</updated>
<author>
<name>Max Filippov</name>
</author>
<published>2013-11-18T07:05:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f0a34615add3912bf8f5354c02998aa506f4d15b'/>
<id>urn:sha1:f0a34615add3912bf8f5354c02998aa506f4d15b</id>
<content type='text'>
- drop unused PHYSICAL_MEMORY_ADDRESS and XC_PADDR
- fix NMI_VECTOR_VADDR and INTLEVEL7_VECTOR_VADDR definitions: there
  should be no XCHAL_ prefix in them;
- fix the following warning seen with gcc-4.8.1:

  arch/xtensa/include/asm/vectors.h:71:5: warning: "XCHAL_HAVE_VECBASE" is not defined [-Wundef]

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Chris Zankel &lt;chris@zankel.net&gt;
</content>
</entry>
<entry>
<title>xtensa: add MMU v3 support</title>
<updated>2013-05-09T08:07:09Z</updated>
<author>
<name>Max Filippov</name>
</author>
<published>2012-12-03T11:01:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e85e335f8ff615f74e29e09cc2599f095600114b'/>
<id>urn:sha1:e85e335f8ff615f74e29e09cc2599f095600114b</id>
<content type='text'>
MMUv3 comes out of reset with identity vaddr -&gt; paddr mapping in the TLB
way 6:

Way 6 (512 MB)
        Vaddr       Paddr       ASID  Attr RWX Cache
        ----------  ----------  ----  ---- --- -------
        0x00000000  0x00000000  0x01  0x03 RWX Bypass
        0x20000000  0x20000000  0x01  0x03 RWX Bypass
        0x40000000  0x40000000  0x01  0x03 RWX Bypass
        0x60000000  0x60000000  0x01  0x03 RWX Bypass
        0x80000000  0x80000000  0x01  0x03 RWX Bypass
        0xa0000000  0xa0000000  0x01  0x03 RWX Bypass
        0xc0000000  0xc0000000  0x01  0x03 RWX Bypass
        0xe0000000  0xe0000000  0x01  0x03 RWX Bypass

This patch adds remapping code at the reset vector or at the kernel
_start (depending on CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX) that
reconfigures MMUv3 as MMUv2:

Way 5 (128 MB)
        Vaddr       Paddr       ASID  Attr RWX Cache
        ----------  ----------  ----  ---- --- -------
        0xd0000000  0x00000000  0x01  0x07 RWX WB
        0xd8000000  0x00000000  0x01  0x03 RWX Bypass
Way 6 (256 MB)
        Vaddr       Paddr       ASID  Attr RWX Cache
        ----------  ----------  ----  ---- --- -------
        0xe0000000  0xf0000000  0x01  0x07 RWX WB
        0xf0000000  0xf0000000  0x01  0x03 RWX Bypass

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Chris Zankel &lt;chris@zankel.net&gt;
</content>
</entry>
</feed>
