The real time clock only needs 8 bytes, but rtc.c is reserving 10h bytes.
This conflicts with zt55XX cpci compute blades that use one of those
extra bytes (port 79h) to control a watchdog timer.
I raised this issue before on LKML and everyone seemed to be ok with changing
the extent of rtc.c to 0x8:
http://marc.theaimsgroup.com/?l=linux-kernel&m=104478057030481&w=2
I have been running the following patch on three of my Linux servers for
the last couple of weeks with no problems, and two of those server were
testing the watchdog timer that uses port 79h.
Please apply this patch.
--rustyl
--- drivers/char/rtc.c.orig 2003-02-26 11:00:50.000000000 -0800
+++ drivers/char/rtc.c 2003-02-26 11:00:43.000000000 -0800
@@ -47,7 +47,7 @@
#define RTC_VERSION "1.11"
-#define RTC_IO_EXTENT 0x10 /* Only really two ports, but... */
+#define RTC_IO_EXTENT 0x8
/*
* Note that *all* calls to CMOS_READ and CMOS_WRITE are done with
On 26 Feb 2003, Rusty Lynch wrote:
> The real time clock only needs 8 bytes, but rtc.c is reserving 10h bytes.
[SNIPPED...]
It only needs two bytes port 0x70 and port 0x71 in ix86. Since the Sparc
gets addressed differently and can only read/write words, it needs 8
bytes. Please, if you are going to fix it, please fix it only once by
setting a different length for the different machines!
Cheers,
Dick Johnson
Penguin : Linux version 2.4.18 on an i686 machine (797.90 BogoMips).
Why is the government concerned about the lunatic fringe? Think about it.
On Wed, 2003-02-26 at 11:35, Richard B. Johnson wrote:
> On 26 Feb 2003, Rusty Lynch wrote:
>
> > The real time clock only needs 8 bytes, but rtc.c is reserving 10h bytes.
> [SNIPPED...]
>
> It only needs two bytes port 0x70 and port 0x71 in ix86. Since the Sparc
> gets addressed differently and can only read/write words, it needs 8
> bytes. Please, if you are going to fix it, please fix it only once by
> setting a different length for the different machines!
> Cheers,
> Dick Johnson
Actually, it's finer grain then x86, it's a chipset issue. As Randy
pointed out in the original thread ==>
> Some Intel chipset specs list RTC as using 0x70 - 0x77, probably with
> some aliasing in there, so it looks to me like an EXTENT of 8 would be
> safer and still allow you access to 0x79.
>
> I'm looking at 82801BA-ICH2, 82801-ICH3, and 82801AA-ICH0 specs.
>
> --
> ~Randy
>
Any suggestions on the right way of doing this?
--rustyl
On 26 Feb 2003, Rusty Lynch wrote:
> On Wed, 2003-02-26 at 11:35, Richard B. Johnson wrote:
> > On 26 Feb 2003, Rusty Lynch wrote:
> >
> > > The real time clock only needs 8 bytes, but rtc.c is reserving 10h bytes.
> > [SNIPPED...]
> >
> > It only needs two bytes port 0x70 and port 0x71 in ix86. Since the Sparc
> > gets addressed differently and can only read/write words, it needs 8
> > bytes. Please, if you are going to fix it, please fix it only once by
> > setting a different length for the different machines!
> > Cheers,
> > Dick Johnson
>
> Actually, it's finer grain then x86, it's a chipset issue. As Randy
> pointed out in the original thread ==>
> > Some Intel chipset specs list RTC as using 0x70 - 0x77, probably with
> > some aliasing in there, so it looks to me like an EXTENT of 8 would be
> > safer and still allow you access to 0x79.
> >
> > I'm looking at 82801BA-ICH2, 82801-ICH3, and 82801AA-ICH0 specs.
> >
> > --
Can't see what an IDE chip-set has to do with it. The RTC can only
be accessed as an offset-location and a data-location. You write
an offset at one location and you read/write data at another location.
On an ix86, the locations are adjacent byte-wide ports. On the Sparc
they are adjacent dword-wide memory locations.
Cheers,
Dick Johnson
Penguin : Linux version 2.4.18 on an i686 machine (797.90 BogoMips).
Why is the government concerned about the lunatic fringe? Think about it.
On Wed, 26 Feb 2003 15:29:06 -0500 (EST)
"Richard B. Johnson" <[email protected]> wrote:
| On 26 Feb 2003, Rusty Lynch wrote:
|
| > On Wed, 2003-02-26 at 11:35, Richard B. Johnson wrote:
| > > On 26 Feb 2003, Rusty Lynch wrote:
| > >
| > > > The real time clock only needs 8 bytes, but rtc.c is reserving 10h bytes.
| > > [SNIPPED...]
| > >
| > > It only needs two bytes port 0x70 and port 0x71 in ix86. Since the Sparc
| > > gets addressed differently and can only read/write words, it needs 8
| > > bytes. Please, if you are going to fix it, please fix it only once by
| > > setting a different length for the different machines!
| > > Cheers,
| > > Dick Johnson
| >
| > Actually, it's finer grain then x86, it's a chipset issue. As Randy
| > pointed out in the original thread ==>
| > > Some Intel chipset specs list RTC as using 0x70 - 0x77, probably with
| > > some aliasing in there, so it looks to me like an EXTENT of 8 would be
| > > safer and still allow you access to 0x79.
| > >
| > > I'm looking at 82801BA-ICH2, 82801-ICH3, and 82801AA-ICH0 specs.
| > >
| > > --
|
| Can't see what an IDE chip-set has to do with it. The RTC can only
| be accessed as an offset-location and a data-location. You write
| an offset at one location and you read/write data at another location.
| On an ix86, the locations are adjacent byte-wide ports. On the Sparc
| they are adjacent dword-wide memory locations.
IDE is just 1 of about 20 functional units in those chipsets.
The chipset specs say that there are some other RTC registers there
(total of 8).
Reducing the RTC I/O space from 16 to 8 bytes looks right to me,
even on x86.
| Cheers,
--
~Randy