Opened 15 years ago

Closed 13 years ago

Last modified 13 years ago

#119 closed defect (fixed)

Revive support for Dell PowerEdge 7150 machine (ia64)

Reported by: Martin Decky Owned by: Jakub Jermář
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 (2)

merced_exception.jpg (938.0 KB ) - added by Martin Decky 13 years ago.
Dell PowerEdge 7150 booting
merced_kconsole.jpg (960.5 KB ) - added by Martin Decky 13 years ago.
Dell PowerEdge 7150 kernel console

Download all attachments as: .zip

Change History (15)

comment:1 by Jakub Jermář, 14 years ago

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

comment:2 by Jakub Jermář, 14 years ago

Milestone: 0.4.20.5.0

Retargeting for 0.5.0.

comment:3 by Jakub Jermář, 14 years ago

Summary: Make Itanium 1 (Merced) machine boot againRevive 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 by Jakub Jermář, 14 years ago

Owner: set to Jakub Jermář
Priority: minormajor
Status: newassigned

comment:5 by Jakub Jermář, 13 years ago

Milestone: 0.5.00.5.1

comment:6 by Jakub Jermář, 13 years ago

Keywords: sashimi_regression added

comment:7 by Jakub Jermář, 13 years ago

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 by Jakub Jermář, 13 years ago

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 by Martin Decky, 13 years ago

Summary: Revive support for real world Itanium machinesRevive 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.

by Martin Decky, 13 years ago

Attachment: merced_exception.jpg added

Dell PowerEdge 7150 booting

by Martin Decky, 13 years ago

Attachment: merced_kconsole.jpg added

Dell PowerEdge 7150 kernel console

comment:10 by Jakub Jermář, 13 years ago

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 by Jakub Jermář, 13 years ago

mainline,1000 should fix the Speculation vector exceptions problem.

comment:12 by Martin Decky, 13 years ago

Resolution: fixed
Status: assignedclosed

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 by Jakub Jermář, 13 years ago

Since mainline,1092, the real machines should be getting their memory map from EFI again.

Note: See TracTickets for help on using tickets.