Ticket #119 (closed defect: fixed)
Revive support for Dell PowerEdge 7150 machine (ia64)
| Reported by: | decky | Owned by: | jermar |
|---|---|---|---|
| Priority: | major | Milestone: | 0.5.0 |
| Component: | helenos/kernel/ia64 | Version: | mainline |
| Keywords: | sashimi_regression | Cc: | |
| Blocker for: | Depends on: | ||
| See also: |
Description
Investigate why the current version of HelenOS fails to boot on the original Itanium 1 (Merced) machine (Dell PowerEdge? 7150) and fix the issue.
Attachments
Change History
comment:2 Changed 2 years ago by jermar
- Milestone changed from 0.4.2 to 0.5.0
Retargeting for 0.5.0.
comment:3 Changed 2 years ago by jermar
- Summary changed from Make Itanium 1 (Merced) machine boot again to Revive support for real world Itanium machines
In changeset:mainline,422, the boot support for ia64 was completely removed. In changeset:mainline,528, the boot support for ia64 was partially restored, but excluding the real world machines. Since we no longer want to incorporate GNU EFI in our sources and there are some areas, such as ia64 SMP support, that deserve to be cleaned up and/or streamlined, this ticket is a perfect one to represent the general effort to bring back the support for real world Itanium machines.
comment:4 Changed 2 years ago by jermar
- Status changed from new to assigned
- Priority changed from minor to major
- Owner set to jermar
comment:7 Changed 12 months ago by jermar
I have just found out that it is possible to boot (quite successfully) the current mainline on our lab Dell PowerEdge 3250 dual Itanium 2 server by directly passing image.boot to elilo.
Of course, this is rather good luck as the kernel must be thinking that it is running in the simulator with some pre-defined values. The real values are currently not being passed to image.boot as of now.
The functionality is limited to the blinking bdsh cursor, but it is currently not possible to type in commands. However, the fact that the port to a real Itanium did not broke entirely is certainly quite encouraging and will make many things much easier.
comment:8 Changed 12 months ago by jermar
It would be worth the try to repeat the same test on the MFF UK's Dell PowerEdge 7150 Itanium 1 server. Here is the relevant part of elilo.conf:
image=image.boot label=HelenOS
When ELILO displays its ELILO boot: prompt, enter HelenOS.
comment:9 Changed 12 months ago by decky
- Summary changed from Revive support for real world Itanium machines to Revive support for Dell PowerEdge 7150 machine (ia64)
Using ELILO on Dell PowerEdge? 7150 was partially successful with revision mainline,996. The kernel booted mostly fine, but the Naming Service was killed due to "Speculation vector" exception at 0x1d9c0. The kernel console worked OK for a while, but locked up after typing "help" (not sure whether the "help" command was actually the cause of the lockup).
In any case, this is definitively a big progress since the last time HelenOS was tested on this machine (some years ago) and it's quite promising.
Changed 12 months ago by decky
-
attachment
merced_kconsole.jpg
added
Dell PowerEdge? 7150 kernel console
comment:10 Changed 12 months ago by jermar
Thanks for testing this.
We need to make (hopefully) a small modification to make the kernel use the actual EFI memory map passed from ELILO, that could fix some random crashes.
As for the speculation exception, it appears the processor does not support speculative loads in hardware. In such cases, the operating system is expected to implement the missing functionality. The instructions in question are:
1d9c0: 02 40 00 1c 38 10 [MII] ld8.s r8=[r14] 1d9c6: 00 00 00 02 00 a0 nop.i 0x0;; 1d9cc: e4 00 00 01 chk.s.i r14,1dc10 <hash_table_find+0x290>
Another option would be to tell the compiler not to generate speculative instructions at all, provided there is an option for it.
comment:11 Changed 12 months ago by jermar
mainline,1000 should fix the Speculation vector exceptions problem.
comment:12 Changed 12 months ago by decky
- Status changed from assigned to closed
- Resolution set to fixed
The system boots fine and appears to be working almost perfectly in uspace. Top and tetris are working, as well as most of the uspace tests. The only directly observable glitch is the clock running too fast.
The random crashes are still there (after a few commands in kconsole and just in the end of uspace malloc1 test), but I am still going to close this ticket as clearly the main objective has been fulfilled and the other issues are either covered or should be covered by different tickets.
comment:13 Changed 11 months ago by jermar
Since mainline,1092, the real machines should be getting their memory map from EFI again.

Can we give some estimate on around what revision the machine stopped booting?