<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/arch/x86/cpu/i386, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/u-boot.git/atom/arch/x86/cpu/i386?h=master</id>
<link rel='self' href='http://cgit.235523.xyz/u-boot.git/atom/arch/x86/cpu/i386?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<updated>2025-04-03T17:41:55Z</updated>
<entry>
<title>x86: Support CPU functions in long mode</title>
<updated>2025-04-03T17:41:55Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2025-03-15T14:25:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=5ee60f3afa146e45752e1e99c382f18dd7f8200e'/>
<id>urn:sha1:5ee60f3afa146e45752e1e99c382f18dd7f8200e</id>
<content type='text'>
At present it is not possible to find out the physical-address size in
long mode, so a predefined value is used.

Update the macros to support this properly, since it is important when
programming MTRRs.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>x86: Rename the _D dirty flag</title>
<updated>2025-04-03T17:41:55Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2025-03-15T14:25:40Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=b4a3ebe30426712a1981eb3bf53992d88bae01e3'/>
<id>urn:sha1:b4a3ebe30426712a1981eb3bf53992d88bae01e3</id>
<content type='text'>
This value happens to be used by ctype.h so chose a different name.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>x86: Use a simple jump into long mode</title>
<updated>2025-04-03T17:41:55Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2025-03-15T14:25:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=ffd92a25be3feb4d9ff8393781ce65896cf9a3b6'/>
<id>urn:sha1:ffd92a25be3feb4d9ff8393781ce65896cf9a3b6</id>
<content type='text'>
With the 64-bit descriptor we can use a jump instruction, rather than
pushing things on the stack.

Since the processor is in 64-bit mode by this point, pop a 64-bit value
from the stack, containing the target address.

This simplifies the code slightly, in particular its use of the stack.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>x86: Use the same GDT when jumping to long mode</title>
<updated>2025-04-03T17:41:55Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2025-03-15T14:25:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=f5b1c643b41214b0c04db827c539a278aee76255'/>
<id>urn:sha1:f5b1c643b41214b0c04db827c539a278aee76255</id>
<content type='text'>
Make use the existing GDT which now includes entries for 64-bit code.
Leave the interrupt descriptors alone. They can be tidied up once U-Boot
starts up.

With this, kvm mode works with QEMU.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
Fixes: https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/31
</content>
</entry>
<entry>
<title>x86: Disable paging before changing to long mode</title>
<updated>2025-04-03T17:41:55Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2025-03-15T14:25:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=f5f1ed8ae7395dbffa611823457a3beeda462577'/>
<id>urn:sha1:f5f1ed8ae7395dbffa611823457a3beeda462577</id>
<content type='text'>
This is required as part of the procedure. The existing code works
because it changes the GDT at the same time, but this makes kvm
unhappy.

Update the algorithm to disable and then re-enable paging.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>x86: Use defines for the cache flags</title>
<updated>2025-04-03T17:41:55Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2025-03-15T14:25:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=912e32d34fa2ceeeb5d47eafb33074971b1755c9'/>
<id>urn:sha1:912e32d34fa2ceeeb5d47eafb33074971b1755c9</id>
<content type='text'>
Use some named flags when setting up the cache, so it is easier to see
what is going on.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>x86: Add 64-bit entries to the GDT</title>
<updated>2025-04-03T17:41:55Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2025-03-15T14:25:31Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=66f0dcb07fcccd0d05754f6d97a34f847c90a2a0'/>
<id>urn:sha1:66f0dcb07fcccd0d05754f6d97a34f847c90a2a0</id>
<content type='text'>
At present it is not possible to execution 64-bit code without
installing an entire new Global Descriptor Table. This is inconvenient
since kvm does not seem to like switching into long mode with a new
table.

It isn't actually necessary, since we can just extend the existing
table. Add some new entries to this effect.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>x86: Fix call64's section flags</title>
<updated>2025-04-02T20:33:50Z</updated>
<author>
<name>Sam Edwards</name>
<email>cfsworks@gmail.com</email>
</author>
<published>2025-03-15T22:18:05Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=8c39dc549b0de155c02a2b39f01dae19775f41a5'/>
<id>urn:sha1:8c39dc549b0de155c02a2b39f01dae19775f41a5</id>
<content type='text'>
When a section is not flagged with SHF_ALLOC, LLD's --gc-sections
algorithm fails to visit the sections that it references. As a result of
this, LLD was dropping the call64.o(.data) section, which is itself only
referenced by .text_call64.

This appears to be a bug in LLD, but the .section directive for
.text_call64 should really have the correct flags either way.

Add `"ax"` to mark the section as ALLOC ("supposed to be loaded") and
CODE ("supposed to be executed").

Fixes: 7dc82591d68e2a ("x86: Move call64 into its own section")
Signed-off-by: Sam Edwards &lt;CFSworks@gmail.com&gt;
</content>
</entry>
<entry>
<title>x86: cpu: Mark a few functions static</title>
<updated>2024-10-18T20:10:22Z</updated>
<author>
<name>Andy Shevchenko</name>
<email>andriy.shevchenko@linux.intel.com</email>
</author>
<published>2024-10-05T19:11:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=2fb5cc2ad8155f9dc32e454bf01f051dc98b5684'/>
<id>urn:sha1:2fb5cc2ad8155f9dc32e454bf01f051dc98b5684</id>
<content type='text'>
Some functions are not used anywhere except the same file
where they are defined. Mark them static. This helps avoiding
the compiler warnings:

  arch/x86/cpu/cpu.c:343:6: warning: no previous prototype for ‘detect_coreboot_table_at’ [-Wmissing-prototypes]
  arch/x86/cpu/mtrr.c:90:6: warning: no previous prototype for ‘mtrr_write_all’ [-Wmissing-prototypes]
  arch/x86/cpu/i386/interrupt.c:240:6: warning: no previous prototype for ‘__do_irq’ [-Wmissing-prototypes]

Signed-off-by: Andy Shevchenko &lt;andriy.shevchenko@linux.intel.com&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>x86: Ensure the CPU identity exists for timer init</title>
<updated>2024-10-18T20:10:21Z</updated>
<author>
<name>Simon Glass</name>
<email>sjg@chromium.org</email>
</author>
<published>2024-08-28T01:44:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=3b2e4f542e3ea5d116d5830f4eef9be97d872312'/>
<id>urn:sha1:3b2e4f542e3ea5d116d5830f4eef9be97d872312</id>
<content type='text'>
When bootstage is used the timer can be inited before the CPU identity
is set up, resulting in the checks for the vendor not working.

Add a special call to work around this.

Signed-off-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
</feed>
