Nico Huber has submitted this change and it was merged. ( https://review.coreboot.org/23039 )
Change subject: Fix the documentation and DOS port
......................................................................
Fix the documentation and DOS port
Update the DOS cross-compile documentation,
and workaround issue with valloc() with the
latest DJGPP.
Change-Id: I909c5635aec5076440d2fde73d943f8ad10b8051
Signed-off-by: Rudolf Marek <r.marek(a)assembler.cz>
Reviewed-on: https://review.coreboot.org/23039
Reviewed-by: Nico Huber <nico.h(a)gmx.de>
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
---
M README
M physmap.c
2 files changed, 53 insertions(+), 26 deletions(-)
Approvals:
Nico Huber: Looks good to me, approved
build bot (Jenkins): Verified
diff --git a/README b/README
index 449103d..b5ed946 100644
--- a/README
+++ b/README
@@ -97,27 +97,43 @@
Get packages of the DJGPP cross compiler and install them:
djgpp-filesystem djgpp-gcc djgpp-cpp djgpp-runtime djgpp-binutils
As an alternative, the DJGPP web site offers packages for download as well:
- djcross-binutils-2.19.1-10ap.i386.rpm
- djcross-gcc-4.3.2-8ap.i686.rpm
- djcrx-2.04pre_20090725-13ap.i386.rpm
+ djcross-binutils-2.29.1-1ap.x86_64.rpm
+ djcross-gcc-7.2.0-1ap.x86_64.rpm
+ djcrx-2.05-5.x86_64.rpm
The cross toolchain packages for your distribution may have slightly different
names (look for packages named *djgpp*).
- You will need the following library source trees containing their compiled
- static libraries either in the parent directory of the flashrom source or
- specify the base folder on compile time with the LIBS_BASE parameter.
- The default as described above is equal to calling
- 'make djgpp-dos LIBS_BASE=..'
+ Alternatively, you could use a script to build it from scratch:
+ https://github.com/andrewwutw/build-djgpp
- To get and build said libraries...
- Download pciutils 3.1.5 and apply http://flashrom.org/File:Pciutils.patch.gz
- Compile pciutils, see README.DJGPP for instructions.
- Download and compile http://flashrom.org/File:Libgetopt.tar.gz
+ You will need the libpci and libgetopt library source trees and
+ their compiled static libraries and header files installed in some
+ directory say libpci-libgetopt/, which will be later specified with
+ LIBS_BASE parameter during flashrom compilation. Easiest way to
+ handle it is to put pciutils, libgetopt and flashrom directories
+ in one subdirectory. There will be an extra subdirectory libpci-libgetopt
+ created, which will contain compiled libpci and libgetopt.
+
+ Download pciutils 3.5.6 and apply http://flashrom.org/File:Pciutils-3.5.6.patch.gz
+ Compile pciutils, using following command line:
+
+ make ZLIB=no DNS=no HOST=i386-djgpp-djgpp CROSS_COMPILE=i586-pc-msdosdjgpp- \
+ PREFIX=/ DESTDIR=$PWD/../libpci-libgetopt \
+ STRIP="--strip-program=i586-pc-msdosdjgpp-strip -s" install install-lib
+
+ Download and compile with 'make' http://flashrom.org/File:Libgetopt.tar.gz
+
+ Copy the libgetopt.a to ../libpci-libgetopt/lib and
+ getopt.h to ../libpci-libgetopt/include
+
Enter the flashrom directory.
- Run either (change settings where appropriate)
- make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip
- or (above settings hardcoded)
- make djgpp-dos
+
+ make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip LIBS_BASE=../libpci-libgetopt/ strip
+
+ If you like, you can compress the resulting executable with UPX:
+
+ upx -9 flashrom.exe
+
To run flashrom.exe, download http://flashrom.org/File:Csdpmi7b.zip and
unpack CWSDPMI.EXE into the current directory or one in PATH.
diff --git a/physmap.c b/physmap.c
index a261ccd..3338b62 100644
--- a/physmap.c
+++ b/physmap.c
@@ -38,29 +38,40 @@
#ifdef __DJGPP__
#include <dpmi.h>
+#include <malloc.h>
#include <sys/nearptr.h>
+#define ONE_MEGABYTE (1024 * 1024)
#define MEM_DEV "dpmi"
-static void *realmem_map;
+static void *realmem_map_aligned;
static void *map_first_meg(uintptr_t phys_addr, size_t len)
{
- if (realmem_map)
- return realmem_map + phys_addr;
+ void *realmem_map;
+ size_t pagesize;
- realmem_map = valloc(1024 * 1024);
+ if (realmem_map_aligned)
+ return realmem_map_aligned + phys_addr;
+
+ /* valloc() from DJGPP 2.05 does not work properly */
+ pagesize = getpagesize();
+
+ realmem_map = malloc(ONE_MEGABYTE + pagesize);
if (!realmem_map)
return ERROR_PTR;
- if (__djgpp_map_physical_memory(realmem_map, (1024 * 1024), 0)) {
+ realmem_map_aligned = (void *)(((size_t) realmem_map +
+ (pagesize - 1)) & ~(pagesize - 1));
+
+ if (__djgpp_map_physical_memory(realmem_map_aligned, ONE_MEGABYTE, 0)) {
free(realmem_map);
- realmem_map = NULL;
+ realmem_map_aligned = NULL;
return ERROR_PTR;
}
- return realmem_map + phys_addr;
+ return realmem_map_aligned + phys_addr;
}
static void *sys_physmap(uintptr_t phys_addr, size_t len)
@@ -72,7 +83,7 @@
if (!__djgpp_nearptr_enable())
return ERROR_PTR;
- if ((phys_addr + len - 1) < (1024 * 1024)) {
+ if ((phys_addr + len - 1) < ONE_MEGABYTE) {
/* We need to use another method to map first 1MB. */
return map_first_meg(phys_addr, len);
}
@@ -97,8 +108,8 @@
/* There is no known way to unmap the first 1 MB. The DPMI server will
* do this for us on exit.
*/
- if ((virt_addr >= realmem_map) &&
- ((virt_addr + len) <= (realmem_map + (1024 * 1024)))) {
+ if ((virt_addr >= realmem_map_aligned) &&
+ ((virt_addr + len) <= (realmem_map_aligned + ONE_MEGABYTE))) {
return;
}
--
To view, visit https://review.coreboot.org/23039
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I909c5635aec5076440d2fde73d943f8ad10b8051
Gerrit-Change-Number: 23039
Gerrit-PatchSet: 6
Gerrit-Owner: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: Rudolf Marek <r.marek(a)assembler.cz>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/23039 )
Change subject: Fix the documentation and DOS port
......................................................................
Patch Set 5: Verified+1
Build Successful
https://qa.coreboot.org/job/flashrom-customrules/1002/ : SUCCESS
--
To view, visit https://review.coreboot.org/23039
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I909c5635aec5076440d2fde73d943f8ad10b8051
Gerrit-Change-Number: 23039
Gerrit-PatchSet: 5
Gerrit-Owner: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: Rudolf Marek <r.marek(a)assembler.cz>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Comment-Date: Sat, 06 Jan 2018 22:36:49 +0000
Gerrit-HasComments: No
Gerrit-HasLabels: Yes
Nico Huber has posted comments on this change. ( https://review.coreboot.org/23039 )
Change subject: Fix the documentation and DOS port
......................................................................
Patch Set 5: Code-Review+2
--
To view, visit https://review.coreboot.org/23039
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I909c5635aec5076440d2fde73d943f8ad10b8051
Gerrit-Change-Number: 23039
Gerrit-PatchSet: 5
Gerrit-Owner: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: Rudolf Marek <r.marek(a)assembler.cz>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Comment-Date: Sat, 06 Jan 2018 22:36:43 +0000
Gerrit-HasComments: No
Gerrit-HasLabels: Yes
Hello Rudolf Marek, Paul Menzel, build bot (Jenkins),
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/23039
to look at the new patch set (#5).
Change subject: Fix the documentation and DOS port
......................................................................
Fix the documentation and DOS port
Update the DOS cross-compile documentation,
and workaround issue with valloc() with the
latest DJGPP.
Change-Id: I909c5635aec5076440d2fde73d943f8ad10b8051
Signed-off-by: Rudolf Marek <r.marek(a)assembler.cz>
---
M README
M physmap.c
2 files changed, 53 insertions(+), 26 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/39/23039/5
--
To view, visit https://review.coreboot.org/23039
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I909c5635aec5076440d2fde73d943f8ad10b8051
Gerrit-Change-Number: 23039
Gerrit-PatchSet: 5
Gerrit-Owner: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: Rudolf Marek <r.marek(a)assembler.cz>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/23039 )
Change subject: Fix the documentation and DOS port
......................................................................
Patch Set 4: Verified+1
Build Successful
https://qa.coreboot.org/job/flashrom_gerrit/853/ : SUCCESS
https://qa.coreboot.org/job/flashrom-customrules/1001/ : SUCCESS
--
To view, visit https://review.coreboot.org/23039
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I909c5635aec5076440d2fde73d943f8ad10b8051
Gerrit-Change-Number: 23039
Gerrit-PatchSet: 4
Gerrit-Owner: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: Rudolf Marek <r.marek(a)assembler.cz>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Comment-Date: Sat, 06 Jan 2018 22:35:45 +0000
Gerrit-HasComments: No
Gerrit-HasLabels: Yes
Hello Rudolf Marek, Paul Menzel, build bot (Jenkins),
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/23039
to look at the new patch set (#4).
Change subject: Fix the documentation and DOS port
......................................................................
Fix the documentation and DOS port
Update the DOS cross-compile documentation,
and workaround issue with valloc() with the
latest DJGPP.
Change-Id: I909c5635aec5076440d2fde73d943f8ad10b8051
Signed-off-by: Rudolf Marek <r.marek(a)assembler.cz>
Reviewed-on: https://review.coreboot.org/23044
Tested-by: build bot (Jenkins) <no-reply(a)coreboot.org>
Reviewed-by: Nico Huber <nico.h(a)gmx.de>
---
M README
M physmap.c
2 files changed, 53 insertions(+), 26 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/39/23039/4
--
To view, visit https://review.coreboot.org/23039
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I909c5635aec5076440d2fde73d943f8ad10b8051
Gerrit-Change-Number: 23039
Gerrit-PatchSet: 4
Gerrit-Owner: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: Rudolf Marek <r.marek(a)assembler.cz>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Shawn Anastasio has posted comments on this change. ( https://review.coreboot.org/23057 )
Change subject: buspirate_spi: Add support for variable serial speeds
......................................................................
Patch Set 3:
My reasoning is that the Bus Pirate itself offers options for different baud rates, including many of the values included in the table. I just thought it best to expose as much of the Bus Pirate's feature set as possible and let the user choose between them. The extra values in my table are intermediate values that the Bus Pirate's menu doesn't offer by default but are still slower than the max of 2M. Also, the table omits values too slow to be usable (<9600 baud) for this purpose.
--
To view, visit https://review.coreboot.org/23057
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3706f17a94fdf056063f2ad4a5f0a219665cdcbf
Gerrit-Change-Number: 23057
Gerrit-PatchSet: 3
Gerrit-Owner: Shawn Anastasio <shawnanastasio(a)yahoo.com>
Gerrit-Reviewer: David Hendricks <david.hendricks(a)gmail.com>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: Shawn Anastasio <shawnanastasio(a)yahoo.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Comment-Date: Thu, 04 Jan 2018 23:27:41 +0000
Gerrit-HasComments: No
Gerrit-HasLabels: No
Nico Huber has posted comments on this change. ( https://review.coreboot.org/23057 )
Change subject: buspirate_spi: Add support for variable serial speeds
......................................................................
Patch Set 3:
You still gave no argument for a selectable baud rate (and why it
should be the rates in your table; values below 115200 make no sense
at all because you couldn't switch from 115200 to something lower if
115200 wouldn't work).
--
To view, visit https://review.coreboot.org/23057
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3706f17a94fdf056063f2ad4a5f0a219665cdcbf
Gerrit-Change-Number: 23057
Gerrit-PatchSet: 3
Gerrit-Owner: Shawn Anastasio <shawnanastasio(a)yahoo.com>
Gerrit-Reviewer: David Hendricks <david.hendricks(a)gmail.com>
Gerrit-Reviewer: Nico Huber <nico.h(a)gmx.de>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: Shawn Anastasio <shawnanastasio(a)yahoo.com>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Comment-Date: Thu, 04 Jan 2018 23:03:23 +0000
Gerrit-HasComments: No
Gerrit-HasLabels: No