Changeset 1590e23 in mainline
- Timestamp:
- 2010-06-25T19:53:13Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d7ef14b
- Parents:
- adf6607
- Location:
- boot/arch/arm32
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
boot/arch/arm32/include/main.h
radf6607 r1590e23 1 1 /* 2 2 * Copyright (c) 2007 Michal Kebrt 3 * Copyright (c) 2010 Jiri Svoboda 3 4 * All rights reserved. 4 5 * … … 39 40 /** Address where characters to be printed are expected. */ 40 41 41 #ifdef MACHINE_gta02 42 /* FIXME: Need real S3C244x UART driver. */ 43 #define VIDEORAM_ADDRESS 0x50008020 44 #endif 42 /** GTA02 serial console UART register addresses. 43 * 44 * This is UART channel 2 of the S3C244x CPU 45 */ 46 #define GTA02_SCONS_UTRSTAT 0x50008010 47 #define GTA02_SCONS_UTXH 0x50008020 45 48 46 #ifdef MACHINE_testarm 47 #define VIDEORAM_ADDRESS 0x10000000 48 #endif 49 /* Bits in UTXH register */ 50 #define S3C244X_UTXH_TX_EMPTY 0x00000004 49 51 50 #ifdef MACHINE_integratorcp 51 #define VIDEORAM_ADDRESS 0x16000000 52 #endif 52 53 /** GXemul testarm serial console output register */ 54 #define TESTARM_SCONS_ADDR 0x10000000 55 56 /** IntegratorCP serial console output register */ 57 #define ICP_SCONS_ADDR 0x16000000 53 58 54 59 extern void bootstrap(void); -
boot/arch/arm32/src/putchar.c
radf6607 r1590e23 2 2 * Copyright (c) 2007 Michal Kebrt 3 3 * Copyright (c) 2009 Vineeth Pillai 4 * Copyright (c) 2010 Jiri Svoboda 4 5 * All rights reserved. 5 6 * … … 40 41 #include <str.h> 41 42 43 #ifdef MACHINE_gta02 44 45 /** Send a byte to the gta02 serial console. 46 * 47 * @param byte Byte to send. 48 */ 49 static void scons_sendb_gta02(uint8_t byte) 50 { 51 volatile uint32_t *utrstat; 52 volatile uint32_t *utxh; 53 54 utrstat = (volatile uint32_t *) GTA02_SCONS_UTRSTAT; 55 utxh = (volatile uint32_t *) GTA02_SCONS_UTXH; 56 57 /* Wait until transmitter is empty. */ 58 while ((*utrstat & S3C244X_UTXH_TX_EMPTY) == 0) 59 ; 60 61 /* Transmit byte. */ 62 *utxh = (uint32_t) byte; 63 } 64 65 #endif 66 67 #ifdef MACHINE_testarm 68 69 /** Send a byte to the GXemul testarm serial console. 70 * 71 * @param byte Byte to send. 72 */ 73 static void scons_sendb_testarm(uint8_t byte) 74 { 75 *((volatile uint8_t *) TESTARM_SCONS_ADDR) = byte; 76 } 77 78 #endif 79 80 #ifdef MACHINE_integratorcp 81 82 /** Send a byte to the IntegratorCP serial console. 83 * 84 * @param byte Byte to send. 85 */ 86 static void scons_sendb_icp(uint8_t byte) 87 { 88 *((volatile uint8_t *) ICP_SCONS_ADDR) = byte; 89 } 90 91 #endif 92 93 /** Send a byte to the serial console. 94 * 95 * @param byte Byte to send. 96 */ 97 static void scons_sendb(uint8_t byte) 98 { 99 #ifdef MACHINE_gta02 100 scons_sendb_gta02(byte); 101 #endif 102 #ifdef MACHINE_testarm 103 scons_sendb_testarm(byte); 104 #endif 105 #ifdef MACHINE_integratorcp 106 scons_senbd_integratorcp(byte); 107 #endif 108 } 109 110 /** Display a character 111 * 112 * @param ch Character to display 113 */ 42 114 void putchar(const wchar_t ch) 43 115 { 44 116 if (ch == '\n') 45 *((volatile char *) VIDEORAM_ADDRESS) = '\r';46 117 scons_sendb('\r'); 118 47 119 if (ascii_check(ch)) 48 *((volatile char *) VIDEORAM_ADDRESS) = ch;120 scons_sendb((uint8_t) ch); 49 121 else 50 *((volatile char *) VIDEORAM_ADDRESS) = U_SPECIAL;122 scons_sendb(U_SPECIAL); 51 123 } 52 124
Note:
See TracChangeset
for help on using the changeset viewer.