From 6a1f4864e446a72be20744e6f78692d65195478d Mon Sep 17 00:00:00 2001 From: Peter Zotov Date: Sun, 12 Dec 2010 00:08:05 +0300 Subject: [PATCH] Reworked directory structure. --- COPYING | 2 +- README | 5 +++++ boot.cfg | 4 ---- config/boot.cfg | 4 ++++ initial.cfg => config/initial.cfg | 4 ++-- fw.bin => firmware/spl_stage1.bin | Bin firmware/spl_stage2_usb.bin | Bin 0 -> 31860 bytes config.h => include/config.h | 0 debug.h => include/debug.h | 0 devmgr.h => include/devmgr.h | 0 ingenic.h => include/ingenic.h | 0 shell.h => include/shell.h | 0 shell_internal.h => include/shell_internal.h | 0 usbdev.h => include/usbdev.h | 0 dump.scr => script/dump_minios.scr | 0 Makefile => src/Makefile | 4 ++-- config.c => src/config.c | 0 debug.c => src/debug.c | 0 devmgr.c => src/devmgr.c | 0 ingenic.c => src/ingenic.c | 0 main.c => src/main.c | 0 shell.c => src/shell.c | 0 shell_builtins.c => src/shell_builtins.c | 0 shell_lex.c => src/shell_lex.c | 0 shell_lex.l => src/shell_lex.l | 0 spl_cmdset.c => src/spl_cmdset.c | 0 usbboot_cmdset.c => src/usbboot_cmdset.c | 0 usbdev.c => src/usbdev.c | 0 usb_boot.bin | Bin 31796 -> 0 bytes 29 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 README delete mode 100644 boot.cfg create mode 100644 config/boot.cfg rename initial.cfg => config/initial.cfg (95%) rename fw.bin => firmware/spl_stage1.bin (100%) create mode 100644 firmware/spl_stage2_usb.bin rename config.h => include/config.h (100%) rename debug.h => include/debug.h (100%) rename devmgr.h => include/devmgr.h (100%) rename ingenic.h => include/ingenic.h (100%) rename shell.h => include/shell.h (100%) rename shell_internal.h => include/shell_internal.h (100%) rename usbdev.h => include/usbdev.h (100%) rename dump.scr => script/dump_minios.scr (100%) rename Makefile => src/Makefile (80%) rename config.c => src/config.c (100%) rename debug.c => src/debug.c (100%) rename devmgr.c => src/devmgr.c (100%) rename ingenic.c => src/ingenic.c (100%) rename main.c => src/main.c (100%) rename shell.c => src/shell.c (100%) rename shell_builtins.c => src/shell_builtins.c (100%) rename shell_lex.c => src/shell_lex.c (100%) rename shell_lex.l => src/shell_lex.l (100%) rename spl_cmdset.c => src/spl_cmdset.c (100%) rename usbboot_cmdset.c => src/usbboot_cmdset.c (100%) rename usbdev.c => src/usbdev.c (100%) delete mode 100644 usb_boot.bin diff --git a/COPYING b/COPYING index 78d994c..e4cc176 100644 --- a/COPYING +++ b/COPYING @@ -1,4 +1,4 @@ -fw.bin, usb_boot.bin are (c) Ingenic Semiconductor Co.,Ltd. +firmware/spl_stage1.bin, firmware/spl_stage2_usb.bin are (c) Ingenic Semiconductor Co.,Ltd. ingenic.h is based on code by Ingenic Semiconductor Co.,Ltd. All other files have their authors and licenses described at their beginning. diff --git a/README b/README new file mode 100644 index 0000000..e16acdd --- /dev/null +++ b/README @@ -0,0 +1,5 @@ +Needs libusb-1.0 (not 0.1!) to work. Readline is optional. +To build: + make -C src +If you have readline (recommended): + make -C src READLINE=1 diff --git a/boot.cfg b/boot.cfg deleted file mode 100644 index 7696940..0000000 --- a/boot.cfg +++ /dev/null @@ -1,4 +0,0 @@ -source initial.cfg - -boot - diff --git a/config/boot.cfg b/config/boot.cfg new file mode 100644 index 0000000..e16f9b7 --- /dev/null +++ b/config/boot.cfg @@ -0,0 +1,4 @@ +source script/initial.cfg + +boot + diff --git a/initial.cfg b/config/initial.cfg similarity index 95% rename from initial.cfg rename to config/initial.cfg index 924d485..eb0c30c 100644 --- a/initial.cfg +++ b/config/initial.cfg @@ -1,8 +1,8 @@ # Configuration variables: # STAGE1_FILE, STAGE2_FILE -set STAGE1_FILE fw.bin -set STAGE2_FILE usb_boot.bin +set STAGE1_FILE firmware/spl_stage1.bin +set STAGE2_FILE firmware/spl_stage2_usb.bin set EXTCLK 12 # Define the external crystal in MHz set CPUSPEED 252 # Define the PLL output frequency diff --git a/fw.bin b/firmware/spl_stage1.bin similarity index 100% rename from fw.bin rename to firmware/spl_stage1.bin diff --git a/firmware/spl_stage2_usb.bin b/firmware/spl_stage2_usb.bin new file mode 100644 index 0000000000000000000000000000000000000000..8f11c6f0f27a111dda04afa5d481763b02e7a4e4 GIT binary patch literal 31860 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

@4CBw<-LSEseJhz z%U1*11?9IdS^258wM&4?h3{6@FG;Mu^Um6fzFWEEo~ho|uUxXKehM5^`P!vGWmUse z?bzSN%GWNv+i!Luo{cN-T()w_?P!X3iVA*-wGOo3y#8V^S#{F8Rf)B1OHdQ~LAj3| z-{^m}8#lJcJ{p64f@M{|KcareVMVgIUcnU~@Vqy1xr3OAdp&OySIu+yvKy{3Ts|mu zThhFFb2 zv;iEdS0qUJ|8TaRx@wy&Rozi>9G0PR+_0@m#tS~fwbNoI&6=H~|$%*kT`_Hy^b{*1l9 z`N3AJzOK${-Lz@rCTn9$%cGddNj41T^y2pQ`Yj5BvX4$tcH0zXADN;oHbvQorzpF1 zin3b@${yZ0j+Qux(3awg;3~&OS~mS}&)b6Q5U!u&!XHBPnsDvGbsAUc&nL>mj2XAz zUiYC@35#FH$K{~dSEa5 zUz|4+>n+oQSjlj5dKk|h1~IMZb1+MhX+;KaWiTozjn8R{FH<8lbbFV#5|KFXu0R%z zqX5T$M^P->aap+7hces+b)e4KRIc&wK1e+M$Ne)UGVcnYyQstK|M|bjL*kbHfw-e4 z?l*|L=6Z1(amD6{>)b4EHx6&Swo2R;s8cy#+&0`BV7Rlm8t^-bKSXoBLfjJmE*JMr zl%G%GH=K^qdb9`p^Pdzqf%l{D6Za6lqC4zG+_zDuyIS0e8REWvow(1S&p7IwT#FL3w{NBG1Z9gsUTL{_{AKotR vIh5lgD6WJ0C3ISFKN3S9xMTCjJr@zT=@HNe&lR}Jah(E=YtZNE2gLoqO;^PA