Changeset 8442d10 in mainline for uspace/drv
- Timestamp:
- 2013-09-09T21:48:12Z (12 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c67dbd6
- Parents:
- 2e2c18a1
- Location:
- uspace/drv
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/audio/sb16/dsp.c
r2e2c18a1 r8442d10 173 173 { 174 174 assert(dsp); 175 if (size > MAX_BUFFER_SIZE || size == 0 || (size % 2) == 1) 175 176 if ((size > MAX_BUFFER_SIZE) || (size == 0) || ((size % 2) == 1)) 176 177 size = MAX_BUFFER_SIZE; 177 void *buffer = NULL, *pa = NULL; 178 int ret = dmamem_map_anonymous(size, AS_AREA_WRITE | AS_AREA_READ, 179 0, &pa, &buffer); 178 179 uintptr_t pa = 0; 180 void *buffer = NULL; 181 182 int ret = dmamem_map_anonymous(size, DMAMEM_16MiB, 183 AS_AREA_WRITE | AS_AREA_READ, 0, &pa, &buffer); 180 184 if (ret != EOK) { 181 185 ddf_log_error("Failed to allocate DMA buffer."); 182 186 return ENOMEM; 183 187 } 184 185 ddf_log_verbose("Setup dma buffer at %p(%p) %zu.", buffer, pa, size);186 assert( (uintptr_t)pa < (1 << 25));187 188 189 ddf_log_verbose("Setup DMA buffer at %p (%zu) %zu.", buffer, pa, size); 190 assert(pa < (1 << 24)); 191 188 192 /* Setup 16 bit channel */ 189 ret = setup_dma(dsp, (uintptr_t)pa, size);193 ret = setup_dma(dsp, pa, size); 190 194 if (ret == EOK) { 191 195 dsp->buffer.data = buffer; … … 196 200 dmamem_unmap_anonymous(buffer); 197 201 } 202 198 203 return ret; 199 204 } -
uspace/drv/block/ahci/ahci.c
r2e2c18a1 r8442d10 119 119 static int ahci_identify_device(sata_dev_t *); 120 120 static int ahci_set_highest_ultra_dma_mode(sata_dev_t *); 121 static int ahci_rb_fpdma(sata_dev_t *, void *, uint64_t);122 static int ahci_wb_fpdma(sata_dev_t *, void *, uint64_t);121 static int ahci_rb_fpdma(sata_dev_t *, uintptr_t, uint64_t); 122 static int ahci_wb_fpdma(sata_dev_t *, uintptr_t, uint64_t); 123 123 124 124 static void ahci_sata_devices_create(ahci_dev_t *, ddf_dev_t *); … … 233 233 sata_dev_t *sata = fun_sata_dev(fun); 234 234 235 void *phys;235 uintptr_t phys; 236 236 void *ibuf; 237 int rc = dmamem_map_anonymous(sata->block_size, AS_AREA_READ | AS_AREA_WRITE,238 0, &phys, (void **)&ibuf);237 int rc = dmamem_map_anonymous(sata->block_size, DMAMEM_4GiB, 238 AS_AREA_READ | AS_AREA_WRITE, 0, &phys, &ibuf); 239 239 if (rc != EOK) { 240 240 ddf_msg(LVL_ERROR, "Cannot allocate read buffer."); … … 276 276 sata_dev_t *sata = fun_sata_dev(fun); 277 277 278 void *phys;278 uintptr_t phys; 279 279 void *ibuf; 280 int rc = dmamem_map_anonymous(sata->block_size, AS_AREA_READ | AS_AREA_WRITE,281 0, &phys, (void **)&ibuf);280 int rc = dmamem_map_anonymous(sata->block_size, DMAMEM_4GiB, 281 AS_AREA_READ | AS_AREA_WRITE, 0, &phys, &ibuf); 282 282 if (rc != EOK) { 283 283 ddf_msg(LVL_ERROR, "Cannot allocate write buffer."); … … 336 336 * 337 337 */ 338 static void ahci_identify_device_cmd(sata_dev_t *sata, void *phys)338 static void ahci_identify_device_cmd(sata_dev_t *sata, uintptr_t phys) 339 339 { 340 340 volatile sata_std_command_frame_t *cmd = … … 381 381 * 382 382 */ 383 static void ahci_identify_packet_device_cmd(sata_dev_t *sata, void *phys)383 static void ahci_identify_packet_device_cmd(sata_dev_t *sata, uintptr_t phys) 384 384 { 385 385 volatile sata_std_command_frame_t *cmd = … … 435 435 } 436 436 437 void *phys;437 uintptr_t phys; 438 438 sata_identify_data_t *idata; 439 439 int rc = dmamem_map_anonymous(SATA_IDENTIFY_DEVICE_BUFFER_LENGTH, 440 AS_AREA_READ | AS_AREA_WRITE, 0, &phys, (void **) &idata); 440 DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE, 0, &phys, 441 (void **) &idata); 441 442 if (rc != EOK) { 442 443 ddf_msg(LVL_ERROR, "Cannot allocate buffer to identify device."); … … 561 562 * 562 563 */ 563 static void ahci_set_mode_cmd(sata_dev_t *sata, void*phys, uint8_t mode)564 static void ahci_set_mode_cmd(sata_dev_t *sata, uintptr_t phys, uint8_t mode) 564 565 { 565 566 volatile sata_std_command_frame_t *cmd = … … 567 568 568 569 cmd->fis_type = SATA_CMD_FIS_TYPE; 569 cmd->c = SATA_CMD_FIS_COMMAND_INDICATOR; 570 cmd->c = SATA_CMD_FIS_COMMAND_INDICATOR; 570 571 cmd->command = 0xef; 571 572 cmd->features = 0x03; … … 628 629 } 629 630 630 void *phys;631 uintptr_t phys; 631 632 sata_identify_data_t *idata; 632 633 int rc = dmamem_map_anonymous(SATA_SET_FEATURE_BUFFER_LENGTH, 633 AS_AREA_READ | AS_AREA_WRITE, 0, &phys, (void **) &idata); 634 DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE, 0, &phys, 635 (void **) &idata); 634 636 if (rc != EOK) { 635 637 ddf_msg(LVL_ERROR, "Cannot allocate buffer for device set mode."); … … 677 679 * 678 680 */ 679 static void ahci_rb_fpdma_cmd(sata_dev_t *sata, void *phys, uint64_t blocknum) 681 static void ahci_rb_fpdma_cmd(sata_dev_t *sata, uintptr_t phys, 682 uint64_t blocknum) 680 683 { 681 684 volatile sata_ncq_command_frame_t *cmd = … … 734 737 * 735 738 */ 736 static int ahci_rb_fpdma(sata_dev_t *sata, void *phys, uint64_t blocknum)739 static int ahci_rb_fpdma(sata_dev_t *sata, uintptr_t phys, uint64_t blocknum) 737 740 { 738 741 if (sata->is_invalid_device) { … … 763 766 * 764 767 */ 765 static void ahci_wb_fpdma_cmd(sata_dev_t *sata, void *phys, uint64_t blocknum) 768 static void ahci_wb_fpdma_cmd(sata_dev_t *sata, uintptr_t phys, 769 uint64_t blocknum) 766 770 { 767 771 volatile sata_ncq_command_frame_t *cmd = … … 821 825 * 822 826 */ 823 static int ahci_wb_fpdma(sata_dev_t *sata, void *phys, uint64_t blocknum)827 static int ahci_wb_fpdma(sata_dev_t *sata, uintptr_t phys, uint64_t blocknum) 824 828 { 825 829 if (sata->is_invalid_device) { … … 933 937 { 934 938 size_t size = 4096; 935 void *phys = NULL;939 uintptr_t phys = 0; 936 940 void *virt_fb = NULL; 937 941 void *virt_cmd = NULL; … … 949 953 950 954 /* Allocate and init retfis structure. */ 951 int rc = dmamem_map_anonymous(size, AS_AREA_READ | AS_AREA_WRITE, 0,952 &phys, &virt_fb);955 int rc = dmamem_map_anonymous(size, DMAMEM_4GiB, 956 AS_AREA_READ | AS_AREA_WRITE, 0, &phys, &virt_fb); 953 957 if (rc != EOK) 954 958 goto error_retfis; … … 959 963 960 964 /* Allocate and init command header structure. */ 961 rc = dmamem_map_anonymous(size, AS_AREA_READ | AS_AREA_WRITE, 0,962 &phys, &virt_cmd);965 rc = dmamem_map_anonymous(size, DMAMEM_4GiB, 966 AS_AREA_READ | AS_AREA_WRITE, 0, &phys, &virt_cmd); 963 967 if (rc != EOK) 964 968 goto error_cmd; … … 970 974 971 975 /* Allocate and init command table structure. */ 972 rc = dmamem_map_anonymous(size, AS_AREA_READ | AS_AREA_WRITE, 0,973 &phys, &virt_table);976 rc = dmamem_map_anonymous(size, DMAMEM_4GiB, 977 AS_AREA_READ | AS_AREA_WRITE, 0, &phys, &virt_table); 974 978 if (rc != EOK) 975 979 goto error_table; … … 1153 1157 ahci->memregs = NULL; 1154 1158 1155 physmem_map(( void *) (size_t) (hw_res_parsed.mem_ranges.ranges[0].address),1159 physmem_map((uintptr_t) (hw_res_parsed.mem_ranges.ranges[0].address), 1156 1160 AHCI_MEMREGS_PAGES_COUNT, AS_AREA_READ | AS_AREA_WRITE, 1157 1161 (void **) &ahci->memregs); -
uspace/drv/bus/usb/uhci/utils/malloc32.h
r2e2c18a1 r8442d10 100 100 static inline void * get_page(void) 101 101 { 102 void *address, *phys; 102 uintptr_t phys; 103 void *address; 104 103 105 const int ret = dmamem_map_anonymous(UHCI_REQUIRED_PAGE_SIZE, 104 AS_AREA_READ | AS_AREA_WRITE, 0, &phys, &address); 106 DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE, 0, &phys, 107 &address); 105 108 return ret == EOK ? address : NULL; 106 109 } -
uspace/drv/fb/amdm37x_dispc/amdm37x_dispc.c
r2e2c18a1 r8442d10 273 273 ddf_log_note("Setting mode: %ux%ux%u\n", x, y, bpp*8); 274 274 const size_t size = ALIGN_UP(x * y * bpp, PAGE_SIZE); 275 void *buffer, *pa; 276 int ret = dmamem_map_anonymous(size, AS_AREA_READ | AS_AREA_WRITE, 277 0, &pa, &buffer); 275 uintptr_t pa; 276 void *buffer; 277 int ret = dmamem_map_anonymous(size, DMAMEM_4GiB, 278 AS_AREA_READ | AS_AREA_WRITE, 0, &pa, &buffer); 278 279 if (ret != EOK) { 279 280 ddf_log_error("Failed to get new FB\n"); -
uspace/drv/fb/kfb/port.c
r2e2c18a1 r8442d10 333 333 334 334 kfb.size = scanline * height; 335 rc = physmem_map( (void *)paddr + offset,335 rc = physmem_map(paddr + offset, 336 336 ALIGN_UP(kfb.size, PAGE_SIZE) >> PAGE_WIDTH, 337 337 AS_AREA_READ | AS_AREA_WRITE, (void *) &kfb.addr); -
uspace/drv/nic/e1k/e1k.c
r2e2c18a1 r8442d10 129 129 130 130 /** Physical tx ring address */ 131 void *tx_ring_phys;131 uintptr_t tx_ring_phys; 132 132 /** Virtual tx ring address */ 133 133 void *tx_ring_virt; 134 134 135 135 /** Ring of TX frames, physical address */ 136 void **tx_frame_phys;136 uintptr_t *tx_frame_phys; 137 137 /** Ring of TX frames, virtual address */ 138 138 void **tx_frame_virt; 139 139 140 140 /** Physical rx ring address */ 141 void *rx_ring_phys;141 uintptr_t rx_ring_phys; 142 142 /** Virtual rx ring address */ 143 143 void *rx_ring_virt; 144 144 145 145 /** Ring of RX frames, physical address */ 146 void **rx_frame_phys;146 uintptr_t *rx_frame_phys; 147 147 /** Ring of RX frames, virtual address */ 148 148 void **rx_frame_virt; … … 1377 1377 int rc = dmamem_map_anonymous( 1378 1378 E1000_RX_FRAME_COUNT * sizeof(e1000_rx_descriptor_t), 1379 AS_AREA_READ | AS_AREA_WRITE, 0, &e1000->rx_ring_phys,1380 &e1000->rx_ring_ virt);1379 DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE, 0, 1380 &e1000->rx_ring_phys, &e1000->rx_ring_virt); 1381 1381 if (rc != EOK) 1382 1382 return rc; … … 1387 1387 (uint32_t) PTR_TO_U64(e1000->rx_ring_phys)); 1388 1388 1389 e1000->rx_frame_phys = 1390 calloc(E1000_RX_FRAME_COUNT, sizeof( void *));1389 e1000->rx_frame_phys = (uintptr_t *) 1390 calloc(E1000_RX_FRAME_COUNT, sizeof(uintptr_t)); 1391 1391 e1000->rx_frame_virt = 1392 1392 calloc(E1000_RX_FRAME_COUNT, sizeof(void *)); 1393 if ( e1000->rx_frame_phys == NULL || e1000->rx_frame_virt == NULL) {1393 if ((e1000->rx_frame_phys == NULL) || (e1000->rx_frame_virt == NULL)) { 1394 1394 rc = ENOMEM; 1395 1395 goto error; … … 1397 1397 1398 1398 size_t i; 1399 uintptr_t frame_phys; 1399 1400 void *frame_virt; 1400 void *frame_phys;1401 1401 1402 1402 for (i = 0; i < E1000_RX_FRAME_COUNT; i++) { 1403 rc = dmamem_map_anonymous( 1404 E1000_MAX_SEND_FRAME_SIZE, AS_AREA_READ | AS_AREA_WRITE,1405 0,&frame_phys, &frame_virt);1403 rc = dmamem_map_anonymous(E1000_MAX_SEND_FRAME_SIZE, 1404 DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE, 0, 1405 &frame_phys, &frame_virt); 1406 1406 if (rc != EOK) 1407 1407 goto error; 1408 1408 1409 e1000->rx_frame_phys[i] = frame_phys; 1409 1410 e1000->rx_frame_virt[i] = frame_virt; 1410 e1000->rx_frame_phys[i] = frame_phys;1411 1411 } 1412 1412 … … 1424 1424 if (e1000->rx_frame_virt[i] != NULL) { 1425 1425 dmamem_unmap_anonymous(e1000->rx_frame_virt[i]); 1426 e1000->rx_frame_phys[i] = 0; 1426 1427 e1000->rx_frame_virt[i] = NULL; 1427 e1000->rx_frame_phys[i] = NULL;1428 1428 } 1429 1429 } … … 1436 1436 if (e1000->rx_frame_virt != NULL) { 1437 1437 free(e1000->rx_frame_virt); 1438 e1000->rx_frame_ phys= NULL;1438 e1000->rx_frame_virt = NULL; 1439 1439 } 1440 1440 … … 1454 1454 for (unsigned int offset = 0; offset < E1000_RX_FRAME_COUNT; offset++) { 1455 1455 dmamem_unmap_anonymous(e1000->rx_frame_virt[offset]); 1456 e1000->rx_frame_phys[offset] = 0; 1456 1457 e1000->rx_frame_virt[offset] = NULL; 1457 e1000->rx_frame_phys[offset] = NULL;1458 1458 } 1459 1459 1460 1460 free(e1000->rx_frame_virt); 1461 free(e1000->rx_frame_phys); 1461 1462 e1000->rx_frame_phys = NULL; 1462 1463 e1000->rx_frame_virt = NULL; 1463 e1000->rx_frame_phys = NULL;1464 1464 1465 dmamem_unmap_anonymous(e1000->rx_ring_virt); 1465 1466 } … … 1569 1570 fibril_mutex_lock(&e1000->tx_lock); 1570 1571 1571 e1000->tx_ring_phys = NULL;1572 e1000->tx_ring_phys = 0; 1572 1573 e1000->tx_ring_virt = NULL; 1574 1573 1575 e1000->tx_frame_phys = NULL; 1574 1576 e1000->tx_frame_virt = NULL; … … 1576 1578 int rc = dmamem_map_anonymous( 1577 1579 E1000_TX_FRAME_COUNT * sizeof(e1000_tx_descriptor_t), 1578 AS_AREA_READ | AS_AREA_WRITE, 0, &e1000->tx_ring_phys,1579 &e1000->tx_ring_ virt);1580 DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE, 0, 1581 &e1000->tx_ring_phys, &e1000->tx_ring_virt); 1580 1582 if (rc != EOK) 1581 1583 goto error; … … 1584 1586 E1000_TX_FRAME_COUNT * sizeof(e1000_tx_descriptor_t)); 1585 1587 1586 e1000->tx_frame_phys = calloc(E1000_TX_FRAME_COUNT, sizeof(void *)); 1587 e1000->tx_frame_virt = calloc(E1000_TX_FRAME_COUNT, sizeof(void *)); 1588 1589 if (e1000->tx_frame_phys == NULL || e1000->tx_frame_virt == NULL) { 1588 e1000->tx_frame_phys = (uintptr_t *) 1589 calloc(E1000_TX_FRAME_COUNT, sizeof(uintptr_t)); 1590 e1000->tx_frame_virt = 1591 calloc(E1000_TX_FRAME_COUNT, sizeof(void *)); 1592 1593 if ((e1000->tx_frame_phys == NULL) || (e1000->tx_frame_virt == NULL)) { 1590 1594 rc = ENOMEM; 1591 1595 goto error; … … 1593 1597 1594 1598 for (i = 0; i < E1000_TX_FRAME_COUNT; i++) { 1595 rc = dmamem_map_anonymous( 1596 E1000_MAX_SEND_FRAME_SIZE, AS_AREA_READ | AS_AREA_WRITE,1599 rc = dmamem_map_anonymous(E1000_MAX_SEND_FRAME_SIZE, 1600 DMAMEM_4GiB, AS_AREA_READ | AS_AREA_WRITE, 1597 1601 0, &e1000->tx_frame_phys[i], &e1000->tx_frame_virt[i]); 1598 1602 if (rc != EOK) … … 1616 1620 } 1617 1621 1618 if ( e1000->tx_frame_phys != NULL && e1000->tx_frame_virt != NULL) {1622 if ((e1000->tx_frame_phys != NULL) && (e1000->tx_frame_virt != NULL)) { 1619 1623 for (i = 0; i < E1000_TX_FRAME_COUNT; i++) { 1620 1624 if (e1000->tx_frame_virt[i] != NULL) { 1621 1625 dmamem_unmap_anonymous(e1000->tx_frame_virt[i]); 1626 e1000->tx_frame_phys[i] = 0; 1622 1627 e1000->tx_frame_virt[i] = NULL; 1623 e1000->tx_frame_phys[i] = NULL;1624 1628 } 1625 1629 } … … 1633 1637 if (e1000->tx_frame_virt != NULL) { 1634 1638 free(e1000->tx_frame_virt); 1635 e1000->tx_frame_ phys= NULL;1639 e1000->tx_frame_virt = NULL; 1636 1640 } 1637 1641 … … 1650 1654 for (i = 0; i < E1000_TX_FRAME_COUNT; i++) { 1651 1655 dmamem_unmap_anonymous(e1000->tx_frame_virt[i]); 1656 e1000->tx_frame_phys[i] = 0; 1652 1657 e1000->tx_frame_virt[i] = NULL; 1653 e1000->tx_frame_phys[i] = NULL;1654 1658 } 1655 1659 … … 1661 1665 if (e1000->tx_frame_virt != NULL) { 1662 1666 free(e1000->tx_frame_virt); 1663 e1000->tx_frame_ phys= NULL;1667 e1000->tx_frame_virt = NULL; 1664 1668 } 1665 1669 -
uspace/drv/nic/rtl8139/driver.c
r2e2c18a1 r8442d10 1144 1144 ddf_msg(LVL_DEBUG, "Creating buffers"); 1145 1145 1146 rc = dmamem_map_anonymous(TX_PAGES * PAGE_SIZE, AS_AREA_WRITE, 0,1147 &rtl8139->tx_buff_phys, &rtl8139->tx_buff_virt);1146 rc = dmamem_map_anonymous(TX_PAGES * PAGE_SIZE, DMAMEM_4GiB, 1147 AS_AREA_WRITE, 0, &rtl8139->tx_buff_phys, &rtl8139->tx_buff_virt); 1148 1148 if (rc != EOK) { 1149 1149 ddf_msg(LVL_ERROR, "Can not allocate transmitter buffers."); … … 1164 1164 RxBUF_TOT_LENGTH); 1165 1165 1166 rc = dmamem_map_anonymous(RxBUF_TOT_LENGTH, AS_AREA_READ, 0,1167 &rtl8139->rx_buff_phys, &rtl8139->rx_buff_virt);1166 rc = dmamem_map_anonymous(RxBUF_TOT_LENGTH, DMAMEM_4GiB, 1167 AS_AREA_READ, 0, &rtl8139->rx_buff_phys, &rtl8139->rx_buff_virt); 1168 1168 if (rc != EOK) { 1169 1169 ddf_msg(LVL_ERROR, "Can not allocate receive buffer."); -
uspace/drv/nic/rtl8139/driver.h
r2e2c18a1 r8442d10 100 100 * Each buffer takes 2kB 101 101 */ 102 void *tx_buff_phys;102 uintptr_t tx_buff_phys; 103 103 void *tx_buff_virt; 104 104 … … 117 117 118 118 /** Buffer for receiving frames */ 119 void *rx_buff_phys;119 uintptr_t rx_buff_phys; 120 120 void *rx_buff_virt; 121 121
Note:
See TracChangeset
for help on using the changeset viewer.