summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2019-08-18 21:16:50 +0100
committerMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2019-08-18 21:16:50 +0100
commit538ededddd8dd474f16e44fa2dccc2c7a42f5c10 (patch)
treeab81dfaa7e445e785b05ba4e1393d702dbd34ef3
parentd9273b7a9d641a3717c5f170cf56537abbe6c217 (diff)
downloadqemu-openbios-538ededddd8dd474f16e44fa2dccc2c7a42f5c10.tar.gz
SPARC64: set active package and current instance to root device node before probe
Now that all PCI devices have been converted to new-device...finish-device we can set both the active package and current instance to the root device node before probe, giving all child devices a correct active package and instance chain during creation. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
-rw-r--r--arch/sparc64/openbios.c6
-rw-r--r--drivers/ide.c3
2 files changed, 6 insertions, 3 deletions
diff --git a/arch/sparc64/openbios.c b/arch/sparc64/openbios.c
index e2f7e597..e9f47269 100644
--- a/arch/sparc64/openbios.c
+++ b/arch/sparc64/openbios.c
@@ -821,11 +821,17 @@ arch_init( void )
feval("['] sparc64-dma-sync to (dma-sync)");
#ifdef CONFIG_DRIVER_PCI
+ push_str("/");
+ fword("find-device");
+ feval("\" /\" open-dev to my-self");
+
ob_pci_init();
/* Set TAS register to match the virtual-dma properties
set during sabre configure */
sparc64_set_tas_register(PBM_PCI_TARGET_AS_CD_ENABLE);
+
+ feval("0 to my-self");
#endif
nvconf_init();
device_end();
diff --git a/drivers/ide.c b/drivers/ide.c
index 18a27c64..36e3b897 100644
--- a/drivers/ide.c
+++ b/drivers/ide.c
@@ -1392,9 +1392,6 @@ int ob_ide_init(const char *path, uint32_t io_port0, uint32_t ctl_port0,
io_ports[1] = io_port1;
ctl_ports[1] = ctl_port1;
- push_str(path);
- fword("find-device");
-
for (i = 0; i < IDE_NUM_CHANNELS; i++, current_channel++) {
chan = malloc(sizeof(struct ide_channel));