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