Changeset 1433ecda in mainline for kernel/genarch/src/drivers
- Timestamp:
- 2018-04-04T15:42:37Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2c4e1cc
- Parents:
- 47b2d7e3
- Location:
- kernel/genarch/src/drivers
- Files:
-
- 3 edited
-
bcm2835/mbox.c (modified) (5 diffs)
-
omap/uart.c (modified) (2 diffs)
-
pl011/pl011.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/src/drivers/bcm2835/mbox.c
r47b2d7e3 r1433ecda 40 40 static void mbox_write(bcm2835_mbox_t *mbox, uint8_t chan, uint32_t value) 41 41 { 42 while (mbox->status & MBOX_STATUS_FULL) ; 42 while (mbox->status & MBOX_STATUS_FULL) 43 ; 43 44 mbox->write = MBOX_COMPOSE(chan, value); 44 45 } … … 49 50 50 51 do { 51 while (mbox->status & MBOX_STATUS_EMPTY) ; 52 while (mbox->status & MBOX_STATUS_EMPTY) 53 ; 52 54 msg = mbox->read; 53 55 } while (MBOX_MSG_CHAN(msg) != chan); … … 69 71 70 72 mbox_write((bcm2835_mbox_t *)BCM2835_MBOX0_ADDR, 71 MBOX_CHAN_PROP_A2V, KA2VCA((uint32_t)req));73 MBOX_CHAN_PROP_A2V, KA2VCA((uint32_t)req)); 72 74 mbox_read((bcm2835_mbox_t *)BCM2835_MBOX0_ADDR, 73 MBOX_CHAN_PROP_A2V);75 MBOX_CHAN_PROP_A2V); 74 76 75 77 if (req->buf_hdr.code == MBOX_PROP_CODE_RESP_OK) { … … 88 90 bcm2835_mbox_t *fb_mbox; 89 91 bool ret = false; 90 MBOX_BUFF_ALLOC(fb_desc, bcm2835_fb_desc_t);92 MBOX_BUFF_ALLOC(fb_desc, bcm2835_fb_desc_t); 91 93 92 94 fb_mbox = (void *) km_map(BCM2835_MBOX0_ADDR, sizeof(bcm2835_mbox_t), 93 PAGE_NOT_CACHEABLE);95 PAGE_NOT_CACHEABLE); 94 96 95 97 fb_desc->width = 640; … … 119 121 120 122 printf("BCM2835 framebuffer at 0x%08x (%dx%d)\n", prop->addr, 121 prop->x, prop->y);123 prop->x, prop->y); 122 124 ret = true; 123 125 out: -
kernel/genarch/src/drivers/omap/uart.c
r47b2d7e3 r1433ecda 43 43 { 44 44 /* Wait for buffer */ 45 while (uart->regs->ssr & OMAP_UART_SSR_TX_FIFO_FULL_FLAG); 45 while (uart->regs->ssr & OMAP_UART_SSR_TX_FIFO_FULL_FLAG) 46 ; 46 47 /* Write to the outgoing fifo */ 47 48 uart->regs->thr = b; … … 93 94 /* Soft reset the port */ 94 95 uart->regs->sysc = OMAP_UART_SYSC_SOFTRESET_FLAG; 95 while (!(uart->regs->syss & OMAP_UART_SYSS_RESETDONE_FLAG)); 96 while (!(uart->regs->syss & OMAP_UART_SYSS_RESETDONE_FLAG)) 97 ; 96 98 97 99 /* Disable the UART module */ -
kernel/genarch/src/drivers/pl011/pl011.c
r47b2d7e3 r1433ecda 50 50 /* Wait for space becoming available in Tx FIFO. */ 51 51 // TODO make pio_read accept consts pointers and remove the cast 52 while ((pio_read_32((ioport32_t *)&uart->regs->flag) & PL011_UART_FLAG_TXFF_FLAG) != 0)52 while ((pio_read_32((ioport32_t *)&uart->regs->flag) & PL011_UART_FLAG_TXFF_FLAG) != 0) 53 53 ; 54 54 … … 86 86 87 87 // TODO make pio_read accept const pointers and remove the cast 88 while ((pio_read_32((ioport32_t *)&uart->regs->flag) & PL011_UART_FLAG_RXFE_FLAG) == 0) {88 while ((pio_read_32((ioport32_t *)&uart->regs->flag) & PL011_UART_FLAG_RXFE_FLAG) == 0) { 89 89 /* We ignore all error flags here */ 90 90 const uint8_t data = pio_read_32(&uart->regs->data); … … 99 99 { 100 100 assert(uart); 101 uart->regs = (void *)km_map(addr, sizeof(pl011_uart_regs_t),102 PAGE_NOT_CACHEABLE);101 uart->regs = (void *)km_map(addr, sizeof(pl011_uart_regs_t), 102 PAGE_NOT_CACHEABLE); 103 103 assert(uart->regs); 104 104 105 105 /* Disable UART */ 106 uart->regs->control &= ~ PL011_UART_CONTROL_UARTEN_FLAG;106 uart->regs->control &= ~PL011_UART_CONTROL_UARTEN_FLAG; 107 107 108 108 /* Enable hw flow control */ 109 109 uart->regs->control |= 110 PL011_UART_CONTROL_RTSE_FLAG |111 PL011_UART_CONTROL_CTSE_FLAG;110 PL011_UART_CONTROL_RTSE_FLAG | 111 PL011_UART_CONTROL_CTSE_FLAG; 112 112 113 113 /* Mask all interrupts */ … … 117 117 /* Enable UART, TX and RX */ 118 118 uart->regs->control |= 119 PL011_UART_CONTROL_UARTEN_FLAG |120 PL011_UART_CONTROL_TXE_FLAG |121 PL011_UART_CONTROL_RXE_FLAG;119 PL011_UART_CONTROL_UARTEN_FLAG | 120 PL011_UART_CONTROL_TXE_FLAG | 121 PL011_UART_CONTROL_RXE_FLAG; 122 122 123 123 outdev_initialize("pl011_uart_dev", &uart->outdev, &pl011_uart_ops); … … 143 143 /* Enable receive interrupts */ 144 144 uart->regs->interrupt_mask |= 145 PL011_UART_INTERRUPT_RX_FLAG |146 PL011_UART_INTERRUPT_RT_FLAG;145 PL011_UART_INTERRUPT_RX_FLAG | 146 PL011_UART_INTERRUPT_RT_FLAG; 147 147 } 148 148
Note:
See TracChangeset
for help on using the changeset viewer.
