Re: Small tweak to get ACPI watchdog working (iTCO)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have double-checked all the instructions that I'm issuing to the
ACPI watchdog timer, and they are identical to the instructions issued
by the Linux kernel driver which I'm trying to mimic. Also I have
verified that my IO calls (ioread32,iowrite32) are working properly.

I think the problem is that the entire ACPI system as a whole is not
initialized. I think I need to issue a few instructions at the very
beginning to initialise the ACPI system.

Anyone got any ideas?




---------- Forwarded message ---------
From: Cameron Ferguson <cameron.bare86@xxxxxxxxx>
Date: Tue, Jan 28, 2020 at 3:19 PM
Subject: Re: Small tweak to get ACPI watchdog working (iTCO)
To: <barebox@xxxxxxxxxxxxxxxxxxx>, <a.fatoum@xxxxxxxxxxxxxx>, <wim@xxxxxxxxx>


In my previous email, I only had the "write" operations associated
with controlling the watchdog timer. I have edited my code to include
the "read" operations too, but still it's not working.

Here's my new code:

    /* R */    retval = ioread32(base +  4u);  // This should be 0x0
    /* R */    retval = ioread32(base +  4u);  // This should be 0x0
    /* W */    iowrite32(0x20000, base + 4u);
    /* R */    retval = ioread32(base +  8u);  // This should be 0x1800
    /* R */    retval = ioread32(base +  8u);  // This should be 0x1800
    /* W */    iowrite32(0x1000, base + 8u);
    /* R */    retval = ioread32(base +  0u);  // This should be 0x4
    /* W */    iowrite32(0x4, base + 0u);
    /* R */    retval = ioread32(base + 10u);  // This should be 0x40000
    /* W */    iowrite32(0x640000, base + 10u);
    /* R */    retval = ioread32(base +  0u);  // This should be 0x2
    /* W */    iowrite32(0x4, base + 0u);  // This is a kick
    /* R */    retval = ioread32(base +  0u);  // This should be 0x34
    /* W */    iowrite32(0x4, base + 0u);  // This is a kick

The first two read operations should both return 0x0, however I'm
getting what looks like a random number. Also it consitently reads the
value 0x4 from "base + 0u".

Anyone got an idea?

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux