j
: Next unread message k
: Previous unread message j a
: Jump to all threads
j l
: Jump to MailingList overview
Signed-off-by: BALATON Zoltan balaton@eik.bme.hu
Index: openbios-devel/arch/ppc/qemu/init.c =================================================================== --- openbios-devel/arch/ppc/qemu/init.c (revision 1286) +++ openbios-devel/arch/ppc/qemu/init.c (working copy) @@ -702,6 +732,12 @@ push_str("/"); fword("find-device");
+ /* Apple calls the root node device-tree */ + if (is_apple()) { + push_str("device-tree"); + fword("device-name"); + } + switch(machine_id) { case ARCH_HEATHROW: /* OldWorld */
Index: openbios-devel/drivers/cuda.c =================================================================== --- openbios-devel/drivers/cuda.c (revision 1286) +++ openbios-devel/drivers/cuda.c (working copy) @@ -184,32 +184,33 @@ phandle_t ph=get_cur_dev(); int props[2];
- push_str("via-cuda"); + push_str((is_oldworld() ? "via-cuda" : "via_pmu")); fword("device-type");
set_int_property(ph, "#address-cells", 1); set_int_property(ph, "#size-cells", 0);
- set_property(ph, "compatible", "cuda", 5); - props[0] = __cpu_to_be32(IO_CUDA_OFFSET); props[1] = __cpu_to_be32(IO_CUDA_SIZE);
set_property(ph, "reg", (char *)&props, sizeof(props));
- /* on newworld machines the cuda is on interrupt 0x19 */ + if (is_oldworld()) { + set_property(ph, "compatible", "cuda", 5); + /* we emulate an oldworld hardware, so we must use + * non-standard oldworld property (needed by linux 2.6.18) + */ + set_int_property(ph, "AAPL,interrupts", 0x12); + } else { + set_property(ph, "compatible", "pmu", 4); + /* on newworld machines the cuda is on interrupt 0x19 */
- props[0] = 0x19; - props[1] = 0; - NEWWORLD(set_property(ph, "interrupts", (char *)props, sizeof(props))); - NEWWORLD(set_int_property(ph, "#interrupt-cells", 2)); + props[0] = 0x19; + props[1] = 0; + set_property(ph, "interrupts", (char *)&props, sizeof(props)); + set_int_property(ph, "#interrupt-cells", 2); + }
- /* we emulate an oldworld hardware, so we must use - * non-standard oldworld property (needed by linux 2.6.18) - */ - - OLDWORLD(set_int_property(ph, "AAPL,interrupts", 0x12)); - bind_func("ppc32-reset-all", ppc32_reset_all); push_str("' ppc32-reset-all to reset-all"); fword("eval"); @@ -380,7 +381,8 @@
ph = find_dev(buf); set_property(ph, "device_type", "power-mgt", 10); - set_property(ph, "compatible", "power-mgt", 10); + OLDWORLD(set_property(ph, "compatible", "power-mgt", 10)); + NEWWORLD(set_property(ph, "compatible", "via-pmu-99", 11)); }
cuda_t *cuda_init (const char *path, phys_addr_t base) @@ -395,11 +397,13 @@ if (cuda == NULL) return NULL;
- snprintf(buf, sizeof(buf), "%s/via-cuda", path); + OLDWORLD(snprintf(buf, sizeof(buf), "%s/via-cuda", path)); + NEWWORLD(snprintf(buf, sizeof(buf), "%s/via-pmu", path)); REGISTER_NAMED_NODE(ob_cuda, buf);
aliases = find_dev("/aliases"); - set_property(aliases, "via-cuda", buf, strlen(buf) + 1); + OLDWORLD(set_property(aliases, "via-cuda", buf, strlen(buf) + 1)); + NEWWORLD(set_property(aliases, "via-pmu", buf, strlen(buf) + 1));
cuda->base = base; cuda_writeb(cuda, B, cuda_readb(cuda, B) | TREQ | TIP);
On 12/04/14 13:18, BALATON Zoltan wrote:
Signed-off-by: BALATON Zoltan balaton@eik.bme.hu
Index: openbios-devel/arch/ppc/qemu/init.c
--- openbios-devel/arch/ppc/qemu/init.c (revision 1286) +++ openbios-devel/arch/ppc/qemu/init.c (working copy) @@ -702,6 +732,12 @@ push_str("/"); fword("find-device");
- /* Apple calls the root node device-tree */
- if (is_apple()) {
push_str("device-tree");
fword("device-name");
- }
I'd like to see the fact that this is a workaround for a MorphOS-specific bug recorded in both the comment and the commit message (I seem to remember it was mentioned in your original patch description?).
The reason for this is that OpenBIOS strives to be an IEEE1275-compliant firmware compatible, and so where we deviate from behaviour documented in the specification (particularly for compatibility purposes), I'd like a clear record of why the change is needed in order to prevent someone coming along later and inadvertently changing it.
ATB,
Mark.