Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 10 years ago

Closed 10 years ago

#75 closed defect (invalid)

Large I/O areas are broken

Reported by: Jiri Svoboda Owned by:
Priority: major Milestone: 0.4.1
Component: helenos/unspecified Version: mainline
Keywords: Cc:
Blocker for: Depends on:
See also:

Description

If you pio_enable() an area larger than page size, writes beyond the first page never go to the device. I observed this when trying to map the GXemul disk device as a single I/O area. Most of the registers are in the first page, while the I/O buffer is at offset 0x4000 (= page size). The writes to the buffer never make it to the device. When the buffer is mapped as a separate I/O area, everything works as expected.

Change History (1)

comment:1 Changed 10 years ago by Jakub Jermář

Resolution: invalid
Status: newclosed

After fixing gxe_bd_t like this:

  • uint32_t pad5[0x3fc0];

+ uint8_t pad5[0x3fc0];

the whole structure can be pio_enable()'d at once without any problems and the disk behaves as expected.

Note: See TracTickets for help on using tickets.