#
296373 |
|
04-Mar-2016 |
marius |
- Copy stable/10@296371 to releng/10.3 in preparation for 10.3-RC1 builds. - Update newvers.sh to reflect RC1. - Update __FreeBSD_version to reflect 10.3. - Update default pkg(8) configuration to use the quarterly branch.
Approved by: re (implicit) |
#
266386 |
|
18-May-2014 |
ian |
MFC 265852: Map device memory using PTE_DEVICE rather than PTE_NOCACHE.
|
#
266311 |
|
17-May-2014 |
ian |
MFC 262952, 262958, 262966, 262979, 262980, 262986, 262987, 262995, 262997, 263030, 263033, 263034, 263056, 263057,
Remove all the redundant external declarations of exception vectors and runtime setting of the pointers that's scattered around various places.
Remove all traces of support for ARM chips prior to the arm9 series.
Make the default exception handler vectors point to where I thought they were already pointing: the default handlers (not a panic that says there is no default handler).
Eliminate irq_dispatch.S. Move the data items it contained into arm/intr.c and the functionality it provided into arm/exception.S.
Move the exception vector table (so-called "page0" data) into exception.S and eliminate vectors.S.
Change the way the asm GET_CURTHREAD_PTR() macro is defined so that code using it doesn't have to have an "AST_LOCALS" macro somewhere in the file.
Arrange for arm fork_trampoline() to return to userland via the standard swi_exit code in exception.S instead of having its own inline expansion of the DO_AST and PULLFRAME macros.
Now that the PUSHFRAME and PULLFRAME macros are used only in the swi entry/exit code, they don't need to be macros. Except that didn't work and the whole change was reverted.
Remove some unnecessary indirection and jump right to the handler functions.
Use panic rather than printf to "handle" an arm26 address exception (should never happen on arm32).
Remove the unreferenced DATA() macro.
Remove #include <machine/asmacros.h> from files that don't need it.
|
#
266196 |
|
15-May-2014 |
ian |
MFC r261681, r261682, r261683, r261684, r261685, r261686, r261687, r261688, r261689, r261690, r261783, r261791, r261836, r261837, r261841,
Add FDT matching code to AT91 device drivers.
Better nomatch messages: include compat string. Also, flag devices as disabled in the successful probe message, but leave what that means to the actual driver (no semantic changes).
Fix Embest board name and id.
Honor the disabled status by only grabbing resources and returning when running under FDT in the AT91 SPI driver.
|
#
266194 |
|
15-May-2014 |
ian |
MFC r261643, r261646, r261648, r261649, r261651, r261656, r261657, r261663, r261676, r261677, r261698, r261778
Consolidate code related to setting up physical memory configuration into a new physmem.c file.
Replace compile-time constant KERNPHYSADDR with abp_physaddr
Calculate the kernel's load address from the PC in the elf / gzip trampoline instead of relying on KERNPHYSADDR as a compile-time constant.
It turns out a global variable is the only straightforward way to communicate the kernel's physical load address from where it's known in initarm() into cpu_mp_start() which is called from non-arm code and takes no parameters.
Remove the now unused MMU_INIT macro.
Use vm_paddr_t, not vm_offset_t, when dealing with physical addresses.
No need to set physmem in each initarm() instance anymore, it's handled in common code now.
Pass the pagetable used from locore.S to initarm to allow it to map data in as required.
Fix the physmem exclude-region clipping logic for the edge-trim case.
Add some extra debugging output when DEBUG is defined.
Update legacy platforms to use new arm_physmem helper routines.
|
#
266160 |
|
15-May-2014 |
ian |
MFC r261423, r261424, r261516, r261513, r261562, r261563, r261564, r261565, r261596, r261606
Add the imx sdhci controller.
Move Open Firmware device root on PowerPC, ARM, and MIPS systems to a sub-node of nexus (ofwbus) rather than direct attach under nexus. This fixes FDT on x86 and will make coexistence with ACPI on ARM systems easier. SPARC is unchanged.
Add the missing ')' at end of sentence. Reword it to use a more common idiom.
Pass the kernel physical address to initarm through the boot param struct.
Make functions only used in vfp.c static, and remove vfp_enable.
Fix __syscall on armeb EABI. As it returns a 64-bit value it needs to place 32-bit data in r1, not r0. 64-bit data is already packed correctly.
Use abp_physaddr for the physical address over KERNPHYSADDR. This helps us remove the need to load the kernel at a fixed address.
Remove references to PHYSADDR where it's used only in debugging output.
Dynamically generate the page table. This will allow us to detect the physical address we are loaded at to change the mapping.
|
#
266110 |
|
15-May-2014 |
ian |
MFC r261252, r261279, r261304, r261305, r261322, r261336, r261337, r261338, r261353
Fix the name of the dts file for the HL201...
When mapping an address, the bsh needs the same offset we do for other things.
Add explicit depends on bus_if.h and device_if.h to avoid a chicken and egg problem in some compilation environments.
Switch to using PAs rather than VAs for the addresses we map for devices. This is a nop, except for what's reported by atmelbus for the resources.
Comment cleanups. Move things around for diff reduction against FDT work.
|
#
259380 |
|
14-Dec-2013 |
ian |
MFC r259038, r259039:
Bump the maximum VM space from 3 * memory size to a fixed 256MB. That's all we have room for since we map the hardware registers starting at 0xd0000000. This allows my 64MB AT91SAM9G20 to boot again after the unmmaped I/O changes were MFC'd at r251897. Other subplatforms may need similar treatment.
Although not strictly required to boot a 64MB board, bump vm_max_virtual_address to be KERNVIRTADDR + 256MB. This allows some future shock protection since the KVA requirements have gone up since the unmapped changes have gone in, as well as preventing us from overlapping with the hardware devices, which we map at 0xd0000000, which we'd hit with anything more than 85MB...
|
#
259377 |
|
14-Dec-2013 |
ian |
MFC r258392, r258412:
Call cpu_setup() immediately after the page tables are installed. This enables data cache and other chip-specific features. It was previously done via an early SYSINIT, but it was being done after pmap and vm setup, and those setups need to use mutexes. On some modern ARM platforms, the ldrex/strex instructions that implement mutexes require the data cache to be enabled.
Call cpu_setup() from the initarm() routine on platforms that don't use the common FDT-aware initarm() in arm/machdep.c.
|
#
259364 |
|
14-Dec-2013 |
ian |
MFC r257648, r257649, r257660:
Begin reducing code duplication in arm pmap.c and pmap-v6.c by factoring out common code related to mapping device memory into a new devmap.c file.
Remove the growing duplication of code that used pmap_devmap_find_pa() and then did some math with the returned results to generate a virtual address, and likewise in reverse to get a physical address. Now there are a pair of functions, arm_devmap_vtop() and arm_devmap_ptov(), to do that. The bus_space_map() implementations are rewritten in terms of these.
Move remaining code and data related to static device mapping into the new devmap.[ch] files. Emphasize the MD nature of these things by using the prefix arm_devmap_ on the function and type names (already a few of these things found their way into MI code, hopefully it will be harder to do by accident in the future).
|
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
248909 |
|
29-Mar-2013 |
ian |
Call soc_info.soc_data->soc_clock_init() before at91_pmc_init_clock(), so that the latter correctly fills in the clock data structures based on proper hardware-specific shift and mask values from the soc_data structure.
|
#
247313 |
|
26-Feb-2013 |
alc |
Eliminate a redundant #include: machine/pmap.h is already included through vm/pmap.h.
|
#
247297 |
|
26-Feb-2013 |
attilio |
Merge from vmobj-rwlock branch: Remove unused inclusion of vm/vm_pager.h and vm/vnode_pager.h.
Sponsored by: EMC / Isilon storage division Tested by: pho Reviewed by: alc
|
#
247046 |
|
20-Feb-2013 |
alc |
Initialize vm_max_kernel_address on non-FDT platforms. (This should have been included in r246926.)
The second parameter to pmap_bootstrap() is redundant. Eliminate it.
Reviewed by: andrew
|
#
242746 |
|
08-Nov-2012 |
imp |
Reduce differences between these two initarms a bit more.
|
#
242700 |
|
07-Nov-2012 |
imp |
Minor cosmetic changes to bring atmel's initarm and the default initarm for FDT closer together. More to follow.
|
#
240802 |
|
22-Sep-2012 |
andrew |
Create a common set_stackptrs in sys/arm/machdep.c.
On single core devices set_stackptrs is only ever called with cpu = 0 in initarm and will be identical to the existing function. On SMP this needs to be implemented for sys/arm/mp_machdep.c, but the implementations are identical for each SoC.
|
#
239268 |
|
15-Aug-2012 |
gonzo |
Merging projects/armv6, part 1
Cummulative patch of changes that are not vendor-specific: - ARMv6 and ARMv7 architecture support - ARM SMP support - VFP/Neon support - ARM Generic Interrupt Controller driver - Simplification of startup code for all platforms
|
#
238788 |
|
26-Jul-2012 |
andrew |
Add support for the Atmel AT91SAM9G45 CPU.
Reviewed by: imp
|
#
238403 |
|
12-Jul-2012 |
imp |
Remember where we found the DBGU and use that for our console.
|
#
238376 |
|
11-Jul-2012 |
imp |
Make the SoC stuff a little more modular, and start to move away from having the CPU device that's a child of atmelarm that does stuff.
o Create a linker_set for the support fucntions for the SoCs. o Rename soc_data to soc_info. o Move the delay and reset function pointers to new soc_data struct o Create elements for all known SoCs o Add lookup of the SoC we found, and print a warning if it isn't one we know about.
|
#
238354 |
|
10-Jul-2012 |
imp |
Go ahead and disable the interrupts for the DBGU the boot loader may have left enabled after we detect the CPU, and remove the multiplely copied code from the SoC modules.
|
#
238329 |
|
10-Jul-2012 |
imp |
Remove some unused variables/externs that have been copied too many times...
|
#
238189 |
|
07-Jul-2012 |
imp |
Create a generic way to support multiple boards within an arm platform. Add all the atmel boards to the ATMEL kernel for testing purposes. Until boot loader arg parsing of baord type is done, this won't actually be able to do the runtime selection.
|
#
237429 |
|
22-Jun-2012 |
imp |
Move these #defines to at91reg.h (where I should have put them in the first place).
|
#
237238 |
|
18-Jun-2012 |
marius |
Try to bring this file closer to style(9).
|
#
237130 |
|
15-Jun-2012 |
imp |
Make it possible to link together a sam and an rm kernel. The results aren't very pretty yet, but this takes DELAY and cpu_reset and makes them pointers.
# I worry that these are set too late in the boot, especially cpu_reset.
|
#
237115 |
|
15-Jun-2012 |
imp |
Take half a step closer towards having a unified atmel kernel by rearranging where we initialize the time counter and putting the common stubs into a central place.
|
#
237045 |
|
14-Jun-2012 |
imp |
More Linux boot support. Create arm_dump_avail_init() to initialize this array either from Linux boot data, when enabled, or in the typical way that most ports do it. arm_pyhs_avail_init is coming soon since it must be a separate function.
|
#
237040 |
|
14-Jun-2012 |
imp |
Modify all the arm platform files to call parse_boot_param passing in the boot parameters from initarm first thing. parse_boot_param parses the boot arguments and converts them to the /boot/loader metadata the rest of the kernel uses. parse_boot_param is a weak alias to fake_preload_metadata, which all the platforms use now, but may become more extensive in the future.
Since it is a weak symbol, specific boards may define their own parse_boot_param to interface to custom boot loaders.
Reviewed by: cognet@, Ian Lapore
|
#
236846 |
|
10-Jun-2012 |
andrew |
Remove an unneeded increment from initarm. The variable is uninitialised, is not used in this part of the function and correctly initialised later when it is used.
|
#
236828 |
|
10-Jun-2012 |
andrew |
Pull out the common code to initialise proc0 & thread0 from initarm to a common function.
Reviewed by: imp
|
#
236658 |
|
06-Jun-2012 |
imp |
Enhance the Atmel SoC chip identification routines to account for more SoC variants. Fold the AT91SAM9XE chips into the AT91SAM9260 handling, where appropriate. The following SoCs/SoC families are recognized: at91cap9, at91rm9200, at91sam9260, at91sam9261, at91sam9263, at91sam9g10, at91sam9g20, at91sam9g45, at91sam9n12, at91sam9rl, at91sam9x5 and the following variations are also recognized: at91rm9200_bga, at91rm9200_pqfp, at91sam9xe, at91sam9g45, at91sam9m10, at91sam9g46, at91sam9m11, at91sam9g15, at91sam9g25, at91sam9g35, at91sam9x25, at91sam9x35 This is only the identification routine: no additional Atmel devices are supported at this time.
# With these changes, I'm able to boot to the point of identification # on a few different Atmel SoCs that we don't yet support using the # KB920X config file -- someday tht will be an ATMEL config file...
|
#
236524 |
|
03-Jun-2012 |
imp |
Minor rearrangement of the locore <-> initarm interface. Pass in a structure with the first 4 registers to allow a wider range of boot loaders to work. Future commits will make use of this to centralize support for the different loaders.
|
#
236372 |
|
01-Jun-2012 |
imp |
Initialize the clocks before we call cninit() so that the serial console so initialized will work upon return from cninit. While this is the very next line, other platforms setup all this stuff before calling cninit. Also, initialize the SDRAM base register in the inner block in at91_ramsize().
|
#
236215 |
|
29-May-2012 |
imp |
Compute the master clock frequency, so we no longer need to have it compiled into the kernel. This allows us to boot the same kernel on machines with different master clock frequencies, so long as we can determine the main clock frequency accurately. Cleanup the pmc clock init function so it can be called in early boot so we can use the serial port just after we call cninit.
# We have two calls to at91_pmc_clock_init for reasons unknown, that will # be fixed later -- it is harmless for now.
|
#
223562 |
|
26-Jun-2011 |
kevlo |
Remove duplicate header includes
|
#
218913 |
|
21-Feb-2011 |
cognet |
Get myself a brain, move the call to init_param1() before the first use in at91_machdep.c, and do it for the files I forgot the first time
Reported by: andrew Submitted by: pluknet
|
#
218667 |
|
13-Feb-2011 |
cognet |
Oops, wasn't supposed to commit this.
|
#
218666 |
|
13-Feb-2011 |
cognet |
Call init_param1() much earlier, so that msgbufsize is non-zero when we want to map and use the msgbuf.
|
#
217688 |
|
21-Jan-2011 |
pluknet |
Make MSGBUF_SIZE kernel option a loader tunable kern.msgbufsize.
Submitted by: perryh pluto.rain.com (previous version) Reviewed by: jhb Approved by: kib (mentor) Tested by: universe
|
#
213498 |
|
06-Oct-2010 |
cognet |
Add support for the AT91SAM9260
Submitted by: Greg Ansley
|
#
213496 |
|
06-Oct-2010 |
cognet |
if_ate.c:
* Support for sam9 "EMAC" controller. * Support for rmii interface to phy.
at91.c & at91sam9.c:
* Eliminate separate at91sam9.c file. * Add new devices to at91sam9_devs table.
at91_machdep.c & at at91sam9_machdep.c:
* Automatic chip type determination. * Remove compile time chip dependencies. * Eliminate separate at91sam9_machdep.c file.
at91_pmc.c:
* Corrected support for all of the sam926? and sam9g20 chips. * Remove compile time chip dependencies.
My apologies to Greg for taking so long to take care of it.
|
#
198872 |
|
04-Nov-2009 |
alc |
Eliminate an unnecessary vm include file.
|
#
195256 |
|
01-Jul-2009 |
raj |
Map DPCPU pages into ARM kernel VA space.
DPCPU area was not properly mapped into kernel VA space, which caused page fault on the first DPCPU access. This patch fixes the problem by mapping DPCPU area into kernel VA space.
Submitted by: Michal Hajduk, Piotr Ziecik Reviewed by: cognet, stas Approved by: re (kib) Obtained from: Semihalf
|
#
194784 |
|
23-Jun-2009 |
jeff |
Implement a facility for dynamic per-cpu variables. - Modules and kernel code alike may use DPCPU_DEFINE(), DPCPU_GET(), DPCPU_SET(), etc. akin to the statically defined PCPU_*. Requires only one extra instruction more than PCPU_* and is virtually the same as __thread for builtin and much faster for shared objects. DPCPU variables can be initialized when defined. - Modules are supported by relocating the module's per-cpu linker set over space reserved in the kernel. Modules may fail to load if there is insufficient space available. - Track space available for modules with a one-off extent allocator. Free may block for memory to allocate space for an extent.
Reviewed by: jhb, rwatson, kan, sam, grehan, marius, marcel, stas
|
#
191408 |
|
22-Apr-2009 |
stas |
- Add the driver for AT91RM9200 CompactFlash controller. The driver operates in the common memory mode and use polling mode to control the status of operations as I don't have any board with interrupt line routed yet. I'll add the GPIO interrupt driven mode as soon as I get one.
|
#
185539 |
|
02-Dec-2008 |
peter |
Delete a bunch of empty mergeinfo records caused by local copies.
|
#
185513 |
|
01-Dec-2008 |
stas |
- Fix spelling error in comments.
PR: arm/128891 Submitted by: Pavel Pankov <pankov_p@mail.ru> Approved by: kib (mentor)
|
#
185477 |
|
30-Nov-2008 |
imp |
opt_at91.h isn't needed here at all anymore, since the board init routines have been split out. Remove it. This leaves only one instance of it in the tree that will be going away soon.
|
#
185305 |
|
25-Nov-2008 |
imp |
Start to make it easier to add AT91RM9200 based boards: o Copy kb920x_machdep.c to at91_machdep.c o Move board_init to new board_kb920x.c o rename ramsize to at91_ramsize and make it accessible to board_* files. o Delete files.kb920x. We can do this selection with the new boards. o Add a stub for the tsc4370 board init, which will be added in a future commit. o Add new 'devices' at91_board_kb920x and at91_board_tsc4370. More are needed and will be added in future commits.
Reviewed by: stass, cognet
|
#
185288 |
|
25-Nov-2008 |
imp |
Save boot args.
|
#
185287 |
|
25-Nov-2008 |
imp |
more silly whitespace changes.
|
#
185270 |
|
25-Nov-2008 |
imp |
Fix various whitespace botches, mostly having them at the end of a line.
|
#
185266 |
|
25-Nov-2008 |
imp |
Replace three magic constants with L1_S_SIZE, since that's what is really meant in those places.
|
#
182803 |
|
05-Sep-2008 |
imp |
Kill bogus #if 1. There's no need for it since usb works these days.
|
#
177883 |
|
03-Apr-2008 |
imp |
Take the first baby step towards unifying and cleaning up arminit(): - Pull all the code to deal with the trampoline stuff into one centeralized place and use it from everywhere. - Some minor style tidiness
Reviewed by: tinguely
|
#
177873 |
|
03-Apr-2008 |
imp |
Remove unnecessary #define.
|
#
174880 |
|
23-Dec-2007 |
stas |
- Fix a typo in comments.
MFC after: 1 week Approved by: cognet
|
#
173361 |
|
05-Nov-2007 |
kib |
Fix for the panic("vm_thread_new: kstack allocation failed") and silent NULL pointer dereference in the i386 and sparc64 pmap_pinit() when the kmem_alloc_nofault() failed to allocate address space. Both functions now return error instead of panicing or dereferencing NULL.
As consequence, vmspace_exec() and vmspace_unshare() returns the errno int. struct vmspace arg was added to vm_forkproc() to avoid dealing with failed allocation when most of the fork1() job is already done.
The kernel stack for the thread is now set up in the thread_alloc(), that itself may return NULL. Also, allocation of the first process thread is performed in the fork1() to properly deal with stack allocation failure. proc_linkup() is separated into proc_linkup() called from fork1(), and proc_linkup0(), that is used to set up the kernel process (was known as swapper).
In collaboration with: Peter Holm Reviewed by: jhb
|
#
172989 |
|
25-Oct-2007 |
cognet |
Oooops, get the end of the memory right.
|
#
172945 |
|
24-Oct-2007 |
cognet |
KERNBASE should really be KERNVIRTADDR there too.
MFC after: 1 week
|
#
172943 |
|
24-Oct-2007 |
cognet |
Handle the case where PHYSADDR != KERNPHYSADDR (ie we do not load the kernel at the beginning of the RAM).
MFC After: 1 week
|
#
171673 |
|
31-Jul-2007 |
imp |
Make USB work on the KB9202{,A,B} boards. This has been in p4 for about 7 months. You must have JP6 in the 1-2 position to supply power to the USB devices, but I've used uftdi, uplcom and umass successfully. If you have it in 2-3, then nothing will show up. Also, if you have the FQPA packaging for the AT91RM9200 (like the KN9202 boards have), you will get the following message
uhub0: device problem (IOERROR), disabling port 2
due to a hardware erratum. It is safe to ignore as it is about pins that aren't brought out on the FQPA package and aren't proeprly terminated either. Alas, there's no register to read to tell the FQPA from the BGA versions.
Submitted by: Daan Vreeken Approved by: re (kensmith)
|
#
169900 |
|
23-May-2007 |
cognet |
Remove duplicate includes.
Submitted by: Cyril Nguyen Huu <cyril ci0 org>
|
#
167935 |
|
27-Mar-2007 |
kevlo |
Don't map mini-data cache page since ARM920T doesn't have it.
|
#
164936 |
|
06-Dec-2006 |
julian |
Threading cleanup.. part 2 of several.
Make part of John Birrell's KSE patch permanent.. Specifically, remove: Any reference of the ksegrp structure. This feature was never fully utilised and made things overly complicated. All code in the scheduler that tried to make threaded programs fair to unthreaded programs. Libpthread processes will already do this to some extent and libthr processes already disable it.
Also: Since this makes such a big change to the scheduler(s), take the opportunity to rename some structures and elements that had to be moved anyhow. This makes the code a lot more readable.
The ULE scheduler compiles again but I have no idea if it works.
The 4bsd scheduler still reqires a little cleaning and some functions that now do ALMOST nothing will go away, but I thought I'd do that as a separate commit.
Tested by David Xu, and Dan Eischen using libthr and libpthread.
|
#
164198 |
|
11-Nov-2006 |
alc |
Eliminate unused global variables.
|
#
163709 |
|
26-Oct-2006 |
jb |
Make KSE a kernel option, turned on by default in all GENERIC kernel configs except sun4v (which doesn't process signals properly with KSE).
Reviewed by: davidxu@
|
#
163521 |
|
20-Oct-2006 |
imp |
Add configuration of the SSC lines for second SSC.
|
#
161704 |
|
28-Aug-2006 |
cognet |
Relocate the vector page for AT91, to work around bugs with the LOW_VECTOR code.
|
#
161105 |
|
08-Aug-2006 |
cognet |
Rewrite ARM_USE_SMALL_ALLOC so that instead of the current behavior, it maps whole the physical memory, cached, using 1MB section mappings. This reduces the address space available for user processes a bit, but given the amount of memory a typical arm machine has, it is not (yet) a big issue. It then provides a uma_small_alloc() that works as it does for architectures which have a direct mapping.
|
#
161063 |
|
08-Aug-2006 |
kevlo |
Remove a bogus i = 0. Approved by: cognet
|
#
160683 |
|
25-Jul-2006 |
cognet |
Use virtual_avail instead of freemempos as the starting point of the available physical memory, as the vm uses the memory between freemempos and virtual_avail.
MFC After: 3 days
|
#
160453 |
|
17-Jul-2006 |
cognet |
#if => #ifdef
|
#
160374 |
|
15-Jul-2006 |
cognet |
Add a comment explaining why the OHCI mapping has been commented out.
|
#
160363 |
|
14-Jul-2006 |
imp |
MFp4: Introduce framework to configure the multiplexed pins on boot.
Since the USART supprots RS-485 multidrop mode, it allows the TX pins to float. However, for RS-232 operations, we don't want these pins to float. Instead, they should be pulled up to avoid mismatches. Linux does something similar when it configures the TX lines. This implies that we also allow the RX lines to float rather than be in the state they are left in by the boot loader. Since they are input pins, I think that this is the right thing to do.
Plus minor for our board.
|
#
160282 |
|
12-Jul-2006 |
cognet |
Comment out the mapping of the OHCI controller registers va == pa. This address is in the userland address space. The proper thing is either to choose a virtual address in the kernel address space beyond the KVA, or to use pmap_mapdev().
|
#
159814 |
|
20-Jun-2006 |
imp |
Compute physmem so we can print it correctly on boot. Slightly optimize while I'm here.
|
#
159795 |
|
20-Jun-2006 |
imp |
Probe the memory size of the board better. Look at the bus width, number of banks, rows and columns the SDRAMC is programmed to access to determine the RAM size for the board, rather than hard-wiring it to be 32MB. My company's board with 64MB now probes correctly, as does the KB9202 with only 32MB. This means that to detect the right memory size, our boot loader must correctly initialize these values. This is a fairly safe assumption because the boot loader has to initialize SDRAM already, and it isn't really possible to change this register after we've accessed SDRAM.
|
#
159556 |
|
12-Jun-2006 |
cognet |
MFp4: Increase the L1 pagetable needed for the kernel from 8 to 22, to be able to boot fat kernels.
|
#
159365 |
|
07-Jun-2006 |
imp |
Remove sa1_cache_clean_addr. It isn't needed.
Submitted by: kevlo
|
#
157029 |
|
22-Mar-2006 |
cognet |
MFp4: Don't force single-user now we can go multi-user. Call cninit() only after the pagetable has been set, as locore.S won't map the system device for us anymore.
|
#
157024 |
|
22-Mar-2006 |
cognet |
MFp4: teach the KB920x bits how to know where the ELF trampoline puts the strtab and the symtab.
|
#
156832 |
|
18-Mar-2006 |
imp |
Add ohci controller mapping.
|
#
155324 |
|
04-Feb-2006 |
imp |
Import support for the Atmel AT91RM9200 CPU/Microcontroller. This SoC is a ARM920T based CPU with a bunch of built-in peripherals. The inital import supports the SPI bus, the TWI bus (although iicbus integration is not complete), the uarts, the system timer and the onboard ethernet. Support for the Kwikbyte KB9202 (http://www.kwikbyte.com) board is also included, although there's no reason why the 9200 and the 9201 wouldn't also work. Primitive support for running under the skyeye emulator is also provided (although skyeye's support for the AT91RM9200 is a little weak).
The code has been structured so that other members of Atmel's arm family can be supported in the future. The AT91SAM9260 is not presently supported due to lack of hardware. The arm7tdmi families are also not supported becasue they lack an MMU.
Many thanks to cognet@ for his help and assistance in bringing up this board. He did much of the vm work and wrote parts of the uart and system timer code as well as the bus space implementation.
The system boots to single user w/o problem, although the serial console is a little slow and the ethernet driver is still in flux.
This work was sponsored by Timing Solutions, Corporation. I am grateful to their support of the FreeBSD project in this manner.
|