From: vichy [mailto:vichy.kuo@xxxxxxxxx] > hi David: > > > Because the trb buffers can't cross a 64k physical address boundary. > > Is it only specific to iso scheduling or bulk also need to take care? > from your kind explanation, the trb buffer for Bulk also need to take > care crossing 64k physical boundary. > But i don't find it for bulk transfer. > Below is excerpted from xhci_queue_bulk_tx > while (running_total < urb->transfer_buffer_length) { > num_trbs++; > running_total += TRB_MAX_BUFF_SIZE; > } Hmmm... that looks like a division by a power of 2! The constraint applies to all TRB. I've not looked at the code recently, it certainly does eventually split on 64k physical boundaries. It might not be detected until the entries are written to the ring, you don't really want to do all the work twice. David ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥