On Feb 9, 2016, at 1:25 AM, Hervé Poussineau wrote:
Le 09/02/2016 04:45, Programmingkid a écrit :
After this patch is applied, the next thing that stops Mac OS X from using the serial port is something having to do with DMA.
http://www.opensource.apple.com/source/AppleSCCSerial/AppleSCCSerial-126.4.0... In this file the setPortName() function is what does the searching for slot-names.
Index: drivers/escc.c
--- drivers/escc.c (revision 1378) +++ drivers/escc.c (working copy) @@ -456,6 +456,11 @@ NEWWORLD(set_property(dnode, "interrupts", (char *)&props, 3 * sizeof(cell)));
/* The four numbers in front of Modem are needed for AppleSCCSerial
kernel extension compatibility. */
char *names = "0001Modem";
NEWWORLD(set_property(dnode, "slot-names", names, strlen(names) + 1));
device_end();
if (legacy) {
I get a compilation error. drivers/escc.c: In function 'escc_add_channel': drivers/escc.c:463:19: error: initialization discards 'const' qualifier from pointer target type [-Werror] char *names = "0001Modem";
It works by changing the line to const char *names = "0001Modem";
I didn't test MacOS X, but this changes MacOS 9 error from "illegal instruction" to "address error".
Hervé
Thanks for testing out my patch. I think this change in Mac OS 9 errors definitely indicates we are on the right patch. Now all that's left is attaching DMA channels to the ESCC (I think).