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

Re: nfblock vs udev



Stephen R Marenka píše v Čt 10. 07. 2008 v 21:40 -0500:
> I updated my test kernels [0] and kernel patches at [1].
> [0] http://people.debian.org/~smarenka/m68k/kernel
> [1] http://people.debian.org/~smarenka/m68k/kernel/patches
> 
> These were built with the gcc-4.2 cross-compiler at [2].
> [2] http://people.debian.org/~smarenka/m68k/cross-compilers
> 
> I managed to get a udev on nfblock debug log at [3].
> [3] http://people.debian.org/~smarenka/tmp/udevboot.log
> 
> Hopefully someone can make sense of it and help me out. Right now 
> nfblock kernels and debian-installer don't play nicely together.

I have just tried starting a 2.6.25 kernel on Debian disk.img (both from
Stephen). This is what happens from the nfblock side before it halts:

1) XHGetCapacity is called on device 16 (= [IDE0]) and gets positive
answer: size of the device in blocks is 20971440 (=10 GB)

2) XHRead(16.0, recno=0, count=0, buf=$8) is called - it tries to read 0
sectors so the answer is OK - probably just a quick test from the linux
kernel if the device is inserted and readable.

3) ARAnyM XHRead(16.0, recno=0, count=65280, buf=$8) is called - it
tries to read 65280 sectors to address $8, so it's going to overwrite
bottom 32 MB of memory with data from the disk drive.

Then it crashes with the double bus fault - I don't know where the PC is
but maybe the currect program code gets overwritten by the disk data -
that would explain the crash easily.

I can debug this further from the outside but I was wondering if it is
normal to read 65280 sectors blindly and store it to 0x00000008 address.
Why such an amount of data? And is the address 0x0008 OK as a disk
buffer? I almost feel like the parameters are not passed in correctly
(65280 is 0xff00).

Petr



Reply to: