[coreboot] Out of heap space

pyro pyro at linuxlabs.com
Sat Mar 29 00:13:40 CET 2008


Greetings,

It should fall back, but not everything does that properly. Just for
checking the basic functioning, any old USB 1.1 device (keyboard, mouse,
hub) will do to at least see that it was recognized and configured.

IIRC, the sequence is:
1. detect that a device is connected to the port
2. enable the port
3. Assign a USB ID with a setup packet
4. query for device type and strings
5. If a suitable block device, load the payload.

5 used to be a stream object (like in the old LinuxBIOS code) handed to
a copy of the the ELF loader. the read method set up the request and
called into the USB polling loop. I'm guessing that's

One potential issue there is that control of the physical port between
UHCI or OHCI (for 1.1) and EHCI (for 2.0) is determined by a bit in a
register. I'm not sure what happens if it's set wrong, but I suspect it
could look like your debug output.

was this exact setup working before r54? One possability is that the USB
code always had a bug that wasn't visible when allocations were quietly
double the requested size.

G'day,
sjames


On Fri, 28 Mar 2008 joe at smittys.pointclark.net wrote:

> Quoting pyro <pyro at linuxlabs.com>:
>
> > Greetings,
> >
> > The code has seen some changes since I wrote it that I haven't kept up
> > with, but it never handled USB 2.0 at all other than to ignore the EHCI
> > controller and force any devices to fall back.
> >
> Right, so it should just "fall back" to USB 1.1 correct?
> >
> > If you have an older USB device around, it may be informative to try
> > plugging that in just to see if it gets enumerated.
> >
> > G'day,
> > sjames
> >
> Hmm, not sure if I have any USB 1.1 drives....
>
> Thanks - Joe
> >
> > On Fri, 28 Mar 2008 joe at smittys.pointclark.net wrote:
> >
> >> > Can you svn up and try again?
> >> >
> >> After r45, it just hangs after attempting to free non-allocated memory
> >> (see below). Help? Could this have something to do with USB 2.0?
> >>
> >> Booting 'uda:/isolinux/vmlinuz console=tty0 console=ttyS0,115200n8
> >> initrd=uda:/
> >> isolinux/initrd.img text'
> >> malloc_diag: alloc: 312 bytes (4 blocks), free: 32448 bytes (1 blocks)
> >> malloc_diag: alloc: 328 bytes (5 blocks), free: 32432 bytes (1 blocks)
> >> file_open: dev=uda, path=/isolinux/vmlinuz
> >> LinuxLabs USB bootloader
> >> uhc_init: Found UHCI at 28c0
> >> uhc_reset: Resetting UHCI
> >> uhc_init: uhc_init setting framelist to: 076b9000
> >> uhc_start: Starting UHCI
> >> dump_uhci: HCI at 000028c0
> >> uhc_init: Found UHCI at 28e0
> >> uhc_reset: Resetting UHCI
> >> uhc_init: uhc_init setting framelist to: 076b9000
> >> uhc_start: Starting UHCI
> >> dump_uhci: HCI at 000028e0
> >> uhc_init: Found UHCI at 2c00
> >> uhc_reset: Resetting UHCI
> >> uhc_init: uhc_init setting framelist to: 076b9000
> >> uhc_start: Starting UHCI
> >> dump_uhci: HCI at 00002c00
> >> malloc_diag: alloc: 8536 bytes (6 blocks), free: 24224 bytes (1 blocks)
> >> init_framelist: frame_list is at 13b000
> >> dump_link: frame_list_link: addr: 0012ec70
> >> dump_link: frame_list_link:  raw addr: 77e7c70
> >> dump_link: frame_list_link: terminate: 0
> >> dump_link: frame_list_link: queue: 1
> >> dump_link: frame_list_link: depth: 0
> >> malloc_diag: alloc: 16744 bytes (7 blocks), free: 16016 bytes (1 blocks)
> >> init_framelist: frame_list is at 13d000
> >> dump_link: frame_list_link: addr: 0012ec90
> >> dump_link: frame_list_link:  raw addr: 77e7c90
> >> dump_link: frame_list_link: terminate: 0
> >> dump_link: frame_list_link: queue: 1
> >> dump_link: frame_list_link: depth: 0
> >> malloc_diag: alloc: 24952 bytes (8 blocks), free: 7808 bytes (1 blocks)
> >> init_framelist: frame_list is at 13f000
> >> dump_link: frame_list_link: addr: 0012ecb0
> >> dump_link: frame_list_link:  raw addr: 77e7cb0
> >> dump_link: frame_list_link: terminate: 0
> >> dump_link: frame_list_link: queue: 1
> >> dump_link: frame_list_link: depth: 0
> >> malloc_diag: alloc: 26536 bytes (9 blocks), free: 6224 bytes (1 blocks)
> >> poll_usb: poll_usb1 i=0	poll_u_root_hub1 v=00001080	poll_u_root_hub1
> >> v=00001083	poll_u_root_hub2 v=00001083	poll_u_root_hub21
> >> v=00001083	Connection on port 28d2
> >> New USB device, setting address 2
> >> uhci_control_msg: uhci_control_msg: request_type = 0 request = 5 wLength=0
> >> malloc_diag: alloc: 30648 bytes (10 blocks), free: 2112 bytes (1 blocks)
> >> dump_uhci: HCI at 000028c0
> >> dump_td: failed_transaction: TD(0012fcc0):
> >> dump_td: failed_transaction: type: SETUP
> >> dump_td: failed_transaction: retries: 3
> >> dump_td: failed_transaction: IOC
> >> dump_td: failed_transaction: active: 0001
> >> dump_td: failed_transaction: device_addr: 00
> >> dump_td: failed_transaction: endpoint: 0
> >> dump_td: failed_transaction: data_toggle: 0
> >> dump_td: failed_transaction: max_transfer: 7
> >> dump_td: failed_transaction: actual: 0
> >> dump_td: failed_transaction: link:
> >> dump_link: 	failed_transaction: addr: 0012fce0
> >> dump_link: 	failed_transaction:  raw addr: 77e8ce0
> >> dump_link: 	failed_transaction: terminate: 0
> >> dump_link: 	failed_transaction: queue: 0
> >> dump_link: 	failed_transaction: depth: 0
> >> dump_td: failed_transaction: TD(0012fce0):
> >> dump_td: failed_transaction: type: IN
> >> dump_td: failed_transaction: retries: 0
> >> dump_td: failed_transaction: active: 0001
> >> dump_td: failed_transaction: device_addr: 00
> >> dump_td: failed_transaction: endpoint: 0
> >> dump_td: failed_transaction: data_toggle: 1
> >> dump_td: failed_transaction: max_transfer: 7ff
> >> dump_td: failed_transaction: actual: 0
> >> dump_td: failed_transaction: link:
> >> dump_link: 	failed_transaction: addr: f8947000
> >> dump_link: 	failed_transaction:  raw addr: 0000
> >> dump_link: 	failed_transaction: terminate: 1
> >> dump_link: 	failed_transaction: queue: 0
> >> dump_link: 	failed_transaction: depth: 0
> >> Attempt to free non-allocated memory: 001417fc
> >>
> >>
> >>
> >>
> >> Thanks - Joe
>
>

||||| |||| |||||||||||||  |||
by Linux Labs International, Inc.
   Steven James, CTO

866 824 9737 support





More information about the coreboot mailing list