> > In block layer, max_segment_size is obtained from get_max_segment_size. > > seg_boundary_mask is set to PAGE_SIZE - 1 in the ufs driver. > > The segment size is the PAGE size, and the max buffer size is segment > > size * max segment count ( PAGE SIZE * 128 ) = 512 KiB in block layer > > Right? > > Thanks for having reported this. I had overlooked that the UFS host > controller driver sets the dma_boundary member of the host_template field. > Is my understanding correct that UFS host controllers should support DMA > segments that consist of multiple physical pages? max value of data byte count is 256kb in PRDT. 256kb (data byte count) * 128 (max segments) = 32768kb If physical pages are continuous, it seems that IO can be delivered up to 32mb. performance checks are required, but we don't have to consider saturation. because the device vendor can set opt_xfer_blocks . Thanks, yohan > > Thanks, > > Bart.