The tulip driver claims to emulate dec21143 and it does not emulate dec21142.
The dec21142 and dec21143 can be discerned by the PCI revision register,
where dec21142 reports value < 0x20 and dec21143 value >= 0x20. E.g. the
U-Boot 'tulip' driver also only supports dec21143 and verifies that the
PCI revision ID is >= 0x20, otherwise refuses to operate such a card.
This patch sets the PCI revision ID to 0x20 to match the dec21143 and
thus also permits e.g. U-Boot to work with the tulip emulation.
Fixes: 34ea023d4b95 ("net: add tulip (dec21143) driver")
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Prasad J Pandit <pjp@fedoraproject.org>
Cc: Sven Schnelle <svens@stackframe.org>
---
hw/net/tulip.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hw/net/tulip.c b/hw/net/tulip.c
index 1295f51d07..ffb6c2479a 100644
--- a/hw/net/tulip.c
+++ b/hw/net/tulip.c
@@ -962,6 +962,8 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error **errp)
pci_conf = s->dev.config;
pci_conf[PCI_INTERRUPT_PIN] = 1; /* interrupt pin A */
+ /* Anything with revision < 0x20 is DC21142, anything >= 0x20 is DC21143 */
+ pci_conf[PCI_REVISION_ID] = 0x20;
s->eeprom = eeprom93xx_new(&pci_dev->qdev, 64);
tulip_fill_eeprom(s);
--
2.25.1
On 4/18/20 2:25 AM, Marek Vasut wrote:
> The tulip driver claims to emulate dec21143 and it does not emulate dec21142.
> The dec21142 and dec21143 can be discerned by the PCI revision register,
> where dec21142 reports value < 0x20 and dec21143 value >= 0x20. E.g. the
> U-Boot 'tulip' driver also only supports dec21143 and verifies that the
> PCI revision ID is >= 0x20, otherwise refuses to operate such a card.
>
> This patch sets the PCI revision ID to 0x20 to match the dec21143 and
> thus also permits e.g. U-Boot to work with the tulip emulation.
>
> Fixes: 34ea023d4b95 ("net: add tulip (dec21143) driver")
> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: Prasad J Pandit <pjp@fedoraproject.org>
> Cc: Sven Schnelle <svens@stackframe.org>
Bump, any news on this ? This is a bugfix.
Hi Sven, could you review thiw one-line patch?
On 4/18/20 2:25 AM, Marek Vasut wrote:
> The tulip driver claims to emulate dec21143 and it does not emulate dec21142.
> The dec21142 and dec21143 can be discerned by the PCI revision register,
> where dec21142 reports value < 0x20 and dec21143 value >= 0x20. E.g. the
> U-Boot 'tulip' driver also only supports dec21143 and verifies that the
> PCI revision ID is >= 0x20, otherwise refuses to operate such a card.
>
> This patch sets the PCI revision ID to 0x20 to match the dec21143 and
> thus also permits e.g. U-Boot to work with the tulip emulation.
>
> Fixes: 34ea023d4b95 ("net: add tulip (dec21143) driver")
> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: Prasad J Pandit <pjp@fedoraproject.org>
> Cc: Sven Schnelle <svens@stackframe.org>
> ---
> hw/net/tulip.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/hw/net/tulip.c b/hw/net/tulip.c
> index 1295f51d07..ffb6c2479a 100644
> --- a/hw/net/tulip.c
> +++ b/hw/net/tulip.c
> @@ -962,6 +962,8 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error **errp)
>
> pci_conf = s->dev.config;
> pci_conf[PCI_INTERRUPT_PIN] = 1; /* interrupt pin A */
> + /* Anything with revision < 0x20 is DC21142, anything >= 0x20 is DC21143 */
> + pci_conf[PCI_REVISION_ID] = 0x20;
>
> s->eeprom = eeprom93xx_new(&pci_dev->qdev, 64);
> tulip_fill_eeprom(s);
>
On Mon, Jun 08, 2020 at 12:17:11AM +0200, Philippe Mathieu-Daudé wrote:
> Hi Sven, could you review thiw one-line patch?
>
> On 4/18/20 2:25 AM, Marek Vasut wrote:
> > The tulip driver claims to emulate dec21143 and it does not emulate dec21142.
> > The dec21142 and dec21143 can be discerned by the PCI revision register,
> > where dec21142 reports value < 0x20 and dec21143 value >= 0x20. E.g. the
> > U-Boot 'tulip' driver also only supports dec21143 and verifies that the
> > PCI revision ID is >= 0x20, otherwise refuses to operate such a card.
> >
> > This patch sets the PCI revision ID to 0x20 to match the dec21143 and
> > thus also permits e.g. U-Boot to work with the tulip emulation.
> >
> > Fixes: 34ea023d4b95 ("net: add tulip (dec21143) driver")
> > Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
> > Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
> > Cc: Paolo Bonzini <pbonzini@redhat.com>
> > Cc: Peter Maydell <peter.maydell@linaro.org>
> > Cc: Prasad J Pandit <pjp@fedoraproject.org>
> > Cc: Sven Schnelle <svens@stackframe.org>
> > ---
> > hw/net/tulip.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/hw/net/tulip.c b/hw/net/tulip.c
> > index 1295f51d07..ffb6c2479a 100644
> > --- a/hw/net/tulip.c
> > +++ b/hw/net/tulip.c
> > @@ -962,6 +962,8 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error **errp)
> >
> > pci_conf = s->dev.config;
> > pci_conf[PCI_INTERRUPT_PIN] = 1; /* interrupt pin A */
> > + /* Anything with revision < 0x20 is DC21142, anything >= 0x20 is DC21143 */
> > + pci_conf[PCI_REVISION_ID] = 0x20;
> >
> > s->eeprom = eeprom93xx_new(&pci_dev->qdev, 64);
> > tulip_fill_eeprom(s);
> >
>
The intel datasheet for the DEC21143 lists only Rev IDs > 30 for this particular family:
21143-PB,TB,PC,TC - 0x30
21143-PD,TD - x041
but maybe older DEC chips used 0x20 - don't know. The most interesting question is
whether ancient OS' like HP-UX or Windows XP would still work with this patch, but
i don't have test images at hand right now.
Regards
Sven
On 6/10/20 11:13 PM, Sven Schnelle wrote:
> On Mon, Jun 08, 2020 at 12:17:11AM +0200, Philippe Mathieu-Daudé wrote:
>> Hi Sven, could you review thiw one-line patch?
>>
>> On 4/18/20 2:25 AM, Marek Vasut wrote:
>>> The tulip driver claims to emulate dec21143 and it does not emulate dec21142.
>>> The dec21142 and dec21143 can be discerned by the PCI revision register,
>>> where dec21142 reports value < 0x20 and dec21143 value >= 0x20. E.g. the
>>> U-Boot 'tulip' driver also only supports dec21143 and verifies that the
>>> PCI revision ID is >= 0x20, otherwise refuses to operate such a card.
>>>
>>> This patch sets the PCI revision ID to 0x20 to match the dec21143 and
>>> thus also permits e.g. U-Boot to work with the tulip emulation.
>>>
>>> Fixes: 34ea023d4b95 ("net: add tulip (dec21143) driver")
>>> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
>>> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
>>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>>> Cc: Peter Maydell <peter.maydell@linaro.org>
>>> Cc: Prasad J Pandit <pjp@fedoraproject.org>
>>> Cc: Sven Schnelle <svens@stackframe.org>
>>> ---
>>> hw/net/tulip.c | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>> diff --git a/hw/net/tulip.c b/hw/net/tulip.c
>>> index 1295f51d07..ffb6c2479a 100644
>>> --- a/hw/net/tulip.c
>>> +++ b/hw/net/tulip.c
>>> @@ -962,6 +962,8 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error **errp)
>>>
>>> pci_conf = s->dev.config;
>>> pci_conf[PCI_INTERRUPT_PIN] = 1; /* interrupt pin A */
>>> + /* Anything with revision < 0x20 is DC21142, anything >= 0x20 is DC21143 */
>>> + pci_conf[PCI_REVISION_ID] = 0x20;
>>>
>>> s->eeprom = eeprom93xx_new(&pci_dev->qdev, 64);
>>> tulip_fill_eeprom(s);
>>>
>>
>
> The intel datasheet for the DEC21143 lists only Rev IDs > 30 for this particular family:
>
> 21143-PB,TB,PC,TC - 0x30
> 21143-PD,TD - x041
>
> but maybe older DEC chips used 0x20 - don't know. The most interesting question is
> whether ancient OS' like HP-UX or Windows XP would still work with this patch, but
> i don't have test images at hand right now.
So the question is whether your HP-UX/WinXP images also boot with a
DEC21142 (you aimed to model a DEC21143, and it is tested anyway).
Marek, suggestion:
Make pci_tulip_realize() abstract, add dec21142 and dec21143 models as
you suggested, making 'tulip' an alias of dec21142 for backward
compatibility. You can then use the dec21143.
On 6/11/20 12:27 AM, Philippe Mathieu-Daudé wrote:
> On 6/10/20 11:13 PM, Sven Schnelle wrote:
>> On Mon, Jun 08, 2020 at 12:17:11AM +0200, Philippe Mathieu-Daudé wrote:
>>> Hi Sven, could you review thiw one-line patch?
>>>
>>> On 4/18/20 2:25 AM, Marek Vasut wrote:
>>>> The tulip driver claims to emulate dec21143 and it does not emulate dec21142.
>>>> The dec21142 and dec21143 can be discerned by the PCI revision register,
>>>> where dec21142 reports value < 0x20 and dec21143 value >= 0x20. E.g. the
>>>> U-Boot 'tulip' driver also only supports dec21143 and verifies that the
>>>> PCI revision ID is >= 0x20, otherwise refuses to operate such a card.
>>>>
>>>> This patch sets the PCI revision ID to 0x20 to match the dec21143 and
>>>> thus also permits e.g. U-Boot to work with the tulip emulation.
>>>>
>>>> Fixes: 34ea023d4b95 ("net: add tulip (dec21143) driver")
>>>> Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
>>>> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
>>>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>>>> Cc: Peter Maydell <peter.maydell@linaro.org>
>>>> Cc: Prasad J Pandit <pjp@fedoraproject.org>
>>>> Cc: Sven Schnelle <svens@stackframe.org>
>>>> ---
>>>> hw/net/tulip.c | 2 ++
>>>> 1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/hw/net/tulip.c b/hw/net/tulip.c
>>>> index 1295f51d07..ffb6c2479a 100644
>>>> --- a/hw/net/tulip.c
>>>> +++ b/hw/net/tulip.c
>>>> @@ -962,6 +962,8 @@ static void pci_tulip_realize(PCIDevice *pci_dev, Error **errp)
>>>>
>>>> pci_conf = s->dev.config;
>>>> pci_conf[PCI_INTERRUPT_PIN] = 1; /* interrupt pin A */
>>>> + /* Anything with revision < 0x20 is DC21142, anything >= 0x20 is DC21143 */
>>>> + pci_conf[PCI_REVISION_ID] = 0x20;
>>>>
>>>> s->eeprom = eeprom93xx_new(&pci_dev->qdev, 64);
>>>> tulip_fill_eeprom(s);
>>>>
>>>
>>
>> The intel datasheet for the DEC21143 lists only Rev IDs > 30 for this particular family:
>>
>> 21143-PB,TB,PC,TC - 0x30
>> 21143-PD,TD - x041
>>
>> but maybe older DEC chips used 0x20 - don't know. The most interesting question is
>> whether ancient OS' like HP-UX or Windows XP would still work with this patch, but
>> i don't have test images at hand right now.
>
> So the question is whether your HP-UX/WinXP images also boot with a
> DEC21142 (you aimed to model a DEC21143, and it is tested anyway).
>
> Marek, suggestion:
>
> Make pci_tulip_realize() abstract, add dec21142 and dec21143 models as
> you suggested, making 'tulip' an alias of dec21142 for backward
> compatibility. You can then use the dec21143.
I don't have any way to test dec21142 , I only have dec21143 support in
U-Boot. U-Boot actually checks for this revision field and does not work
with dec21142 , so these older models must be somehow incompatible.
Hence, if we model only the dec21143 anyway, we should set that revision
ID to model it fully.
© 2016 - 2026 Red Hat, Inc.