Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: HP Proliant Microserver N36L fails to boot under current
dtyson%anduin.org.uk@localhost (Dave Tyson) writes:
>I have an HP Proliant Microserver (N36L) which runs fine on
>NetBSD 7.0_BETA. I tried booting it from a recent current
>AMD64 image and it crashes out. The last few lines of the
>boot message (hand copied) are:
>extent_alloc_region: start 0xfffffffffffffff9, end 0xfffffffffffffa
>There are several changes between the two, but this change around line 940
>seems to be related:
>platform = pmf_get_platform("system-product");
> if (platform != NULL &&
> strcmp(platform, "ProLiant MicroServer") == 0) {
> ia->iaa_if_iospacing = 1;
> ia->iaa_if_iobase = pipmi->smipmi_base_address
>- 7;
> ia->iaa_if_iotype = 'i';
> return;
>I am not sure what 'platform' is set by pmf_get_platform. I am guessing it
>will be "HP ProLiant MicroServer" and the subsequent test will fail.
>Any clues as to what the fixup if true does?
Apparently that's a quirk to fixup bad information that exists
on some machine that identifies itself as "ProLiant MicroServer".
From the panic you can see that the pipmi->smipmi_base_address value
is 0, so that subsequent code tries to map address -7..-6. A quick
fix, is probably to test the base address for a value larger than 7.
Maybe someone with a Microserver N36L that does require the quirk
can tell, what the expected base address is.
Can you try this patch?
--- ipmi.c 29 Dec 2014 14:00:26 -0000 1.60
+++ ipmi.c 24 Mar 2015 00:32:39 -0000
@@ -941,7 +941,8 @@
platform = pmf_get_platform("system-product");
if (platform != NULL &&
- strcmp(platform, "ProLiant MicroServer") == 0) {
+ strcmp(platform, "ProLiant MicroServer") == 0 &&
+ pipmi->smipmi_base_address >= 7) {
ia->iaa_if_iospacing = 1;
ia->iaa_if_iobase = pipmi->smipmi_base_address - 7;
ia->iaa_if_iotype = 'i';
--
--
Michael van Elst
Internet: mlelstv%serpens.de@localhost
"A potential Snark may lurk in every tree."
Home |
Main Index |
Thread Index |
Old Index