mirror of
git://projects.qi-hardware.com/xburst-tools.git
synced 2024-12-23 15:05:29 +02:00
the serial console begin output something
This commit is contained in:
parent
dded3f8cbf
commit
f410b994a9
@ -56,4 +56,4 @@ blink_led:src/led_on.S
|
||||
$(OBJCOPY) -O binary -S led_on_temp.o $(IMAGE)/led_on
|
||||
|
||||
clean:
|
||||
rm -f src/*.o src/*~ ${IMAGE}* ${TARGET}
|
||||
rm -f src/*.o src/*~ include/*~ ${IMAGE}* ${TARGET}
|
||||
|
@ -24,6 +24,8 @@
|
||||
#define UART1 1
|
||||
#define UART2 2
|
||||
|
||||
#define rGPHCON (*(volatile unsigned *)0x56000070) /*UART 0 Line control*/
|
||||
|
||||
#define rULCON0 (*(volatile unsigned *)0x50000000) /*UART 0 Line control*/
|
||||
#define rUCON0 (*(volatile unsigned *)0x50000004) /*UART 0 Control*/
|
||||
#define rUFCON0 (*(volatile unsigned *)0x50000008) /*UART 0 FIFO control*/
|
||||
@ -59,5 +61,44 @@
|
||||
#define WrUTXH2(ch) (*(volatile unsigned char *)0x50008020)=(unsigned char)(ch)
|
||||
#define RdURXH2() (*(volatile unsigned char *)0x50008024)
|
||||
|
||||
|
||||
|
||||
// I/O PORT
|
||||
#define rGPACON (*(volatile unsigned *)0x56000000)
|
||||
#define rGPADAT (*(volatile unsigned *)0x56000004)
|
||||
|
||||
#define rGPBCON (*(volatile unsigned *)0x56000010)
|
||||
#define rGPBDAT (*(volatile unsigned *)0x56000014)
|
||||
#define rGPBUP (*(volatile unsigned *)0x56000018)
|
||||
|
||||
#define rGPCCON (*(volatile unsigned *)0x56000020)
|
||||
#define rGPCDAT (*(volatile unsigned *)0x56000024)
|
||||
#define rGPCUP (*(volatile unsigned *)0x56000028)
|
||||
|
||||
#define rGPDCON (*(volatile unsigned *)0x56000030)
|
||||
#define rGPDDAT (*(volatile unsigned *)0x56000034)
|
||||
#define rGPDUP (*(volatile unsigned *)0x56000038)
|
||||
|
||||
#define rGPECON (*(volatile unsigned *)0x56000040)
|
||||
#define rGPEDAT (*(volatile unsigned *)0x56000044)
|
||||
#define rGPEUP (*(volatile unsigned *)0x56000048)
|
||||
|
||||
#define rGPFCON (*(volatile unsigned *)0x56000050)
|
||||
#define rGPFDAT (*(volatile unsigned *)0x56000054)
|
||||
#define rGPFUP (*(volatile unsigned *)0x56000058)
|
||||
|
||||
#define rGPGCON (*(volatile unsigned *)0x56000060)
|
||||
#define rGPGDAT (*(volatile unsigned *)0x56000064)
|
||||
#define rGPGUP (*(volatile unsigned *)0x56000068)
|
||||
|
||||
#define rGPHCON (*(volatile unsigned *)0x56000070)
|
||||
#define rGPHDAT (*(volatile unsigned *)0x56000074)
|
||||
#define rGPHUP (*(volatile unsigned *)0x56000078)
|
||||
|
||||
#define rGPJCON (*(volatile unsigned *)0x560000d0) //Port J control
|
||||
#define rGPJDAT (*(volatile unsigned *)0x560000d4) //Port J data
|
||||
#define rGPJUP (*(volatile unsigned *)0x560000d8) //Port J data
|
||||
|
||||
void port_init(void);
|
||||
void serial_init (const int ubrdiv_val,const int uart);
|
||||
void serial_putc (const int uart,const char c);
|
||||
|
@ -30,6 +30,9 @@ void serial_init (const int ubrdiv_val,const int uart)
|
||||
case UART0:
|
||||
rULCON0 = 0x3;
|
||||
rUCON0 = 0x245;
|
||||
rGPHCON = rGPHCON & ~(3 << 16);
|
||||
delay(1);
|
||||
rGPHCON = rGPHCON & ~(3 << 16)|(1 << 17);
|
||||
rUFCON0 = 0x0;
|
||||
rUMCON0 = 0x0;
|
||||
rUBRDIV0 = ubrdiv_val;
|
||||
@ -44,6 +47,9 @@ void serial_init (const int ubrdiv_val,const int uart)
|
||||
case UART2:
|
||||
rULCON2 = 0x3;
|
||||
rUCON2 = 0x245;
|
||||
rGPHCON = rGPHCON & ~(3 << 16);
|
||||
delay(1);
|
||||
rGPHCON = rGPHCON & ~(3 << 16)|(1 << 17);
|
||||
rUFCON2 = 0x0;
|
||||
rUBRDIV2 = ubrdiv_val;
|
||||
break;
|
||||
@ -60,16 +66,17 @@ void serial_putc (const int uart,const char c)
|
||||
{
|
||||
case UART0:
|
||||
while ( !( rUTRSTAT0 & 0x2 ) );
|
||||
delay(10);
|
||||
delay(1);
|
||||
WrUTXH0(c);
|
||||
break;
|
||||
case UART1:
|
||||
while ( !( rUTRSTAT1 & 0x2 ) );
|
||||
delay(10);
|
||||
delay(1);
|
||||
WrUTXH1(c);
|
||||
break;
|
||||
case UART2:
|
||||
while ( !( rUTRSTAT2 & 0x2 ) );
|
||||
delay(1);
|
||||
WrUTXH2(c);
|
||||
break;
|
||||
default:
|
||||
@ -77,3 +84,121 @@ void serial_putc (const int uart,const char c)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* =====================================================================
|
||||
* PORTS Librarues
|
||||
* =====================================================================
|
||||
*/
|
||||
void port_init(void)
|
||||
{
|
||||
//CAUTION:Follow the configuration order for setting the ports.
|
||||
// 1) setting value(GPnDAT)
|
||||
// 2) setting control register (GPnCON)
|
||||
// 3) configure pull-up resistor(GPnUP)
|
||||
|
||||
/* 32bit data bus configuration */
|
||||
/*
|
||||
* === PORT A GROUP
|
||||
* Ports : GPA22 GPA21 GPA20 GPA19 GPA18 GPA17 GPA16 GPA15 GPA14 GPA13 GPA12
|
||||
* Signal : nFCE nRSTOUT nFRE nFWE ALE CLE nGCS5 nGCS4 nGCS3 nGCS2 nGCS1
|
||||
* Binary : 1 1 1 , 1 1 1 1 , 1 1 1 1
|
||||
* Ports : GPA11 GPA10 GPA9 GPA8 GPA7 GPA6 GPA5 GPA4 GPA3 GPA2 GPA1 GPA0
|
||||
* Signal : ADDR26 ADDR25 ADDR24 ADDR23 ADDR22 ADDR21 ADDR20 ADDR19 ADDR18 ADDR17 ADDR16 ADDR0
|
||||
* Binary : 1 1 1 1 , 1 1 1 1 , 1 1 1 1
|
||||
*/
|
||||
rGPACON = 0x007E5FFF;
|
||||
rGPADAT |= (1 << 16); /* Set GPA16 to high (nNAND_WP) */
|
||||
/*
|
||||
* ===* PORT B GROUP
|
||||
* Ports : GPB10 GPB9 GPB8 GPB7 GPB6 GPB5 GPB4 GPB3 GPB2 GPB1 GPB0
|
||||
* Signal : nXDREQ0 nXDACK0 nXDREQ1 nXDACK1 nSS_KBD nDIS_OFF L3CLOCK L3DATA L3MODE nIrDATXDEN Keyboard
|
||||
* Setting: INPUT OUTPUT INPUT OUTPUT INPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT
|
||||
* Binary : 00 , 01 00 , 01 00 , 01 01 , 01 01 , 01 01
|
||||
*/
|
||||
rGPBCON = 0x00155555;
|
||||
rGPBUP = 0x000007FF;
|
||||
/*
|
||||
* === PORT C GROUP
|
||||
* Ports : GPC15 GPC14 GPC13 GPC12 GPC11 GPC10 GPC9 GPC8 GPC7 GPC6 GPC5 GPC4 GPC3 GPC2 GPC1 GPC0
|
||||
* Signal : VD7 VD6 VD5 VD4 VD3 VD2 VD1 VD0 LCDVF2 LCDVF1 LCDVF0 VM VFRAME VLINE VCLK LEND
|
||||
* Binary : 10 10 , 10 10 , 10 10 , 10 10 , 10 10 , 10 10 , 10 10 , 10 10
|
||||
*/
|
||||
rGPCCON = 0x55555155;
|
||||
rGPCUP = 0x0000FFFF & ~(1 << 5);
|
||||
rGPCDAT |= (1 << 13) | (1 << 15); /* index detect -> hi */
|
||||
/*
|
||||
* === PORT D GROUP
|
||||
* Ports : GPD15 GPD14 GPD13 GPD12 GPD11 GPD10 GPD9 GPD8 GPD7 GPD6 GPD5 GPD4 GPD3 GPD2 GPD1 GPD0
|
||||
* Signal : VD23 VD22 VD21 VD20 VD19 VD18 VD17 VD16 VD15 VD14 VD13 VD12 VD11 VD10 VD9 VD8
|
||||
* Binary : 10 10 , 10 10 , 10 10 , 10 10 , 10 10 , 10 10 , 10 10 ,10 10
|
||||
*/
|
||||
rGPDCON = 0x55555555;
|
||||
rGPDUP = 0x0000FFFF;
|
||||
rGPDDAT |= (1 << 0) | (1 << 3) | (1 << 4); /* index detect -> hi */
|
||||
/*
|
||||
* === PORT E GROUP
|
||||
* Ports : GPE15 GPE14 GPE13 GPE12 GPE11 GPE10 GPE9 GPE8 GPE7 GPE6 GPE5 GPE4
|
||||
* Signal : IICSDA IICSCL SPICLK SPIMOSI SPIMISO SDDATA3 SDDATA2 SDDATA1 SDDATA0 SDCMD SDCLK I2SSDO
|
||||
* Binary : 10 10 , 10 10 , 10 10 , 10 10 , 10 10 , 10 10 ,
|
||||
* -------------------------------------------------------------------------------------------------------
|
||||
* Ports : GPE3 GPE2 GPE1 GPE0
|
||||
* Signal : I2SSDI CDCLK I2SSCLK I2SLRCK
|
||||
* Binary : 10 10 , 10 10
|
||||
*/
|
||||
rGPECON = 0xAAAAAAAA;
|
||||
rGPEUP = 0x0000FFFF & ~(1 << 11);
|
||||
/*
|
||||
* === PORT F GROUP
|
||||
* Ports : GPF7 GPF6 GPF5 GPF4 GPF3 GPF2 GPF1 GPF0
|
||||
* Signal : nLED_8 nLED_4 nLED_2 nLED_1 nIRQ_PCMCIA EINT2 KBDINT EINT0
|
||||
* Setting: Output Output Output Output EINT3 EINT2 EINT1 EINT0
|
||||
* Binary : 01 01 , 01 01 , 10 10 , 10 10
|
||||
*/
|
||||
/* pulldown on GPF03: TP-4705+debug - debug conn will float */
|
||||
rGPFCON = 0x0000AAAA;
|
||||
rGPFUP = 0x000000FF & ~(1 << 3);
|
||||
|
||||
|
||||
/*
|
||||
* === PORT G GROUP
|
||||
* Ports : GPG15 GPG14 GPG13 GPG12 GPG11 GPG10 GPG9 GPG8 GPG7 GPG6
|
||||
* Signal : nYPON YMON nXPON XMON EINT19 DMAMODE1 DMAMODE0 DMASTART KBDSPICLK KBDSPIMOSI
|
||||
* Setting: nYPON YMON nXPON XMON EINT19 Output Output Output SPICLK1 SPIMOSI1
|
||||
* Binary : 11 11 , 11 11 , 10 01 , 01 01 , 11 11
|
||||
* -----------------------------------------------------------------------------------------
|
||||
* Ports : GPG5 GPG4 GPG3 GPG2 GPG1 GPG0
|
||||
* Signal : KBDSPIMISO LCD_PWREN EINT11 nSS_SPI IRQ_LAN IRQ_PCMCIA
|
||||
* Setting: SPIMISO1 LCD_PWRDN EINT11 nSS0 EINT9 EINT8
|
||||
* Binary : 11 11 , 10 11 , 10 10
|
||||
*/
|
||||
rGPGCON = 0x01AAFE79;
|
||||
rGPGUP = 0x0000FFFF;
|
||||
/*
|
||||
* === PORT H GROUP
|
||||
* Ports : GPH10 GPH9 GPH8 GPH7 GPH6 GPH5 GPH4 GPH3 GPH2 GPH1 GPH0
|
||||
* Signal : CLKOUT1 CLKOUT0 UCLK nCTS1 nRTS1 RXD1 TXD1 RXD0 TXD0 nRTS0 nCTS0
|
||||
* Binary : 10 , 10 10 , 11 11 , 10 10 , 10 10 , 10 10
|
||||
*/
|
||||
/* pulldown on GPH08: UEXTCLK, just floats!
|
||||
* pulldown GPH0 -- nCTS0 / RTS_MODEM -- floats when GSM off
|
||||
* pulldown GPH3 -- RXD[0] / TX_MODEM -- floats when GSM off
|
||||
*/
|
||||
rGPHCON = 0x001AAAAA;
|
||||
rGPHUP = 0x000007FF & ~(1 << 8) & ~(1 << 0) & ~(1 << 3);
|
||||
|
||||
/* pulldown on GPJ00: input, just floats! */
|
||||
/* pulldown on GPJ07: WLAN module WLAN_GPIO0, no ext pull */
|
||||
rGPJCON = 0x1551544;
|
||||
rGPJUP = 0x1ffff & ~(1 << 0) & ~(1 << 7);
|
||||
rGPJDAT |= (1 << 4) | (1 << 6);
|
||||
/* Set GPJ4 to high (nGSM_EN) */
|
||||
/* Set GPJ6 to high (nDL_GSM) */
|
||||
rGPJDAT &= ~(1 << 5); /* Set GPJ5 to low 3D RST */
|
||||
|
||||
/* leaving Glamo forced to Reset# active here killed
|
||||
* U-Boot when you touched the memory region
|
||||
*/
|
||||
|
||||
rGPJDAT |= (1 << 5); /* Set GPJ5 to high 3D RST */
|
||||
}
|
||||
|
@ -85,11 +85,13 @@ start_code:
|
||||
ldr r0, =LOCKTIME
|
||||
mov r1, #0xffffff
|
||||
str r1, [r0]
|
||||
|
||||
# define MPLLCON_val ((142 << 12) + (7 << 4) + 1)
|
||||
|
||||
# define UPLLCON 0x4c000008
|
||||
# define MPLLCON_val ((142 << 12) + (7 << 4) + 1)
|
||||
# define UPLLCON_val (( 88 << 12) + (8 << 4) + 2)
|
||||
|
||||
/*# define MPLLCON_val ((0x7d << 12) + (0x2 << 4) + 0x1)
|
||||
# define UPLLCON_val ((0x38 << 12) + (0x2 << 4) + 0x2)*/
|
||||
|
||||
ldr r0, =UPLLCON
|
||||
ldr r1, =UPLLCON_val
|
||||
str r1, [r0]
|
||||
@ -116,7 +118,7 @@ start_code:
|
||||
|
||||
/* enable uart */
|
||||
ldr r0, =0x4c00000c /* clkcon */
|
||||
ldr r1, =0xffff0 /* all clocks on */
|
||||
ldr r1, =0x7fff0 /* all clocks on */
|
||||
str r1, [r0]
|
||||
|
||||
/* gpio UART0 init */
|
||||
@ -134,7 +136,7 @@ start_code:
|
||||
str r1, [r0, #0x08]
|
||||
mov r1, #0x00
|
||||
str r1, [r0, #0x0c]
|
||||
mov r1, #0x11
|
||||
mov r1, #0x7
|
||||
str r1, [r0, #0x28] */
|
||||
|
||||
bl cpu_init_crit
|
||||
|
@ -39,7 +39,8 @@ unsigned char buf[2*1024];
|
||||
|
||||
int start_kboot(void)
|
||||
{
|
||||
serial_init(0x11,UART0);
|
||||
port_init();
|
||||
serial_init(0x7,UART0);
|
||||
while(1){
|
||||
serial_putc (UART0,'0');
|
||||
blue_on(1);
|
||||
|
Loading…
Reference in New Issue
Block a user