More z180 serial logic

git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5437 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-12-14 19:15:07 +00:00
parent 9ef2bd0745
commit 67b2e69b23
24 changed files with 560 additions and 163 deletions

View File

@ -18,6 +18,7 @@ config ARCH_CHIP_Z8018006VSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z80180 Z180: 68-pin PLCC Z80180
@ -26,6 +27,7 @@ config ARCH_CHIP_Z8018010VSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z80180 Z180: 68-pin PLCC Z80180
@ -34,6 +36,7 @@ config ARCH_CHIP_Z8018008VSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z80180 Z180: 68-pin PLCC Z80180
@ -42,6 +45,7 @@ config ARCH_CHIP_Z8018010FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 80-pin QFP (11 pins N/C) Z80180 Z180: 80-pin QFP (11 pins N/C) Z80180
@ -50,6 +54,7 @@ config ARCH_CHIP_Z8018008VEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z80180 Z180: 68-pin PLCC Z80180
@ -58,6 +63,7 @@ config ARCH_CHIP_Z8018006VEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z80180 Z180: 68-pin PLCC Z80180
@ -66,6 +72,7 @@ config ARCH_CHIP_Z8018006PSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 64-pin DIP 6 MHz 5V Z80180 Z180: 64-pin DIP 6 MHz 5V Z80180
@ -74,6 +81,7 @@ config ARCH_CHIP_Z8018008FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 80-pin QFP (11 pins N/C) 8MHz 5V Z80180 Z180: 80-pin QFP (11 pins N/C) 8MHz 5V Z80180
@ -82,6 +90,7 @@ config ARCH_CHIP_Z8018010PSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 64-pin DIP 10MHz 5V Z80180 Z180: 64-pin DIP 10MHz 5V Z80180
@ -90,6 +99,7 @@ config ARCH_CHIP_Z8018006PEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 64-pin DIP 6MHz 5V Z80180 Z180: 64-pin DIP 6MHz 5V Z80180
@ -98,6 +108,7 @@ config ARCH_CHIP_Z8018010VEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
68-pin PLCC 10MHz 5V Z80180 68-pin PLCC 10MHz 5V Z80180
@ -106,6 +117,7 @@ config ARCH_CHIP_Z8018010PEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 64-pin DIP 10MHz 5V Z80180 Z180: 64-pin DIP 10MHz 5V Z80180
@ -114,6 +126,7 @@ config ARCH_CHIP_Z8018008PSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 64-pin DIP 8MHz 5V Z80180 Z180: 64-pin DIP 8MHz 5V Z80180
@ -122,6 +135,7 @@ config ARCH_CHIP_Z8018006FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 80-pin QFP (11 pins N/C) 6MHz 5V Z80180 Z180: 80-pin QFP (11 pins N/C) 6MHz 5V Z80180
@ -130,30 +144,35 @@ config ARCH_CHIP_Z8018000XSO
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
config ARCH_CHIP_Z8018010FEG config ARCH_CHIP_Z8018010FEG
bool "Z8018010FEG" bool "Z8018010FEG"
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
config ARCH_CHIP_Z8018000WSO config ARCH_CHIP_Z8018000WSO
bool "Z8018000WSO" bool "Z8018000WSO"
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
config ARCH_CHIP_Z8018008PEG config ARCH_CHIP_Z8018008PEG
bool "Z8018008PEG" bool "Z8018008PEG"
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80180 select ARCH_CHIP_Z80180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
config ARCH_CHIP_Z8018110FEG config ARCH_CHIP_Z8018110FEG
bool "Z8018110FEG" bool "Z8018110FEG"
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80181 select ARCH_CHIP_Z80181
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 100-pin QFP Z80181 Z180: 100-pin QFP Z80181
@ -162,6 +181,7 @@ config ARCH_CHIP_Z8018233FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80182 select ARCH_CHIP_Z80182
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
100-pin QFP Z80182 100-pin QFP Z80182
@ -170,6 +190,7 @@ config ARCH_CHIP_Z8018220AEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80182 select ARCH_CHIP_Z80182
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 100-pin LQFP 20MHz 5V Z80182 Z180: 100-pin LQFP 20MHz 5V Z80182
@ -178,6 +199,7 @@ config ARCH_CHIP_Z8018216FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80182 select ARCH_CHIP_Z80182
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 100-pin QFP 16MHz 5V Z80182 Z180: 100-pin QFP 16MHz 5V Z80182
@ -186,6 +208,7 @@ config ARCH_CHIP_Z8018216ASG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80182 select ARCH_CHIP_Z80182
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 100-pin LQFP Z80182 Z180: 100-pin LQFP Z80182
@ -194,6 +217,7 @@ config ARCH_CHIP_Z8018233ASG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80182 select ARCH_CHIP_Z80182
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 100-pin LQFP 33MHz 5V Z80182 Z180: 100-pin LQFP 33MHz 5V Z80182
@ -202,6 +226,7 @@ config ARCH_CHIP_Z8019520FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80195 select ARCH_CHIP_Z80195
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 100-pin QFP 20MHz 5V Z80195 Z180: 100-pin QFP 20MHz 5V Z80195
@ -210,6 +235,7 @@ config ARCH_CHIP_Z8019533FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z80195 select ARCH_CHIP_Z80195
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 100-pin QFP 33MHz 5V Z80195 Z180: 100-pin QFP 33MHz 5V Z80195
@ -218,6 +244,7 @@ config ARCH_CHIP_Z8L18020VSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8L180 select ARCH_CHIP_Z8L180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pinn PLCC Z8L180 Z180: 68-pinn PLCC Z8L180
@ -226,6 +253,7 @@ config ARCH_CHIP_Z8L18020FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8L180 select ARCH_CHIP_Z8L180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 80-pin GFP 20MHz 3.3V Z8L180 Z180: 80-pin GFP 20MHz 3.3V Z8L180
@ -234,12 +262,14 @@ config ARCH_CHIP_Z8L18020PSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8L180 select ARCH_CHIP_Z8L180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
config ARCH_CHIP_Z8L18220ASG config ARCH_CHIP_Z8L18220ASG
bool "Z8L18220ASG" bool "Z8L18220ASG"
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8L182 select ARCH_CHIP_Z8L182
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 100-pin LQFP Z8L182 Z180: 100-pin LQFP Z8L182
@ -248,6 +278,7 @@ config ARCH_CHIP_Z8L18220FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8L182 select ARCH_CHIP_Z8L182
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
100-pin QFP 20MHz 3.3V Z8L182 100-pin QFP 20MHz 3.3V Z8L182
@ -256,12 +287,14 @@ config ARCH_CHIP_Z8L18220AEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8L182 select ARCH_CHIP_Z8L182
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
config ARCH_CHIP_Z8S18020VSG config ARCH_CHIP_Z8S18020VSG
bool "Z8S18020VSG" bool "Z8S18020VSG"
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z8S180 Z180: 68-pin PLCC Z8S180
@ -270,6 +303,7 @@ config ARCH_CHIP_Z8S18020VSG1960
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z8S180 Z180: 68-pin PLCC Z8S180
@ -278,6 +312,7 @@ config ARCH_CHIP_Z8S18033VSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z8S180 Z180: 68-pin PLCC Z8S180
@ -286,6 +321,7 @@ config ARCH_CHIP_Z8S18010FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
80-pin QFP Z8S180 80-pin QFP Z8S180
@ -294,6 +330,7 @@ config ARCH_CHIP_Z8S18010VEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z8S180 Z180: 68-pin PLCC Z8S180
@ -302,6 +339,7 @@ config ARCH_CHIP_Z8S18020VEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z8S180 Z180: 68-pin PLCC Z8S180
@ -310,6 +348,7 @@ config ARCH_CHIP_Z8S18010VSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC Z8S180 Z180: 68-pin PLCC Z8S180
@ -318,6 +357,7 @@ config ARCH_CHIP_Z8S18020PSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
64-pin DIP 10Mhz 5V Z8S180 64-pin DIP 10Mhz 5V Z8S180
@ -326,6 +366,7 @@ config ARCH_CHIP_Z8S18033FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 80-pin QFP 33MHz 5V Z8S180 Z180: 80-pin QFP 33MHz 5V Z8S180
@ -334,6 +375,7 @@ config ARCH_CHIP_Z8S18033FEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 80-pin QFP 33MHz 5V Z8S180 Z180: 80-pin QFP 33MHz 5V Z8S180
@ -342,6 +384,7 @@ config ARCH_CHIP_Z8S18020FSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 80-pin QFP 20MHz 5V Z8S180 Z180: 80-pin QFP 20MHz 5V Z8S180
@ -350,6 +393,7 @@ config ARCH_CHIP_Z8S18033VEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 68-pin PLCC 33MHz 5V Z8S180 Z180: 68-pin PLCC 33MHz 5V Z8S180
@ -358,6 +402,7 @@ config ARCH_CHIP_Z8S18010PSG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
---help--- ---help---
Z180: 64-pin DIP 10MHz 5V Z8S180 Z180: 64-pin DIP 10MHz 5V Z8S180
@ -366,25 +411,28 @@ config ARCH_CHIP_Z8S18020FEG
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
config ARCH_CHIP_Z8S18010PEG config ARCH_CHIP_Z8S18010PEG
bool "Z8S18010PEG" bool "Z8S18010PEG"
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
config ARCH_CHIP_Z8S18010FEG config ARCH_CHIP_Z8S18010FEG
bool "Z8S18010FEG" bool "Z8S18010FEG"
select ARCH_CHIP_Z180 select ARCH_CHIP_Z180
select ARCH_CHIP_Z8S180 select ARCH_CHIP_Z8S180
select ADDRENV select ADDRENV
select HAVE_LOWSERIALINIT
config ARCH_CHIP_Z8F6403 config ARCH_CHIP_Z8F6403
bool "Z8F6403" bool "Z8F6403"
select ARCH_CHIP_Z8 select ARCH_CHIP_Z8
select ARCH_CHIP_Z8F640X select ARCH_CHIP_Z8F640X
select ENDIAN_BIG select ENDIAN_BIG
select HAVE_LOWUARTINIT select HAVE_LOWSERIALINIT
---help--- ---help---
ZiLOG Z8F6403 (z8 Encore) ZiLOG Z8F6403 (z8 Encore)
@ -393,28 +441,28 @@ config ARCH_CHIP_Z8F6423
select ARCH_CHIP_Z8 select ARCH_CHIP_Z8
select ARCH_CHIP_Z8F642X select ARCH_CHIP_Z8F642X
select ENDIAN_BIG select ENDIAN_BIG
select HAVE_LOWUARTINIT select HAVE_LOWSERIALINIT
---help--- ---help---
ZiLOG Z8F6423 (z8 Encore) ZiLOG Z8F6423 (z8 Encore)
config ARCH_CHIP_EZ80F91 config ARCH_CHIP_EZ80F91
bool "EZ80F91" bool "EZ80F91"
select ARCH_CHIP_EZ80 select ARCH_CHIP_EZ80
select HAVE_LOWUARTINIT select HAVE_LOWSERIALINIT
---help--- ---help---
ZiLOG EZ80F91 (ez80 Acclaim) ZiLOG EZ80F91 (ez80 Acclaim)
config ARCH_CHIP_EZ80F92 config ARCH_CHIP_EZ80F92
bool "EZ80F92" bool "EZ80F92"
select ARCH_CHIP_EZ80 select ARCH_CHIP_EZ80
select HAVE_LOWUARTINIT select HAVE_LOWSERIALINIT
---help--- ---help---
ZiLOG EZ80F92 (ez80 Acclaim) ZiLOG EZ80F92 (ez80 Acclaim)
config ARCH_CHIP_EZ80F93 config ARCH_CHIP_EZ80F93
bool "EZ80F93" bool "EZ80F93"
select ARCH_CHIP_EZ80 select ARCH_CHIP_EZ80
select HAVE_LOWUARTINIT select HAVE_LOWSERIALINIT
---help--- ---help---
ZiLOG EZ80F93 (ez80 Acclaim) ZiLOG EZ80F93 (ez80 Acclaim)
@ -456,7 +504,7 @@ config ARCH_CHIP_Z8
config ARCH_CHIP_EZ80 config ARCH_CHIP_EZ80
bool bool
config HAVE_LOWUARTINIT config HAVE_LOWSERIALINIT
bool bool
config ARCH_CHIP config ARCH_CHIP

View File

@ -161,8 +161,8 @@ void up_initialize(void)
/* Initialize the serial device driver */ /* Initialize the serial device driver */
#ifdef USE_LOWUARTINIT #ifdef USE_LOWSERIALINIT
up_lowuartinit(); up_lowserialinit();
#endif #endif
/* Initialize the console device driver */ /* Initialize the console device driver */

View File

@ -70,14 +70,14 @@
#if CONFIG_NFILE_DESCRIPTORS == 0 || defined(CONFIG_DEV_LOWCONSOLE) #if CONFIG_NFILE_DESCRIPTORS == 0 || defined(CONFIG_DEV_LOWCONSOLE)
# undef USE_SERIALDRIVER # undef USE_SERIALDRIVER
# ifdef CONFIG_HAVE_LOWUARTINIT # ifdef CONFIG_HAVE_LOWSERIALINIT
# define USE_LOWUARTINIT 1 # define USE_LOWSERIALINIT 1
# else # else
# undef USE_LOWUARTINIT # undef USE_LOWSERIALINIT
# endif # endif
#elif defined(CONFIG_DEV_CONSOLE) && CONFIG_NFILE_DESCRIPTORS > 0 #elif defined(CONFIG_DEV_CONSOLE) && CONFIG_NFILE_DESCRIPTORS > 0
# define USE_SERIALDRIVER 1 # define USE_SERIALDRIVER 1
# undef USE_LOWUARTINIT # undef USE_LOWSERIALINIT
#endif #endif
/**************************************************************************** /****************************************************************************
@ -105,8 +105,8 @@ extern "C" {
EXTERN void up_irqinitialize(void); EXTERN void up_irqinitialize(void);
EXTERN int up_timerisr(int irq, FAR chipreg_t *regs); EXTERN int up_timerisr(int irq, FAR chipreg_t *regs);
#ifdef USE_LOWUARTINIT #ifdef USE_LOWSERIALINIT
EXTERN void up_lowuartinit(void); EXTERN void up_lowserialinit(void);
#endif #endif
/* Defined in up_doirq.c */ /* Defined in up_doirq.c */

View File

@ -49,7 +49,7 @@
#include "chip/chip.h" #include "chip/chip.h"
#include "common/up_internal.h" #include "common/up_internal.h"
#ifdef USE_LOWUARTINIT #ifdef USE_LOWSERIALINIT
/**************************************************************************** /****************************************************************************
* Private Definitions * Private Definitions
@ -176,10 +176,10 @@ static void ez80_setbaud(void)
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: up_lowuartinit * Name: up_lowserialinit
****************************************************************************/ ****************************************************************************/
void up_lowuartinit(void) void up_lowserialinit(void)
{ {
#ifdef HAVE_SERIAL #ifdef HAVE_SERIAL
uint8_t regval; uint8_t regval;
@ -253,4 +253,4 @@ void up_lowuartinit(void)
#endif /* HAVE_SERIAL */ #endif /* HAVE_SERIAL */
} }
#endif /* USE_LOWUARTINIT */ #endif /* USE_LOWSERIALINIT */

View File

@ -156,14 +156,14 @@ config Z180_UART1
config Z180_SCC config Z180_SCC
bool "SCC" bool "SCC"
default n default n
depends on ARCH_CHIP_Z8L181 depends on ARCH_CHIP_Z80181 || ARCH_CHIP_Z8L181
---help--- ---help---
Select to enable a serial port on the SCC Select to enable a serial port on the SCC
config Z180_ESCCA config Z180_ESCCA
bool "ESCC Channel A" bool "ESCC Channel A"
default n default n
depends on ARCH_CHIP_Z8L182 && !Z180_PORTC depends on ARCH_CHIP_Z80182 || ARCH_CHIP_Z8L182
---help--- ---help---
Select to enable a serial port on ESCC Channel A. Not available Select to enable a serial port on ESCC Channel A. Not available
if port C is selected. if port C is selected.
@ -171,7 +171,7 @@ config Z180_ESCCA
config Z180_ESCCB config Z180_ESCCB
bool "ESCC Channel B" bool "ESCC Channel B"
default n default n
depends on ARCH_CHIP_Z8L182 && !Z180_MIMIC depends on (ARCH_CHIP_Z80182 || ARCH_CHIP_Z8L182) && !Z180_MIMIC
---help--- ---help---
Select to enable a serial port on ESCC Channel B Select to enable a serial port on ESCC Channel B
@ -196,14 +196,14 @@ config Z180_TMR1
config Z180_PORTA config Z180_PORTA
bool "PORT A" bool "PORT A"
default n default n
depends on ARCH_CHIP_Z8L181 || ARCH_CHIP_Z8L182 || !Z180_CTC depends on (ARCH_CHIP_Z80181 || ARCH_CHIP_Z8L181 || ARCH_CHIP_Z80182 || ARCH_CHIP_Z8L182) && !Z180_CTC
---help--- ---help---
Select to enable a Port A (called PIA1 on the Z8x181) Select to enable a Port A (called PIA1 on the Z8x181)
config Z180_PORTB config Z180_PORTB
bool "PORT B" bool "PORT B"
default n default n
depends on ARCH_CHIP_Z8L181 || ARCH_CHIP_Z8L182 depends on ARCH_CHIP_Z80181 || ARCH_CHIP_Z8L181 || ARCH_CHIP_Z80182 || ARCH_CHIP_Z8L182
---help--- ---help---
Select to enable a Port B (called PIA2 on the Z8x181). On the Z8x182, Select to enable a Port B (called PIA2 on the Z8x181). On the Z8x182,
Bits 5-7 will not be available if ASCI channel 1 is used; Bits 0-4 will Bits 5-7 will not be available if ASCI channel 1 is used; Bits 0-4 will
@ -212,21 +212,21 @@ config Z180_PORTB
config Z180_PORTC config Z180_PORTC
bool "PORT C" bool "PORT C"
default n default n
depends on ARCH_CHIP_Z8L182 && !Z180_ESCCA depends on (ARCH_CHIP_Z80182 || ARCH_CHIP_Z8L182) && !Z180_ESCCA
---help--- ---help---
Select to enable a Port C. Not available if ESCC channel A is selected. Select to enable a Port C. Not available if ESCC channel A is selected.
config Z180_CTC config Z180_CTC
bool "CTC" bool "CTC"
default n default n
depends on ARCH_CHIP_Z8L181 depends on ARCH_CHIP_Z80181 || ARCH_CHIP_Z8L181
---help--- ---help---
Select to enable the Counter/Timer (CTC) Select to enable the Counter/Timer (CTC)
config Z180_MIMIC config Z180_MIMIC
bool "16550 MIMIC" bool "16550 MIMIC"
default n default n
depends on ARCH_CHIP_Z8L182 && !Z180_ESCCB depends on ARCH_CHIP_Z80182 || ARCH_CHIP_Z8L182
---help--- ---help---
Select to enable the 16550 MIMIC Select to enable the 16550 MIMIC

View File

@ -58,5 +58,5 @@ CHIP_ASRCS += z180_vectors.asm
endif endif
CHIP_CSRCS = z180_copystate.c z180_initialstate.c z180_io.c z180_irq.c CHIP_CSRCS = z180_copystate.c z180_initialstate.c z180_io.c z180_irq.c
CHIP_CSRCS += z180_modifiyreg8.c z180_mmu.c z180_registerdump.c CHIP_CSRCS += z180_lowscc.c z180_lowserial.c z180_modifiyreg8.c z180_mmu.c
CHIP_CSRCS += z180_schedulesigaction.c z180_sigdeliver.c CHIP_CSRCS += z180_registerdump.c z180_schedulesigaction.c z180_sigdeliver.c

View File

@ -68,10 +68,18 @@
/* Are any UARTs enabled? */ /* Are any UARTs enabled? */
#undef HAVE_UART
#undef HAVE_SCC
#undef HAVE_SERIAL #undef HAVE_SERIAL
#if defined(CONFIG_Z180_UART0) || defined(CONFIG_Z180_UART1) || \
defined(CONFIG_Z180_SCC) || defined(CONFIG_Z180_ESCCA) || \ #if defined(CONFIG_Z180_UART0) || defined(CONFIG_Z180_UART1)
# define HAVE_UART 1
# define HAVE_SERIAL 1
#endif
#if defined(CONFIG_Z180_SCC) || defined(CONFIG_Z180_ESCCA) || \
defined(CONFIG_Z180_ESCCB) defined(CONFIG_Z180_ESCCB)
# define HAVE_SCC 1
# define HAVE_SERIAL 1 # define HAVE_SERIAL 1
#endif #endif
@ -101,28 +109,39 @@
/* Is there a serial console? There should be at most one defined. */ /* Is there a serial console? There should be at most one defined. */
#undef HAVE_UART_CONSOLE
#undef HAVE_SCC_CONSOLE
#undef HAVE_SERIAL_CONSOLE
#if defined(CONFIG_Z180_UART0_SERIAL_CONSOLE) #if defined(CONFIG_Z180_UART0_SERIAL_CONSOLE)
# undef CONFIG_Z180_UART1_SERIAL_CONSOLE # undef CONFIG_Z180_UART1_SERIAL_CONSOLE
# undef CONFIG_Z180_SCC_SERIAL_CONSOLE # undef CONFIG_Z180_SCC_SERIAL_CONSOLE
# undef CONFIG_Z180_ESCCA_SERIAL_CONSOLE # undef CONFIG_Z180_ESCCA_SERIAL_CONSOLE
# undef CONFIG_Z180_ESCCB_SERIAL_CONSOLE # undef CONFIG_Z180_ESCCB_SERIAL_CONSOLE
# define HAVE_UART_CONSOLE 1
# define HAVE_SERIAL_CONSOLE 1 # define HAVE_SERIAL_CONSOLE 1
#elif defined(CONFIG_Z180_UART1_SERIAL_CONSOLE) #elif defined(CONFIG_Z180_UART1_SERIAL_CONSOLE)
# undef CONFIG_Z180_SCC_SERIAL_CONSOLE # undef CONFIG_Z180_SCC_SERIAL_CONSOLE
# undef CONFIG_Z180_ESCCA_SERIAL_CONSOLE # undef CONFIG_Z180_ESCCA_SERIAL_CONSOLE
# undef CONFIG_Z180_ESCCB_SERIAL_CONSOLE # undef CONFIG_Z180_ESCCB_SERIAL_CONSOLE
# define HAVE_UART_CONSOLE 1
# define HAVE_SERIAL_CONSOLE 1 # define HAVE_SERIAL_CONSOLE 1
#elif defined(CONFIG_Z180_ESCC_SERIAL_CONSOLE) #elif defined(CONFIG_Z180_ESCC_SERIAL_CONSOLE)
# undef CONFIG_Z180_ESCCA_SERIAL_CONSOLE # undef CONFIG_Z180_ESCCA_SERIAL_CONSOLE
# undef CONFIG_Z180_ESCCB_SERIAL_CONSOLE # undef CONFIG_Z180_ESCCB_SERIAL_CONSOLE
# define HAVE_SCC_CONSOLE 1
# define HAVE_SERIAL_CONSOLE 1 # define HAVE_SERIAL_CONSOLE 1
#elif defined(CONFIG_Z180_ESCCA_SERIAL_CONSOLE) #elif defined(CONFIG_Z180_ESCCA_SERIAL_CONSOLE)
# undef CONFIG_Z180_ESCCB_SERIAL_CONSOLE # undef CONFIG_Z180_ESCCB_SERIAL_CONSOLE
# define HAVE_SCC_CONSOLE 1
# define HAVE_SERIAL_CONSOLE 1 # define HAVE_SERIAL_CONSOLE 1
#elif defined(CONFIG_Z180_ESCCB_SERIAL_CONSOLE) #elif defined(CONFIG_Z180_ESCCB_SERIAL_CONSOLE)
# define HAVE_SCC_CONSOLE 1
# define HAVE_SERIAL_CONSOLE 1 # define HAVE_SERIAL_CONSOLE 1
#else
# undef HAVE_SERIAL_CONSOLE
#endif #endif
/************************************************************************************ /************************************************************************************

View File

@ -629,13 +629,13 @@
/* RR0: Transmit and Receive buffer status and external status */ /* RR0: Transmit and Receive buffer status and external status */
#define RR0_BA (0x80) /* Bit 7: Break/abort*/ #define RR0_BA (0x80) /* Bit 7: Break/abort */
#define RR0_TXUEOM (0x40) /* Bit 6: Tx Underrun/EOM*/ #define RR0_TXUEOM (0x40) /* Bit 6: Tx Underrun/EOM */
#define RR0_CTS (0x20) /* Bit 5: CTS */ #define RR0_CTS (0x20) /* Bit 5: CTS */
#define RR0_SH (0x10) /* Bit4: Sync/Hunt */ #define RR0_SH (0x10) /* Bit 4: Sync/Hunt */
#define RR0_DCD (0x08) /* Bit 3: DCD */ #define RR0_DCD (0x08) /* Bit 3: DCD */
#define RR0_TXBE (0x04) /* Bit 2: Tx Buffer Empty */ #define RR0_TXBE (0x04) /* Bit 2: Tx Buffer Empty */
#define RR0_ZC (0x02) /* Bit 1: Zero Count*/ #define RR0_ZC (0x02) /* Bit 1: Zero Count */
#define RR0_RXA (0x01) /* Bit 0: Rx Character Available */ #define RR0_RXA (0x01) /* Bit 0: Rx Character Available */
/* RR1: Special Receive Condition status */ /* RR1: Special Receive Condition status */
@ -647,7 +647,7 @@
#define RR0_RES0 (0x08) /* Bit 3: Residue Code 0 */ #define RR0_RES0 (0x08) /* Bit 3: Residue Code 0 */
#define RR0_RES1 (0x04) /* Bit 2: Residue Code 1 */ #define RR0_RES1 (0x04) /* Bit 2: Residue Code 1 */
#define RR0_RES2 (0x02) /* Bit 1: Residue Code 2 */ #define RR0_RES2 (0x02) /* Bit 1: Residue Code 2 */
#define RR0_ALL (0x01) /* Bit 0: All Sent*/ #define RR0_ALL (0x01) /* Bit 0: All Sent */
/* RR2: Interrupt vector (modified if VIS Bit in WR9 is set) -- 8-bit vector value */ /* RR2: Interrupt vector (modified if VIS Bit in WR9 is set) -- 8-bit vector value */

View File

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
* arch/z80/src/z180/z180_loweruart.c * arch/z80/src/z180/z180_lowscc.c
* *
* Copyright (C) 2012 Gregory Nutt. All rights reserved. * Copyright (C) 2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org> * Author: Gregory Nutt <gnutt@nuttx.org>
@ -48,9 +48,9 @@
#include "chip/chip.h" #include "chip/chip.h"
#include "common/up_internal.h" #include "common/up_internal.h"
#include "z80_config.h" #include "z180_config.h"
#ifdef USE_LOWUARTINIT #if defined(USE_LOWSERIALINIT) && defined(HAVE_SCC)
/**************************************************************************** /****************************************************************************
* Private Definitions * Private Definitions
@ -66,7 +66,7 @@
# define CONSOLE_2STOP CONFIG_Z180_SCC_2STOP # define CONSOLE_2STOP CONFIG_Z180_SCC_2STOP
# define CONSOLE_PARITY CONFIG_Z180_SCC_PARITY # define CONSOLE_PARITY CONFIG_Z180_SCC_PARITY
#elif defined(CONFIG_Z180_ESCCB_SERIAL_CONSOLE) #elif defined(CONFIG_Z180_ESCCA_SERIAL_CONSOLE)
# define CONSOLE_CR Z182_ESCCA_CR # define CONSOLE_CR Z182_ESCCA_CR
# define CONSOLE_DR Z182_ESCCA_DR # define CONSOLE_DR Z182_ESCCA_DR
# define CONSOLE_BAUD CONFIG_Z180_ESCCA_BAUD # define CONSOLE_BAUD CONFIG_Z180_ESCCA_BAUD
@ -90,24 +90,34 @@
* Private Functions * Private Functions
****************************************************************************/ ****************************************************************************/
#if defined(HAVE_SERIAL_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG) /****************************************************************************
static void z180_setbaud(void) * Name: z180_scc_setbaud
*
* Description:
*
****************************************************************************/
#if defined(HAVE_SCC_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG)
static void z180_scc_setbaud(void)
{ {
#warning "Missing logic" #warning "Missing logic"
} }
#endif /* HAVE_SERIAL_CONSOLE && !CONFIG_SUPPRESS_UART_CONFIG */ #endif /* HAVE_SCC_CONSOLE && !CONFIG_SUPPRESS_UART_CONFIG */
/**************************************************************************** /****************************************************************************
* Public Functions * Public Functions
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: up_lowuartinit * Name: z180_scc_lowinit
*
* Description:
* Called early in the boot sequence to initialize the [E]SCC channel(s)
*
****************************************************************************/ ****************************************************************************/
void up_lowuartinit(void) void z180_scc_lowinit(void)
{ {
#ifdef HAVE_SERIAL
#warning "Missing logic" #warning "Missing logic"
/* Configure for usage of {E]SCC channels (whether or not we have a console) */ /* Configure for usage of {E]SCC channels (whether or not we have a console) */
@ -126,10 +136,33 @@ void up_lowuartinit(void)
/* Configure the console for immediate usage */ /* Configure the console for immediate usage */
#if defined(HAVE_SERIAL_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG) #if defined(HAVE_SCC_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG)
#warning "Missing logic" #warning "Missing logic"
#endif /* HAVE_SERIAL_CONSOLE && !CONFIG_SUPPRESS_UART_CONFIG */ #endif /* HAVE_SCC_CONSOLE && !CONFIG_SUPPRESS_UART_CONFIG */
#endif /* HAVE_SERIAL */
} }
#endif /* USE_LOWUARTINIT */ /****************************************************************************
* Name: z180_putc
*
* Description:
* Low-level character output
*
****************************************************************************/
#ifdef HAVE_SCC_CONSOLE
void z180_putc(uint8_t ch) __naked
{
__asm
txbe:
in0 a,(CONSOLE_CR) ; Read RR0
bit 2, a ; Bit 2, Tx buffer empty?
jr z, txbe ; No, wait until the Tx buffer is empty
ld a, 4(ix) ; Character to output
out (CONSOLE_DR), a ; Send it
ret
__endasm;
}
#endif
#endif /* USE_LOWSERIALINIT && HAVE_SCC*/

View File

@ -0,0 +1,112 @@
/****************************************************************************
* arch/z80/src/z180/z180_lowserial.c
*
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include "common/up_internal.h"
#include "z180_config.h"
#include "z180_serial.h"
#ifdef HAVE_SERIAL
/****************************************************************************
* Private Definitions
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: up_lowserialinit
*
* Description:
* Called early in the boot sequence to initialize the serial ports
*
****************************************************************************/
#ifdef USE_LOWSERIALINIT
void up_lowserialinit(void)
{
/* Initialize UART and [E]SCC serial devices */
z180_uart_lowinit();
z180_scc_lowinit();
}
#endif
/****************************************************************************
* Name: up_putc/up_lowputc
*
* Description:
* Low-level console output
*
****************************************************************************/
#ifdef USE_SERIALDRIVER
int up_lowputc(int ch)
#else
int up_putc(int ch)
#endif
{
/* Check for LF */
if (ch == '\n')
{
/* Output CR before LF */
z180_putc('\r');
}
/* Output the character */
z180_putc(ch);
return ch;
}
#endif /* HAVE_SERIAL */

View File

@ -0,0 +1,148 @@
/****************************************************************************
* arch/z80/src/z180/z180_lowuart.c
*
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <stdint.h>
#include <string.h>
#include <arch/io.h>
#include <nuttx/arch.h>
#include <nuttx/sched.h>
#include "chip/chip.h"
#include "common/up_internal.h"
#include "z180_config.h"
#if defined(USE_LOWSERIALINIT) && defined(HAVE_UART)
/****************************************************************************
* Private Definitions
****************************************************************************/
/* Select UART parameters for the selected console */
#if defined(CONFIG_Z180_UART0_SERIAL_CONSOLE)
# define CONSOLE_CR Z181_UART0_CR
# define CONSOLE_DR Z181_UART0_DR
# define CONSOLE_BAUD CONFIG_Z180_UART0_BAUD
# define CONSOLE_BITS CONFIG_Z180_UART0_BITS
# define CONSOLE_2STOP CONFIG_Z180_UART0_2STOP
# define CONSOLE_PARITY CONFIG_Z180_UART0_PARITY
#elif defined(CONFIG_Z180_UART1_SERIAL_CONSOLE)
# define CONSOLE_CR Z182_UART1_CR
# define CONSOLE_DR Z182_UART1_DR
# define CONSOLE_BAUD CONFIG_Z180_UART1_BAUD
# define CONSOLE_BITS CONFIG_Z180_UART1_BITS
# define CONSOLE_2STOP CONFIG_Z180_UART1_2STOP
# define CONSOLE_PARITY CONFIG_Z180_UART1_PARITY
#endif
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Name: z180_uart_setbaud
*
* Description:
*
****************************************************************************/
#if defined(HAVE_UART_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG)
static void z180_uart_setbaud(void)
{
#warning "Missing logic"
}
#endif /* HAVE_UART_CONSOLE && !CONFIG_SUPPRESS_UART_CONFIG */
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: z180_uart_lowinit
*
* Description:
* Called early in the boot sequence to initialize the [E]SCC channel(s)
*
****************************************************************************/
void z180_uart_lowinit(void)
{
#warning "Missing logic"
/* Configure for usage of {E]SCC channels (whether or not we have a console) */
#ifdef CONFIG_Z180_UART0
#warning "Missing logic"
#endif
#ifdef CONFIG_Z180_UART1
#warning "Missing logic"
#endif
/* Configure the console for immediate usage */
#if defined(HAVE_UART_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG)
#warning "Missing logic"
#endif /* HAVE_UART0_CONSOLE && !CONFIG_SUPPRESS_UART_CONFIG */
}
/****************************************************************************
* Name: z180_putc
*
* Description:
* Low-level character output
*
****************************************************************************/
#ifdef HAVE_UART_CONSOLE
void z180_putc(uint8_t ch)
{
#warning "Missing logic"
}
#endif
#endif /* USE_LOWSERIALINIT && HAVE_UART*/

View File

@ -58,6 +58,9 @@
#include "os_internal.h" #include "os_internal.h"
#include "up_internal.h" #include "up_internal.h"
#include "z180_config.h"
#include "z180_serial.h"
#ifdef USE_SERIALDRIVER #ifdef USE_SERIALDRIVER
/**************************************************************************** /****************************************************************************
@ -619,79 +622,12 @@ void up_serialinit(void)
int up_putc(int ch) int up_putc(int ch)
{ {
#ifdef CONSOLE_DEV #ifdef CONSOLE_DEV
#warning "Missing logic" /* Disable [E]SCC interrupts and perform the low-level output */
z180_disableuartint(priv); z180_disableuartint(priv);
up_lowputc(ch);
/* Check for LF */ z180_restoreuartint(priv);
if (ch == '\n')
{
/* Output CR before LF*/
#warning "Missing logic"
}
/* Output the character */
#warning "Missing logic"
/* Wait for the character to be sent before re-enabling interrupts */
#warning "Missing logic"
return ch; return ch;
#endif #endif
} }
#else /* USE_SERIALDRIVER */
/****************************************************************************
* Definitions
****************************************************************************/
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
/****************************************************************************
* Private Variables
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Name: z180_putc
****************************************************************************/
static void z180_putc(int ch)
{
#warning "Missing logic"
}
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: up_putc
****************************************************************************/
int up_putc(int ch)
{
/* Check for LF */
if (ch == '\n')
{
/* Output CR before LF */
z180_putc('\r');
}
/* Output character */
z180_putc(ch);
return ch;
}
#endif /* USE_SERIALDRIVER */ #endif /* USE_SERIALDRIVER */

View File

@ -0,0 +1,109 @@
/****************************************************************************
* arch/z80/src/z180/z180_serial.h
*
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
#ifndef __ARCH_Z80_SRC_Z180_Z180_SERIAL_H
#define __ARCH_Z80_SRC_Z180_Z180_SERIAL_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include "up_internal.h"
#include "z180_config.h"
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: z180_uart_lowinit
*
* Description:
* Called early in the boot sequence to initialize the UART(s)
*
****************************************************************************/
#ifdef HAVE_UART
void z180_uart_lowinit(void);
#else
# define z180_uart_lowinit()
#endif
/****************************************************************************
* Name: z180_scc_lowinit
*
* Description:
* Called early in the boot sequence to initialize the [E]SCC channel(s)
*
****************************************************************************/
#ifdef HAVE_SCC
void z180_scc_lowinit(void);
#else
# define z180_scc_lowinit()
#endif
/****************************************************************************
* Name: z180_putc
*
* Description:
* Low-level character output
*
****************************************************************************/
void z180_putc(uint8_t ch) __naked;
/****************************************************************************
* Name: up_putc/up_lowputc
*
* Description:
* Low-level console output
*
****************************************************************************/
#ifdef USE_SERIALDRIVER
int up_lowputc(int ch);
#else
int up_putc(int ch);
# define up_lowputc(ch) up_putc(ch)
#endif
#endif /* __ARCH_Z80_SRC_Z180_Z180_SERIAL_H */

View File

@ -49,7 +49,7 @@
#include "chip/chip.h" #include "chip/chip.h"
#include "common/up_internal.h" #include "common/up_internal.h"
#ifdef USE_LOWUARTINIT #ifdef USE_LOWSERIALINIT
extern uint32_t get_freq(void); extern uint32_t get_freq(void);
@ -70,10 +70,10 @@ extern uint32_t get_freq(void);
****************************************************************************/ ****************************************************************************/
/**************************************************************************** /****************************************************************************
* Name: z8_lowuartinit * Name: up_lowserialinit
****************************************************************************/ ****************************************************************************/
void up_lowuartinit(void) void up_lowserialinit(void)
{ {
uint32_t freq = get_freq(); uint32_t freq = get_freq();
uint16_t brg; uint16_t brg;
@ -127,4 +127,4 @@ void up_lowuartinit(void)
putreg8(0xc0, U1CTL0); /* Transmit enable, Receive enable, no Parity, 1 Stop bit */ putreg8(0xc0, U1CTL0); /* Transmit enable, Receive enable, no Parity, 1 Stop bit */
#endif #endif
} }
#endif /* USE_LOWUARTINIT */ #endif /* USE_LOWSERIALINIT */

View File

@ -99,7 +99,7 @@ CONFIG_EZ80_UART0=y
# CONFIG_EZ80_UART1 is not set # CONFIG_EZ80_UART1 is not set
# CONFIG_EZ80_UART2 is not set # CONFIG_EZ80_UART2 is not set
# CONFIG_EZ80_EMAC is not set # CONFIG_EZ80_EMAC is not set
CONFIG_HAVE_LOWUARTINIT=y CONFIG_HAVE_LOWSERIALINIT=y
# #
# Architecture Options # Architecture Options

View File

@ -115,7 +115,7 @@ CONFIG_START_YEAR=2009
CONFIG_START_MONTH=3 CONFIG_START_MONTH=3
CONFIG_START_DAY=14 CONFIG_START_DAY=14
CONFIG_JULIAN_TIME=n CONFIG_JULIAN_TIME=n
CONFIG_HAVE_LOWUARTINIT=y CONFIG_HAVE_LOWSERIALINIT=y
CONFIG_DEV_CONSOLE=y CONFIG_DEV_CONSOLE=y
CONFIG_DEV_LOWCONSOLE=y CONFIG_DEV_LOWCONSOLE=y
CONFIG_MUTEX_TYPES=n CONFIG_MUTEX_TYPES=n

View File

@ -115,7 +115,7 @@ CONFIG_START_YEAR=2009
CONFIG_START_MONTH=3 CONFIG_START_MONTH=3
CONFIG_START_DAY=14 CONFIG_START_DAY=14
CONFIG_JULIAN_TIME=n CONFIG_JULIAN_TIME=n
CONFIG_HAVE_LOWUARTINIT=y CONFIG_HAVE_LOWSERIALINIT=y
CONFIG_DEV_CONSOLE=y CONFIG_DEV_CONSOLE=y
CONFIG_DEV_LOWCONSOLE=y CONFIG_DEV_LOWCONSOLE=y
CONFIG_MUTEX_TYPES=n CONFIG_MUTEX_TYPES=n

View File

@ -115,7 +115,7 @@ CONFIG_START_YEAR=2009
CONFIG_START_MONTH=3 CONFIG_START_MONTH=3
CONFIG_START_DAY=14 CONFIG_START_DAY=14
CONFIG_JULIAN_TIME=n CONFIG_JULIAN_TIME=n
CONFIG_HAVE_LOWUARTINIT=y CONFIG_HAVE_LOWSERIALINIT=y
CONFIG_DEV_CONSOLE=y CONFIG_DEV_CONSOLE=y
CONFIG_DEV_LOWCONSOLE=y CONFIG_DEV_LOWCONSOLE=y
CONFIG_MUTEX_TYPES=n CONFIG_MUTEX_TYPES=n

View File

@ -115,7 +115,7 @@ CONFIG_START_YEAR=2009
CONFIG_START_MONTH=3 CONFIG_START_MONTH=3
CONFIG_START_DAY=14 CONFIG_START_DAY=14
CONFIG_JULIAN_TIME=n CONFIG_JULIAN_TIME=n
CONFIG_HAVE_LOWUARTINIT=y CONFIG_HAVE_LOWSERIALINIT=y
CONFIG_DEV_CONSOLE=y CONFIG_DEV_CONSOLE=y
CONFIG_DEV_LOWCONSOLE=n CONFIG_DEV_LOWCONSOLE=n
CONFIG_MUTEX_TYPES=n CONFIG_MUTEX_TYPES=n

View File

@ -99,7 +99,7 @@ CONFIG_EZ80_UART0=y
# CONFIG_EZ80_UART1 is not set # CONFIG_EZ80_UART1 is not set
# CONFIG_EZ80_UART2 is not set # CONFIG_EZ80_UART2 is not set
# CONFIG_EZ80_EMAC is not set # CONFIG_EZ80_EMAC is not set
CONFIG_HAVE_LOWUARTINIT=y CONFIG_HAVE_LOWSERIALINIT=y
CONFIG_ARCH_TIMERHOOK=y CONFIG_ARCH_TIMERHOOK=y
# #

View File

@ -115,7 +115,7 @@ CONFIG_START_YEAR=2009
CONFIG_START_MONTH=3 CONFIG_START_MONTH=3
CONFIG_START_DAY=14 CONFIG_START_DAY=14
CONFIG_JULIAN_TIME=n CONFIG_JULIAN_TIME=n
CONFIG_HAVE_LOWUARTINIT=y CONFIG_HAVE_LOWSERIALINIT=y
CONFIG_DEV_CONSOLE=y CONFIG_DEV_CONSOLE=y
CONFIG_DEV_LOWCONSOLE=y CONFIG_DEV_LOWCONSOLE=y
CONFIG_MUTEX_TYPES=n CONFIG_MUTEX_TYPES=n

View File

@ -119,6 +119,7 @@ CONFIG_ARCH_CHIP_Z8018216FSG=y
# CONFIG_ARCH_CHIP_EZ80F93 is not set # CONFIG_ARCH_CHIP_EZ80F93 is not set
CONFIG_ARCH_CHIP_Z180=y CONFIG_ARCH_CHIP_Z180=y
CONFIG_ARCH_CHIP_Z80182=y CONFIG_ARCH_CHIP_Z80182=y
CONFIG_HAVE_LOWSERIALINIT=y
CONFIG_LINKER_HOME_AREA=0x0000 CONFIG_LINKER_HOME_AREA=0x0000
CONFIG_LINKER_CODE_AREA=0x0200 CONFIG_LINKER_CODE_AREA=0x0200
CONFIG_LINKER_DATA_AREA=0x8000 CONFIG_LINKER_DATA_AREA=0x8000
@ -135,8 +136,25 @@ CONFIG_Z180_PHYSHEAP_END=0x100000
# #
# Z180 Peripheral Support # Z180 Peripheral Support
# #
CONFIG_Z180_UART0=y # CONFIG_Z180_UART0 is not set
CONFIG_Z180_UART1=y # CONFIG_Z180_UART1 is not set
CONFIG_Z180_ESCCA=y
# CONFIG_Z180_ESCCB is not set
# CONFIG_Z180_TMR1 is not set
# CONFIG_Z180_PORTA is not set
# CONFIG_Z180_PORTB is not set
# CONFIG_Z180_MIMIC is not set
CONFIG_Z180_ESCCA_SERIAL_CONSOLE=y
#
# ESCC Channel A Configuration
#
CONFIG_Z180_ESCCA_RXBUFSIZE=64
CONFIG_Z180_ESCCA_TXBUFSIZE=64
CONFIG_Z180_ESCCA_BAUD=9600
CONFIG_Z180_ESCCA_BITS=8
CONFIG_Z180_ESCCA_PARITY=0
CONFIG_Z180_ESCCA_2STOP=0
# #
# Architecture Options # Architecture Options
@ -261,32 +279,6 @@ CONFIG_DEV_NULL=y
CONFIG_SERIAL=y CONFIG_SERIAL=y
CONFIG_DEV_LOWCONSOLE=y CONFIG_DEV_LOWCONSOLE=y
# CONFIG_16550_UART is not set # CONFIG_16550_UART is not set
CONFIG_ARCH_HAVE_UART0=y
CONFIG_ARCH_HAVE_UART1=y
CONFIG_MCU_SERIAL=y
CONFIG_UART0_SERIAL_CONSOLE=y
# CONFIG_UART1_SERIAL_CONSOLE is not set
# CONFIG_NO_SERIAL_CONSOLE is not set
#
# UART0 Configuration
#
CONFIG_UART0_RXBUFSIZE=64
CONFIG_UART0_TXBUFSIZE=64
CONFIG_UART0_BAUD=115200
CONFIG_UART0_BITS=8
CONFIG_UART0_PARITY=0
CONFIG_UART0_2STOP=0
#
# UART1 Configuration
#
CONFIG_UART1_RXBUFSIZE=64
CONFIG_UART1_TXBUFSIZE=64
CONFIG_UART1_BAUD=115200
CONFIG_UART1_BITS=8
CONFIG_UART1_PARITY=0
CONFIG_UART1_2STOP=0
# CONFIG_USBDEV is not set # CONFIG_USBDEV is not set
# CONFIG_USBHOST is not set # CONFIG_USBHOST is not set
# CONFIG_WIRELESS is not set # CONFIG_WIRELESS is not set

View File

@ -88,7 +88,7 @@ CONFIG_ARCH_CHIP_Z8F6403=y
# CONFIG_ARCH_CHIP_EZ80F93 is not set # CONFIG_ARCH_CHIP_EZ80F93 is not set
CONFIG_ARCH_CHIP_Z8F640X=y CONFIG_ARCH_CHIP_Z8F640X=y
CONFIG_ARCH_CHIP_Z8=y CONFIG_ARCH_CHIP_Z8=y
CONFIG_HAVE_LOWUARTINIT=y CONFIG_HAVE_LOWSERIALINIT=y
CONFIG_Z8_UART0=y CONFIG_Z8_UART0=y
CONFIG_Z8_UART1=y CONFIG_Z8_UART1=y

View File

@ -88,7 +88,7 @@ CONFIG_ARCH_CHIP_Z8F6423=y
# CONFIG_ARCH_CHIP_EZ80F93 is not set # CONFIG_ARCH_CHIP_EZ80F93 is not set
CONFIG_ARCH_CHIP_Z8F642X=y CONFIG_ARCH_CHIP_Z8F642X=y
CONFIG_ARCH_CHIP_Z8=y CONFIG_ARCH_CHIP_Z8=y
CONFIG_HAVE_LOWUARTINIT=y CONFIG_HAVE_LOWSERIALINIT=y
CONFIG_Z8_UART0=y CONFIG_Z8_UART0=y
CONFIG_Z8_UART1=y CONFIG_Z8_UART1=y