Thanks Breton,
At this stage I am writting the second stage bootloader to initialize the
sdcard and read its data. It would be very helpfull if you can please upload
M2M driver, it will be give me a gd start to add sdcard support into linux.
Getting rid of redboot will be very help to me. As we just use it a 2 stage
bootloader to download the kernel and load it.
Cheers
Tama
--- In "Breton M. Saunders" <>
wrote:
>
> pkm_munot wrote:
> > Thanks Brett,
> >
> > I am using gpio for Sdcard detect, CS. For tx, rx, clk i am using SPI port
> > signals. At this stage I have got the initial 2k bootloader working from
> > serial EEPROM/Flash. The current setup uses redboot => linux kernel =>
> > Application.
> >
> Oh excellent. That is a good idea. So you're just running it in MMC
> mode then?
>
> You will need to write a linux driver for the SD card at some point.
> You may be able to crook the MMC drivers in the kernel to use the
> M2M/SPI to do this. I can likely upload an M2M driver I've been
> refactoring....
>
> > As you have suggested to boot from sdcard it can be 2 options
> > 1) 2K bootloader (eeprom) => second stage bootloader to initialize sdcard
> > => redboot (sdcrd)=> linux (sdcrd) => Appn (sdcrd).
> >
> >
> > 2) 2K bootloader + redboot(eeprom) => linux (sdcrd) => Appn (sdcrd).
> >
> > Is it necessary to have redboot for loading linux kernel. Can we load the
> > kernel directly from second stage bootloader without using redboot.
> >
> >
> > Can you please provide some pointers on this.
> >
> You don't need redboot. I'd recommend ditching it entirely.
>
> Loading linux is easy.
>
> Load the kernel to 0x04000000.
> Load the initrd (if your using one) to 0x01000000.
> Fill in the initrd size into the correct location in the atags list.
> Copy the atags to 0x0100. I believe this address is special; as (from
> memory) it didn't work using other addresses (this isn't documented
> correctly in arm linux; but may have been fixed since). Even more - you
> can see a bug in my code below where I load 0x0500 0000 into r2 (atags
> address). I think this should be 0x0100; but is indicative that the
> linux kernel just loads atags from 0x0100 rather than the address you
> specify. Note also, this may well have changed in the three years since
> I last worked on this.
>
> This code is in Thumb; note that the bx r3 will branch exchange (e.g.
> switch to arm mode) on branch when calling the kernel.
>
>
> startlinux:
> @ copy atags to 0x0000 0100
> mov r1, #0x01
> lsl r1, #8 @ target address to r1
> adr r2, atags
> adr r3, atags_fin
> 1: ldr r0, [r2]
> str r0, [r1]
> add r1, #4
> add r2, #4
> cmp r2, r3
> bne 1b
>
> mov r2, #0x05
> lsl r2, #24 @ atags ptr
>
> mov r1, #0x16
> lsl r1, #4
> add r1, #0x3 @ ts7400 mach id
>
> mov r0, #0
>
> mov r3, #04 @ bootstrap address
> lsl r3, #24 @
> bx r3 @ start linux sw to arm
>
>
> atags: .word 5
> .word ATAG_CORE
> .word 0 @flags
> .word 4096 @pagesize
> .word 0 @rootdev - unknown...
>
> .word 4 @ size of memory tag
> .word ATAG_MEM
> .word 0x00800000 @ size
> .word 0x00000000 @ start
>
> .w+ord 4 @ size of memory tag
> .word ATAG_MEM
> .word 0x00800000 @ size
> .word 0x01000000 @ start
>
> .word 4 @ size of memory tag
> .word ATAG_MEM
> .word 0x00800000 @ size
> .word 0x04000000 @ start
>
> .word 4 @ size of memory tag
> .word ATAG_MEM
> .word 0x00800000 @ size
> .word 0x05000000 @ start
>
> .word 4
> .word ATAG_INITRD2 @ second rev, physical mapped initrd
> .word 0x01000000 @ start in second physical page
> initrd_size: .word 0x00000000 @ filled in by loader!
>
> cmdln_start: .word (cmdln_fin-cmdln_start)/4
> .word ATAG_CMDLINE
> .asciz "console=ttyAM0,230400 root=/dev/ram"
> .align 4
> cmdln_fin: .word 0 @ buggy terminator criterion in
> setup.h
> .word ATAG_NONE
>
>
> .word 0x00000000
> atags_fin: .word 0x00000000
>
>
> Enjoy,
>
> -bms
>
> > Cheers
> > Tama
> >
> >
> >
> >
> >
> >
> > --- In "Breton M. Saunders" <breton.saunders@>
> > wrote:
> >
> >> I wrote the original linux loader for the alertme hub - fit the entire
> >> NAND flash loader into about 1.2k of eeprom space, including CRC codes.
> >> The development board for it was a ts7400.
> >>
> >> When I was looking at the sdcard last year I figured that it would be
> >> quite difficult to fit the boot loader into the 2k eeprom on the
> >> ts7400. With about 5k I think its possible; but you'll need at least 3
> >> stages of loader.
> >>
> >> Incidentally, since you have done your own board, how have you connected
> >> the sdcard to the ep9307 - are you gpio banging it?
> >>
> >> The TS boards have a pretty simple 4 bit interface onto the sdcard that
> >> is implemented in the CPLD.
> >>
> >> If I remember correctly, they do something like a 3 stage loader on the
> >> ts7400:
> >> Stage 1: 2k loaded from eeprom into cirrus's ethernet buffer to start
> >> the system and load the 1st page (which are supposed to be reliable)
> >> from NAND and call it.
> >> Stage 2: Load the first 16k from NAND using CRC and call it.
> >> Stage 3: Load Linux from NAND or load Linux from partition 0 of the
> >> sdcard (tsfastboot vs tssdboot).
> >>
> >> Loading linux itself is quite easy - just copy the data into ram, setup
> >> the registers correctly and jump to the start address.
> >>
> >> Oh yeah - since you've done your own board, have you correctly managed
> >> the ep93xx lockup-on-reset bug? About 1/3 of the chips have this
> >> problem. TS works around it using their CPLD and watchdog.
> >>
> >> -Brett
> >>
> >>
> >> pkm_munot wrote:
> >>
> >>> --- In Jason Stahls <jason@> wrote:
> >>>
> >>>
> >>>> pkm_munot wrote:
> >>>>
> >>>>
> >>>>> Hi Guys,
> >>>>>
> >>>>> As per the manual under boot section. This board as a initial
> >>>>> bootloader in EEPROM which is loaded at power up and later talks to
> >>>>> SDcard. Apter initializing of SDcard the boards boots from SDcard
> >>>>> directly. I am trying to implement a similar boot sequence for my board
> >>>>> based on EP9307 chip.
> >>>>>
> >>>>> Can anyone please provide some pointers to the source code for EEPROM
> >>>>> bootloader and TS_SDBOOT.
> >>>>>
> >>>>>
> >>>> I doubt TS will release the code for their bootloader but the best way
> >>>> to get it would call them and ask for it. Now for SD boot, I believe
> >>>> the SD interface is implemented in the FPGA so that would hose using
> >>>> TS's boot loader anyways :(
> >>>>
> >>>> --
> >>>> Jason Stahls
> >>>>
> >>>>
> >>>>
> >>> Thanks Jason,
> >>>
> >>> I will trying calling them and see if I can get any pointers from them.
> >>> As per the current design for TS7300 I guess the sdcard interface is
> >>> implemented in FPGA. In my case I dont have a FPGA but I have a serial
> >>> flash. I have downloaded spi_boot example from Cirrus logic website and
> >>> its working successfully on my board.
> >>>
> >>> Now I am trying to write a second stage bootloader which will initialize
> >>> the sdcard and load redboot from sdcard. This in turn will load rest of
> >>> the bits from SDcard.
> >>>
> >>> Its this approach right?
> >>> Cheers
> >>> Tama
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> ------------------------------------
> >>>
> >>> Yahoo! Groups Links
> >>>
> >>>
> >>>
> >>>
> >
> >
> >
> >
> > ------------------------------------
> >
> > Yahoo! Groups Links
> >
> >
> >
>
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|