Re: Stored data missed in setup.S

Richard B. Johnson (root@chaos.analogic.com)
Wed, 23 Apr 2003 11:11:58 -0400 (EDT)


On Wed, 23 Apr 2003, Randy.Dunlap wrote:

> On Wed, 23 Apr 2003 10:36:55 -0400 (EDT) "Richard B. Johnson" <root@chaos.analogic.com> wrote:
>
> | On Wed, 23 Apr 2003, Andrew Kirilenko wrote:
> |
> | [SNIPPED...]
> |
> | > OK. And now code looks like:
> | > -->
> | > start_of_setup: # line 160
> | > # bla bla bla - some checking code
> | > movb $1, %al
> | > movb %al, (0x100)
> | > ....
> | > ....
> | > cmpb $1, (0x100)
> | > je bail820 # and it DON'T jump here
> | > <--
> | >
> |
> | > I'm sure, I'm doing something wrong. But what???
> |
> | The only possibiity is that the code you just showed is not
> | being executed. Absolute location 0x100 is not being overwritten
> | by some timer-tick (normally) so whatever you write there should
> | remain. You just put a byte of 1 in that location and then
> | you compared against a byte of 1. If the CPU was broken, you
> | wouldn't have even loaded your code.
>
> Could possibly be that DS (seg register) is altered between
> the store and the comparison...

I can only assume that the code presented is the only code that
was executed. You are correct that DS may have never even been
set. The data segment may be in some non-writable space, which
is hard to find now-days with most evenything being shadowed
and left writable. Many modern chip-sets can't turn off write,
maybe it was too expensive from a performance standpoint.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.20 on an i686 machine (797.90 BogoMips).
Why is the government concerned about the lunatic fringe? Think about it.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/