<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style="--code-editor-font: var(--default-mono-font, "GitLab Mono"), JetBrains Mono, Menlo, DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title>
GitLab
</title>
<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>
<style>img {
max-width: 100%; height: auto;
}
body {
font-size: .875rem;
}
body {
-webkit-text-shadow: hsla(0,0%,100%,.01) 0 0 1px;
}
body {
font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style="font-size: inherit; -webkit-text-shadow: hsla(0,0%,100%,.01) 0 0 1px; font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";">
<div class="content">
<p class="details" style="font-style: italic; color: #626168;">
Issue created by <a href="https://gitlab.rtems.org/wmthornton-dev">Wayne Thornton</a>: <a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5659">#5659</a>
</p>
<div class="md" style="position: relative; z-index: 1; color: #3a383f; word-wrap: break-word;">
<h2 id="user-content-background--motivation" dir="auto" style="margin-top: 0px; margin-bottom: 10px;" align="initial">Background & Motivation<a href="#background--motivation" aria-label="Link to heading 'Background & Motivation'" data-heading-content="Background & Motivation" class="anchor" style="margin-top: 0px;"></a>
</h2>
<p dir="auto" style="color: #3a383f; margin: 0px 0px 1rem;" align="initial">Executing 64-bit e6500 SMP test suites (such as <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">smpspinwait01.exe</code>) inside QEMU (<code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">-M ppce500 -cpu e6500 -m 1024 -smp 4</code>) using the default bare-metal <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">qoriq_e6500_64</code> BSP results in a silent console hang. This occurs because QEMU's generic <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">ppce500</code> machine model does not emulate physical NXP T-series CCSR memory maps or the on-chip NS16550 UART registers at their bare-metal physical addresses.</p>
<p dir="auto" style="color: #3a383f; margin: 0px 0px 1rem;" align="initial">To successfully run and capture terminal output in QEMU, the BSP must be built as a <strong style="font-weight: 600; margin-top: 0px;">Hypervisor Guest</strong>. Enabling this mode switches the console driver to use the ePAPR byte channel (routing output cleanly to QEMU's virtual terminal) and replaces physical MPIC timer dependencies with standard PowerPC decrementer clocks.</p>
<p dir="auto" style="color: #3a383f; margin: 0px 0px 1rem;" align="initial">However, enabling Hypervisor Guest mode strips out physical external interrupt line definitions from <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;"><bsp/irq.h></code>, exposing an architectural bug where legacy VME bus driver code is being compiled against the 64-bit e6500 target.</p>
<hr style="overflow: hidden; margin: 10px 0; border: 1px solid #dcdcde;">
<h2 id="user-content-environment--configuration" dir="auto" style="margin-top: 20px; margin-bottom: 10px;" align="initial">Environment & Configuration<a href="#environment--configuration" aria-label="Link to heading 'Environment & Configuration'" data-heading-content="Environment & Configuration" class="anchor" style="margin-top: 0px;"></a>
</h2>
<ul dir="auto" style="text-align: initial; list-style-type: disc; margin: 0px 0px 1rem; padding: 0;">
<li style="margin-top: 0px; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">
<strong style="font-weight: 600; margin-top: 0px;">RTEMS Version:</strong> <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 0.125rem 0.25rem;">7.0.not_released</code> (master branch)</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">
<strong style="font-weight: 600; margin-top: 0px;">Target Architecture:</strong> <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 0.125rem 0.25rem;">powerpc</code>
</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">
<strong style="font-weight: 600; margin-top: 0px;">Target BSP:</strong> <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 0.125rem 0.25rem;">qoriq_e6500_64</code>
</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">
<strong style="font-weight: 600; margin-top: 0px;">Host OS:</strong> Linux x86_64 (WSL2 / GCC 15 toolchain environment)</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">
<strong style="font-weight: 600; margin-top: 0px;">Build System:</strong> Waf</li>
</ul>
<h3 id="user-content-custom-configini" dir="auto" style="margin-top: 1.5rem; margin-bottom: 1rem; font-weight: 600; font-size: 1.125rem; letter-spacing: inherit; line-height: 1.25; color: #18171d;" align="initial">Custom <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0px; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 0.125rem 0.25rem;">config.ini</code><a href="#custom-configini" aria-label="Link to heading 'Custom config.ini'" data-heading-content="Custom config.ini" class="anchor"></a>
</h3>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style="display: block; font-size: 14px; color: #3a383f; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0px 0 1rem; padding: 12px; border: 1px solid #dcdcde;"><code style="font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0px; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; overflow-wrap: normal; padding: unset;"><span id="LC1" class="line" lang="plaintext" style="margin-top: 0px;">[powerpc/qoriq_e6500_64]</span>
<span id="LC2" class="line" lang="plaintext">RTEMS_SMP = True</span>
<span id="LC3" class="line" lang="plaintext">BUILD_TESTS = True</span>
<span id="LC4" class="line" lang="plaintext">RTEMS_POSIX_API = True</span>
<span id="LC5" class="line" lang="plaintext">WARNING_FLAGS = -Wall -Wextra -Werror -Wno-unused-parameter -Wno-missing-field-initializers</span>
<span id="LC6" class="line" lang="plaintext">CC_WARNING_FLAGS = -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -Wold-styl></span>
<span id="LC7" class="line" lang="plaintext"></span>
<span id="LC8" class="line" lang="plaintext">QORIQ_IS_HYPERVISOR_GUEST = True</span>
<span id="LC9" class="line" lang="plaintext">QORIQ_UART_0_ENABLE = False</span>
<span id="LC10" class="line" lang="plaintext">QORIQ_UART_1_ENABLE = False</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
<h2 id="user-content-steps-to-reproduce" dir="auto" style="margin-top: 20px; margin-bottom: 10px;" align="initial">Steps to Reproduce<a href="#steps-to-reproduce" aria-label="Link to heading 'Steps to Reproduce'" data-heading-content="Steps to Reproduce" class="anchor" style="margin-top: 0px;"></a>
</h2>
<ol dir="auto" style="text-align: initial; margin: 0px 0px 1rem; padding: 0;">
<li style="margin-top: 0px; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">Apply the 'config.ini' build options shown above</li>
<li style="line-height: 1.6em; margin-left: 25px; padding-left: 3px;">Configure the build tree with the following command:</li>
</ol>
<p dir="auto" style="color: #3a383f; margin: 0px 0px 1rem;" align="initial"><code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">./waf configure --rtems-bsps=powerpc/qoriq_e6500_64</code></p>
<ol start="3" dir="auto" style="text-align: initial; margin: 0px 0px 1rem; padding: 0;">
<li style="margin-top: 0px; line-height: 1.6em; margin-left: 25px; padding-left: 3px;">Execute the build with './waf'</li>
</ol>
<h2 id="user-content-actual-behavior" dir="auto" style="margin-top: 20px; margin-bottom: 10px;" align="initial">Actual Behavior<a href="#actual-behavior" aria-label="Link to heading 'Actual Behavior'" data-heading-content="Actual Behavior" class="anchor" style="margin-top: 0px;"></a>
</h2>
<p dir="auto" style="color: #3a383f; margin: 0px 0px 1rem;" align="initial">The build aborts during the compilation of <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">bsps/powerpc/shared/vme/vme_universe.c</code>. Because physical external interrupts are omitted in hypervisor guest mode, the macro <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">QORIQ_IRQ_EXT_0</code> is undeclared:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style="display: block; font-size: 14px; color: #3a383f; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0px 0 1rem; padding: 12px; border: 1px solid #dcdcde;"><code style="font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0px; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; overflow-wrap: normal; padding: unset;"><span id="LC1" class="line" lang="plaintext" style="margin-top: 0px;">In file included from ../../../bsps/powerpc/shared/vme/vme_universe.c:12:</span>
<span id="LC2" class="line" lang="plaintext">../../../bsps/powerpc/shared/vme/vme_universe.c: In function 'BSP_VMEIrqMgrInstall':</span>
<span id="LC3" class="line" lang="plaintext">../../../bsps/powerpc/qoriq/include/bsp/VMEConfig.h:82:7: error: 'QORIQ_IRQ_EXT_0' undeclared (first use in this function)</span>
<span id="LC4" class="line" lang="plaintext"> 82 | QORIQ_IRQ_EXT_0, \</span>
<span id="LC5" class="line" lang="plaintext"> | ^~~~~~~~~~~~~~~</span>
<span id="LC6" class="line" lang="plaintext">../../../bsps/powerpc/shared/vme/vme_universe.c:422:3: note: in expansion of macro 'BSP_VME_INSTALL_IRQ_MGR'</span>
<span id="LC7" class="line" lang="plaintext"> 422 | BSP_VME_INSTALL_IRQ_MGR(err);</span>
<span id="LC8" class="line" lang="plaintext"> | ^~~~~~~~~~~~~~~~~~~~~~~</span>
<span id="LC9" class="line" lang="plaintext">../../../bsps/powerpc/qoriq/include/bsp/VMEConfig.h:82:7: note: each undeclared identifier is reported only once for each function it appears in</span>
<span id="LC10" class="line" lang="plaintext"> 82 | QORIQ_IRQ_EXT_0, \</span>
<span id="LC11" class="line" lang="plaintext"> | ^~~~~~~~~~~~~~~</span>
<span id="LC12" class="line" lang="plaintext">../../../bsps/powerpc/shared/vme/vme_universe.c:422:3: note: in expansion of macro 'BSP_VME_INSTALL_IRQ_MGR'</span>
<span id="LC13" class="line" lang="plaintext"> 422 | BSP_VME_INSTALL_IRQ_MGR(err);</span>
<span id="LC14" class="line" lang="plaintext"> | ^~~~~~~~~~~~~~~~~~~~~~~</span>
<span id="LC15" class="line" lang="plaintext"></span>
<span id="LC16" class="line" lang="plaintext">Waf: Leaving directory `/home/wmthornton/src/rtems/build/powerpc/qoriq_e6500_64'</span>
<span id="LC17" class="line" lang="plaintext">Build failed</span>
<span id="LC18" class="line" lang="plaintext"> -> task in '/bsps/powerpc/objvme' failed with exit status 1</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
<h2 id="user-content-root-cause-analysis" dir="auto" style="margin-top: 20px; margin-bottom: 10px;" align="initial">Root Cause Analysis<a href="#root-cause-analysis" aria-label="Link to heading 'Root Cause Analysis'" data-heading-content="Root Cause Analysis" class="anchor" style="margin-top: 0px;"></a>
</h2>
<p dir="auto" style="color: #3a383f; margin: 0px 0px 1rem;" align="initial">Unscoped Waf Dependency: In <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">spec/build/bsps/powerpc/qoriq/</code>, the VME bus driver group (<code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">objvme</code>) is linked to the broader <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">qoriq</code> BSP family rather than being restricted exclusively to the <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">mvme2500</code> BSP variant. As a result, the build system attempts to compile <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">vme_universe.c</code> for 64-bit e6500 targets that do not possess a VME Universe II or Tsi148 bridge.</p>
<p dir="auto" style="color: #3a383f; margin: 0px 0px 1rem;" align="initial">Hardcoded Legacy Macro: In <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">bsps/powerpc/qoriq/include/bsp/VMEConfig.h</code>, the interrupt handler is hardcoded to <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">QORIQ_IRQ_EXT_0</code>. An existing comment in the source code explicitly acknowledges this technical debt:</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style="display: block; font-size: 14px; color: #3a383f; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0px 0 1rem; padding: 12px; border: 1px solid #dcdcde;"><code style="font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0px; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; overflow-wrap: normal; padding: unset;"><span id="LC1" class="line" lang="plaintext" style="margin-top: 0px;"> grep -n -C 10 "QORIQ_IRQ_EXT_0" bsps/powerpc/qoriq/include/bsp/VMEConfig.h</span>
<span id="LC2" class="line" lang="plaintext">65- */</span>
<span id="LC3" class="line" lang="plaintext">66-#define _VME_A32_WIN0_ON_PCI (bsp_vme_pcie_base_address + 0x10000000)</span>
<span id="LC4" class="line" lang="plaintext">67-#define _VME_A24_ON_PCI (bsp_vme_pcie_base_address + 0x03000000)</span>
<span id="LC5" class="line" lang="plaintext">68-#define _VME_A16_ON_PCI (bsp_vme_pcie_base_address + 0x02000000)</span>
<span id="LC6" class="line" lang="plaintext">69-#define _VME_CSR_ON_PCI (bsp_vme_pcie_base_address + 0x01000000)</span>
<span id="LC7" class="line" lang="plaintext">70-</span>
<span id="LC8" class="line" lang="plaintext">71-/* FIXME: Make this a BSP config option */</span>
<span id="LC9" class="line" lang="plaintext">72-#define _VME_A32_WIN0_ON_VME 0x20000000</span>
<span id="LC10" class="line" lang="plaintext">73-</span>
<span id="LC11" class="line" lang="plaintext">74-/*</span>
<span id="LC12" class="line" lang="plaintext">75: * FIXME: The fixed QORIQ_IRQ_EXT_0 is valid for the MVME2500 board. In theory</span>
<span id="LC13" class="line" lang="plaintext">76- * there should be some possibility to get that information from the device tree</span>
<span id="LC14" class="line" lang="plaintext">77- * or from PCI config space. But I didn't find it anywhere.</span>
<span id="LC15" class="line" lang="plaintext">78- */</span>
<span id="LC16" class="line" lang="plaintext">79-#define BSP_VME_INSTALL_IRQ_MGR(err) \</span>
<span id="LC17" class="line" lang="plaintext">80- do { \</span>
<span id="LC18" class="line" lang="plaintext">81- err = qoriq_pic_set_sense_and_polarity(\</span>
<span id="LC19" class="line" lang="plaintext">82: QORIQ_IRQ_EXT_0, \</span>
<span id="LC20" class="line" lang="plaintext">83- QORIQ_EIRQ_TRIGGER_LEVEL_LOW, \</span>
<span id="LC21" class="line" lang="plaintext">84- NULL \</span>
<span id="LC22" class="line" lang="plaintext">85- ); \</span>
<span id="LC23" class="line" lang="plaintext">86- if (err == 0) { \</span>
<span id="LC24" class="line" lang="plaintext">87: err = vmeTsi148InstallIrqMgrAlt(0, 0, QORIQ_IRQ_EXT_0, -1); \</span>
<span id="LC25" class="line" lang="plaintext">88- } \</span>
<span id="LC26" class="line" lang="plaintext">89- } while (0)</span>
<span id="LC27" class="line" lang="plaintext">90-</span>
<span id="LC28" class="line" lang="plaintext">91-/* Add prototypes that are in all VMEConfig.h files */</span>
<span id="LC29" class="line" lang="plaintext">92-extern int BSP_VMEInit(void);</span>
<span id="LC30" class="line" lang="plaintext">93-extern int BSP_VMEIrqMgrInstall(void);</span>
<span id="LC31" class="line" lang="plaintext">94-extern unsigned short (*_BSP_clear_vmebridge_errors)(int);</span>
<span id="LC32" class="line" lang="plaintext">95-</span>
<span id="LC33" class="line" lang="plaintext">96-#ifdef __cplusplus</span>
<span id="LC34" class="line" lang="plaintext">97-}</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
<p dir="auto" style="color: #3a383f; margin: 0px 0px 1rem;" align="initial">Hypervisor IRQ Strip: When <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">QORIQ_IS_HYPERVISOR_GUEST = True</code> is defined, RTEMS alters the interrupt mappings in <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;"><bsp/irq.h></code>. Because virtual guest environments do not map physical external hardware IRQ pins (<code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">QORIQ_IRQ_EXT_0</code> through <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">QORIQ_IRQ_EXT_11</code>), the symbol evaluates as undeclared during macro expansion, breaking the build.</p>
<h2 id="user-content-suggested-solutions" dir="auto" style="margin-top: 20px; margin-bottom: 10px;" align="initial">Suggested Solutions<a href="#suggested-solutions" aria-label="Link to heading 'Suggested Solutions'" data-heading-content="Suggested Solutions" class="anchor" style="margin-top: 0px;"></a>
</h2>
<p dir="auto" style="color: #3a383f; margin: 0px 0px 1rem;" align="initial">Option A (Waf Specification Fix): Update the YAML build specifications in <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">spec/build/bsps/powerpc/qoriq/</code> so that the <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">objvme</code> group (and its associated drivers like <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">vme_universe.c</code>) is compiled only when building the <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">mvme2500</code> target, removing it entirely from <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">qoriq_e6500_64</code> build pipelines.</p>
<p dir="auto" style="color: #3a383f; margin: 0px 0px 1rem;" align="initial">Option B (Header Guard Fix): If the VME files must remain in the shared family build path, wrap <code style="font-size: 90%; color: #18171d; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0px; font-weight: inherit; overflow-wrap: break-word; white-space: break-spaces; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: keep-all; padding: 0.125rem 0.25rem;">bsps/powerpc/qoriq/include/bsp/VMEConfig.h</code> in a preprocessor guard that checks for VME hardware capability, or provide a safe fallback for virtualized guest builds:</p>
<div class="gl-relative markdown-code-block js-markdown-code" style="margin-bottom: 0px;">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style="display: block; font-size: 14px; color: #3a383f; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0px 0 1rem; padding: 12px; border: 1px solid #dcdcde;"><code style="font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0px; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; overflow-wrap: normal; padding: unset;"><span id="LC1" class="line" lang="plaintext" style="margin-top: 0px;">#ifndef QORIQ_IRQ_EXT_0</span>
<span id="LC2" class="line" lang="plaintext"> #define QORIQ_IRQ_EXT_0 0 /* Fallback for hypervisor guest and non-VME targets */</span>
<span id="LC3" class="line" lang="plaintext">#endif</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
</div>
</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #626168;">
—
<br>
<a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5659">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.rtems.org">gitlab.rtems.org</a>. <a href="https://gitlab.rtems.org/-/sent_notifications/4-cgixhl3tyfjhqxienpzzng2w5-1d/unsubscribe" target="_blank" rel="noopener noreferrer">Unsubscribe</a> from this thread · <a href="https://gitlab.rtems.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.rtems.org/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>
<span style="color: transparent; font-size: 0; display: none; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0;">
Notification message regarding https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5659 at 1784996509
</span>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Work item","url":"https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5659"}}</script>
</p>
</div>
</body>
</html>