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: