diff --git a/flash.h b/flash.h
index 16e5708..9c6d535 100644
--- a/flash.h
+++ b/flash.h
@@ -205,21 +205,21 @@
 int read_memmapped(struct flashchip *flash, uint8_t *buf, int start, int len);
 int erase_flash(struct flashchip *flash);
 int probe_flash(int startchip, struct flashchip *fill_flash, int force);
-int read_flash_to_file(struct flashchip *flash, char *filename);
+int read_flash_to_file(struct flashchip *flash, const char *filename);
 int min(int a, int b);
 int max(int a, int b);
 void tolower_string(char *str);
-char *extract_param(char **haystack, char *needle, char *delim);
-int verify_range(struct flashchip *flash, uint8_t *cmpbuf, int start, int len, char *message);
+char *extract_param(char **haystack, const char *needle, const char *delim);
+int verify_range(struct flashchip *flash, uint8_t *cmpbuf, int start, int len, const char *message);
 int need_erase(uint8_t *have, uint8_t *want, int len, enum write_granularity gran);
 char *strcat_realloc(char *dest, const char *src);
 void print_version(void);
 void print_banner(void);
 void list_programmers_linebreak(int startcol, int cols, int paren);
 int selfcheck(void);
-int doit(struct flashchip *flash, int force, char *filename, int read_it, int write_it, int erase_it, int verify_it);
-int read_buf_from_file(unsigned char *buf, unsigned long size, char *filename);
-int write_buf_to_file(unsigned char *buf, unsigned long size, char *filename);
+int doit(struct flashchip *flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it);
+int read_buf_from_file(unsigned char *buf, unsigned long size, const char *filename);
+int write_buf_to_file(unsigned char *buf, unsigned long size, const char *filename);
 
 #define OK 0
 #define NT 1    /* Not tested */
diff --git a/flashrom.c b/flashrom.c
index 13dd581..21d4c35 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -649,7 +649,7 @@
  * needle and remove everything from the first occurrence of needle to the next
  * delimiter from haystack.
  */
-char *extract_param(char **haystack, char *needle, char *delim)
+char *extract_param(char **haystack, const char *needle, const char *delim)
 {
 	char *param_pos, *opt_pos, *rest;
 	char *opt = NULL;
@@ -706,7 +706,7 @@
 	return opt;
 }
 
-char *extract_programmer_param(char *param_name)
+char *extract_programmer_param(const char *param_name)
 {
 	return extract_param(&programmer_param, param_name, ",");
 }
@@ -735,7 +735,7 @@
  * @message	string to print in the "FAILED" message
  * @return	0 for success, -1 for failure
  */
-int verify_range(struct flashchip *flash, uint8_t *cmpbuf, int start, int len, char *message)
+int verify_range(struct flashchip *flash, uint8_t *cmpbuf, int start, int len, const char *message)
 {
 	int i, ret = 0;
 	uint8_t *readbuf = malloc(len);
@@ -1217,7 +1217,7 @@
 	return ret;
 }
 
-int read_buf_from_file(unsigned char *buf, unsigned long size, char *filename)
+int read_buf_from_file(unsigned char *buf, unsigned long size, const char *filename)
 {
 	unsigned long numbytes;
 	FILE *image;
@@ -1250,7 +1250,7 @@
 	return 0;
 }
 
-int write_buf_to_file(unsigned char *buf, unsigned long size, char *filename)
+int write_buf_to_file(unsigned char *buf, unsigned long size, const char *filename)
 {
 	unsigned long numbytes;
 	FILE *image;
@@ -1274,7 +1274,7 @@
 	return 0;
 }
 
-int read_flash_to_file(struct flashchip *flash, char *filename)
+int read_flash_to_file(struct flashchip *flash, const char *filename)
 {
 	unsigned long size = flash->total_size * 1024;
 	unsigned char *buf = calloc(size, sizeof(char));
@@ -1577,7 +1577,7 @@
 }
 
 /* The way to go if you want a delimited list of programmers*/
-void list_programmers(char *delim)
+void list_programmers(const char *delim)
 {
 	enum programmer p;
 	for (p = 0; p < PROGRAMMER_INVALID; p++) {
@@ -1846,7 +1846,7 @@
  * but right now it allows us to split off the CLI code.
  * Besides that, the function itself is a textbook example of abysmal code flow.
  */
-int doit(struct flashchip *flash, int force, char *filename, int read_it, int write_it, int erase_it, int verify_it)
+int doit(struct flashchip *flash, int force, const char *filename, int read_it, int write_it, int erase_it, int verify_it)
 {
 	uint8_t *oldcontents;
 	uint8_t *newcontents;
diff --git a/programmer.h b/programmer.h
index ce0ffa1..cd82dcb 100644
--- a/programmer.h
+++ b/programmer.h
@@ -505,7 +505,7 @@
 extern unsigned long flashbase;
 void check_chip_supported(const struct flashchip *flash);
 int check_max_decode(enum chipbustype buses, uint32_t size);
-char *extract_programmer_param(char *param_name);
+char *extract_programmer_param(const char *param_name);
 
 /* layout.c */
 int show_id(uint8_t *bios, int size, int force);
