aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Expand)AuthorAgeFilesLines
* Revert "build: use ONESHELL to speed up scanning and the toplevel makefile"Felix Fietkau2014-10-221-1/+0
* build: use ONESHELL to speed up scanning and the toplevel makefileFelix Fietkau2014-10-221-0/+1
* build: remove duplicate variable definitionsFelix Fietkau2014-03-211-4/+0
* build: it is no longer necessary to call make target/linux/clean as part of m...Felix Fietkau2012-12-021-1/+0
* Makefile: add a check to bail out early when the path to the openwrt director...Felix Fietkau2012-10-211-0/+4
* build: add back the package/cleanup step to remove the root staging dir for m...Felix Fietkau2012-10-151-1/+1
* build: rework the package/install step - collect package install lists during...Felix Fietkau2012-10-061-5/+3
* [buildroot] abort built in prereq target if there is no site config file for ...Jo-Philipp Wich2012-01-191-0/+6
* add a command for printing a cleaned up make target database - will be used t...Felix Fietkau2010-09-011-3/+8
* [buildroot] fix for GREP_OPTIONSFlorian Fainelli2010-07-311-0/+2
* add a "make prepare" target which builds everything up to target/compile, use...Felix Fietkau2009-05-281-0/+2
* added BUILD_LOG_DIR variable, make clean will delete the ./logs dirRalph Hempel2009-05-281-1/+1
* avoid implicit rules in even more placesFelix Fietkau2009-03-031-1/+1
* remove toolchain build directory as well in 'make dirclean'Nicolas Thill2008-12-031-1/+1
* rework parallel building to get rid of some warningsFelix Fietkau2008-08-161-4/+4
* make package prereq checks behave more like build prereq checks (first check ...Felix Fietkau2008-08-041-1/+12
* large improvement for parallel builds. works without V=99 now and without war...Felix Fietkau2008-06-091-2/+8
* fix package/symlinks target, will call scripts/feeds update / installRalph Hempel2008-03-201-3/+13
* use scripts/feeds instead of scripts/feeds.sh for package/symlinksFelix Fietkau2007-12-281-1/+2
* fix make clean for unconfigured build treesFelix Fietkau2007-12-041-1/+1
* fix parallel build issuesFelix Fietkau2007-11-041-5/+7
* add autorebuild check for menuconfigFelix Fietkau2007-10-141-0/+1
* add 'make prepare' target for building the tools and toolchainFelix Fietkau2007-09-151-1/+4
* major target cleanup. it is now possible to have subtargets that can override...Felix Fietkau2007-09-081-1/+1
* clean up recursive dependency handling, use timestamp.pl again, because it sa...Felix Fietkau2007-08-301-1/+1
* build system cleanup/restructuring as described in http://lists.openwrt.org/p...Felix Fietkau2007-08-071-7/+9
* fix rootfs and init script handlingFelix Fietkau2007-07-311-1/+1
* fix make distcleanFelix Fietkau2007-07-301-2/+2
* next round of cleanup, convert target/ - make -j works now ;)Felix Fietkau2007-07-301-21/+9
* next round of build system cleanup - convert package/ to new structureFelix Fietkau2007-07-301-7/+28
* toolchain/ has been convertedFelix Fietkau2007-07-301-1/+1
* fix verbose output with dash as /bin/shFelix Fietkau2007-07-301-0/+2
* build system fixes, more cleanupFelix Fietkau2007-07-281-8/+5
* more build system cleanupFelix Fietkau2007-07-281-139/+21
* initial attempt at cleaning up subdirectory handling. tools/Makefile is now b...Felix Fietkau2007-07-281-6/+7
* add kernel_oldconfig targetFelix Fietkau2007-07-161-1/+3
* kernel: fix dependencies for .config, use selections from oldconfig when runn...Felix Fietkau2007-07-161-1/+0
* target scan needs a maxdepth of 2Felix Fietkau2007-07-161-1/+1
* set maxdepth appropriately for package scanningFelix Fietkau2007-07-151-2/+2
* rewrite of the metadata scanning - cleaner code, faster scanning, recursive s...Felix Fietkau2007-07-151-2/+5
* fix distcleanFelix Fietkau2007-07-121-1/+1
* fix docs compile targetsFelix Fietkau2007-07-101-4/+4
* Regenerate the menuconfig once symlinked packages are goneFlorian Fainelli2007-05-301-0/+1
* fix target rescan (version kernel changes)Felix Fietkau2007-05-231-4/+3
* Make UCI preconfiguration optional and disabled by defaultFelix Fietkau2007-05-051-1/+1
* fixes for a few build errors on osx without finkFelix Fietkau2007-04-291-1/+1
* revert find | xargs => find | exec changes - this is completely unnecessary a...Felix Fietkau2007-04-121-1/+1
* minor tweaks to the verbose systemMike Baker2007-04-111-3/+0
* fix targetinfo, packageinfoMike Baker2007-04-111-1/+1
* fix a few bugs with the last few commitsMike Baker2007-04-071-6/+6
="p">, const unsigned char *writearr, unsigned char *readarr) { int i; uint8_t mode = 0; printf_debug("%s:", __func__); if (1 == writecnt && 0 == readcnt) { mode = 0x10; } else if (2 == writecnt && 0 == readcnt) { OUTB(writearr[1], wbsio_spibase + 4); printf_debug(" data=0x%02x", writearr[1]); mode = 0x20; } else if (1 == writecnt && 2 == readcnt) { mode = 0x30; } else if (4 == writecnt && 0 == readcnt) { printf_debug(" addr=0x%02x", (writearr[1] & 0x0f)); for (i = 2; i < writecnt; i++) { OUTB(writearr[i], wbsio_spibase + i); printf_debug("%02x", writearr[i]); } mode = 0x40 | (writearr[1] & 0x0f); } else if (5 == writecnt && 0 == readcnt) { printf_debug(" addr=0x%02x", (writearr[1] & 0x0f)); for (i = 2; i < 4; i++) { OUTB(writearr[i], wbsio_spibase + i); printf_debug("%02x", writearr[i]); } OUTB(writearr[i], wbsio_spibase + i); printf_debug(" data=0x%02x", writearr[i]); mode = 0x50 | (writearr[1] & 0x0f); } else if (8 == writecnt && 0 == readcnt) { printf_debug(" addr=0x%02x", (writearr[1] & 0x0f)); for (i = 2; i < 4; i++) { OUTB(writearr[i], wbsio_spibase + i); printf_debug("%02x", writearr[i]); } printf_debug(" data=0x"); for (; i < writecnt; i++) { OUTB(writearr[i], wbsio_spibase + i); printf_debug("%02x", writearr[i]); } mode = 0x60 | (writearr[1] & 0x0f); } else if (5 == writecnt && 4 == readcnt) { /* XXX: TODO not supported by flashrom infrastructure! * This mode, 7, discards the fifth byte in writecnt, * but since we can not express that in flashrom, fail * the operation for now. */ ; } else if (4 == writecnt && readcnt >= 1 && readcnt <= 4) { printf_debug(" addr=0x%02x", (writearr[1] & 0x0f)); for (i = 2; i < writecnt; i++) { OUTB(writearr[i], wbsio_spibase + i); printf_debug("%02x", writearr[i]); } mode = ((7 + readcnt) << 4) | (writearr[1] & 0x0f); } printf_debug(" cmd=%02x mode=%02x\n", writearr[0], mode); if (!mode) { fprintf(stderr, "%s: unsupported command type wr=%d rd=%d\n", __func__, writecnt, readcnt); return 1; } OUTB(writearr[0], wbsio_spibase); OUTB(mode, wbsio_spibase + 1); myusec_delay(10); if (!readcnt) return 0; printf_debug("%s: returning data =", __func__); for (i = 0; i < readcnt; i++) { readarr[i] = INB(wbsio_spibase + 4 + i); printf_debug(" 0x%02x", readarr[i]); } printf_debug("\n"); return 0; } int wbsio_spi_read(struct flashchip *flash, uint8_t *buf) { int size = flash->total_size * 1024; if (flash->total_size > 1024) { fprintf(stderr, "%s: Winbond saved on 4 register bits so max chip size is 1024 KB!\n", __func__); return 1; } memcpy(buf, (const char *)flash->virtual_memory, size); return 0; } int wbsio_spi_write_1(struct flashchip *flash, uint8_t *buf) { int pos, size = flash->total_size * 1024; int result; if (flash->total_size > 1024) { fprintf(stderr, "%s: Winbond saved on 4 register bits so max chip size is 1024 KB!\n", __func__); return 1; } flash->erase(flash); result = spi_write_enable(); if (result) return result; for (pos = 0; pos < size; pos++) { spi_byte_program(pos, buf[pos]); while (spi_read_status_register() & JEDEC_RDSR_BIT_WIP) myusec_delay(10); } spi_write_disable(); return 0; }