On 08/01/2024 21.26, David Woodhouse wrote:
> From: David Woodhouse <dwmw@amazon.co.uk>
>
> The previous behaviour was: *if* the first NIC specified on the command
> line was an RTL8139 (or unspecified model) then it gets assigned to PCI
> slot 7, which is where the Fuloong board had an RTL8139. All other
> devices (including the first, if it was specified a anything other then
> an rtl8319) get dynamically assigned on the bus.
>
> The new behaviour is subtly different: If the first NIC was given a
> specific model *other* than rtl8139, and a subsequent NIC was not,
> then the rtl8139 (or unspecified) NIC will go to slot 7 and the rest
> will be dynamically assigned.
Sounds fine for me ... Philippe, what do you think?
Reviewed-by: Thomas Huth <thuth@redhat.com>
>
> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
> ---
> hw/mips/fuloong2e.c | 16 +++-------------
> 1 file changed, 3 insertions(+), 13 deletions(-)
>
> diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c
> index 97b2c8ed8e..a45aac368c 100644
> --- a/hw/mips/fuloong2e.c
> +++ b/hw/mips/fuloong2e.c
> @@ -201,19 +201,9 @@ static void main_cpu_reset(void *opaque)
> /* Network support */
> static void network_init(PCIBus *pci_bus)
> {
> - int i;
> -
> - for (i = 0; i < nb_nics; i++) {
> - NICInfo *nd = &nd_table[i];
> - const char *default_devaddr = NULL;
> -
> - if (i == 0 && (!nd->model || strcmp(nd->model, "rtl8139") == 0)) {
> - /* The Fuloong board has a RTL8139 card using PCI SLOT 7 */
> - default_devaddr = "07";
> - }
> -
> - pci_nic_init_nofail(nd, pci_bus, "rtl8139", default_devaddr);
> - }
> + /* The Fuloong board has a RTL8139 card using PCI SLOT 7 */
> + pci_init_nic_in_slot(pci_bus, "rtl8139", NULL, "07");
> + pci_init_nic_devices(pci_bus, "rtl8139");
> }
>
> static void mips_fuloong2e_init(MachineState *machine)