Opened 16 years ago
Closed 16 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.
Note:
See TracTickets
for help on using tickets.
After fixing gxe_bd_t like this:
+ uint8_t pad5[0x3fc0];
the whole structure can be pio_enable()'d at once without any problems and the disk behaves as expected.