|
From: | Bensch, Alexander |
Subject: | MIPS32 - 16550 UART implementation on custom board |
Date: | Tue, 22 Oct 2019 16:16:31 +0000 |
Hi all, Details: Target device: Qualcomm QCA9533 (Documentation here if you're curious) Target firmware: VxWorks 6.6 with U-Boot bootload CPU: MIPS 24Kc Board: mipssim (modified) Memory: 512MB Command used: qemu-system-mips -S -s -cpu 24Kc -M mipssim –nographic -bios target_image.bin I have to apologize here, but I am unable to share my source. However, as I am attempting to retool the mipssim board, I have only made minor changes to the code, which are as follows:
While it seems like serial_init() is probably the currently accepted standard, I wasn’t having any luck with remapping it. I noticed the malta board had no issues outputting on a MIPS test kernel I gave it, so I tried to mimic what
was done there. However, I still cannot understand how QEMU works and I am unable to find many good resources that explain it. My slog through the source and included docs is ongoing, but in the meantime I was hoping someone might have some insight into what
I’m doing wrong. The binary loads and executes correctly from address 0xBF000000, but hangs when it hits the first UART polling loop. A look at
mtree in the QEMU monitor shows that the I/O device is mapped correctly to address range 0x18020000-0x1802003f, and when the firmware writes to the Tx buffer,
gdb shows the character successfully is written to memory. There’s just no further action from the serial device to pull that character and display it, so the firmware endlessly polls on the LSR waiting for an update. Is there something I’m missing when it comes to serial/hardware interaction in QEMU? I would have assumed that remapping all of the existing functional components of the mipssim board would be enough to at least get serial communication
working, especially since the target uses the same 16550 UART that mipssim does. Please let me know if you have any insights. It would be helpful if I could find a way to debug QEMU itself with symbols, but at the same time I’m not totally sure what I’d be
looking for. Even advice on how to scope down the issue would be useful. Thank you! NOTICE: This email message and all attachments transmitted with it may contain privileged and confidential information, and information that is protected by, and proprietary to, Parsons Corporation,
and is intended solely for the use of the addressee for the specific purpose set forth in this communication. If the reader of this message is not the intended recipient, you are hereby notified that any reading, dissemination, distribution, copying, or other
use of this message or its attachments is strictly prohibited, and you should delete this message and all copies and backups thereof. The recipient may not further distribute or use any of the information contained herein without the express written authorization
of the sender. If you have received this message in error, or if you have any questions regarding the use of the proprietary information contained therein, please contact the sender of this message immediately, and the sender will provide you with further
instructions.
|
[Prev in Thread] | Current Thread | [Next in Thread] |