avionic design with actual uboot and tooling
submodule of avionic design uboot bootloader and with included tools to get you started , read readme.md and readme-tk1-loader.md
This commit is contained in:
136
u-boot/arch/x86/include/asm/acpi/debug.asl
Normal file
136
u-boot/arch/x86/include/asm/acpi/debug.asl
Normal file
@@ -0,0 +1,136 @@
|
||||
/*
|
||||
* Copyright (C) 2008 Advanced Micro Devices, Inc.
|
||||
* Copyright (C) 2016 Bin Meng <bmeng.cn@gmail.com>
|
||||
*
|
||||
* Modified from coreboot src/arch/x86/acpi/debug.asl
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
/* POST register region */
|
||||
OperationRegion(X80, SystemIO, 0x80, 1)
|
||||
Field(X80, ByteAcc, NoLock, Preserve)
|
||||
{
|
||||
P80, 8
|
||||
}
|
||||
|
||||
/* Legacy serial port register region */
|
||||
OperationRegion(CREG, SystemIO, 0x3F8, 8)
|
||||
Field(CREG, ByteAcc, NoLock, Preserve)
|
||||
{
|
||||
CDAT, 8,
|
||||
CDLM, 8,
|
||||
, 8,
|
||||
CLCR, 8,
|
||||
CMCR, 8,
|
||||
CLSR, 8
|
||||
}
|
||||
|
||||
/* DINI - Initialize the serial port to 115200 8-N-1 */
|
||||
Method(DINI)
|
||||
{
|
||||
Store(0x83, CLCR)
|
||||
Store(0x01, CDAT) /* 115200 baud (low) */
|
||||
Store(0x00, CDLM) /* 115200 baud (high) */
|
||||
Store(0x03, CLCR) /* word=8 stop=1 parity=none */
|
||||
Store(0x03, CMCR) /* DTR=1 RTS=1 out1/2=Off loop=Off */
|
||||
Store(0x00, CDLM) /* turn off interrupts */
|
||||
}
|
||||
|
||||
/* THRE - Wait for serial port transmitter holding register to go empty */
|
||||
Method(THRE)
|
||||
{
|
||||
And(CLSR, 0x20, Local0)
|
||||
While (LEqual(Local0, Zero)) {
|
||||
And(CLSR, 0x20, Local0)
|
||||
}
|
||||
}
|
||||
|
||||
/* OUTX - Send a single raw character */
|
||||
Method(OUTX, 1)
|
||||
{
|
||||
THRE()
|
||||
Store(Arg0, CDAT)
|
||||
}
|
||||
|
||||
/* OUTC - Send a single character, expanding LF into CR/LF */
|
||||
Method(OUTC, 1)
|
||||
{
|
||||
If (LEqual(Arg0, 0x0a)) {
|
||||
OUTX(0x0d)
|
||||
}
|
||||
OUTX(Arg0)
|
||||
}
|
||||
|
||||
/* DBGN - Send a single hex nibble */
|
||||
Method(DBGN, 1)
|
||||
{
|
||||
And(Arg0, 0x0f, Local0)
|
||||
If (LLess(Local0, 10)) {
|
||||
Add(Local0, 0x30, Local0)
|
||||
} Else {
|
||||
Add(Local0, 0x37, Local0)
|
||||
}
|
||||
OUTC(Local0)
|
||||
}
|
||||
|
||||
/* DBGB - Send a hex byte */
|
||||
Method(DBGB, 1)
|
||||
{
|
||||
ShiftRight(Arg0, 4, Local0)
|
||||
DBGN(Local0)
|
||||
DBGN(Arg0)
|
||||
}
|
||||
|
||||
/* DBGW - Send a hex word */
|
||||
Method(DBGW, 1)
|
||||
{
|
||||
ShiftRight(Arg0, 8, Local0)
|
||||
DBGB(Local0)
|
||||
DBGB(Arg0)
|
||||
}
|
||||
|
||||
/* DBGD - Send a hex dword */
|
||||
Method(DBGD, 1)
|
||||
{
|
||||
ShiftRight(Arg0, 16, Local0)
|
||||
DBGW(Local0)
|
||||
DBGW(Arg0)
|
||||
}
|
||||
|
||||
/* Get a char from a string */
|
||||
Method(GETC, 2)
|
||||
{
|
||||
CreateByteField(Arg0, Arg1, DBGC)
|
||||
Return (DBGC)
|
||||
}
|
||||
|
||||
/* DBGO - Send either a string or an integer */
|
||||
Method(DBGO, 1, Serialized)
|
||||
{
|
||||
If (LEqual(ObjectType(Arg0), 1)) {
|
||||
If (LGreater(Arg0, 0xffff)) {
|
||||
DBGD(Arg0)
|
||||
} Else {
|
||||
If (LGreater(Arg0, 0xff)) {
|
||||
DBGW(Arg0)
|
||||
} Else {
|
||||
DBGB(Arg0)
|
||||
}
|
||||
}
|
||||
} Else {
|
||||
Name(BDBG, Buffer(80) {})
|
||||
Store(Arg0, BDBG)
|
||||
Store(0, Local1)
|
||||
While (One) {
|
||||
Store(GETC(BDBG, Local1), Local0)
|
||||
If (LEqual(Local0, 0)) {
|
||||
Return (Zero)
|
||||
}
|
||||
OUTC(Local0)
|
||||
Increment(Local1)
|
||||
}
|
||||
}
|
||||
|
||||
Return (Zero)
|
||||
}
|
||||
Reference in New Issue
Block a user