]2013/5/6 Wim Vervoorn wvervoorn@eltan.com: ]> Hello, ]> ]> ]> ]> I am trying to build CoreBoot from Windows using MingGW. ]> ]> ]> ]> After downloading the latest version of the complete package to enable ]> this it is possible to build this without problem. ]> ]> ]> ]> As this package contains an old version of the tree I updated this to ]> the latest one. After doing this it's not possible to build the ]> Persimmon tree any longer. ]> ]> ]> ]> In the latest CoreBoot version the Persimmon tree uses the ]> nvramtool.exe to generate "option_table.h". When this is started I get ]> a "nvramtool.exe has stopped working message" is anyone familiar with ]> that? Is there a solution for this so I can get the tree building with the latest version as well? ] ]My guess is that nvramtool won't work on any Windows build since Windows most likely blocks CMOS ](nvram) access. ]Most developers are using Linux; if you are in dire need of a persimmon coreboot.rom: please say so (I or ]someone else can send you one off-list).
I looked at this problem a while back and found the same thing as you. Because Windows blocks direct hardware access attempts by applications, nvramtool fails. Routing I/O access through a driver was easy until Microsoft came up with their signed driver requirement.
The question in my mind is why should the coreboot build process need to access the cmos of the build machine? I assume the answer is that it does not, and accessing the cmos of the build machine is an unintentional side effect of the way nvramtool works.
Thanks, Scott
]> Best regards, ]> ]> Wim Vervoorn
Scott Duplichan wrote:
why should the coreboot build process need to access the cmos of the build machine? I assume the answer is that it does not, and accessing the cmos of the build machine is an unintentional side effect of the way nvramtool works.
Sounds right. Would be great to find out more details about why and how nvramtool is being used during the build!
//Peter
Am 2013-05-07 01:56, schrieb Peter Stuge:
Sounds right. Would be great to find out more details about why and how nvramtool is being used during the build!
During the handling of cmos.layout and cmos.settings (if present and used).
We don't need any special hardware access for that and should not use any such code while building coreboot. One place to look at is the win32mmap implementation, which _is_ used.
Patrick
Hello,
This is the fragment where it fails:
It seems that the call to regcomp is causing the issue.
I don't think this has anything to do with direct access to the hardware. It seems to be some kind of pointer issue, the call seems to access data it can't reach.
/*********************************************************************** ***** * compile_reg_expr * * Compile a regular expression.
************************************************************************ ****/ void compile_reg_expr(int cflags, const char *expr, regex_t *reg) { static const size_t ERROR_BUF_SIZE = 256; char error_msg[ERROR_BUF_SIZE]; int result;
-->>>> if ((result = regcomp(reg, expr, cflags)) != 0) { <<---------
regerror(result, reg, error_msg, ERROR_BUF_SIZE); fprintf(stderr, "%s: %s\n", prog_name, error_msg); exit(1); }
printf( "compile_reg_expr 3\n");
}
Regards,
Wim
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Patrick Georgi Sent: dinsdag 7 mei 2013 8:51 To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Am 2013-05-07 01:56, schrieb Peter Stuge:
Sounds right. Would be great to find out more details about why and how nvramtool is being used during the build!
During the handling of cmos.layout and cmos.settings (if present and used).
We don't need any special hardware access for that and should not use any such code while building coreboot. One place to look at is the win32mmap implementation, which _is_ used.
Patrick
You need to find a regex2.dll. Just putting it in folder coreboot is OK.
Zheng
Date: Tue, 7 May 2013 09:07:18 +0200 From: wvervoorn@eltan.com To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Hello,
This is the fragment where it fails:
It seems that the call to regcomp is causing the issue.
I don't think this has anything to do with direct access to the hardware. It seems to be some kind of pointer issue, the call seems to access data it can't reach.
/***********************************************************************
- compile_reg_expr
- Compile a regular expression.
****/ void compile_reg_expr(int cflags, const char *expr, regex_t *reg) { static const size_t ERROR_BUF_SIZE = 256; char error_msg[ERROR_BUF_SIZE]; int result;
-->>>> if ((result = regcomp(reg, expr, cflags)) != 0) { <<---------
regerror(result, reg, error_msg, ERROR_BUF_SIZE); fprintf(stderr, "%s: %s\n", prog_name, error_msg); exit(1);
}
printf( "compile_reg_expr 3\n");
}
Regards,
Wim
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Patrick Georgi Sent: dinsdag 7 mei 2013 8:51 To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Am 2013-05-07 01:56, schrieb Peter Stuge:
Sounds right. Would be great to find out more details about why and how nvramtool is being used during the build!
During the handling of cmos.layout and cmos.settings (if present and used).
We don't need any special hardware access for that and should not use any such code while building coreboot. One place to look at is the win32mmap implementation, which _is_ used.
Patrick
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Hello Zheng,
Any suggestions where I can find this? I haven't been able to locate it until now.
Wim
From: Zheng Bao [mailto:fishbaoz@hotmail.com] Sent: dinsdag 7 mei 2013 11:12 To: Wim Vervoorn; coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
You need to find a regex2.dll. Just putting it in folder coreboot is OK.
Zheng
Date: Tue, 7 May 2013 09:07:18 +0200 From: wvervoorn@eltan.com To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Hello,
This is the fragment where it fails:
It seems that the call to regcomp is causing the issue.
I don't think this has anything to do with direct access to the hardware. It seems to be some kind of pointer issue, the call seems to access data it can't reach.
/***********************************************************************
- compile_reg_expr
- Compile a regular expression.
************************************************************************
****/ void compile_reg_expr(int cflags, const char *expr, regex_t *reg) { static const size_t ERROR_BUF_SIZE = 256; char error_msg[ERROR_BUF_SIZE]; int result;
-->>>> if ((result = regcomp(reg, expr, cflags)) != 0) { <<---------
regerror(result, reg, error_msg, ERROR_BUF_SIZE); fprintf(stderr, "%s: %s\n", prog_name, error_msg); exit(1); }
printf( "compile_reg_expr 3\n");
}
Regards,
Wim
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Patrick Georgi Sent: dinsdag 7 mei 2013 8:51 To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Am 2013-05-07 01:56, schrieb Peter Stuge:
Sounds right. Would be great to find out more details about why and how nvramtool is being used during the build!
During the handling of cmos.layout and cmos.settings (if present and used).
We don't need any special hardware access for that and should not use any such code while building coreboot. One place to look at is the win32mmap implementation, which _is_ used.
Patrick
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Hello,
I noticed that KConfig includes the regex.c and .h files to solve this issue. I did the same for nvramtool.exe and now it seems to work. (At least I can build it and run it without errors).
Regards,
Wim
From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Wim Vervoorn Sent: dinsdag 7 mei 2013 13:09 To: Zheng Bao; coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Hello Zheng,
Any suggestions where I can find this? I haven't been able to locate it until now.
Wim
From: Zheng Bao [mailto:fishbaoz@hotmail.com] Sent: dinsdag 7 mei 2013 11:12 To: Wim Vervoorn; coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
You need to find a regex2.dll. Just putting it in folder coreboot is OK.
Zheng
Date: Tue, 7 May 2013 09:07:18 +0200 From: wvervoorn@eltan.com To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Hello,
This is the fragment where it fails:
It seems that the call to regcomp is causing the issue.
I don't think this has anything to do with direct access to the hardware. It seems to be some kind of pointer issue, the call seems to access data it can't reach.
/***********************************************************************
- compile_reg_expr
- Compile a regular expression.
************************************************************************
****/ void compile_reg_expr(int cflags, const char *expr, regex_t *reg) { static const size_t ERROR_BUF_SIZE = 256; char error_msg[ERROR_BUF_SIZE]; int result;
-->>>> if ((result = regcomp(reg, expr, cflags)) != 0) { <<---------
regerror(result, reg, error_msg, ERROR_BUF_SIZE); fprintf(stderr, "%s: %s\n", prog_name, error_msg); exit(1); }
printf( "compile_reg_expr 3\n");
}
Regards,
Wim
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Patrick Georgi Sent: dinsdag 7 mei 2013 8:51 To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Am 2013-05-07 01:56, schrieb Peter Stuge:
Sounds right. Would be great to find out more details about why and how nvramtool is being used during the build!
During the handling of cmos.layout and cmos.settings (if present and used).
We don't need any special hardware access for that and should not use any such code while building coreboot. One place to look at is the win32mmap implementation, which _is_ used.
Patrick
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
http://sourceforge.net/projects/gnuwin32/files/regex/2.7/
Here is the link for regex library.
There are lib and dll in regex-2.7-bin.zip.
Kconfig is a seperated tool. If we want to leverage the regex.c in Kconfig, we need to submit a patch.
Zheng
Date: Tue, 7 May 2013 15:30:02 +0200 From: wvervoorn@eltan.com To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Hello, I noticed that KConfig includes the regex.c and .h files to solve this issue. I did the same for nvramtool.exe and now it seems to work. (At least I can build it and run it without errors). Regards, Wim From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Wim Vervoorn Sent: dinsdag 7 mei 2013 13:09 To: Zheng Bao; coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW Hello Zheng, Any suggestions where I can find this? I haven’t been able to locate it until now. Wim From: Zheng Bao [mailto:fishbaoz@hotmail.com] Sent: dinsdag 7 mei 2013 11:12 To: Wim Vervoorn; coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW You need to find a regex2.dll. Just putting it in folder coreboot is OK.
Zheng> Date: Tue, 7 May 2013 09:07:18 +0200
From: wvervoorn@eltan.com To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Hello,
This is the fragment where it fails:
It seems that the call to regcomp is causing the issue.
I don't think this has anything to do with direct access to the hardware. It seems to be some kind of pointer issue, the call seems to access data it can't reach.
/***********************************************************************
- compile_reg_expr
- Compile a regular expression.
****/ void compile_reg_expr(int cflags, const char *expr, regex_t *reg) { static const size_t ERROR_BUF_SIZE = 256; char error_msg[ERROR_BUF_SIZE]; int result;
-->>>> if ((result = regcomp(reg, expr, cflags)) != 0) { <<---------
regerror(result, reg, error_msg, ERROR_BUF_SIZE); fprintf(stderr, "%s: %s\n", prog_name, error_msg); exit(1); }
printf( "compile_reg_expr 3\n");
}
Regards,
Wim
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Patrick Georgi Sent: dinsdag 7 mei 2013 8:51 To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Am 2013-05-07 01:56, schrieb Peter Stuge:
Sounds right. Would be great to find out more details about why and how nvramtool is being used during the build!
During the handling of cmos.layout and cmos.settings (if present and used).
We don't need any special hardware access for that and should not use any such code while building coreboot. One place to look at is the win32mmap implementation, which _is_ used.
Patrick
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
Hello Zheng,
I have a working environment now by switching to CygWin. I did not have the regex issues there.
Wim
From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Zheng Bao Sent: woensdag 8 mei 2013 3:46 To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
http://sourceforge.net/projects/gnuwin32/files/regex/2.7/
Here is the link for regex library.
There are lib and dll in regex-2.7-bin.zip.
Kconfig is a seperated tool. If we want to leverage the regex.c in Kconfig, we need to submit a patch.
Zheng
________________________________
Date: Tue, 7 May 2013 15:30:02 +0200 From: wvervoorn@eltan.com To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Hello,
I noticed that KConfig includes the regex.c and .h files to solve this issue. I did the same for nvramtool.exe and now it seems to work. (At least I can build it and run it without errors).
Regards,
Wim
From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Wim Vervoorn Sent: dinsdag 7 mei 2013 13:09 To: Zheng Bao; coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Hello Zheng,
Any suggestions where I can find this? I haven't been able to locate it until now.
Wim
From: Zheng Bao [mailto:fishbaoz@hotmail.com] Sent: dinsdag 7 mei 2013 11:12 To: Wim Vervoorn; coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
You need to find a regex2.dll. Just putting it in folder coreboot is OK.
Zheng
Date: Tue, 7 May 2013 09:07:18 +0200 From: wvervoorn@eltan.com To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Hello,
This is the fragment where it fails:
It seems that the call to regcomp is causing the issue.
I don't think this has anything to do with direct access to the hardware. It seems to be some kind of pointer issue, the call seems to access data it can't reach.
/***********************************************************************
- compile_reg_expr
- Compile a regular expression.
************************************************************************
****/ void compile_reg_expr(int cflags, const char *expr, regex_t *reg) { static const size_t ERROR_BUF_SIZE = 256; char error_msg[ERROR_BUF_SIZE]; int result;
-->>>> if ((result = regcomp(reg, expr, cflags)) != 0) { <<---------
regerror(result, reg, error_msg, ERROR_BUF_SIZE); fprintf(stderr, "%s: %s\n", prog_name, error_msg); exit(1); }
printf( "compile_reg_expr 3\n");
}
Regards,
Wim
-----Original Message----- From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Patrick Georgi Sent: dinsdag 7 mei 2013 8:51 To: coreboot@coreboot.org Subject: Re: [coreboot] Building AMD Persimmon in MinGW
Am 2013-05-07 01:56, schrieb Peter Stuge:
Sounds right. Would be great to find out more details about why and how nvramtool is being used during the build!
During the handling of cmos.layout and cmos.settings (if present and used).
We don't need any special hardware access for that and should not use any such code while building coreboot. One place to look at is the win32mmap implementation, which _is_ used.
Patrick
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot