On Sun, Aug 23, 2009 at 5:45 AM, Kevin O'Connor <kevin@koconnor.net> wrote:
On Sun, Aug 23, 2009 at 04:03:40AM +0800, Jason Wang wrote:
> Hi all,
>     I am trying to debug why the grub crashed (under usbrom) after loading
> certain blocks into the memory.
> My new found is that while usbrom is trying to load (block lba=0x0019a9e0).
> it crashed. the flow is
> usb_new_read(0,0x0019a9e0,0x20,0xfffa2000), 0x20 is the count which should
> be read, and the 0xfffa2000 is the
> virtual address of (0x70000).
> usb_new_read call readwrite_blocks then execute_command. after executed
> wrap_cbw in execute_command.
> it should call dev->controller->bulk, this address is a wrong address. my
> debug information are below:

Where in memory is "dev->controller->bulk"?  You way want to check if
its contents were overwritten by something (eg, grub, linux, seabios,
or a data block loaded by the usb rom).
dev->controller-bulk is memory is 5d2d, but the point which direct to  dev->controller is 6Ef30,which physical memory is
6EF30+CE000>0x100000,what's why grub kernel can load some blocks to 0x100000 but crashed later. grub overwrite the
space which usbrom use.
So the problem is be confirmed with memory.
Kevin, how can i use PMM by seabios from usbrom? it should be much about 1M memory that should be used.
Does PMM can suppport so large or just 40K of low memory/64K high memory

-Kevin



--
Jason Wang
Peking University