| Index: embios/trunk/Makefile |
| — | — | @@ -13,6 +13,9 @@ |
| 14 | 14 | preprocess = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c $(1) | grep -v "^\#")
|
| 15 | 15 | preprocesspaths = $(shell $(CC) $(PPCFLAGS) $(2) -E -P -x c $(1) | grep -v "^\#" | sed -e "s:^..*:$(dir $(1))&:")
|
| 16 | 16 |
|
| | 17 | +REVISION := $(shell svnversion .)
|
| | 18 | +REVISIONINT := $(shell echo $(REVISION) | sed -e "s/[^0-9].*$$//")
|
| | 19 | +
|
| 17 | 20 | TARGETS := $(call preprocess,TARGETS,-I.)
|
| 18 | 21 |
|
| 19 | 22 | define TARGET_template
|
| — | — | @@ -33,7 +36,7 @@ |
| 34 | 37 | build/$(1)/$(NAME).elf: target/$(1)/ls.x build/$(1)/target/$(1)/crt0.o $$(OBJ_$(1))
|
| 35 | 38 | $(LD) $(LDFLAGS) -o $$@ -T target/$(1)/ls.x $$(OBJ_$(1))
|
| 36 | 39 |
|
| 37 | | -build/$(1)/%.o: %.c
|
| | 40 | +build/$(1)/%.o: %.c build/version.h
|
| 38 | 41 | ifeq ($(shell uname),WindowsNT)
|
| 39 | 42 | @-if not exist $$(subst /,\,$$(dir $$@)) md $$(subst /,\,$$(dir $$@))
|
| 40 | 43 | else
|
| — | — | @@ -45,7 +48,7 @@ |
| 46 | 49 | @sed -e "s/.*://" -e "s/\\$$$$//" < $$@.dep.tmp | fmt -1 | sed -e "s/^ *//" -e "s/$$$$/:/" >> $$@.dep
|
| 47 | 50 | @rm -f $$@.dep.tmp
|
| 48 | 51 |
|
| 49 | | -build/$(1)/%.o: %.S
|
| | 52 | +build/$(1)/%.o: %.S build/version.h
|
| 50 | 53 | ifeq ($(shell uname),WindowsNT)
|
| 51 | 54 | @-if not exist $$(subst /,\,$$(dir $$@)) md $$(subst /,\,$$(dir $$@))
|
| 52 | 55 | else
|
| — | — | @@ -62,6 +65,12 @@ |
| 63 | 66 |
|
| 64 | 67 | $(foreach target,$(TARGETS),$(eval $(call TARGET_template,$(target))))
|
| 65 | 68 |
|
| | 69 | +build/version.h: version.h .svn/entries build
|
| | 70 | + @sed -e "s/\$$REVISION\$$/$(REVISION)/" -e "s/\$$REVISIONINT\$$/$(REVISIONINT)/" < $< > $@
|
| | 71 | +
|
| | 72 | +build:
|
| | 73 | + @mkdir build
|
| | 74 | +
|
| 66 | 75 | clean:
|
| 67 | 76 | rm -rf build
|
| 68 | 77 |
|
| Index: embios/trunk/global.h |
| — | — | @@ -29,7 +29,7 @@ |
| 30 | 30 | #include <stddef.h>
|
| 31 | 31 | #endif
|
| 32 | 32 |
|
| 33 | | -#define VERSION "0.0.1pre"
|
| | 33 | +#include "build/version.h"
|
| 34 | 34 |
|
| 35 | 35 | #define ICODE_ATTR __attribute__((section(".icode")))
|
| 36 | 36 | #define ICONST_ATTR __attribute__((section(".irodata")))
|
| — | — | @@ -48,6 +48,14 @@ |
| 49 | 49 | #include "config.h"
|
| 50 | 50 | #include "target.h"
|
| 51 | 51 |
|
| | 52 | +#ifndef SCHEDULER_TICK
|
| | 53 | +#define SCHEDULER_TICK 1048576
|
| | 54 | +#endif
|
| | 55 | +
|
| | 56 | +#ifndef SYSTEM_TICK
|
| | 57 | +#define SYSTEM_TICK 10000
|
| | 58 | +#endif
|
| | 59 | +
|
| 52 | 60 | #ifndef MAX_THREADS
|
| 53 | 61 | #define MAX_THREADS 32
|
| 54 | 62 | #endif
|
| Index: embios/trunk/usb/synopsysotg.c |
| — | — | @@ -366,3 +366,13 @@ |
| 367 | 367 | /* reset the beast */
|
| 368 | 368 | usb_reset();
|
| 369 | 369 | }
|
| | 370 | +
|
| | 371 | +int usb_drv_get_max_out_size()
|
| | 372 | +{
|
| | 373 | + return usb_drv_port_speed() ? 262144 : 32768;
|
| | 374 | +}
|
| | 375 | +
|
| | 376 | +int usb_drv_get_max_in_size()
|
| | 377 | +{
|
| | 378 | + return usb_drv_port_speed() ? 262144 : 32768;
|
| | 379 | +}
|
| Index: embios/trunk/usb/usb.c |
| — | — | @@ -304,12 +304,25 @@ |
| 305 | 305 | {
|
| 306 | 306 | switch (dbgrecvbuf[0])
|
| 307 | 307 | {
|
| 308 | | - case 1: // GET VERSION
|
| | 308 | + case 1: // GET INFO
|
| 309 | 309 | dbgsendbuf[0] = 1;
|
| 310 | | - dbgsendbuf[1] = 0x01010000;
|
| 311 | | - dbgsendbuf[2] = PLATFORM_ID;
|
| 312 | | - dbgsendbuf[3] = 0x02000200;
|
| 313 | 310 | size = 16;
|
| | 311 | + switch (dbgrecvbuf[1])
|
| | 312 | + {
|
| | 313 | + case 0: // GET VERSION INFO
|
| | 314 | + dbgsendbuf[1] = VERSION_MAJOR | (VERSION_MINOR << 8)
|
| | 315 | + | (VERSION_PATCH << 16) | (1 << 24);
|
| | 316 | + dbgsendbuf[2] = PLATFORM_ID;
|
| | 317 | + dbgsendbuf[3] = VERSION_SVN_INT;
|
| | 318 | + break;
|
| | 319 | + case 1: // GET PACKET SIZE INFO
|
| | 320 | + dbgsendbuf[1] = 0x02000200;
|
| | 321 | + dbgsendbuf[2] = usb_drv_get_max_out_size();
|
| | 322 | + dbgsendbuf[3] = usb_drv_get_max_in_size();
|
| | 323 | + break;
|
| | 324 | + default:
|
| | 325 | + dbgsendbuf[0] = 2;
|
| | 326 | + }
|
| 314 | 327 | break;
|
| 315 | 328 | case 2: // RESET
|
| 316 | 329 | reset();
|
| Index: embios/trunk/usb/usbdrv.h |
| — | — | @@ -39,6 +39,8 @@ |
| 40 | 40 | bool usb_drv_stalled(int endpoint, bool in);
|
| 41 | 41 | void usb_drv_stall(int endpoint, bool stall, bool in);
|
| 42 | 42 | void usb_drv_init(void);
|
| | 43 | +int usb_drv_get_max_out_size();
|
| | 44 | +int usb_drv_get_max_in_size();
|
| 43 | 45 |
|
| 44 | 46 |
|
| 45 | 47 | #endif
|
| Index: embios/trunk/thread.h |
| — | — | @@ -29,14 +29,6 @@ |
| 30 | 30 | #include "contextswitch.h"
|
| 31 | 31 |
|
| 32 | 32 |
|
| 33 | | -#ifndef SCHEDULER_TICK
|
| 34 | | -#define SCHEDULER_TICK 1048576
|
| 35 | | -#endif
|
| 36 | | -
|
| 37 | | -#ifndef SYSTEM_TICK
|
| 38 | | -#define SYSTEM_TICK 10000
|
| 39 | | -#endif
|
| 40 | | -
|
| 41 | 33 | #define TIMEOUT_NONE 0
|
| 42 | 34 | #define TIMEOUT_BLOCK -1
|
| 43 | 35 |
|
| Index: embios/trunk/version.h |
| — | — | @@ -0,0 +1,36 @@ |
| | 2 | +//
|
| | 3 | +//
|
| | 4 | +// Copyright 2010 TheSeven
|
| | 5 | +//
|
| | 6 | +//
|
| | 7 | +// This file is part of emBIOS.
|
| | 8 | +//
|
| | 9 | +// emBIOS is free software: you can redistribute it and/or
|
| | 10 | +// modify it under the terms of the GNU General Public License as
|
| | 11 | +// published by the Free Software Foundation, either version 2 of the
|
| | 12 | +// License, or (at your option) any later version.
|
| | 13 | +//
|
| | 14 | +// emBIOS is distributed in the hope that it will be useful,
|
| | 15 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| | 16 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
| | 17 | +// See the GNU General Public License for more details.
|
| | 18 | +//
|
| | 19 | +// You should have received a copy of the GNU General Public License along
|
| | 20 | +// with emBIOS. If not, see <http://www.gnu.org/licenses/>.
|
| | 21 | +//
|
| | 22 | +//
|
| | 23 | +
|
| | 24 | +
|
| | 25 | +#ifndef __VERSION_H__
|
| | 26 | +#define __VERSIONs_H__
|
| | 27 | +
|
| | 28 | +
|
| | 29 | +#define VERSION "0.0.1pre"
|
| | 30 | +#define VERSION_MAJOR 0
|
| | 31 | +#define VERSION_MINOR 0
|
| | 32 | +#define VERSION_PATCH 1
|
| | 33 | +#define VERSION_SVN "$REVISION$"
|
| | 34 | +#define VERSION_SVN_INT $REVISIONINT$
|
| | 35 | +
|
| | 36 | +
|
| | 37 | +#endif |
| \ No newline at end of file |