On Jul 13, 2019, at 11:39 AM, BALATON Zoltan balaton@eik.bme.hu wrote:
Is that a wild guess or are you basing it on something concrete? The ROM seems to use these words and it seems to be missing from OpenBIOS so it might be. Any idea how to implement these?
Here is how mark implemented config-l:
diff --git a/drivers/pci.c b/drivers/pci.c index 295be7e..1788c26 100644 --- a/drivers/pci.c +++ b/drivers/pci.c @@ -428,6 +428,15 @@ ob_pci_bus_map_in(int *idx) PUSH(virt); }
+static void +ob_pci_config_readl(int *idx) +{ + ucell addr = POP(); + + uint32_t value = pci_config_read32(0x80000000 | (addr & 0xffffff00), addr & 0xff); + PUSH(value); +} + NODE_METHODS(ob_pci_bus_node) = { { NULL, ob_pci_initialize }, { "open", ob_pci_open }, @@ -435,6 +444,7 @@ NODE_METHODS(ob_pci_bus_node) = { { "decode-unit", ob_pci_decode_unit }, { "encode-unit", ob_pci_encode_unit }, { "pci-map-in", ob_pci_bus_map_in }, + { "config-l@", ob_pci_config_readl }, };
/* ( pci-addr.lo pci-addr.mid pci-addr.hi size -- virt ) */
I’m not 100% sure you are aborting due to the config words, but I’m 100% sure you will if you get that far.
Could you give me you SLOF launch command, I’m having trouble loading the code from the disk?