1.boot sector
contains an execitable program within 512 bytes
contains a partition table
2.Partition table
contains entries for the different types of file systems distributes over the entire disk space
contains the addressible max space for the filesystem
Max number of primary partitions is 4
May be chaining of partition tables are possible
Wednesday, August 11, 2010
msi, msix basic idea
1.legacy system motherboards have the pci interrupt lines hardwired to cpu's in 1 to 1 manner in a SMP system
2.so if a device was allocated INT A line its interrupt would endup on proc 1
3.though the interrupt post processing can happen on any proc x because of DPC
4.msi,msi-x provides mechanism to dynamically decide the destination of an interrupt
5.there is a junction to which the interrupts are routed and where it is decided upon the cpu on which it will end
6. the whole process is transparent to the software
7. in this method additional pre specified context informations can also be specified with the interrupt
8. earlier interrupt handler used to take device_object as the incoming parameter
9. now it will be possible to associate context parameter to different interrupt lines , so that
for that line you will get a corresponding context
10.for eg assume that we have 6 receive queues, that have been programmed to transfer interrupts to 3 lines
11. so every time data comes to a receive queue, interrupt handler with corresponding queue context or device object with a queue number as parameter will be called.
2.so if a device was allocated INT A line its interrupt would endup on proc 1
3.though the interrupt post processing can happen on any proc x because of DPC
4.msi,msi-x provides mechanism to dynamically decide the destination of an interrupt
5.there is a junction to which the interrupts are routed and where it is decided upon the cpu on which it will end
6. the whole process is transparent to the software
7. in this method additional pre specified context informations can also be specified with the interrupt
8. earlier interrupt handler used to take device_object as the incoming parameter
9. now it will be possible to associate context parameter to different interrupt lines , so that
for that line you will get a corresponding context
10.for eg assume that we have 6 receive queues, that have been programmed to transfer interrupts to 3 lines
11. so every time data comes to a receive queue, interrupt handler with corresponding queue context or device object with a queue number as parameter will be called.
c++ protocol
1. base class level specialization may be required
2. default contexts can increase in number based on specialization
3. demux,mux contexts can vary in implementation based on separate threads or live thread system
2. default contexts can increase in number based on specialization
3. demux,mux contexts can vary in implementation based on separate threads or live thread system
engineering everywhere
needs
1.a remote repo
2.basic environment, browser, bin cache(pkg), lib cache(pkg), ide, toolchains should be present in remote repo
3.fast download of the above to local repo
4.local repo has hooks to make the contents active on a button click
5.local repo has a rsync option so that any updation to its contents can be synced to remote repo
way to achieve this
1.use debootstrap , chroot method ... try first on usb pen drive
issues
1.typical remote repo size will be in gb's
1.a remote repo
2.basic environment, browser, bin cache(pkg), lib cache(pkg), ide, toolchains should be present in remote repo
3.fast download of the above to local repo
4.local repo has hooks to make the contents active on a button click
5.local repo has a rsync option so that any updation to its contents can be synced to remote repo
way to achieve this
1.use debootstrap , chroot method ... try first on usb pen drive
issues
1.typical remote repo size will be in gb's
compilers
1.cross compilers , host x, target y -- executable x, object-file y
2.cross debugger, host x, target y --- executable x, interprets y
linux kgdb basic idea
1.enable kernel hacking serial option ,select serial hardware
2.change kernel boot parameters,kgdbwait
3.when kernel boots it waits
4.on host open cross debugger,open vmlinuz from the kernel source root,set source path connect
5.to test if working set a well know system entry break point
6.press continue
7.it should hit the breakpoint
8.system.map is not necessary on target, it is used to resolve symbols in case of crashes on the kernel
2.cross debugger, host x, target y --- executable x, interprets y
linux kgdb basic idea
1.enable kernel hacking serial option ,select serial hardware
2.change kernel boot parameters,kgdbwait
3.when kernel boots it waits
4.on host open cross debugger,open vmlinuz from the kernel source root,set source path connect
5.to test if working set a well know system entry break point
6.press continue
7.it should hit the breakpoint
8.system.map is not necessary on target, it is used to resolve symbols in case of crashes on the kernel
Tuesday, August 10, 2010
arm board(beagle clones) - how to see it
1. has both wince and linux support
2. has 2 boot options .. from nand and mmc/sd
3. mmc/sd serves the purpose of floppy on desktop
4. with a bareskeleton nand , mmc booting can be used to flash other components to it
5. with a zero nand content , special techniques of using serial null modem cable to set it up for
basic booting
6. binaries used for mmc/sd booting .. MLO,uboot,kernel,rfs .. for nand XLOADER,uboot,kernel rfs
7. another important component the environment variables .. they are stored on the nand
8. there is separate section for mmc/sd env and nand env .. inaddition on the nand there are some other basic data
9. rfs can be on nand or sd interchangebly
10.some useful system running over it wince,0xdroid,rowboat etc
2. has 2 boot options .. from nand and mmc/sd
3. mmc/sd serves the purpose of floppy on desktop
4. with a bareskeleton nand , mmc booting can be used to flash other components to it
5. with a zero nand content , special techniques of using serial null modem cable to set it up for
basic booting
6. binaries used for mmc/sd booting .. MLO,uboot,kernel,rfs .. for nand XLOADER,uboot,kernel rfs
7. another important component the environment variables .. they are stored on the nand
8. there is separate section for mmc/sd env and nand env .. inaddition on the nand there are some other basic data
9. rfs can be on nand or sd interchangebly
10.some useful system running over it wince,0xdroid,rowboat etc
code.google.com
1.use eclipse for easier usage
2.install svn,openssh,git-core,git-svn on ubuntu
3.precreate google project
4.add repository path in eclipse
https://prototest.googlecode.com/svn/trunk
5.goto team option in the elclipse project,click on share project
6.when asked for username and passwd goto
https://code.google.com/hosting/settings
7.select files and commit
2.install svn,openssh,git-core,git-svn on ubuntu
3.precreate google project
4.add repository path in eclipse
https://prototest.googlecode.com/svn/trunk
5.goto team option in the elclipse project,click on share project
6.when asked for username and passwd goto
https://code.google.com/hosting/settings
7.select files and commit
Subscribe to:
Posts (Atom)