diff --git a/src/add-ons/kernel/busses/ata/ide_isa/ide_isa.c b/src/add-ons/kernel/busses/ata/ide_isa/ide_isa.c index ceb1fd6fab..591d764580 100644 --- a/src/add-ons/kernel/busses/ata/ide_isa/ide_isa.c +++ b/src/add-ons/kernel/busses/ata/ide_isa/ide_isa.c @@ -75,6 +75,7 @@ publish_channel(device_node *parent, uint16 command_block_base, // the ata bus manager handles that very efficiently, but why // not use the block device manager for doing that? { B_DMA_ALIGNMENT, B_UINT32_TYPE, { ui32: 1 }}, + { B_DMA_HIGH_ADDRESS, B_UINT64_TYPE, { ui64: 0x100000000LL }}, // private data to identify device { ATA_ISA_COMMAND_BLOCK_BASE, B_UINT16_TYPE, { ui16: command_block_base }}, diff --git a/src/add-ons/kernel/busses/ata/promise_tx2/promise_tx2.c b/src/add-ons/kernel/busses/ata/promise_tx2/promise_tx2.c index ef7925dbec..d90ffff55e 100644 --- a/src/add-ons/kernel/busses/ata/promise_tx2/promise_tx2.c +++ b/src/add-ons/kernel/busses/ata/promise_tx2/promise_tx2.c @@ -192,6 +192,7 @@ publish_controller(device_node_handle parent, uint16 bus_master_base, uint8 intn { B_DMA_MAX_SEGMENT_BLOCKS, B_UINT32_TYPE, { ui32: 0x10000 }}, { B_DMA_MAX_SEGMENT_COUNT, B_UINT32_TYPE, { ui32: ATA_ADAPTER_MAX_SG_COUNT }}, + { B_DMA_HIGH_ADDRESS, B_UINT64_TYPE, { ui64: 0x100000000LL }}, // private data to find controller { ATA_ADAPTER_BUS_MASTER_BASE, B_UINT16_TYPE, { ui16: bus_master_base }}, diff --git a/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c b/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c index 7d8ad8daa6..1f19ecb825 100644 --- a/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c +++ b/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c @@ -222,6 +222,7 @@ controller_probe(device_node *parent) { B_DMA_MAX_SEGMENT_BLOCKS, B_UINT32_TYPE, { ui32: 0x10000 }}, { B_DMA_MAX_SEGMENT_COUNT, B_UINT32_TYPE, { ui32: ATA_ADAPTER_MAX_SG_COUNT }}, + { B_DMA_HIGH_ADDRESS, B_UINT64_TYPE, { ui64: 0x100000000LL }}, // private data to find controller { "silicon_image_3112/asic_index", B_UINT32_TYPE, diff --git a/src/add-ons/kernel/busses/ide/ide_isa/ide_isa.c b/src/add-ons/kernel/busses/ide/ide_isa/ide_isa.c index 5887a13063..0f5071d088 100644 --- a/src/add-ons/kernel/busses/ide/ide_isa/ide_isa.c +++ b/src/add-ons/kernel/busses/ide/ide_isa/ide_isa.c @@ -78,6 +78,7 @@ publish_channel(device_node *parent, uint16 command_block_base, // the ide bus manager handles that very efficiently, but why // not use the block device manager for doing that? { B_DMA_ALIGNMENT, B_UINT32_TYPE, { ui32: 1 }}, + { B_DMA_HIGH_ADDRESS, B_UINT64_TYPE, { ui64: 0x100000000LL }}, // private data to identify device { IDE_ISA_COMMAND_BLOCK_BASE, B_UINT16_TYPE, { ui16: command_block_base }}, diff --git a/src/add-ons/kernel/busses/ide/promise_tx2/promise_tx2.c b/src/add-ons/kernel/busses/ide/promise_tx2/promise_tx2.c index 6bc100e3d8..2d2b1a1ff5 100644 --- a/src/add-ons/kernel/busses/ide/promise_tx2/promise_tx2.c +++ b/src/add-ons/kernel/busses/ide/promise_tx2/promise_tx2.c @@ -205,6 +205,7 @@ publish_controller(device_node_handle parent, uint16 bus_master_base, uint8 intn { B_DMA_MAX_SEGMENT_BLOCKS, B_UINT32_TYPE, { ui32: 0x10000 }}, { B_DMA_MAX_SEGMENT_COUNT, B_UINT32_TYPE, { ui32: IDE_ADAPTER_MAX_SG_COUNT }}, + { B_DMA_HIGH_ADDRESS, B_UINT64_TYPE, { ui64: 0x100000000LL }}, // private data to find controller { IDE_ADAPTER_BUS_MASTER_BASE, B_UINT16_TYPE, { ui16: bus_master_base }}, diff --git a/src/add-ons/kernel/busses/ide/silicon_image_3112/silicon_image_3112.c b/src/add-ons/kernel/busses/ide/silicon_image_3112/silicon_image_3112.c index 7e99bac8af..8e1b80a826 100644 --- a/src/add-ons/kernel/busses/ide/silicon_image_3112/silicon_image_3112.c +++ b/src/add-ons/kernel/busses/ide/silicon_image_3112/silicon_image_3112.c @@ -231,6 +231,7 @@ controller_probe(device_node *parent) { B_DMA_MAX_SEGMENT_BLOCKS, B_UINT32_TYPE, { ui32: 0x10000 }}, { B_DMA_MAX_SEGMENT_COUNT, B_UINT32_TYPE, { ui32: IDE_ADAPTER_MAX_SG_COUNT }}, + { B_DMA_HIGH_ADDRESS, B_UINT64_TYPE, { ui64: 0x100000000LL }}, // private data to find controller { "silicon_image_3112/asic_index", B_UINT32_TYPE, { ui32: asicIndex }}, diff --git a/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c b/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c index ab37fefe61..3501c5f254 100644 --- a/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c +++ b/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c @@ -722,10 +722,7 @@ ata_adapter_publish_controller(device_node *parent, uint16 bus_master_base, { ui32: max_sg_block_size/*0x10000*/ }}, { B_DMA_MAX_SEGMENT_COUNT, B_UINT32_TYPE, { ui32: ATA_ADAPTER_MAX_SG_COUNT }}, - { B_DMA_HIGH_ADDRESS, B_UINT64_TYPE, - { ui64: 0x100000000LL }}, - // TODO: Add a parameter and set accordingly! For the time being - // play it safe and only allow 32 bit addresses. + { B_DMA_HIGH_ADDRESS, B_UINT64_TYPE, { ui64: 0x100000000LL }}, // private data to find controller { ATA_ADAPTER_BUS_MASTER_BASE, B_UINT16_TYPE, { ui16: bus_master_base }}, diff --git a/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c b/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c index 8344bada85..80fca61bda 100644 --- a/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c +++ b/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c @@ -675,6 +675,7 @@ ide_adapter_publish_controller(device_node *parent, uint16 bus_master_base, { ui32: max_sg_block_size/*0x10000*/ }}, { B_DMA_MAX_SEGMENT_COUNT, B_UINT32_TYPE, { ui32: IDE_ADAPTER_MAX_SG_COUNT }}, + { B_DMA_HIGH_ADDRESS, B_UINT64_TYPE, { ui64: 0x100000000LL }}, // private data to find controller { IDE_ADAPTER_BUS_MASTER_BASE, B_UINT16_TYPE, { ui16: bus_master_base }},